yangdamao 2 年之前
父节点
当前提交
b4477c86ba

+ 16 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -629,7 +629,6 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
                     //没有关联题库 是否购买过题库
                     int count = iGoodsQuestionRelService.count(new LambdaQueryWrapper<GoodsQuestionRel>()
                             .eq(GoodsQuestionRel::getOrderGoodsId, userSubscribeTwo.getOrderGoodsId())
-                            .eq(GoodsQuestionRel::getStatus, 1)
                             .gt(GoodsQuestionRel::getQuestionDoNum, 0));
                     if (count <= 0){
                         //考试时间往前推8天
@@ -775,7 +774,22 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
 
     @Override
     public List<SpecialQuestionVo> getSpecialQuestionList(SpecialQuestionBo bo) {
-        return baseMapper.getSpecialQuestionList(bo);
+        List<SpecialQuestionVo> specialQuestionList = baseMapper.getSpecialQuestionList(bo);
+        if (CollectionUtils.isEmpty(specialQuestionList)){
+            return new ArrayList<>();
+        }
+        specialQuestionList.forEach(item -> {
+            GoodsQuestionRel questionRel = iGoodsQuestionRelService
+                    .getOne(new LambdaQueryWrapper<GoodsQuestionRel>()
+                    .eq(GoodsQuestionRel::getQuestionGoodsId, item.getGoodsId())
+                    .eq(GoodsQuestionRel::getQsOrderGoodsId, item.getOrderGoodsId())
+                    .gt(GoodsQuestionRel::getQuestionDoNum, 0)
+                    .last("limit 1"));
+            if (ObjectUtils.isNotNull(questionRel)){
+                item.setSubscribeStatus(questionRel.getStatus());
+            }
+        });
+        return specialQuestionList;
     }
 
     private Long liveTime(Long nowTime, Integer day) {

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderInputServiceImpl.java

@@ -279,6 +279,7 @@ public class OrderInputServiceImpl extends ServiceImpl<OrderInputMapper, OrderIn
                 .eq(UserSubscribe::getUserId, order.getUserId())
                 .eq(UserSubscribe::getOrderGoodsId, orderGoodsId)
                 .eq(UserSubscribe::getSubscribeStatus, 1)
+                .eq(UserSubscribe::getExamStatus,0)
                 .last("limit 1"));
         if (ObjectUtils.isNull(subscribe)){
             return add;

+ 30 - 7
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -881,6 +881,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 .eq(UserSubscribe::getUserId, one.getUserId())
                 .eq(UserSubscribe::getOrderGoodsId, orderGoods.getOrderGoodsId())
                 .eq(UserSubscribe::getSubscribeStatus, 1)
+                .eq(UserSubscribe::getExamStatus,0)
                 .last("limit 1"));
         if (ObjectUtils.isNull(subscribe)){
             return add;
@@ -895,7 +896,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     }
 
 
-    private void questionOrderHandle(Long orderGoodsId,Long goodsId,Long qsOrderGoodsId) {
+    private void questionOrderHandle(Long orderGoodsId,Long goodsId,Long qsOrderGoodsId,Long userId) {
         //第三方题库商品
         Goods questionGoods = iGoodsService.getById(goodsId);
         if (ObjectUtils.isNull(questionGoods) || questionGoods.getGoodsType() != 9){
@@ -917,6 +918,29 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         rel.setCreateTime(DateUtils.getNowTime());
         rel.setUpdateTime(DateUtils.getNowTime());
         iGoodsQuestionRelService.save(rel);
+        //补充题库商品服务时间
+        setQuestionServiceTime(qsOrderGoodsId,userId);
+    }
+
+
+    private void setQuestionServiceTime(Long orderGoodsId,Long userId) {
+        UserSubscribe subscribe = iUserSubscribeService.getOne(new LambdaQueryWrapper<UserSubscribe>()
+                .eq(UserSubscribe::getUserId, userId)
+                .eq(UserSubscribe::getOrderGoodsId, orderGoodsId)
+                .eq(UserSubscribe::getSubscribeStatus, 1)
+                .eq(UserSubscribe::getExamStatus,0)
+                .last("limit 1"));
+        if (ObjectUtils.isNull(subscribe)){
+            return;
+        }
+        //考试日期
+        Long examTime = subscribe.getApplySiteExamTime();
+        //前推8天
+        Long dayBefore = DateUtils.getDayBefore(examTime, 8);
+        OrderGoods orderGoods = iOrderGoodsService.getById(orderGoodsId);
+        orderGoods.setServiceStartTime(dayBefore);
+        orderGoods.setServiceEndTime(examTime);
+        iOrderGoodsService.updateById(orderGoods);
     }
 
     @Override
@@ -1010,7 +1034,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             if (ObjectUtils.isNotNull(g.getRelevanceId())){
                 //购买关联题库商品
-                questionOrderHandle(g.getRelevanceId(),g.getGoodsId(),orderGoods.getOrderGoodsId());
+                questionOrderHandle(g.getRelevanceId(),g.getGoodsId(),orderGoods.getOrderGoodsId(),bo.getUserId());
             }
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods, bo.getUserId());
@@ -1408,7 +1432,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             if (ObjectUtils.isNotNull(g.getRelevanceId())){
                 //购买关联题库商品
-                questionOrderHandle(g.getRelevanceId(),g.getGoodsId(),orderGoods.getOrderGoodsId());
+                questionOrderHandle(g.getRelevanceId(),g.getGoodsId(),orderGoods.getOrderGoodsId(),bo.getUserId());
             }
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods, bo.getUserId());
@@ -1569,7 +1593,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             if (ObjectUtils.isNotNull(g.getRelevanceId())){
                 //购买关联题库商品
-                questionOrderHandle(g.getRelevanceId(),g.getGoodsId(),orderGoods.getOrderGoodsId());
+                questionOrderHandle(g.getRelevanceId(),g.getGoodsId(),orderGoods.getOrderGoodsId(),bo.getUserId());
             }
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods, bo.getUserId());
@@ -2806,13 +2830,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             //校验学员是否已经购买题库
             UserSubscribe userSubscribe = iUserSubscribeService.getById(userSubscribeId);
             User user = iUserService.getById(userSubscribe.getUserId());
-            if (ObjectUtils.isNull(userSubscribe)){
-                throw new CustomException(String.format("学员【%s】预约信息有误",user.getRealname()));
+            if (ObjectUtils.isNull(userSubscribe) || userSubscribe.getSubscribeStatus() == 0){
+                throw new CustomException(String.format("学员【%s】没有预约考试,请勿开通题库",user.getRealname()));
             }
             int count = iGoodsQuestionRelService.count(new LambdaQueryWrapper<GoodsQuestionRel>()
                     .eq(GoodsQuestionRel::getOrderGoodsId, userSubscribe.getOrderGoodsId())
                     .eq(GoodsQuestionRel::getQuestionGoodsId, bo.getGoodsId())
-                    .eq(GoodsQuestionRel::getStatus, 1)
                     .gt(GoodsQuestionRel::getQuestionDoNum, 0));
             if (count > 0) {
                 throw new CustomException(String.format("学员【%s】已购买当前题库商品,请勿重复开通!",user.getRealname()));

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/SpecialQuestionVo.java

@@ -56,4 +56,7 @@ public class SpecialQuestionVo implements Serializable {
     @ApiModelProperty("服务有效期结束")
     private Long serviceEndTime;
 
+    @ApiModelProperty("预约状态")
+    private Integer subscribeStatus;
+
 }

+ 11 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/settle/service/impl/ITopInstSettleServiceImpl.java

@@ -541,6 +541,7 @@ public class ITopInstSettleServiceImpl extends ServiceImpl<TopInstSettleMapper,
         List<TopSysUserRole> roleListTwo = topSysUserRoleService.list(new LambdaQueryWrapper<TopSysUserRole>().eq(TopSysUserRole::getUserId, bo.getLoginId()));
         //审核角色和审核时间
         settleVos.forEach(item -> {
+            item.setPaySign(0);
             if (item.getCheckStatus() == 3){
                 //审核不通过
                 TopOldOrderCheckLog refundLog = topOldOrderCheckLogService
@@ -579,10 +580,16 @@ public class ITopInstSettleServiceImpl extends ServiceImpl<TopInstSettleMapper,
                             item.setCheckTime(checkLogTwo.getCheckTime());
                         }
                     }
-                    if (CollectionUtils.isNotEmpty(roleListTwo) && checkLog.getCheckStatus() != 2){
+                    if (CollectionUtils.isNotEmpty(roleListTwo)){
                         List<Long> collect = roleListTwo.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
                         if (CollectionUtils.isNotEmpty(collect) && collect.contains(checkLog.getRoleId())){
-                            item.setCheckStatus(7);
+                            if (checkLog.getCheckStatus() == 2){
+                                //待支付
+                                item.setPaySign(1);
+                            }else if (checkLog.getCheckStatus() == 0){
+                                //待审核
+                                item.setCheckStatus(7);
+                            }
                         }
                     }
                 }
@@ -1065,7 +1072,7 @@ public class ITopInstSettleServiceImpl extends ServiceImpl<TopInstSettleMapper,
                     OrderBusinessBo bo = new OrderBusinessBo();
                     bo.setOrderSn(order.getOrderSn());
                     List<String> nameList = baseMapper.getGoodsBusinessNameList(bo);
-                    if (CollectionUtils.isEmpty(nameList)){
+                    if (CollectionUtils.isNotEmpty(nameList)){
                         orderVo.setBusinessNames(nameList);
                     }
                 } else {
@@ -1081,7 +1088,7 @@ public class ITopInstSettleServiceImpl extends ServiceImpl<TopInstSettleMapper,
                     bo.setOrderSn(oldOrder.getOrderSn());
                     bo.setOrderGoodsId(orderGoods.getOrderGoodsId());
                     List<String> nameList = baseMapper.getGoodsBusinessNameList(bo);
-                    if (CollectionUtils.isEmpty(nameList)){
+                    if (CollectionUtils.isNotEmpty(nameList)){
                         orderVo.setBusinessNames(nameList);
                     }
                 }

+ 4 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/settle/vo/SettleVo.java

@@ -54,7 +54,7 @@ public class SettleVo implements Serializable {
     @ApiModelProperty("结算金额")
     private BigDecimal settleMoney;
 
-    @ApiModelProperty("审核状态:1待提交 2待审核 3审核中 4未通过 5待支付 6支付失败 7已结算")
+    @ApiModelProperty("审核状态:1待提交 2审核中 3未通过 4待支付 5支付失败 6已结算,7,当前账号待审核,8支付中")
     private Integer checkStatus;
 
     @ApiModelProperty("审核角色")
@@ -77,4 +77,7 @@ public class SettleVo implements Serializable {
 
     @ApiModelProperty("创建人ID")
     private Long createUserId;
+
+    @ApiModelProperty("支付标签:1是 0否")
+    private Integer paySign;
 }

+ 34 - 11
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserSubscribeServiceImpl.java

@@ -48,6 +48,8 @@ import com.zhongzheng.modules.exam.vo.ExamApplySiteVo;
 import com.zhongzheng.modules.exam.vo.ExamApplyVo;
 import com.zhongzheng.modules.exam.vo.ExamSessionVo;
 import com.zhongzheng.modules.goods.domain.Goods;
+import com.zhongzheng.modules.goods.domain.GoodsQuestionRel;
+import com.zhongzheng.modules.goods.service.IGoodsQuestionRelService;
 import com.zhongzheng.modules.goods.service.IGoodsService;
 import com.zhongzheng.modules.goods.vo.GoodsVo;
 import com.zhongzheng.modules.grade.domain.ClassGradeUser;
@@ -156,6 +158,8 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
     private IClassGradeUserService iClassGradeUserService;
     @Autowired
     private IUserStudyRecordPhotoService iUserStudyRecordPhotoService;
+    @Autowired
+    private IGoodsQuestionRelService iGoodsQuestionRelService;
 
     @Value("${aliyun.sms.cancellationReminder}")
     private String cancellationReminder;
@@ -772,6 +776,16 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
                     bo.getSubscribeId()
             };
             userSubscribeEditBo.setSubscribeId(s);
+
+            //是否关联题库
+            GoodsQuestionRel questionRel = iGoodsQuestionRelService.getOne(new LambdaQueryWrapper<GoodsQuestionRel>()
+                    .eq(GoodsQuestionRel::getOrderGoodsId, bo.getOrderGoodsId())
+                    .eq(GoodsQuestionRel::getStatus, 1)
+                    .gt(GoodsQuestionRel::getQuestionDoNum, 0));
+            if (ObjectUtils.isNotNull(questionRel)){
+                questionRel.setStatus(0);
+                iGoodsQuestionRelService.updateById(questionRel);
+            }
             //发送消息
 //            sendExamcancel(userSubscribeEditBo);
         }
@@ -2230,17 +2244,26 @@ public class UserSubscribeServiceImpl extends ServiceImpl<UserSubscribeMapper, U
         add.setUpdateTime(DateUtils.getNowTime());
         add.setExamineeCode(ServletUtils.getEncoded("ZZ"+ ToolsUtils.autoGenericCode(String.valueOf(add.getApplyId()),4) +ToolsUtils.autoGenericCode(String.valueOf(add.getUserId()),4)));
         this.save(add);
-        //签署疫情防控书
-//        if (org.apache.commons.lang3.StringUtils.isNotBlank(bo.getSignImageStr())){
-//            UserSubscribeSignReportBo reportBo = new UserSubscribeSignReportBo();
-//            reportBo.setSubscribeId(add.getSubscribeId());
-//            User user = iUserService.getById(bo.getUserId());
-//            reportBo.setUserId(bo.getUserId());
-//            reportBo.setPhone(user.getTelphone());
-//            reportBo.setIdCard(user.getIdCard());
-//            reportBo.setSignImageStr(bo.getSignImageStr());
-//            this.signReport(reportBo);
-//        }
+
+        //预约成功刷新题库时间
+        GoodsQuestionRel questionRel = iGoodsQuestionRelService
+                .getOne(new LambdaQueryWrapper<GoodsQuestionRel>()
+                .eq(GoodsQuestionRel::getOrderGoodsId, bo.getOrderGoodsId())
+                .gt(GoodsQuestionRel::getQuestionDoNum, 0)
+                .last("limit 1"));
+        if (ObjectUtils.isNotNull(questionRel)){
+            //考试日期
+            Long examTime = add.getApplySiteExamTime();
+            Long dayBefore = DateUtils.getDayBefore(examTime, 8);
+            OrderGoods orderGoods = iOrderGoodsService.getById(questionRel.getQsOrderGoodsId());
+            if (ObjectUtils.isNotNull(orderGoods)){
+                orderGoods.setServiceStartTime(dayBefore);
+                orderGoods.setServiceEndTime(examTime);
+            }
+            //激活题库
+            questionRel.setStatus(1);
+            iGoodsQuestionRelService.updateById(questionRel);
+        }
 
         //发送预约考试消息
         sendExamSucceed(bo);

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -603,6 +603,7 @@ public class WxPayServiceImpl implements IWxPayService {
                 .eq(UserSubscribe::getUserId, one.getUserId())
                 .eq(UserSubscribe::getOrderGoodsId, orderGoods.getOrderGoodsId())
                 .eq(UserSubscribe::getSubscribeStatus, 1)
+                .eq(UserSubscribe::getExamStatus,0)
                 .last("limit 1"));
         if (ObjectUtils.isNull(subscribe)){
             return add;