yangdamao 7 月之前
父节点
当前提交
c56e605764

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

@@ -65,6 +65,7 @@ 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.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
@@ -72,6 +73,7 @@ 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.CommonOrderInfoVo;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
 import com.zhongzheng.modules.sdk.service.IZsBankService;
 import com.zhongzheng.modules.system.bo.SysTenantAdminBo;
@@ -972,4 +974,15 @@ public class CommonController extends BaseController {
         List<CommonGradeVo> list = iOrderService.getCommonGrade(bo);
         return AjaxResult.success(list);
     }
+
+
+    @ApiOperation("外部获取订单信息接口")
+    @PostMapping("/common/free/order/info")
+    public AjaxResult<List<CommonOrderInfoVo>> getCommonOrderInfo(@RequestBody CommonOrderInfoBo bo) {
+        if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
+            throw new CustomException("签名错误");
+        }
+        List<CommonOrderInfoVo> list = iOrderService.getCommonOrderInfo(bo);
+        return AjaxResult.success(list);
+    }
 }

+ 37 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/CommonOrderInfoBo.java

@@ -0,0 +1,37 @@
+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 CommonOrderInfoBo 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;
+
+    @ApiModelProperty("订单号集合")
+    private List<String> orderSnList;
+
+}

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

@@ -82,4 +82,5 @@ public interface OrderMapper extends BaseMapper<Order> {
 
     List<OfflineOrderVo> getOfflineOrderList(OfflineOrderBo bo);
 
+    List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo);
 }

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

@@ -144,4 +144,6 @@ public interface IOrderService extends IService<Order> {
 	List<OfflineOrderVo> getOfflineOrderList(OfflineOrderBo bo);
 
 	boolean checkOfflineOrder(OfflineOrderCheckBo bo);
+
+    List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo);
 }

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

@@ -3706,6 +3706,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         return true;
     }
 
+    @Override
+    public List<CommonOrderInfoVo> getCommonOrderInfo(CommonOrderInfoBo bo) {
+        SysTenant tenant = iSysTenantService.getById(bo.getTenantId());
+        if (ObjectUtils.isNull(tenant)){
+            throw new CustomException("商户ID有误!请检查");
+        }
+        ServletUtils.getResponse().setHeader("TenantId",bo.getTenantId());
+        List<CommonOrderInfoVo> infoVos = baseMapper.getCommonOrderInfo(bo);
+        return infoVos;
+    }
+
     /**
      * 根据身份证号码判断性别
      *

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

@@ -0,0 +1,58 @@
+package com.zhongzheng.modules.order.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年06月06日 15:23
+ */
+@Data
+public class CommonOrderInfoVo implements Serializable {
+
+    @ApiModelProperty("订单号")
+    private Long 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;
+
+
+}

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

@@ -980,4 +980,65 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             ORDER BY og.create_time DESC
     </select>
 
+    <select id="getCommonOrderInfo" parameterType="com.zhongzheng.modules.order.bo.CommonOrderInfoBo" resultType="com.zhongzheng.modules.order.vo.CommonOrderInfoVo">
+        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 o.tenant_id = #{tenantId}
+            AND og.pay_status != 1
+	        AND og.refund_status != 2
+	        AND o.`status` = 1
+	        AND og.`status` = 1
+	        AND cgu.`status` = 1
+            <if test="orderSnList != null and orderSnList.size()!=0">
+                AND o.order_sn in
+                <foreach collection="orderSnList" item="item" index="index" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+    </select>
+
 </mapper>