yangdamao 7 달 전
부모
커밋
7e322cc84b

+ 12 - 4
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -63,10 +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.CommonOrderInfoBo;
-import com.zhongzheng.modules.order.bo.TopOldOrderRefundBo;
+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.service.IOrderGoodsRefundService;
@@ -75,6 +72,7 @@ import com.zhongzheng.modules.order.service.IOrderService;
 import com.zhongzheng.modules.order.vo.CommonGradeVo;
 import com.zhongzheng.modules.order.vo.CommonOrderInfoVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
+import com.zhongzheng.modules.order.vo.UserStudyConditionVo;
 import com.zhongzheng.modules.sdk.service.IZsBankService;
 import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
 import com.zhongzheng.modules.system.bo.SysTenantAdminOldBo;
@@ -985,4 +983,14 @@ public class CommonController extends BaseController {
         List<CommonOrderInfoVo> list = iOrderService.getCommonOrderInfo(bo);
         return AjaxResult.success(list);
     }
+
+    @ApiOperation("获取学员学习进度")
+    @PostMapping("/common/free/user/study")
+    public AjaxResult<List<UserStudyConditionVo>> getUserStudyCondition(@RequestBody UserStudyConditionBo bo) {
+        if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
+            throw new CustomException("签名错误");
+        }
+        List<UserStudyConditionVo> list = iOrderService.getUserStudyCondition(bo);
+        return AjaxResult.success(list);
+    }
 }

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

@@ -612,7 +612,7 @@ public class ClassGradeUserServiceImpl extends ServiceImpl<ClassGradeUserMapper,
                 classGradeUser1.setFinishStatus(1);
             }
             if (Validator.isNotEmpty(classPeriodStudentVo.getClassEndTime()) && Validator.isNotEmpty(classPeriodStudentVo.getClassStartTime())) {
-                if (nowTime < classPeriodStudentVo.getClassEndTime() && nowTime > classPeriodStudentVo.getClassStartTime()) {
+                if (nowTime < (classPeriodStudentVo.getClassEndTime() + 2592000L) && nowTime > classPeriodStudentVo.getClassStartTime()) {
                     classGradeUser1.setFinishStatus(1);
                 }
             }

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

@@ -541,7 +541,7 @@ public class UserPeriodServiceImpl extends ServiceImpl<UserPeriodMapper, UserPer
             objectLambdaUpdateWrapper.set(ClassGradeUser::getFinishStatus, 1);
         }
         if (Validator.isNotEmpty(classPeriodStudentVo.getClassEndTime()) && Validator.isNotEmpty(classPeriodStudentVo.getClassStartTime())) {
-            if (nowTime < classPeriodStudentVo.getClassEndTime() && nowTime > classPeriodStudentVo.getClassStartTime()) {
+            if (nowTime < (classPeriodStudentVo.getClassEndTime() + 2592000L) && nowTime > classPeriodStudentVo.getClassStartTime()) {
                 objectLambdaUpdateWrapper.set(ClassGradeUser::getFinishStatus, 1);
             }
         }

+ 32 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/UserStudyConditionBo.java

@@ -0,0 +1,32 @@
+package com.zhongzheng.modules.order.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+@Data
+public class UserStudyConditionBo implements Serializable {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    @ApiModelProperty("商户ID")
+    private String tenantId;
+
+    private String userCard;
+
+    private String userName;
+
+    private String companyName;
+
+    private String businessName;
+
+    private String majorName;
+}

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

@@ -85,4 +85,7 @@ public interface OrderMapper extends BaseMapper<Order> {
     List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo);
 
     List<OrderListVo> selectWithoutListByBo(OrderQueryBo bo);
+
+    @InterceptorIgnore(tenantLine = "true")
+    List<UserStudyConditionVo> getUserStudyCondition(UserStudyConditionBo bo);
 }

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

@@ -148,4 +148,6 @@ public interface IOrderService extends IService<Order> {
     List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo);
 
 	List<OrderListVo> withoutOrderList(OrderQueryBo bo);
+
+	List<UserStudyConditionVo> getUserStudyCondition(UserStudyConditionBo bo);
 }

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

@@ -3753,6 +3753,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return orderListVos;
     }
 
+    @Override
+    public List<UserStudyConditionVo> getUserStudyCondition(UserStudyConditionBo bo) {
+        return baseMapper.getUserStudyCondition(bo);
+    }
+
     /**
      * 根据身份证号码判断性别
      *

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/CommonOrderInfoVo.java

@@ -13,7 +13,7 @@ import java.io.Serializable;
 public class CommonOrderInfoVo implements Serializable {
 
     @ApiModelProperty("订单号")
-    private Long orderSn;
+    private String orderSn;
 
     @ApiModelProperty("下单时间")
     private String orderTime;

+ 53 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/UserStudyConditionVo.java

@@ -0,0 +1,53 @@
+package com.zhongzheng.modules.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+@Data
+public class UserStudyConditionVo implements Serializable {
+
+    @ApiModelProperty("订单号")
+    private String orderSn;
+
+    @ApiModelProperty("下单时间")
+    private String orderTime;
+
+    @ApiModelProperty("学员姓名")
+    private String userName;
+
+    @ApiModelProperty("身份证号码")
+    private String userCard;
+
+    @ApiModelProperty("手机号码")
+    private String userPhone;
+
+    @ApiModelProperty("公司名称")
+    private String companyName;
+
+    @ApiModelProperty("课程名称")
+    private String goodsName;
+
+    @ApiModelProperty("年份")
+    private String sevenYear;
+
+    @ApiModelProperty("业务层次")
+    private String businessName;
+
+    @ApiModelProperty("专业")
+    private String majorName;
+
+    @ApiModelProperty("班级名称")
+    private String className;
+
+    @ApiModelProperty("班级状态")
+    private String classStatus;
+
+    @ApiModelProperty("班级结束时间")
+    private String classEndTime;
+
+    @ApiModelProperty("学习进度")
+    private String studySchedule;
+}

+ 73 - 1
zhongzheng-system/src/main/resources/mapper/modules/order/OrderMapper.xml

@@ -1141,7 +1141,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             AND u.company_name like concat('%', #{companyName}, '%')
         </if>
         <if test="searchKey != null and searchKey != ''">
-            AND (u.realname like concat('%', #{searchKey}, '%') or o.order_sn = #{searchKey} or u.id_card = #{searchKey} or g.goods_name like concat('%', #{searchKey}, '%'))
+            AND (u.realname like concat('%', #{searchKey}, '%') or o.order_sn = #{searchKey} or AES_DECRYPT(UNHEX(u.id_card),'base20230213zzkj') = #{searchKey} or g.goods_name like concat('%', #{searchKey}, '%'))
         </if>
         <if test="orderGoodsIds != null ">
             AND og.order_goods_id in
@@ -1158,4 +1158,76 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY o.order_id DESC
     </select>
 
+    <select id="getUserStudyCondition" parameterType="com.zhongzheng.modules.order.bo.UserStudyConditionBo" resultType="com.zhongzheng.modules.order.vo.UserStudyConditionVo">
+        SELECT
+        o.order_sn,
+        FROM_UNIXTIME( og.create_time, '%Y-%m-%d %H:%i:%s' ) AS orderTime,
+        u.realname AS userName,
+        AES_DECRYPT(UNHEX(u.id_card),'base20230213zzkj') AS userCard,
+        AES_DECRYPT(UNHEX(u.telphone),'base20230213zzkj') AS userPhone,
+        u.company_name AS companyName,
+        g.goods_name AS goodsName,
+        g.seven_year AS sevenYear,
+        CONCAT(cet.education_name,cb.business_name,cpt.project_name) AS businessName,
+        m.category_name AS majorName,
+        cg.class_name AS className,
+        CASE
+        WHEN cg.class_status = 1 THEN '已开班'
+        WHEN cg.class_status = 0 THEN '未开班'
+        ELSE '其他' END AS classStatus,
+        FROM_UNIXTIME( cg.class_end_time, '%Y-%m-%d %H:%i:%s' ) AS classEndTime,
+        CONCAT((
+        ((SELECT COUNT(DISTINCT ubr.module_id,ubr.chapter_id,ubr.exam_id) FROM user_bank_record ubr  where ubr.`status`=1 and ubr.report_status=1 and ubr.grade_id = og.grade_id and ubr.order_goods_id = og.order_goods_id and ubr.user_id = cgu.user_id and ubr.current_status = 1) +
+        (
+        SELECT
+        COUNT( DISTINCT course_id, module_id, chapter_id, section_id )
+        FROM
+        user_study_record
+        WHERE
+        current_status = 1
+        AND grade_id = og.grade_id
+        AND order_goods_id = og.order_goods_id
+        AND user_id = o.user_id
+        AND status = 1
+        AND goods_id = og.goods_id
+        ))
+        ),"/",og.course_num + og.exam_num) AS studySchedule
+        FROM
+        `order` o
+        LEFT JOIN order_goods og ON o.order_sn = og.order_sn
+        LEFT JOIN goods g ON og.goods_id = g.goods_id
+        LEFT JOIN course_education_type cet ON g.education_type_id = cet.id
+        LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
+        LEFT JOIN course_business cb ON g.business_id = cb.id
+        LEFT JOIN major m ON g.major_id = m.id
+        LEFT JOIN `user` u ON o.user_id = u.user_id
+        LEFT JOIN class_grade_user cgu ON og.order_goods_id = cgu.order_goods_id
+        LEFT JOIN class_grade cg ON cgu.grade_id = cg.grade_id
+        WHERE
+        1=1
+        AND og.pay_status != 1
+        AND og.refund_status != 2
+        AND o.`status` = 1
+        AND og.`status` = 1
+        AND cgu.`status` = 1
+        <if test="tenantId != null and tenantId != ''">
+            AND o.tenant_id = #{tenantId}
+        </if>
+        <if test="userCard != null and userCard != ''">
+            AND AES_DECRYPT(UNHEX(u.id_card),'base20230213zzkj') = #{userCard}
+        </if>
+        <if test="userName != null and userName != ''">
+            AND u.realname = #{userName}
+        </if>
+        <if test="companyName != null and companyName != ''">
+            AND u.company_name = #{companyName}
+        </if>
+        <if test="businessName != null and businessName != ''">
+            AND INSTR(CONCAT(cet.education_name,cb.business_name,cpt.project_name),#{businessName})
+        </if>
+        <if test="majorName != null and majorName != ''">
+            AND m.category_name = #{majorName}
+        </if>
+    </select>
+
 </mapper>