瀏覽代碼

Merge branch 'pre' into dev

he2802 3 年之前
父節點
當前提交
2b6f37ba49

+ 2 - 2
zhongzheng-admin/src/main/resources/application-prod.yml

@@ -114,7 +114,7 @@ certificate:
     host: https://m.xyyxt.net/
 
 officialPush:
-    infoPath: http://jypt.gdcic.net/organjxjy/ShangBaoMingdan
-    periodPath: http://jypt.gdcic.net/organjxjy/XueshiShenqing
+    infoPath: http://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan
+    periodPath: http://jypt-dev.gdcic.net/organjxjy/XueshiShenqing
     infoAccount: peixunjigou
     token: 0ca175b9c0f726a831d895e26933246

+ 1 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/cmmon/CommonController.java

@@ -100,7 +100,7 @@ public class CommonController extends BaseController {
         Map<String,Object> map = new HashMap<>();
         map.put("hide",false);
         if(Validator.isNotEmpty(bo.getVersion())){
-            if(bo.getVersion().equals("4.1")){
+            if(bo.getVersion().equals("5.2.1")){
                 map.put("hide",false);
             }
         }

+ 2 - 2
zhongzheng-api/src/main/resources/application-prod.yml

@@ -126,7 +126,7 @@ certificate:
     host: https://m.xyyxt.net/
 
 officialPush:
-    infoPath: http://jypt.gdcic.net/organjxjy/ShangBaoMingdan
-    periodPath: http://jypt.gdcic.net/organjxjy/XueshiShenqing
+    infoPath: http://jypt-dev.gdcic.net/organjxjy/ShangBaoMingdan
+    periodPath: http://jypt-dev.gdcic.net/organjxjy/XueshiShenqing
     infoAccount: peixunjigou
     token: 0ca175b9c0f726a831d895e26933246

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/ClassGradeUserMapper.java

@@ -52,7 +52,7 @@ public interface ClassGradeUserMapper extends BaseMapper<ClassGradeUser> {
 
     List<ClassGradeUserGoodsVo> sendClassGradeUser();
 
-    Long checkSendClassGradeUser(@Param("userId") Long userId,@Param("gradeId") Long gradeId);
+    Long checkSendClassGradeUser(@Param("remindId") Integer remindId,@Param("userId") Long userId,@Param("gradeId") Long gradeId);
 
     List<ClassGradeUserGoodsVo> sendTenClassGradeUser();
 

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/mapper/UserPeriodMapper.java

@@ -21,7 +21,7 @@ public interface UserPeriodMapper extends BaseMapper<UserPeriod> {
 
     Long selectCountPeriod(@Param("userId") Long userId, @Param("id") Long id);
 
-    Long selectCountConfirmPeriod(@Param("userId") Long userId, @Param("id") Long id);
+    Long selectCountConfirmPeriod(@Param("userId") Long userId, @Param("goodsId") Long goodsId);
 
     Long todayStudySectionNum(UserPeriodQueryBo bo);
 }

+ 17 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeUserServiceImpl.java

@@ -1540,7 +1540,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
         List<ClassGradeUserGoodsVo> userList = baseMapper.sendClassGradeUser();
         List<ClassGradeUserGoodsVo> newList = new ArrayList<>();
         for(ClassGradeUserGoodsVo vo : userList){
-            if(baseMapper.checkSendClassGradeUser(vo.getUserId(),vo.getGradeId()).longValue()<1){
+            if(baseMapper.checkSendClassGradeUser(5,vo.getUserId(),vo.getGradeId()).longValue()<1){
                 newList.add(vo);
             }
         }
@@ -1549,12 +1549,26 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
 
     @Override
     public List<ClassGradeUserGoodsVo> sendTenClassGradeUser() {
-        return baseMapper.sendTenClassGradeUser();
+        List<ClassGradeUserGoodsVo> userList = baseMapper.sendTenClassGradeUser();
+        List<ClassGradeUserGoodsVo> newList = new ArrayList<>();
+        for(ClassGradeUserGoodsVo vo : userList){
+            if(baseMapper.checkSendClassGradeUser(6,vo.getUserId(),vo.getGradeId()).longValue()<1){
+                newList.add(vo);
+            }
+        }
+        return newList;
     }
 
     @Override
     public List<ClassGradeUserGoodsVo> sendFiveClassGradeUser() {
-        return baseMapper.sendFiveClassGradeUser();
+        List<ClassGradeUserGoodsVo> userList = baseMapper.sendFiveClassGradeUser();
+        List<ClassGradeUserGoodsVo> newList = new ArrayList<>();
+        for(ClassGradeUserGoodsVo vo : userList){
+            if(baseMapper.checkSendClassGradeUser(7,vo.getUserId(),vo.getGradeId()).longValue()<1){
+                newList.add(vo);
+            }
+        }
+        return newList;
     }
 
     @Override

+ 2 - 3
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/UserPeriodServiceImpl.java

@@ -296,7 +296,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
         LoginUser loginUser = SecurityUtils.getLoginUser();
         //查询此人学时审核是否有权限
         if (!loginUser.getUser().isAdmin()) {
-            if (baseMapper.selectCountConfirmPeriod(loginUser.getUser().getUserId(), bo.getId()) < 1) {
+            if (baseMapper.selectCountConfirmPeriod(loginUser.getUser().getUserId(), bo.getGoodsId()) < 1) {
                 throw new CustomException("您没有确认审核权限");
             }
         }
@@ -354,10 +354,9 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
             throw new CustomException("非审核中状态无法打回操作");
         }
         LoginUser loginUser = SecurityUtils.getLoginUser();
-        Long upId = bo.getIds().get(0);
         //查询此人学时审核是否有权限
         if (!loginUser.getUser().isAdmin()) {
-            if (baseMapper.selectCountConfirmPeriod(loginUser.getUser().getUserId(), upId) < 1) {
+            if (baseMapper.selectCountConfirmPeriod(loginUser.getUser().getUserId(), bo.getGoodsId()) < 1) {
                 throw new CustomException("您没有确认审核权限");
             }
         }

+ 19 - 14
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -316,6 +316,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods,bo.getUserId());
+            //判断视频/题库商品是否有购买过,服务期是否过期
+            Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -325,8 +327,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
 
                 Long gradeId = null;
-                //判断是否有购买过,服务期是否过期
-                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
@@ -448,6 +448,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             boolean orderGoodsRs = iOrderGoodsService.save(orderGoods);
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods,bo.getUserId());
+            //判断是否有购买过
+            Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -457,8 +459,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                 }
 
                 Long gradeId = null;
-                //判断是否有购买过
-                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
@@ -625,6 +625,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods,bo.getUserId());
+            //判断是否有购买过
+            Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -633,8 +635,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     orderGoods.setStudyCount(0L);//没配置则为0
                 }
                 Long gradeId = null;
-                //判断是否有购买过
-                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
@@ -768,6 +768,8 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
 
             boolean canRepeatBuy = false;
             validUserBeforeBuy(goods,bo.getUserId());
+            //判断是否有购买过
+            Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
             //视频商品安排班级
             if (goods.getGoodsType() == 1) {
                 if (Validator.isNotEmpty(goods.getStudyCount())) {
@@ -776,8 +778,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     orderGoods.setStudyCount(0L);//没配置则为0
                 }
                 Long gradeId = null;
-                //判断是否有购买过
-                Long oldOrderGoodsId = getHaveBuyGoods(g.getGoodsId(), bo.getUserId());
                 //判断是否购买历史班级都过期
                 canRepeatBuy = this.canBuyRepeatGoods(g.getGoodsId(), bo.getUserId());
                 if (g.getGoodsInputData() != null) {
@@ -1051,14 +1051,19 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         List<OrderGoodsVo> list1 = iOrderGoodsService.selectList(orderGoodsQueryBo);
         for(OrderGoodsVo goodsVo : list1){
             if(Validator.isNotEmpty(goodsVo.getServiceEndTime())&&(goodsVo.getServiceEndTime().longValue()>(System.currentTimeMillis()/1000))){
-                if(Validator.isNotEmpty(goodsVo.getGradeId())){
-                    ClassGrade grade = iClassGradeService.getOne(new LambdaQueryWrapper<ClassGrade>()
-                            .eq(ClassGrade::getGradeId, goodsVo.getGradeId()));
-                    //不存在班级有效期才校验服务期是否过期
-                    if(Validator.isEmpty(grade.getClassEndTime())){
-                        throw new CustomException("存在已购买【学习服务期未过期】的商品,不可以重复购买商品", 511);
+                if(goodsVo.getGoodsType()==1){
+                    if(Validator.isNotEmpty(goodsVo.getGradeId())){
+                        ClassGrade grade = iClassGradeService.getOne(new LambdaQueryWrapper<ClassGrade>()
+                                .eq(ClassGrade::getGradeId, goodsVo.getGradeId()));
+                        //不存在班级有效期才校验服务期是否过期
+                        if(Validator.isEmpty(grade.getClassEndTime())){
+                            throw new CustomException("存在已购买【学习服务期未过期】的视频商品,不可以重复购买商品", 511);
+                        }
                     }
                 }
+                if(goodsVo.getGoodsType()==2){
+                    throw new CustomException("存在已购买【学习服务期未过期】的题库商品,不可以重复购买商品", 511);
+                }
             }
         }
         if (list1 != null && list1.size() > 0) {

+ 17 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.microsoft.schemas.office.visio.x2012.main.SectionType;
+import com.zhongzheng.common.core.redis.RedisCache;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.modules.bank.domain.Exam;
 import com.zhongzheng.modules.course.bo.CourseQueryBo;
@@ -57,6 +58,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -121,7 +123,8 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     private IUserBankRecordService iUserBankRecordService;
     @Autowired
     private IUserExamGoodsService iUserExamGoodsService;
-
+    @Autowired
+    private  RedisCache redisCache;
     @Override
     public UserStudyRecordVo queryById(Long recordId) {
         UserStudyRecord db = this.baseMapper.selectById(recordId);
@@ -257,6 +260,16 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Integer insertByAddBo(UserStudyRecordAddBo bo) {
+        String key = "STUDY_Record_"+bo.getUserId();
+        Long value = redisCache.getCacheObject(key);
+        if(value!=null&&(Validator.isEmpty(bo.getStatus())||bo.getStatus()!=1)){
+            //非学完状态且不带图片则防重复提交处理
+            if(Validator.isEmpty(bo.getPhoto())){
+                return 1;
+            }
+        }
+        redisCache.setCacheObject(key,1L,5, TimeUnit.SECONDS);//5秒
+
         CourseSectionVo courseSectionVo =iCourseSectionService.queryById(bo.getSectionId());
         if(courseSectionVo.getSectionType()==2&&Validator.isNotEmpty(bo.getPhoto())){  //直播有拍照即学完
             bo.setStatus(1);
@@ -604,24 +617,22 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
                     periodId = userPeriodStatusAddBo.getId();*/
                 } else if (userPeriodStatus.getStatus() == 3) {                //待重修
                     userPeriodStatus.setPeriodStatus(1);
-                    userPeriodStatus.setCreateTime(DateUtils.getNowTime());
                     userPeriodStatus.setUpdateTime(DateUtils.getNowTime());
                     if(Validator.isEmpty(userPeriodStatus.getRecordStartTime())){ //待重修第一次学习进来
                         userPeriodStatus.setRecordStartTime(entity.getStartTime());
                     }
-                    if (entity.getStatus() != null && entity.getStatus() == 1) {  //待重修看完
+                    if (Validator.isNotEmpty(entity.getStatus())&& entity.getStatus() == 1) {  //待重修看完
                         userPeriodStatus.setRecordEndTime(entity.getEndTime());
                         userPeriodStatus.setStatus(2);
                     }
                     iUserPeriodStatusService.updateById(userPeriodStatus);
                     periodId = userPeriodStatus.getId();
                 }
-                if (userPeriodStatus.getStatus() == 2) {//待审核
+                else if (userPeriodStatus.getStatus() == 2) {//待审核
                     //有学习记录完整播放且为待审添加结束时间
                     userPeriodStatus.setPeriodStatus(1);
-                    userPeriodStatus.setCreateTime(DateUtils.getNowTime());
                     userPeriodStatus.setUpdateTime(DateUtils.getNowTime());
-                    if (entity.getStatus() != null && entity.getStatus() == 1) {
+                    if (Validator.isNotEmpty(entity.getStatus()) && entity.getStatus() == 1) {
                         userPeriodStatus.setRecordEndTime(entity.getEndTime());
                         userPeriodStatus.setStatus(2);
                     }

+ 1 - 3
zhongzheng-system/src/main/resources/mapper/modules/grade/ClassGradeUserMapper.xml

@@ -1033,7 +1033,7 @@
     </select>
 
     <select id="checkSendClassGradeUser" parameterType="map"  resultType="long">
-        SELECT COUNT(1) FROM inform_user iu where 1=1 and iu.remind_id = 5 and #{userId} = iu.user_id and #{gradeId} = iu.grade_id and iu.system_status=3
+        SELECT COUNT(1) FROM inform_user iu where 1=1 and iu.remind_id = #{remindId} and #{userId} = iu.user_id and #{gradeId} = iu.grade_id and iu.system_status=3
 
     </select>
 
@@ -1055,7 +1055,6 @@
         and irb.remind_id =6
           and cgu.status = 1
         AND unix_timestamp(now()) BETWEEN cg.class_end_time-864000 and cg.class_end_time-777600
-        AND (SELECT COUNT(1) FROM inform_user iu where 1=1 and iu.remind_id = 6 and cgu.user_id = iu.user_id and cgu.grade_id = iu.grade_id and iu.system_status=3) &lt; 1
     </select>
 
 
@@ -1077,7 +1076,6 @@
         and irb.remind_id =7
           and cgu.status = 1
         AND unix_timestamp(now()) BETWEEN cg.class_end_time-432000 and cg.class_end_time-345600
-        AND (SELECT COUNT(1) FROM inform_user iu where 1=1 and iu.remind_id = 7 and cgu.user_id = iu.user_id and cgu.grade_id = iu.grade_id and iu.system_status=3) &lt; 1
     </select>
     <select id="selectUserCount" parameterType="com.zhongzheng.modules.user.domain.User" resultType="long">
         SELECT

+ 2 - 2
zhongzheng-system/src/main/resources/mapper/modules/grade/UserPeriodMapper.xml

@@ -104,10 +104,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
             COUNT(1)
         FROM
-            user_period_status ups  JOIN user_period up on ups.period_id = up.id JOIN goods g on g.goods_id = up.goods_id JOIN course_business b on g.business_id = b.id
+             goods g LEFT JOIN course_business b on g.business_id = b.id
         WHERE
             1 = 1
-          AND ups.id = #{id}
+          AND g.goods_id = #{goodsId}
           and FIND_IN_SET(#{userId},b.period_confirm_user_ids)
     </select>