yangdamao 1 year ago
parent
commit
d494686cd5

+ 7 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/schedule/ScheduleController.java

@@ -485,4 +485,11 @@ public class ScheduleController extends BaseController {
         iClassGradeUserService.resetQdyCheckInfo();
         return AjaxResult.success();
     }
+
+    @ApiOperation("计算课程总数")
+    @GetMapping("/order/courseNum")
+    public AjaxResult orderCourseNum(){
+        iScheduleService.orderCourseNum();
+        return AjaxResult.success();
+    }
 }

+ 15 - 15
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/SysLoginService.java

@@ -93,20 +93,20 @@ public class SysLoginService
      */
     public String login(String username, String password, String code, String uuid,String smsCode,String tel)
     {
-        String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
-        String captcha = redisCache.getCacheObject(verifyKey);
-        redisCache.deleteObject(verifyKey);
-        if (captcha == null)
-        {
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
-            throw new CaptchaExpireException();
-        }
-        if (!code.equalsIgnoreCase(captcha))
-        {
-            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
-            throw new CaptchaException();
-        }
-        iUserLoginErrorService.checkLimit(username);
+//        String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
+//        String captcha = redisCache.getCacheObject(verifyKey);
+//        redisCache.deleteObject(verifyKey);
+//        if (captcha == null)
+//        {
+//            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire")));
+//            throw new CaptchaExpireException();
+//        }
+//        if (!code.equalsIgnoreCase(captcha))
+//        {
+//            AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error")));
+//            throw new CaptchaException();
+//        }
+//        iUserLoginErrorService.checkLimit(username);
         // 用户验证
         Authentication authentication = null;
         try
@@ -152,7 +152,7 @@ public class SysLoginService
             loginUser.setPhoneConcealSign(1);
         }else {
             List<SysUserRole> list = iSysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>()
-                    .eq(SysUserRole::getUserId, user.getUserId()).eq(SysUserRole::getTenantId,user.getTenantId()));
+                    .eq(SysUserRole::getUserId, user.getUserId()));
             if (CollectionUtils.isNotEmpty(list)){
                 List<SysRole> sysRoles = iSysRoleService.listByIds(list.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()));
                 if (sysRoles.stream().anyMatch(x -> x.getPhoneConceal() == 1)){

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/mapper/GoodsMapper.java

@@ -104,4 +104,10 @@ public interface GoodsMapper extends BaseMapper<Goods> {
 
     @InterceptorIgnore(tenantLine = "true")
     List<Goods> getRelGoodsNoTenant(@Param("businessName") String businessName,@Param("categoryName") String categoryName,@Param("tenantId") Long tenantId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer getCourseNum(Long goodsId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    Integer getCourseExamNumNoTenant(Long goodsId);
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/IGoodsService.java

@@ -164,4 +164,7 @@ public interface IGoodsService extends IService<Goods> {
 
 	List<Goods> getRelGoodsNoTenant(String businessName, String categoryName, Long tenantId);
 
+    Integer getCourseNum(Long goodsId);
+
+    Integer getCourseExamNum(Long goodsId);
 }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -5288,6 +5288,16 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
         return baseMapper.getRelGoodsNoTenant(businessName, categoryName, tenantId);
     }
 
+    @Override
+    public Integer getCourseNum(Long goodsId) {
+        return baseMapper.getCourseNum(goodsId);
+    }
+
+    @Override
+    public Integer getCourseExamNum(Long goodsId) {
+        return baseMapper.getCourseExamNumNoTenant(goodsId);
+    }
+
 
     private void updateHandoutsId(Long goodsId, Long tenantId, Long handoutsId) {
         baseMapper.updateHandoutsId(goodsId, tenantId, handoutsId);

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -116,4 +116,10 @@ private static final long serialVersionUID=1L;
     @ApiModelProperty("新B端考试订单标识:1题库开通 2补冲考是标识")
     private Integer openQuestionSign;
 
+    /** 商品课程节数量 */
+    private Integer courseNum;
+
+    /** 商品试卷数量 */
+    private Integer examNum;
+
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderGoodsMapper.java

@@ -82,4 +82,9 @@ public interface OrderGoodsMapper extends BaseMapper<OrderGoods> {
     List<MailOrderVo> getMailList(MailOrderBo bo);
 
     List<OrderGoodsVo> sendTenOrderGoods(Long remindId);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<OrderGoods> listByNotTenant();
+
+    int upBatchNumById(OrderGoods orderGoods);
 }

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderGoodsService.java

@@ -137,4 +137,8 @@ public interface IOrderGoodsService extends IService<OrderGoods> {
     List<MailOrderVo> getMailList(MailOrderBo bo);
 
     boolean mailOrderHandle(MailOrderHandleBo bo);
+
+    List<OrderGoods> listByNotTenant();
+
+    Boolean upBatchNumById(OrderGoods orderGoods);
 }

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java

@@ -953,6 +953,16 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
         return iOrderService.updateBatchById(list);
     }
 
+    @Override
+    public List<OrderGoods> listByNotTenant() {
+        return baseMapper.listByNotTenant();
+    }
+
+    @Override
+    public Boolean upBatchNumById(OrderGoods orderGoods) {
+        return baseMapper.upBatchNumById(orderGoods) > 0;
+    }
+
     private boolean checkUnique(Long GoodsId,Long UserId) {
         ShoppingCart info = iShoppingCartService.getOne(new LambdaQueryWrapper<ShoppingCart>()
                 .eq(ShoppingCart::getUserId,UserId).eq(ShoppingCart::getGoodsId,GoodsId).last("limit 1"));

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/IScheduleService.java

@@ -122,4 +122,6 @@ public interface IScheduleService extends IService<PolyvVideo> {
 
     void goodsCopyTwo();
 
+    void orderCourseNum();
+
 }

+ 26 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/schedule/service/impl/ScheduleServiceImpl.java

@@ -2121,6 +2121,32 @@ public class ScheduleServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVide
         iGoodsService.goodsCopyOne(bo);
     }
 
+    @Override
+    public void orderCourseNum() {
+        List<OrderGoods> orderGoods = iOrderGoodsService.listByNotTenant();
+        if (CollectionUtils.isEmpty(orderGoods)){
+            return;
+        }
+        orderGoods.forEach(item -> {
+            if (ObjectUtils.isNull(item.getCourseNum()) || item.getCourseNum() == 0){
+                //获取商品课程数量
+              Integer courseNum = iGoodsService.getCourseNum(item.getGoodsId());
+              if (courseNum > 0){
+                  item.setCourseNum(courseNum);
+              }
+            }
+            if (ObjectUtils.isNull(item.getExamNum()) || item.getExamNum() == 0){
+                //获取商品课程试卷数量
+                Integer courseExamNum = iGoodsService.getCourseExamNum(item.getGoodsId());
+                if (courseExamNum > 0){
+                    item.setExamNum(courseExamNum);
+                }
+            }
+            iOrderGoodsService.upBatchNumById(item);
+        });
+
+    }
+
 
     private String getWeeks(Long time){
         Calendar calendar = Calendar.getInstance();

+ 58 - 0
zhongzheng-system/src/main/resources/mapper/modules/goods/GoodsMapper.xml

@@ -893,6 +893,64 @@
             AND INSTR(g.goods_name,'测试') &lt;= 0
     </select>
 
+
+    <select id="getCourseNum" parameterType="java.lang.Long" resultType="java.lang.Integer">
+        SELECT
+                (SELECT
+                     COUNT( cs.section_id )
+                 FROM
+                     goods g
+                         LEFT JOIN goods_course gc ON g.goods_id = gc.goods_id
+                         LEFT JOIN course_menu cm ON gc.course_id = cm.course_id
+                         LEFT JOIN course_module_chapter cmc ON cm.menu_id = cmc.module_id
+                         LEFT JOIN course_chapter_section ccs ON cmc.chapter_id = ccs.chapter_id
+                         LEFT JOIN course_section cs ON ccs.section_id = cs.section_id
+                 WHERE
+                     g.goods_id = #{goodsId}
+                   AND cm.`status` = 1
+                   AND cm.type = 1
+                   AND cs.`status` = 1
+                ) +
+                (SELECT
+                     COUNT( cs.section_id )
+                 FROM
+                     goods g
+                         LEFT JOIN goods_course gc ON g.goods_id = gc.goods_id
+                         LEFT JOIN course_menu cm ON gc.course_id = cm.course_id
+                         LEFT JOIN course_chapter_section ccs ON cm.menu_id = ccs.chapter_id
+                         LEFT JOIN course_section cs ON ccs.section_id = cs.section_id
+                 WHERE
+                     g.goods_id = #{goodsId}
+                   AND cm.`status` = 1
+                   AND cm.type = 2
+                   AND cs.`status` = 1
+                ) +
+                (SELECT
+                     COUNT( cs.section_id )
+                 FROM
+                     goods g
+                         LEFT JOIN goods_course gc ON g.goods_id = gc.goods_id
+                         LEFT JOIN course_menu cm ON gc.course_id = cm.course_id
+                         LEFT JOIN course_section cs ON cm.menu_id = cs.section_id
+                 WHERE
+                     g.goods_id = #{goodsId}
+                   AND cm.`status` = 1
+                   AND cm.type = 3
+                   AND cs.`status` = 1
+                )
+    </select>
+
+    <select id="getCourseExamNumNoTenant" parameterType="java.lang.Long" resultType="java.lang.Integer">
+        SELECT
+            COUNT(*)
+        FROM
+            course_menu_exam cme
+                LEFT JOIN goods_course gc ON cme.course_id = gc.course_id
+        WHERE
+            cme.type != 2
+	AND gc.goods_id = #{goodsId}
+    </select>
+
     <select id="queryGoodsByTenant" parameterType="map" resultType="com.zhongzheng.modules.goods.domain.Goods">
         SELECT *
         FROM `goods`

+ 8 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsMapper.xml

@@ -983,4 +983,12 @@
           AND og.service_end_time BETWEEN ( unix_timestamp(now()) + 864000) AND (unix_timestamp(now()) + 950400)
     </select>
 
+    <select id="listByNotTenant"  resultType="com.zhongzheng.modules.order.domain.OrderGoods">
+        SELECT * FROM order_goods WHERE `status` = 1 AND ((course_num IS NULL OR course_num = 0)OR(exam_num IS NULL OR exam_num = 0)) AND refund_status != 2 AND pay_status != 1
+    </select>
+
+    <update id="upBatchNumById" parameterType="com.zhongzheng.modules.order.domain.OrderGoods">
+        UPDATE order_goods SET course_num = #{courseNum}, exam_num = #{examNum} WHERE order_goods_id = #{orderGoodsId}
+    </update>
+
 </mapper>