yangdamao 1 gadu atpakaļ
vecāks
revīzija
a390c7ffa7

+ 44 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/service/impl/GoodsServiceImpl.java

@@ -46,9 +46,11 @@ import com.zhongzheng.modules.goods.vo.*;
 import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.zhongzheng.modules.grade.domain.ClassGradeGoods;
 import com.zhongzheng.modules.grade.domain.ClassGradeInterface;
+import com.zhongzheng.modules.grade.domain.ClassGradeUser;
 import com.zhongzheng.modules.grade.service.IClassGradeGoodsService;
 import com.zhongzheng.modules.grade.service.IClassGradeInterfaceService;
 import com.zhongzheng.modules.grade.service.IClassGradeService;
+import com.zhongzheng.modules.grade.service.IClassGradeUserService;
 import com.zhongzheng.modules.grade.vo.ClassGradeVo;
 import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
 import com.zhongzheng.modules.inform.domain.InformRemind;
@@ -57,6 +59,7 @@ import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.domain.OrderInputTemplate;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderInputTemplateService;
+import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.pay.domain.PayServe;
 import com.zhongzheng.modules.pay.domain.PaySupply;
 import com.zhongzheng.modules.pay.service.IPayServeService;
@@ -130,7 +133,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 
     @Autowired
     private IOrderGoodsService iOrderGoodsService;
-
+    @Autowired
+    private IOrderService iOrderService;
     @Autowired
     private IOrderInputTemplateService iOrderInputTemplateService;
     @Autowired
@@ -140,6 +144,8 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
     @Autowired
     private IClassGradeService iClassGradeService;
     @Autowired
+    private IClassGradeUserService iClassGradeUserService;
+    @Autowired
     private ICourseMenuService iCourseMenuService;
     @Autowired
     private ICourseMenuExamService iCourseMenuExamService;
@@ -433,7 +439,43 @@ public class GoodsServiceImpl extends ServiceImpl<GoodsMapper, Goods> implements
 
     @Override
     public List<GoodsVo> selectListToInput(GoodsQueryBo bo) {
-        return baseMapper.selectListToInput(bo);
+        List<GoodsVo> goodsVoList = baseMapper.selectListToInput(bo);
+        if (CollectionUtils.isEmpty(goodsVoList)){
+            return new ArrayList<>();
+        }
+        if (bo.getGoodsType() == 1){
+            goodsVoList.forEach(item -> {
+                List<ClassGradeGoods> gradeGoods = iClassGradeGoodsService
+                        .list(new LambdaQueryWrapper<ClassGradeGoods>()
+                        .eq(ClassGradeGoods::getGoodsId, item.getGoodsId()));
+                if (CollectionUtils.isNotEmpty(gradeGoods)){
+                    item.setGradeNum(Long.valueOf(gradeGoods.size()));
+                    gradeGoods.forEach(gradeGoodsItem -> {
+                        ClassGrade grade = iClassGradeService.getById(gradeGoodsItem.getGradeId());
+                        if (ObjectUtils.isNotNull(grade.getClassStartTime()) || grade.getClassEndTime() < DateUtils.getNowTime()){
+                            return;
+                        }
+                        if (ObjectUtils.isNotNull(grade.getSevenCode())){
+                            //七大员继教班级,计算班级人数
+                            Integer classGradeNum = iOrderService.getClassGradeNum(grade.getSevenCode());
+                            if (classGradeNum < grade.getStudentUpper()){
+                                item.setGradeId(grade.getGradeId());
+                                item.setGradeName(grade.getClassName());
+                            }
+                        }else {
+                            Integer count = iClassGradeUserService.count(new LambdaQueryWrapper<ClassGradeUser>()
+                                    .eq(ClassGradeUser::getGradeId, grade.getGradeId())
+                                    .eq(ClassGradeUser::getStatus, 1));
+                            if (count < grade.getStudentUpper()){
+                                item.setGradeId(grade.getGradeId());
+                                item.setGradeName(grade.getClassName());
+                            }
+                        }
+                    });
+                }
+            });
+        }
+        return goodsVoList;
     }
 
     @Override

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java

@@ -70,6 +70,8 @@ public interface IOrderService extends IService<Order> {
 	 */
 	Map<String, String> placeSmallOrder(OrderAddBo bo);
 
+	Integer getClassGradeNum(String sevenCode);
+
 	Map<String, String> placeGzhOrder(OrderAddBo bo);
 
 	Map<String, String> placePcOrder(OrderAddBo bo);

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

@@ -2529,8 +2529,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             String businessFullName = iGoodsService.getGoodsBusinessName(goodsId);
             if (businessFullName.contains("继续教育") && businessFullName.contains("施工现场专业人员")){
                 //七大员继教
-//                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
-                classGrade.setStudentUpper(1); //上限1000
+                classGrade.setStudentUpper(ClassGrade.INIT_UPPER3); //上限1000
                 //班级绑定学员资料推送和学时推送
                 List<ClassGradeInterface> list = iClassGradeInterfaceService
                         .list(new LambdaQueryWrapper<ClassGradeInterface>()
@@ -2710,6 +2709,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
        return true;
     }
 
+    @Override
+    public Integer getClassGradeNum(String sevenCode){
+       return baseMapper.getStudeCountByCodeNoTenant(sevenCode);
+    }
+
     private void synchronousCreation(ClassGrade classGrade, SysTenant sysTenant,Long goodsId) {
         List<SysTenant> tenantList = iSysTenantService.getListNoTenant(0L);
         if (CollectionUtils.isEmpty(tenantList)){

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

@@ -404,16 +404,16 @@
         </if>
         <if test="goodsType ==1">
             , (SELECT count(*) FROM goods_course where goods_id =g.goods_id ) as course_num
-            , (SELECT count(*) FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where
-            cgg.goods_id = g.goods_id and cg.`status` = 1 ) as grade_num
-            , (SELECT cg.grade_id FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
-            where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
-            cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
-            a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_id
-            , (SELECT cg.class_name FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
-            where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
-            cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
-            a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_name
+--             , (SELECT count(*) FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id where
+--             cgg.goods_id = g.goods_id and cg.`status` = 1 ) as grade_num
+--             , (SELECT cg.grade_id FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
+--             where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
+--             cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
+--             a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_id
+--             , (SELECT cg.class_name FROM class_grade cg LEFT JOIN class_grade_goods cgg on cg.grade_id = cgg.grade_id
+--             where cgg.goods_id = g.goods_id and cg.`status` = 1 AND (unix_timestamp(now()) &lt; cg.class_end_time or
+--             cg.class_start_time is null) AND cg.`status` = 1 AND (SELECT COUNT(a.id) FROM class_grade_user a where
+--             a.grade_id = cg.grade_id and a.status =1) &lt; cg.student_upper limit 1) as grade_name
         </if>
         FROM
         goods g