liujunchi 2 роки тому
батько
коміт
017f758e35

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java

@@ -45,6 +45,9 @@ public class OrderReq {
 
     @ApiModelProperty(value = "活动id")
     private Long activityId;
+
+    @ApiModelProperty(value = "活动id",hidden = true)
+    private Long rewardId;
     @NotNull(message = "订单金额不能为空")
     @ApiModelProperty(value = "订单金额", required = true)
     private BigDecimal actualPrice;
@@ -159,6 +162,14 @@ public class OrderReq {
         }
     }
 
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
     public Long getUserId() {
         return userId;
     }

+ 12 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrder.java

@@ -41,6 +41,10 @@ public class UserOrder implements Serializable {
     @TableField(value = "activity_id_")
     private Long activityId;
 
+    @ApiModelProperty(value = "活动奖品id(有活动的情况)")
+    @TableField(value = "reward_id_")
+    private Long rewardId;
+
     @ApiModelProperty("订单名称 ")
     @TableField(value = "order_name_")
     private String orderName;
@@ -92,6 +96,14 @@ public class UserOrder implements Serializable {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
     public Long getActivityId() {
         return activityId;
     }

+ 9 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityUserRewardService.java

@@ -27,4 +27,13 @@ public interface ActivityUserRewardService extends IService<ActivityUserReward>
  	 * @date 2022-08-04
      */
     IPage<UserRewardVo> selectPage(IPage<UserRewardVo> page, ActivityUserRewardSearch query);
+
+	/**
+	 * 订单购买的发奖记录
+	 *
+	 * @param activityId 活动id
+	 * @param rewardId 奖品id
+	 * @param userId 用户id
+	 */
+    void saveRewardRecord(Long activityId, Long rewardId, Long userId);
 }

+ 14 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityUserRewardServiceImpl.java

@@ -16,6 +16,7 @@ import com.yonge.cooleshow.biz.dal.dto.search.ActivityUserRewardSearch;
 import com.yonge.cooleshow.biz.dal.dao.ActivityUserRewardDao;
 import com.yonge.cooleshow.biz.dal.service.ActivityUserRewardService;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -53,5 +54,17 @@ public class ActivityUserRewardServiceImpl extends ServiceImpl<ActivityUserRewar
 
         return page.setRecords(userRewards);
     }
-	
+
+    @Override
+    public void saveRewardRecord(Long activityId, Long rewardId, Long userId) {
+        ActivityUserReward activityUserReward = new ActivityUserReward();
+        activityUserReward.setActivityId(activityId);
+        activityUserReward.setRewardId(rewardId);
+        activityUserReward.setUserId(userId);
+        activityUserReward.setCreateTime(new Date());
+        activityUserReward.setUpdateTime(new Date());
+        activityUserReward.setGrantFlag(1);
+        activityUserReward.setReceiveFlag(1);
+        this.save(activityUserReward);
+    }
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java

@@ -97,6 +97,8 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
                 if (activityPlanRewardDto.getActivityReward().getUnit().getCode().equals(detail.getPeriod().getCode())) {
                     couponAmount = activityPlanRewardDto.getActivityReward().getDiscountPrice();
                     orderCreateRes.setActivityId(activityPlanVo.getId());
+                    orderCreateRes.setRewardId(activityPlanRewardDto.getActivityReward().getId());
+                    break;
                 }
             }
         }

+ 7 - 2
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java

@@ -94,6 +94,9 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
     @Autowired
     private ActivityPlanService activityPlanService;
 
+    @Autowired
+    private ActivityUserRewardService activityUserRewardService;
+
     //验证订单是否可以下单,获取订单金额信息
     private static final Map<GoodTypeEnum, Function<OrderReq.OrderReqInfo, HttpResponseResult<OrderCreateRes>>> orderCreate = new HashMap<>();
     //插入订单后执行
@@ -316,6 +319,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             //累计实际支付金额
             actualPrice = actualPrice.add(createRes.getActualPrice());
             orderReq.setActivityId(createRes.getActivityId());
+            orderReq.setRewardId(createRes.getRewardId());
 
             info.setCreateRes(createRes);
         }
@@ -546,7 +550,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
      */
     private UserOrderVo insertOrder(OrderReq orderReq) {
         UserOrder userOrder = new UserOrder();
-
+        userOrder.setRewardId(orderReq.getRewardId());
         userOrder.setActivityId(orderReq.getActivityId());
         userOrder.setOrderNo(orderReq.getOrderNo());
         userOrder.setUserId(orderReq.getUserId());
@@ -789,7 +793,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             orderDetailVo.setOrderId(detail.getId());
             orderDetailVo.setRecomUserId(detail.getRecomUserId());
             orderDetailVo.setActivityId(detail.getActivityId());
-
+            orderDetailVo.setRewardId(detail.getRewardId());
             //调用业务
             Consumer<UserOrderDetailVo> userOrderVoConsumer = orderSuccess.get(orderDetailVo.getGoodType());
             if (!Objects.isNull(userOrderVoConsumer)) {
@@ -827,6 +831,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
         activityRegistrationService.save(activityRegistration);
         activityEvaluationRecordService.saveActivityRecord(orderDetailVo.getActivityId(), orderDetailVo.getUserId(),
                                                            orderDetailVo.getRecomUserId(), ActivityResourceEnum.TEACHER);
+        activityUserRewardService.saveRewardRecord(orderDetailVo.getActivityId(),orderDetailVo.getRewardId(),orderDetailVo.getUserId());
     }
 
     /**

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderDetailVo.java

@@ -39,6 +39,17 @@ public class UserOrderDetailVo extends UserOrderDetail {
     @ApiModelProperty("活动id")
     private Long activityId;
 
+    @ApiModelProperty("活动奖品id")
+    private Long rewardId;
+
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
     public Long getActivityId() {
         return activityId;
     }

+ 11 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/OrderCreateRes.java

@@ -36,9 +36,20 @@ public class OrderCreateRes {
     @ApiModelProperty("活动id")
     private Long activityId;
 
+    @ApiModelProperty("奖品id")
+    private Long rewardId;
+
     @ApiModelProperty(value = "冗余字段,用于传递参数用")
     private Object bizParam;
 
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
     public Long getActivityId() {
         return activityId;
     }

+ 2 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml

@@ -7,6 +7,7 @@
         <result column="user_id_" property="userId"/>
         <result column="recom_user_id_" property="recomUserId"/>
         <result column="activity_id_" property="activityId"/>
+        <result column="reward_id_" property="rewardId"/>
         <result column="order_name_" property="orderName"/>
         <result column="order_client_" property="orderClient"/>
         <result column="order_type_" property="orderType"/>
@@ -31,6 +32,7 @@
         , t.user_id_ as userId
         , t.recom_user_id_ as recomUserId
         , t.activity_id_ as activityId
+        , t.reward_id_ as rewardId
         , t.order_name_ as orderName
         , t.order_client_ as orderClient
         , t.order_type_ as orderType