Browse Source

Merge branch 'dev_1_3_4_20220825' of http://git.dayaedu.com/yonge/cooleshow into activity-0826

Eric 2 years ago
parent
commit
dfe95854e5
16 changed files with 175 additions and 21 deletions
  1. 23 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/req/OrderReq.java
  2. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/MemberPriceSettingsSearch.java
  3. 12 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/UserOrder.java
  4. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityPlanService.java
  5. 9 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/ActivityUserRewardService.java
  6. 16 4
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java
  7. 14 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityUserRewardServiceImpl.java
  8. 10 8
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MemberPriceSettingsServiceImpl.java
  9. 11 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java
  10. 9 3
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/UserOrderServiceImpl.java
  11. 1 1
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MemberPriceSettingsVo.java
  12. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/ShareProfitVo.java
  13. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/UserOrderDetailVo.java
  14. 11 0
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/res/OrderCreateRes.java
  15. 2 0
      cooleshow-user/user-biz/src/main/resources/config/mybatis/UserOrderMapper.xml
  16. 15 0
      cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenShareController.java

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

@@ -43,8 +43,11 @@ public class OrderReq {
     @ApiModelProperty(value = "推荐用户id(有推荐人的情况)")
     private Long recomUserId;
 
-    @ApiModelProperty(value = "活动id",hidden = true)
+    @ApiModelProperty(value = "活动id")
     private Long activityId;
+
+    @ApiModelProperty(value = "活动id",hidden = true)
+    private Long rewardId;
     @NotNull(message = "订单金额不能为空")
     @ApiModelProperty(value = "订单金额", required = true)
     private BigDecimal actualPrice;
@@ -75,6 +78,17 @@ public class OrderReq {
         @ApiModelProperty(value = "调用业务创建方法返回", hidden = true)
         private OrderCreateRes createRes;
 
+        @ApiModelProperty(value = "活动id")
+        private Long activityId;
+
+        public Long getActivityId() {
+            return activityId;
+        }
+
+        public void setActivityId(Long activityId) {
+            this.activityId = activityId;
+        }
+
         public Long getUserId() {
             return userId;
         }
@@ -148,6 +162,14 @@ public class OrderReq {
         }
     }
 
+    public Long getRewardId() {
+        return rewardId;
+    }
+
+    public void setRewardId(Long rewardId) {
+        this.rewardId = rewardId;
+    }
+
     public Long getUserId() {
         return userId;
     }

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

@@ -15,6 +15,17 @@ public class MemberPriceSettingsSearch extends QueryInfo{
 	@ApiModelProperty("分享老师id")
 	private Long userId;
 
+	@ApiModelProperty("活动id")
+	private Long  activityId;
+
+	public Long getActivityId() {
+		return activityId;
+	}
+
+	public void setActivityId(Long activityId) {
+		this.activityId = activityId;
+	}
+
 	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/ActivityPlanService.java

@@ -14,6 +14,7 @@ import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 
 /**
  * 活动计划表 服务类
@@ -112,4 +113,12 @@ public interface ActivityPlanService extends IService<ActivityPlan>  {
 	 * @return
 	 */
 	ActivityPlanVo activityShare(ActivityShareEnum type, Long userId);
+
+	/**
+	 * 检查活动是否进行中
+	 *
+	 * @param activityId 活动id
+	 * @return
+	 */
+	YesOrNoEnum state(Long 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);
 }

+ 16 - 4
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/ActivityPlanServiceImpl.java

@@ -37,10 +37,7 @@ import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
 import com.yonge.cooleshow.biz.dal.vo.UserOrderDetailVo;
 import com.yonge.cooleshow.biz.dal.vo.res.OrderCreateRes;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
-import com.yonge.cooleshow.common.enums.ActivityShareEnum;
-import com.yonge.cooleshow.common.enums.ActivityTypeEnum;
-import com.yonge.cooleshow.common.enums.CacheNameEnum;
-import com.yonge.cooleshow.common.enums.RegistrationMethodEnum;
+import com.yonge.cooleshow.common.enums.*;
 import com.yonge.toolset.base.exception.BizException;
 import com.yonge.toolset.base.util.StringUtil;
 import com.yonge.toolset.payment.util.DistributedLock;
@@ -140,6 +137,9 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
 
     @Override
     public ActivityPlanVo detail(Long id) {
+        if (id == null) {
+            return null;
+        }
         ActivityPlanVo detail = baseMapper.detail(id);
         if (null != detail) {
             if (ActivityTypeEnum.EVALUATION.equals(detail.getActivityType())) {
@@ -148,6 +148,8 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
             if (ActivityTypeEnum.STANDARD_GIFT.equals(detail.getActivityType())) {
                 detail.setPlanStandard(activityPlanStandardService.getById(id));
             }
+        } else {
+            return null;
         }
         //查询活动奖品
         List<ActivityPlanRewardDto> activityRewardList = activityPlanRewardService.queryActivityPlanReward(id);
@@ -587,6 +589,16 @@ public class ActivityPlanServiceImpl extends ServiceImpl<ActivityPlanDao, Activi
         return detail;
     }
 
+    @Override
+    public YesOrNoEnum state(Long activityId) {
+        List<ActivityPlan> list = this.lambdaQuery()
+                                      .eq(ActivityPlan::getId, activityId)
+                                      .eq(ActivityPlan::getActivityStart, 1)
+                                      .list();
+        return CollectionUtils.isEmpty(list)?YesOrNoEnum.NO:YesOrNoEnum.YES;
+
+    }
+
     /**
      * 参与活动消息
      */

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

@@ -20,6 +20,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.Map;
 import java.util.Objects;
@@ -79,5 +80,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);
+    }
 }

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

@@ -90,14 +90,15 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
 
         OrderCreateRes orderCreateRes = new OrderCreateRes();
         BigDecimal couponAmount = BigDecimal.ZERO;
-        // 获取活动的优惠信息
-        ActivityPlanVo activityPlanVo = activityPlanService.activityShare(ActivityShareEnum.VIP,
-                                                                          orderReqInfo.getRecomUserId());
-        if (activityPlanVo != null) {
+        ActivityPlanVo activityPlanVo = activityPlanService.detail(orderReqInfo.getActivityId());
+
+        if (activityPlanVo != null && activityPlanVo.getActivityState() == 1) {
             for (ActivityPlanRewardDto activityPlanRewardDto : activityPlanVo.getActivityRewardList()) {
                 if (activityPlanRewardDto.getActivityReward().getUnit().getCode().equals(detail.getPeriod().getCode())) {
                     couponAmount = activityPlanRewardDto.getActivityReward().getDiscountPrice();
                     orderCreateRes.setActivityId(activityPlanVo.getId());
+                    orderCreateRes.setRewardId(activityPlanRewardDto.getActivityReward().getId());
+                    break;
                 }
             }
         }
@@ -210,9 +211,11 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
     public MemberPriceVo getVipShare(MemberPriceSettingsSearch query) {
         MemberPriceVo memberPriceVo = new MemberPriceVo();
         List<MemberPriceSettingsVo> memberPriceSettingsVos = baseMapper.selectList(query);
-        ActivityPlanVo activityPlan = activityPlanService.activityShare(ActivityShareEnum.VIP, query.getUserId());
-        if (activityPlan == null) {
-            memberPriceVo.setList(memberPriceSettingsVos);
+
+        memberPriceVo.setList(memberPriceSettingsVos);
+        ActivityPlanVo activityPlan = activityPlanService.detail(query.getActivityId());
+
+        if (activityPlan == null || activityPlan.getActivityState() != 1) {
             return memberPriceVo;
         }
 
@@ -230,7 +233,6 @@ public class MemberPriceSettingsServiceImpl extends ServiceImpl<MemberPriceSetti
                 }
             }
         }
-        memberPriceVo.setList(memberPriceSettingsVos);
         return memberPriceVo;
     }
 

+ 11 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/MusicSheetServiceImpl.java

@@ -978,10 +978,18 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet
 
         YesOrNoEnum discount = YesOrNoEnum.NO;
         if (ChargeTypeEnum.VIP.equals(musicSheet.getChargeType())) {
-            discount = activityPlanService.activityShare(ActivityShareEnum.VIP, sysUser.getId()) ==null?YesOrNoEnum.NO:YesOrNoEnum.YES;
+            ActivityPlanVo activityPlanVo = activityPlanService.activityShare(ActivityShareEnum.VIP, sysUser.getId());
+            if (activityPlanVo != null) {
+                result.setActivityId(activityPlanVo.getId());
+                discount = YesOrNoEnum.YES;
+            }
         } else if (ChargeTypeEnum.CHARGE.equals(musicSheet.getChargeType())) {
-            discount = activityPlanService.activityShare(ActivityShareEnum.MUSIC_SHEET,
-                                                                          sysUser.getId()) ==null?YesOrNoEnum.NO:YesOrNoEnum.YES;
+            ActivityPlanVo activityPlanVo = activityPlanService.activityShare(ActivityShareEnum.MUSIC_SHEET,
+                                                                              sysUser.getId());
+            if (activityPlanVo != null) {
+                result.setActivityId(activityPlanVo.getId());
+                discount = YesOrNoEnum.YES;
+            }
         }
         result.setDiscount(discount);
         result.setTeacherId(sysUser.getId());

+ 9 - 3
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<>();
     //插入订单后执行
@@ -294,6 +297,7 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             info.setSubOrderNo(Long.toString(subOrderNo));
             info.setUserId(orderReq.getUserId());
             info.setRecomUserId(orderReq.getRecomUserId());
+            info.setActivityId(orderReq.getActivityId());
 
             HttpResponseResult<OrderCreateRes> createResult = createFunction.apply(info);
             OrderCreateRes createRes = createResult.getData();
@@ -314,9 +318,10 @@ public class UserOrderServiceImpl extends ServiceImpl<UserOrderDao, UserOrder> i
             createRes.setCouponAmount(couponAmount);
             //累计实际支付金额
             actualPrice = actualPrice.add(createRes.getActualPrice());
+            orderReq.setActivityId(createRes.getActivityId());
+            orderReq.setRewardId(createRes.getRewardId());
 
             info.setCreateRes(createRes);
-            orderReq.setActivityId(createRes.getActivityId());
         }
 
         //验证金额
@@ -545,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());
@@ -788,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)) {
@@ -826,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());
     }
 
     /**

+ 1 - 1
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/MemberPriceSettingsVo.java

@@ -19,7 +19,7 @@ public class MemberPriceSettingsVo extends MemberPriceSettings{
 
 
     @ApiModelProperty("专属优惠 0:否 1:是")
-    private YesOrNoEnum discount;
+    private YesOrNoEnum discount = YesOrNoEnum.NO;
 
     @ApiModelProperty("优惠价格")
     private BigDecimal discountPrice;

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

@@ -32,6 +32,9 @@ public class ShareProfitVo {
     @ApiModelProperty("专属优惠 0:否 1:是")
     private YesOrNoEnum discount;
 
+    @ApiModelProperty("活动id")
+    private Long activityId;
+
     @ApiModelProperty("乐谱信息")
     private MusicSheetDetailVo musicSheet;
 
@@ -44,6 +47,14 @@ public class ShareProfitVo {
     @ApiModelProperty("会员信息")
     private MemberPriceSettingsVo vip;
 
+    public Long getActivityId() {
+        return activityId;
+    }
+
+    public void setActivityId(Long activityId) {
+        this.activityId = activityId;
+    }
+
     public Long getTeacherId() {
         return teacherId;
     }

+ 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

+ 15 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/open/OpenShareController.java

@@ -4,11 +4,13 @@ import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.search.ShareProfitParam;
 import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.CheckVo;
 import com.yonge.cooleshow.biz.dal.vo.MusicActivityVo;
 import com.yonge.cooleshow.biz.dal.vo.ShareProfitVo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.ActivityShareEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -99,4 +101,17 @@ public class OpenShareController extends BaseController {
 
         return succeed(activityVo);
     }
+
+
+    @ApiOperation(value = "检查活动状态", notes = "活动id")
+    @PostMapping(value = "/activity/state/{id}")
+    public HttpResponseResult<CheckVo> state(@PathVariable Long id) {
+        // SysUser user = sysUserFeignService.queryUserInfo();
+
+        YesOrNoEnum state = activityPlanService.state(id);
+
+        CheckVo checkVo = new CheckVo();
+        checkVo.setCheck(state);
+        return succeed(checkVo);
+    }
 }