Browse Source

提交:模考安排改造相关接口

yangdamao 3 năm trước cách đây
mục cha
commit
dc6c6d4d0d

+ 9 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyAddBo.java

@@ -61,7 +61,15 @@ public class MockApplyAddBo {
     /** 模考通知状态 0未通知 1已通知 */
     @ApiModelProperty("模考通知状态 0未通知 1已通知")
     private Integer mockRemind;
-
+    /** 是否活动模考 0否 1是 */
+    @ApiModelProperty("是否活动模考 0否 1是")
+    private Integer mockActivity;
+    /** 活动开始时间 */
+    @ApiModelProperty("活动开始时间")
+    private Long activityStartTime;
+    /** 活动结束时间 */
+    @ApiModelProperty("活动结束时间")
+    private Long activityEndTime;
     /** 关联专业列表 */
     @ApiModelProperty("关联专业列表")
     private List<MockMajorAddBo> mockMajorList;

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockApplyEditBo.java

@@ -76,6 +76,16 @@ public class MockApplyEditBo {
     @ApiModelProperty("模考通知状态 0未通知 1已通知")
     private Integer mockRemind;
 
+    /** 是否活动模考 0否 1是 */
+    @ApiModelProperty("是否活动模考 0否 1是")
+    private Integer mockActivity;
+    /** 活动开始时间 */
+    @ApiModelProperty("活动开始时间")
+    private Long activityStartTime;
+    /** 活动结束时间 */
+    @ApiModelProperty("活动结束时间")
+    private Long activityEndTime;
+
     /** 关联专业列表 */
     @ApiModelProperty("关联专业列表")
     private List<MockMajorEditBo> mockMajorList;

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockMajorSubjectTimeAddBo.java

@@ -36,4 +36,7 @@ public class MockMajorSubjectTimeAddBo {
     /** 修改时间 */
     @ApiModelProperty("修改时间")
     private Long updateTime;
+    /** 考试时长(分钟) */
+    @ApiModelProperty("考试时长(分钟)")
+    private Integer duration;
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/bo/MockMajorSubjectTimeEditBo.java

@@ -41,5 +41,9 @@ public class MockMajorSubjectTimeEditBo {
     @ApiModelProperty("修改时间")
     private Long updateTime;
 
+    /** 考试时长(分钟) */
+    @ApiModelProperty("考试时长(分钟)")
+    private Integer duration;
+
 
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/domain/MockApply.java

@@ -57,4 +57,10 @@ private static final long serialVersionUID=1L;
     private String timeLimit;
     /** 模考通知状态 0未通知 1已通知 */
     private Integer mockRemind;
+    /** 是否活动模考 0否 1是 */
+    private Integer mockActivity;
+    /** 活动开始时间 */
+    private Long activityStartTime;
+    /** 活动结束时间 */
+    private Long activityEndTime;
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/mock/domain/MockMajorSubjectTime.java

@@ -37,6 +37,8 @@ private static final long serialVersionUID=1L;
     private String startTime;
     /** 结束时间 */
     private String endTime;
+    /** 考试时长(分钟) */
+    private Integer duration;
     /** 修改时间 */
     @TableField(fill = FieldFill.INSERT_UPDATE)
     private Long updateTime;

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -52,6 +52,7 @@ import com.zhongzheng.modules.order.vo.*;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.domain.UserExamGoods;
 import com.zhongzheng.modules.user.service.IUserExamGoodsService;
+import com.zhongzheng.modules.user.service.IUserMockSubscribeService;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.vo.UserVo;
 import com.zhongzheng.modules.wx.service.IWxPayService;
@@ -136,6 +137,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private IUserMockSubscribeService iUserMockSubscribeService;
+
 
     @Override
     public OrderVo queryById(Long orderId) {
@@ -715,6 +719,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         //给用户增加商品考试次数前培次数
         iWxPayService.updateUserExamGoods(orderGoods, order);
         iWxPayService.joinLockGrade(order.getOrderSn(), orderGoods.getGoodsId(), orderGoods.getOrderGoodsId());
+        //商品是否有活动模考
+        iUserMockSubscribeService.addActivityMock(orderGoods.getGoodsId(),order.getUserId());
     }
 
     @Override

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserMockSubscribeAddBo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
 
@@ -17,7 +18,7 @@ import java.util.Date;
  */
 @Data
 @ApiModel("用户预约模考添加对象")
-public class UserMockSubscribeAddBo {
+public class UserMockSubscribeAddBo implements Serializable {
 
     /** 学员ID */
     @ApiModelProperty("学员ID")

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMockSubscribeMapper.java

@@ -1,6 +1,7 @@
 package com.zhongzheng.modules.user.mapper;
 
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
+import com.zhongzheng.modules.user.bo.UserMockSubscribeAddBo;
 import com.zhongzheng.modules.user.bo.UserMockSubscribeQueryBo;
 import com.zhongzheng.modules.user.domain.UserMockSubscribe;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
@@ -28,4 +29,6 @@ public interface UserMockSubscribeMapper extends BaseMapper<UserMockSubscribe> {
     List<UserMockSubscribeVo> listLiveSubscribe();
 
     UserMockSubscribeVo listSubscribeInfo(Long subscribeId);
+
+    List<UserMockSubscribeAddBo> getMockByGooId(Long goodsId);
 }

+ 9 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserMockSubscribeService.java

@@ -61,4 +61,13 @@ public interface IUserMockSubscribeService extends IService<UserMockSubscribe> {
     List<UserMockSubscribeVo> listLiveSubscribe();
 
 	UserMockSubscribeVo listSubscribeInfo(Long subscribeId);
+
+	/**
+	 * 活动模考数据生成
+	 * @author change
+	 * @date 2022/8/31 16:28
+	 * @param goodId
+	 * @return java.lang.Boolean
+	 */
+	Boolean addActivityMock(Long goodId,Long userId);
 }

+ 61 - 20
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserMockSubscribeServiceImpl.java

@@ -3,6 +3,8 @@ package com.zhongzheng.modules.user.service.impl;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.Validator;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.base.bo.ConsoleQueryBo;
@@ -22,6 +24,7 @@ import com.zhongzheng.modules.user.domain.UserMockRecord;
 import com.zhongzheng.modules.user.service.IUserMockRecordService;
 import com.zhongzheng.modules.user.service.IUserService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -247,7 +250,11 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
             if (Validator.isNotEmpty(bo.getMockStatus()) && bo.getMockStatus() == 0) {
                 userMockSubscribeVoList.stream().forEach(userMockSubscribeVo -> {
                     try {
-                        if (System.currentTimeMillis()/1000 < formatTime(userMockSubscribeVo.getApplySiteExamTime(), userMockSubscribeVo.getApplySiteEndTime())) {
+                        if (ObjectUtils.isNotNull(userMockSubscribeVo.getApplySiteExamTime()) && ObjectUtils.isNotNull(userMockSubscribeVo.getApplySiteEndTime())){
+                            if (System.currentTimeMillis()/1000 < formatTime(userMockSubscribeVo.getApplySiteExamTime(), userMockSubscribeVo.getApplySiteEndTime())) {
+                                userMockSubscribeVos.add(userMockSubscribeVo);
+                            }
+                        }else {
                             userMockSubscribeVos.add(userMockSubscribeVo);
                         }
                     } catch (ParseException e) {
@@ -261,8 +268,10 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
                 List<MockMajorSubjectTimeVo> mockMajorSubjectTimeList2 = new ArrayList<>();
                 mockMajorSubjectTimeList.forEach(mockMajorSubjectTime -> {
                     try {
-                        if (System.currentTimeMillis()/1000 > formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
-                            mockMajorSubjectTimeList2.add(mockMajorSubjectTime);
+                        if (ObjectUtils.isNotNull(mockMajorSubjectTime.getExamTime()) && ObjectUtils.isNotNull(mockMajorSubjectTime.getEndTime())){
+                            if (System.currentTimeMillis()/1000 > formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
+                                mockMajorSubjectTimeList2.add(mockMajorSubjectTime);
+                            }
                         }
                     } catch (ParseException e) {
                         e.printStackTrace();
@@ -274,8 +283,10 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
                 List<UserMockSubscribeVo> userMockSubscribeList2 = new ArrayList<>();
                 userMockSubscribeList.forEach(userMockSubscribe -> {
                     try {
-                        if (System.currentTimeMillis()/1000 > formatTime(userMockSubscribe.getApplySiteExamTime(), userMockSubscribe.getApplySiteEndTime())) {
-                            userMockSubscribeList2.add(userMockSubscribe);
+                        if (ObjectUtils.isNotNull(userMockSubscribe.getApplySiteExamTime()) && ObjectUtils.isNotNull(userMockSubscribe.getApplySiteEndTime())){
+                            if (System.currentTimeMillis()/1000 > formatTime(userMockSubscribe.getApplySiteExamTime(), userMockSubscribe.getApplySiteEndTime())) {
+                                userMockSubscribeList2.add(userMockSubscribe);
+                            }
                         }
                     } catch (ParseException e) {
                         e.printStackTrace();
@@ -300,12 +311,14 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
                     MockMajorSubjectTime mockMajorSubjectTime = iMockMajorSubjectTimeService.getOne(lqw);
                     try {
                         if (Validator.isEmpty(userMockSubscribeVo.getHandStatus()) || userMockSubscribeVo.getHandStatus() == 0) {
-                            if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getStartTime())) {
-                                userMockSubscribeVo.setReSubscribe(1);
+                            if (ObjectUtils.isNotNull(mockMajorSubjectTime.getExamTime()) && ObjectUtils.isNotNull(mockMajorSubjectTime.getStartTime())){
+                                if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getStartTime())) {
+                                    userMockSubscribeVo.setReSubscribe(1);
+                                }
+                            }
+                            if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
+                                userMockSubscribeVo.setCanDo(0);
                             }
-                        }
-                        if (System.currentTimeMillis()/1000 < formatTime(mockMajorSubjectTime.getExamTime(), mockMajorSubjectTime.getEndTime())) {
-                            userMockSubscribeVo.setCanDo(0);
                         }
                     } catch (ParseException e) {
                         e.printStackTrace();
@@ -357,17 +370,17 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
         });
 
 
-        Collections.sort(userMockSubscribeVos, new Comparator<UserMockSubscribeVo>() {
-            @Override
-            public int compare(UserMockSubscribeVo o1, UserMockSubscribeVo o2) {
-                //升序排列
-                //return o1.getApplySiteExamTime().compareTo(o2.getApplySiteExamTime());
-                //降序排列
-                return o2.getApplySiteExamTime().compareTo(o1.getApplySiteExamTime());
-            }
-        });
+//        Collections.sort(userMockSubscribeVos, new Comparator<UserMockSubscribeVo>() {
+//            @Override
+//            public int compare(UserMockSubscribeVo o1, UserMockSubscribeVo o2) {
+//                //升序排列
+//                //return o1.getApplySiteExamTime().compareTo(o2.getApplySiteExamTime());
+//                //降序排列
+//                return o2.getApplySiteExamTime().compareTo(o1.getApplySiteExamTime());
+//            }
+//        });
 
-        return userMockSubscribeVos;
+        return userMockSubscribeVos.stream().sorted(Comparator.comparing(UserMockSubscribeVo::getApplySiteExamTime, Comparator.nullsFirst(Long::compareTo))).collect(Collectors.toList());
     }
 
     @Override
@@ -392,4 +405,32 @@ public class UserMockSubscribeServiceImpl extends ServiceImpl<UserMockSubscribeM
 
         return userMockSubscribeVo;
     }
+
+    @Override
+    public Boolean addActivityMock(Long goodsId,Long userId) {
+        //获取商品绑定的活动模考数据
+        List<UserMockSubscribeAddBo> addBos = baseMapper.getMockByGooId(goodsId);
+        if (CollectionUtils.isEmpty(addBos)){
+            return true;
+        }
+        List<UserMockSubscribe> list = addBos.stream().map(item -> {
+            UserMockSubscribe entity = new UserMockSubscribe();
+            entity.setUserId(userId);
+//            entity.setEachExamId();
+            entity.setSubscribeStatus(1);
+            entity.setBeforeStatus(0);
+            entity.setExamStatus(0);
+            entity.setHandStatus(0);
+            entity.setApplyId(item.getApplyId());
+            entity.setMockMajorSubjectId(item.getMockMajorSubjectId());
+            entity.setCreateTime(DateUtils.getNowTime());
+            entity.setUpdateTime(DateUtils.getNowTime());
+            entity.setMockRemind(0);
+            entity.setLiveSubscribe(0);
+            entity.setHasLiveSubscribe(0);
+            entity.setHasMockRemind(0);
+            return entity;
+        }).collect(Collectors.toList());
+        return saveBatch(list);
+    }
 }

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

@@ -67,10 +67,7 @@ import com.zhongzheng.modules.user.bo.UserExamGoodsQueryBo;
 import com.zhongzheng.modules.user.bo.UserExamGoodsSupplementAddBo;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.domain.UserExamGoods;
-import com.zhongzheng.modules.user.service.IOrderPossessUserService;
-import com.zhongzheng.modules.user.service.IUserExamGoodsService;
-import com.zhongzheng.modules.user.service.IUserExamGoodsSupplementService;
-import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.user.service.*;
 import com.zhongzheng.modules.user.vo.UserExamGoodsVo;
 import com.zhongzheng.modules.wx.service.IWxPayService;
 import com.zhongzheng.modules.wx.vo.WxPayVo;
@@ -167,6 +164,8 @@ public class WxPayServiceImpl implements IWxPayService {
     @Autowired
     private IOrderPayService iOrderPayService;
 
+    @Autowired
+    private IUserMockSubscribeService iUserMockSubscribeService;
 
     private String gzh_tokenUrl = "https://api.weixin.qq.com/cgi-bin/token";
 
@@ -404,7 +403,8 @@ public class WxPayServiceImpl implements IWxPayService {
                     joinLockGrade(order.getOrderSn(), g.getGoodsId(), g.getOrderGoodsId());
                     //给用户增加商品考试次数前培次数
                     updateUserExamGoods(g, order);
-
+                    //商品是否绑定活动模考
+                    iUserMockSubscribeService.addActivityMock(g.getGoodsId(),order.getUserId());
                 }
             }
 

+ 1 - 1
zhongzheng-system/src/main/resources/mapper/modules/mock/MockApplyMapper.xml

@@ -189,7 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN mock_major_subject mms ON mm.mock_major_id = mms.mock_major_id
         LEFT JOIN mock_major_subject_time mmst ON mms.mock_major_subject_id = mmst.id
         LEFT JOIN course_education_type cet ON ma.education_type_id = cet.id
-        WHERE 1=1
+        WHERE 1=1 and ma.mock_activity = 0
         <if test="startTime != null and startTime != ''">
             and mmst.exam_time &gt; #{startTime}
         </if>

+ 12 - 1
zhongzheng-system/src/main/resources/mapper/modules/user/UserMockSubscribeMapper.xml

@@ -228,6 +228,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
         ums.subscribe_id =#{subscribeId}
     </select>
-
+    <select id="getMockByGooId" parameterType="java.lang.Long" resultType="com.zhongzheng.modules.user.bo.UserMockSubscribeAddBo">
+        SELECT
+            ma.apply_id as applyId,
+            mms.mock_major_subject_id as mockMajorSubjectId
+        FROM
+            `mock_major_subject_goods` mmg
+                LEFT JOIN mock_major_subject mms ON mmg.mock_major_subject_id = mms.mock_major_subject_id
+                LEFT JOIN mock_major mm ON mms.mock_major_id = mm.mock_major_id
+                LEFT JOIN mock_apply ma ON mm.apply_id = ma.apply_id
+        WHERE
+            mmg.goods_id = #{goodsId} AND ma.mock_activity = 1
+    </select>
 
 </mapper>