yangdamao 9 месяцев назад
Родитель
Сommit
77f51e9294

+ 13 - 0
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -63,6 +63,7 @@ import com.zhongzheng.modules.grade.vo.ClassBusinessVo;
 import com.zhongzheng.modules.grade.vo.ClassGradeUserVo;
 import com.zhongzheng.modules.grade.vo.ClassPeriodStudentVo;
 import com.zhongzheng.modules.grade.vo.SyncGoodsExport;
+import com.zhongzheng.modules.order.bo.CommonGradeBo;
 import com.zhongzheng.modules.order.bo.CommonOrderBo;
 import com.zhongzheng.modules.order.bo.TopOldOrderRefundBo;
 import com.zhongzheng.modules.order.domain.Order;
@@ -70,6 +71,7 @@ import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderService;
+import com.zhongzheng.modules.order.vo.CommonGradeVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.sdk.service.IZsBankService;
 import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
@@ -959,4 +961,15 @@ public class CommonController extends BaseController {
         }
         return AjaxResult.success(iOrderService.commonWithoutOrder(bo));
     }
+
+
+    @ApiOperation("外部获取班级接口")
+    @PostMapping("/common/free/grade/list")
+    public AjaxResult<List<CommonGradeVo>> getCommonGrade(@RequestBody CommonGradeBo bo) {
+        if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
+            throw new CustomException("签名错误");
+        }
+        List<CommonGradeVo> list = iOrderService.getCommonGrade(bo);
+        return AjaxResult.success(list);
+    }
 }

+ 34 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/CommonGradeBo.java

@@ -0,0 +1,34 @@
+package com.zhongzheng.modules.order.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author yangdamao
+ * @date 2024年06月06日 15:23
+ */
+@Data
+public class CommonGradeBo implements Serializable {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    @ApiModelProperty("商户ID")
+    private String tenantId;
+
+    @ApiModelProperty("业务层次")
+    private String businessName;
+
+    @ApiModelProperty("专业名称")
+    private String majorName;
+
+}

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/CommonWithoutOrderBo.java

@@ -28,4 +28,7 @@ public class CommonWithoutOrderBo implements Serializable {
 
     @ApiModelProperty("年份")
     private String year;
+
+    @ApiModelProperty("班级ID")
+    private Long gradeId;
 }

+ 3 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/mapper/OrderMapper.java

@@ -7,10 +7,7 @@ import com.zhongzheng.modules.grade.domain.ClassGrade;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
-import com.zhongzheng.modules.order.vo.OrderExportNewVo;
-import com.zhongzheng.modules.order.vo.OrderGoodsVo;
-import com.zhongzheng.modules.order.vo.OrderListVo;
-import com.zhongzheng.modules.order.vo.RepetitionOrderVo;
+import com.zhongzheng.modules.order.vo.*;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderInvoiceVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -80,4 +77,6 @@ public interface OrderMapper extends BaseMapper<Order> {
     List<RepetitionOrderVo> getSevenOrder(RepetitionOrderBo bo);
 
     Long getGoodsIdByBusiness(GoodsByBusinessQuery query);
+
+    List<CommonGradeVo> getGradeByBusiness(CommonGradeBo bo);
 }

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

@@ -138,4 +138,6 @@ public interface IOrderService extends IService<Order> {
 	void handleRepetitionOrder(RepetitionOrderBo bo);
 
     String commonWithoutOrder(CommonOrderBo bo);
+
+	List<CommonGradeVo> getCommonGrade(CommonGradeBo bo);
 }

+ 16 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -3490,6 +3490,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         if (CollectionUtils.isEmpty(bo.getOrderBos())){
             throw new CustomException("开单数据为空");
         }
+        SysTenant tenant = iSysTenantService.getById(bo.getTenantId());
+        if (ObjectUtils.isNull(tenant)){
+            throw new CustomException("商户ID有误!请检查");
+        }
         ServletUtils.getResponse().setHeader("TenantId",bo.getTenantId());
         for (CommonWithoutOrderBo orderBo : bo.getOrderBos()) {
             //确定用户信息
@@ -3590,7 +3594,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
                     orderGoods.setStudyCount(0L);//没配置则为0
                 }
 
-                Long gradeId = null;
+                Long gradeId = orderBo.getGradeId();
 
                 String requestId = IdUtil.simpleUUID();
                 RedisLockEntity redisLockEntity = new RedisLockEntity();
@@ -3620,6 +3624,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return "";
     }
 
+    @Override
+    public List<CommonGradeVo> getCommonGrade(CommonGradeBo bo) {
+        SysTenant tenant = iSysTenantService.getById(bo.getTenantId());
+        if (ObjectUtils.isNull(tenant)){
+            throw new CustomException("商户ID有误!请检查");
+        }
+        ServletUtils.getResponse().setHeader("TenantId",bo.getTenantId());
+        List<CommonGradeVo> list = baseMapper.getGradeByBusiness(bo);
+        return list;
+    }
+
     /**
      * 根据身份证号码判断性别
      *

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/CommonGradeVo.java

@@ -0,0 +1,37 @@
+package com.zhongzheng.modules.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年06月06日 15:23
+ */
+@Data
+public class CommonGradeVo implements Serializable {
+
+    @ApiModelProperty("当前时间戳")
+    private Long gradeId;
+
+    @ApiModelProperty("班级名称")
+    private String gradeName;
+
+    @ApiModelProperty("班级状态")
+    private String gradeStatus;
+
+    @ApiModelProperty("开始时间")
+    private String startTime;
+
+    @ApiModelProperty("结束时间")
+    private String endTime;
+
+    @ApiModelProperty("上限人数")
+    private Long upperNum;
+
+    @ApiModelProperty("已报人数")
+    private Long studyNum;
+
+}

+ 20 - 4
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -457,22 +457,38 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
                                         if((fullName.contains("继续教育")&&fullName.contains("施工现场专业人员"))||fullName.equals("继续教育一级建造师")){
                                             if((DateUtils.getNowTime().longValue()-userPeriodStatusVo.getRecordStartTime().longValue())<(videoTime.longValue()-5)){
                                                 log.info("视频学习时长不达标"+JSON.toJSONString(bo));
-                                                throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-userPeriodStatusVo.getRecordStartTime().longValue())),558);
+                                                if (ObjectUtils.isNotNull(tenant) && tenant.getFastForwardSign() == 1){
+                                                    throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-userPeriodStatusVo.getRecordStartTime().longValue())),5581);
+                                                }else {
+                                                    throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-userPeriodStatusVo.getRecordStartTime().longValue())),558);
+                                                }
                                             }
                                         }
                                         else{
                                             log.info("视频学习时长不达标"+JSON.toJSONString(bo));
-                                            throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-photo.getCreateTime().longValue())),558);
+                                            if (ObjectUtils.isNotNull(tenant) && tenant.getFastForwardSign() == 1){
+                                                throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-userPeriodStatusVo.getRecordStartTime().longValue())),5581);
+                                            }else {
+                                                throw new CustomException("视频学习时长不达标,"+(videoTime.longValue()-5-(DateUtils.getNowTime().longValue()-photo.getCreateTime().longValue())),558);
+                                            }
                                         }
                                     }
                                 }
                                 if(photoList.size()<num){
                                     log.info("拍照次数不达标"+JSON.toJSONString(bo));
-                                    throw new CustomException("拍照次数不达标",559);
+                                    if (ObjectUtils.isNotNull(tenant) && tenant.getFastForwardSign() == 1){
+                                        throw new CustomException("拍照次数不达标",5591);
+                                    }else {
+                                        throw new CustomException("拍照次数不达标",559);
+                                    }
                                 }
                             }else{
                                 log.info("拍照次数不达标"+JSON.toJSONString(bo));
-                                throw new CustomException("拍照次数不达标",559);
+                                if (ObjectUtils.isNotNull(tenant) && tenant.getFastForwardSign() == 1){
+                                    throw new CustomException("拍照次数不达标",5591);
+                                }else {
+                                    throw new CustomException("拍照次数不达标",559);
+                                }
                             }
 
                         }else{

+ 36 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -908,5 +908,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ORDER BY g.create_time DESC
             LIMIT 1
     </select>
+    <select id="getGradeByBusiness" parameterType="com.zhongzheng.modules.order.bo.CommonGradeBo" resultType="com.zhongzheng.modules.order.vo.CommonGradeVo">
+        SELECT
+            cg.grade_id,
+            cg.class_name AS gradeName,
+            CASE
+                WHEN cg.class_status = 1 THEN '已开班'
+                WHEN cg.class_status = 0 THEN '未开班'
+                ELSE '其他' END AS classStatus,
+            FROM_UNIXTIME( cg.class_start_time, '%Y-%m-%d %H:%i:%s' ) AS startTime,
+            FROM_UNIXTIME( cg.class_end_time, '%Y-%m-%d %H:%i:%s' ) AS endTime,
+            cg.student_upper AS upperNum,
+            ((
+                 SELECT
+                     COUNT(*)
+                 FROM
+                     class_grade_user cgu
+                 WHERE
+                     cgu.grade_id = cg.grade_id
+                   AND cgu.`status` = 1
+             ) + ( SELECT COUNT(*) FROM class_grade_user_temp cgut WHERE cgut.grade_id = cg.grade_id AND cgut.`status` = 1 )) AS studyNum
+        FROM
+            class_grade cg
+                LEFT JOIN class_grade_goods cgg ON cg.grade_id = cgg.grade_id
+                LEFT JOIN goods g ON cgg.goods_id = g.goods_id
+                LEFT JOIN course_business cb ON g.business_id = cb.id
+                LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+                LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+                LEFT JOIN major m ON g.major_id = m.id
+        WHERE
+            cg.`status` = 1
+          AND g.`status` = 1
+          AND g.goods_status = 1
+          AND INSTR( CONCAT( cet.education_name, cb.business_name, cpt.project_name ), #{businessName})
+          AND m.category_name = #{majorName}
+          ORDER BY cg.create_time DESC
+    </select>
 
 </mapper>