he2802 1 жил өмнө
parent
commit
a1f3beeaa5
23 өөрчлөгдсөн 254 нэмэгдсэн , 22 устгасан
  1. 79 0
      run-prod.sh
  2. 2 0
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java
  3. 7 4
      zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java
  4. 6 0
      zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java
  5. 21 0
      zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java
  6. 2 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java
  7. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java
  8. 0 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/service/impl/ClassGradeServiceImpl.java
  9. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeVo.java
  10. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderQueryBo.java
  11. 2 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/IOrderService.java
  12. 1 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java
  13. 0 6
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsServiceImpl.java
  14. 1 1
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java
  15. 16 2
      zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderListExportVo.java
  16. 34 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserBusinessGoodsBo.java
  17. 7 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMapper.java
  18. 2 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java
  19. 3 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java
  20. 25 0
      zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserBusinessGoodsVo.java
  21. 2 0
      zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml
  22. 1 0
      zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsRefundMapper.xml
  23. 37 0
      zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

+ 79 - 0
run-prod.sh

@@ -1,3 +1,42 @@
+#!/usr/bin/env bash
+# 定义应用组名
+group_name='zhongzheng'
+# 定义应用名称
+app_name='zhongzheng-saas-api'
+# 定义应用版本
+app_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='prod'
+echo '----copy jar----'
+docker stop ${app_name}
+echo '----stop container----'
+docker rm ${app_name}
+echo '----rm container----'
+docker rmi ${group_name}/${app_name}:${app_version}
+echo '----rm image----'
+# 打包编译docker镜像
+docker build -f /mydata/maven/build/Dockerfile -t ${group_name}/${app_name}:${app_version} .
+echo '----build image----'
+docker run -p 5055:5055 --name ${app_name} \
+--restart=always \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+-m 10240m \
+--cpus=3 \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
+-v /etc/localtime:/etc/localtime \
+-v /usr/share/fonts:/usr/share/fonts \
+-v /data/logs/prod_api:/logs \
+-v /mydata/app/${app_name}/logs:/var/logs \
+-d ${group_name}/${app_name}:${app_version}
+echo '----start container----'
+
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
+
 #!/usr/bin/env bash
 # 定义应用组名
 group_admin_name='zhongzheng'
@@ -33,5 +72,45 @@ docker run \
 -d ${group_admin_name}/${app_admin_name}:${app_admin_version}
 echo '----start container admin----'
 
+echo "开始等待20秒..."
+# 1-10秒内随机
+sleep 5
+echo "等待后继续"
+
+#!/usr/bin/env bash
+# 定义应用组名
+group_admin_name='zhongzheng'
+# 定义应用名称
+app_admin_name='zhongzheng-saas-admin-top'
+# 定义应用版本
+app_admin_version='1.0-SNAPSHOT'
+# 定义应用环境
+profile_active='prod'
+echo '----copy jar admin top----'
+docker stop ${app_admin_name}
+echo '----stop container admin top----'
+docker rm ${app_admin_name}
+echo '----rm container admin top----'
+docker rmi ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----rm image admin top----'
+# 打包编译docker镜像
+docker build -f /mydata/maven/build/Dockerfile-saas -t ${group_admin_name}/${app_admin_name}:${app_admin_version} .
+echo '----build image admin top----'
+docker run \
+-p 7077:7077 \
+--name ${app_admin_name} \
+--restart=always \
+--log-opt max-size=50m \
+--log-opt max-file=3 \
+-e 'spring.profiles.active'=${profile_active} \
+-e TZ="Asia/Shanghai" \
+-v /etc/localtime:/etc/localtime \
+-v /usr/share/fonts:/usr/share/fonts \
+-v /data/logs/prod_admin_top:/logs \
+-v /mydata/app/${app_admin_name}/logs:/var/logs \
+-v /data/nginx/conf.d:/data/nginx/conf.d \
+-d ${group_admin_name}/${app_admin_name}:${app_admin_version}
+echo '----start container admin top----'
+
 
 

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

@@ -85,8 +85,10 @@ import com.zhongzheng.modules.tencentcloud.service.IFaceOcrService;
 import com.zhongzheng.modules.tencentcloud.service.IVodService;
 import com.zhongzheng.modules.top.user.bo.TopSysTenantRegisterAddBo;
 import com.zhongzheng.modules.top.user.service.ITopSysTenantRegisterService;
+import com.zhongzheng.modules.user.bo.UserBusinessGoodsBo;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserSubscribeService;
+import com.zhongzheng.modules.user.vo.UserBusinessGoodsVo;
 import com.zhongzheng.modules.user.vo.UserStudyTimeVo;
 import com.zhongzheng.modules.wx.bo.WxShareGoodsBo;
 import com.zhongzheng.modules.wx.service.IWxPayService;

+ 7 - 4
zhongzheng-admin/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -13,10 +13,7 @@ import com.zhongzheng.modules.alisms.service.IAliSmsService;
 import com.zhongzheng.modules.user.bo.*;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import com.zhongzheng.modules.user.service.IUserService;
-import com.zhongzheng.modules.user.vo.UserIdCardBatchVo;
-import com.zhongzheng.modules.user.vo.UserStatstVo;
-import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
-import com.zhongzheng.modules.user.vo.UserVo;
+import com.zhongzheng.modules.user.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
@@ -239,4 +236,10 @@ public class UserController extends BaseController {
         List<UserVo> list = iUserService.dangAnList(bo);
         return getDataTable(list);
     }
+
+    @ApiOperation("获取用户同专业下课程")
+    @PostMapping("/getUserBusinessGoods")
+    public AjaxResult<List<UserBusinessGoodsVo>> getUserBusinessGoods(@RequestBody List<UserBusinessGoodsBo> bos) {
+        return AjaxResult.success(iUserService.getUserBusinessGoods(bos));
+    }
 }

+ 6 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/user/UserController.java

@@ -1,13 +1,16 @@
 package com.zhongzheng.controller.user;
 
 import cn.hutool.core.lang.Validator;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zhongzheng.common.annotation.Log;
 import com.zhongzheng.common.core.controller.BaseController;
 import com.zhongzheng.common.core.domain.AjaxResult;
 import com.zhongzheng.common.enums.BusinessType;
+import com.zhongzheng.common.exception.CustomException;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.common.utils.ToolsUtils;
 import com.zhongzheng.framework.web.service.WxLoginService;
 import com.zhongzheng.framework.web.service.WxTokenService;
 import com.zhongzheng.modules.system.domain.SysTenant;
@@ -19,6 +22,7 @@ import com.zhongzheng.modules.user.service.IUserLoginKeyService;
 import com.zhongzheng.modules.user.service.IUserService;
 import com.zhongzheng.modules.user.service.IUserVisitLogService;
 import com.zhongzheng.modules.user.service.IUserWxFollowService;
+import com.zhongzheng.modules.user.vo.UserBusinessGoodsVo;
 import com.zhongzheng.modules.user.vo.UserVo;
 import com.zhongzheng.modules.wx.bo.WxIdBody;
 import com.zhongzheng.modules.wx.bo.WxLoginBody;
@@ -32,6 +36,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -218,4 +223,5 @@ public class UserController extends BaseController {
         editBo.setUserKey(loginUser.getToken());
         return toAjax(iUserLoginKeyService.offline(editBo) ? 1 : 0);
     }
+
 }

+ 21 - 0
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/UserServiceImpl.java

@@ -2091,6 +2091,27 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
         return vo;
     }
 
+    @Override
+    public List<UserBusinessGoodsVo> getUserBusinessGoods(List<UserBusinessGoodsBo> bos) {
+        List<UserBusinessGoodsVo> goodsBoList = new ArrayList<>();
+        for (UserBusinessGoodsBo item : bos) {
+            User user = getOne(new LambdaQueryWrapper<User>()
+            .eq(User::getIdCard,EncryptHandler.encrypt(item.getIdNum()))
+            .last("limit 1"));
+            if (ObjectUtils.isNull(user)) {
+                continue;
+            }
+            item.setUserId(user.getUserId());
+            //查询购买课程
+            List<UserBusinessGoodsVo> goodsVo = baseMapper.getCourseByUser(item);
+            if (!CollectionUtils.isEmpty(goodsVo)){
+                goodsVo.forEach(x -> x.setIdNum(item.getIdNum()));
+                goodsBoList.addAll(goodsVo);
+            }
+        }
+        return goodsBoList;
+    }
+
     @Override
     public Map<String, Object> accountLogin(UserAppAccountLoginBo bo) {
         if(Validator.isEmpty(bo.getAccount())){

+ 2 - 6
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/service/impl/CourseServiceImpl.java

@@ -732,12 +732,6 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
             if(Validator.isEmpty(classGradeVo)){
                 continue;
             }
-            if(Validator.isNotEmpty(classGradeVo.getSevenPushReason())){
-                goodsUserVo.setPushFailReason(classGradeVo.getSevenPushReason());
-            }
-            if(Validator.isNotEmpty(classGradeVo.getOfficialStatusMsg())){
-                goodsUserVo.setPushFailReason(classGradeVo.getOfficialStatusMsg());
-            }
             String fullName = goodsUserVo.getEducationName()+goodsUserVo.getBusinessName()+goodsUserVo.getProjectName();
             goodsUserVo.setErJianErZao(false);
             goodsUserVo.setUserProfile(0);
@@ -1006,6 +1000,8 @@ public class CourseServiceImpl extends ServiceImpl<CourseMapper, Course> impleme
             goodsUserVo.setExamNum(classGradeVo.getExamNum());
             goodsUserVo.setRecordNum(classGradeVo.getRecordNum());
             goodsUserVo.setPeriodStatus(classGradeVo.getPeriodStatus());
+            goodsUserVo.setSignId(classGradeVo.getId());
+            goodsUserVo.setOfficialStatus(classGradeVo.getOfficialStatus());
         }
         return goodsUserVos;
     }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/goods/vo/GoodsUserVo.java

@@ -451,4 +451,7 @@ public class GoodsUserVo {
 
 	@ApiModelProperty("失败原因")
 	private String pushFailReason;
+
+	@ApiModelProperty("标签Id")
+	private Long signId;
 }

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

@@ -354,7 +354,6 @@ public class ClassGradeServiceImpl extends ServiceImpl<ClassGradeMapper, ClassGr
                             }
                         });
                     }
-
                 if (StringUtils.isNotBlank(bo.getOfficialName()) && ObjectUtils.isNotNull(bo.getClassStatus()) && bo.getClassStatus() == 1){
                     add.setSevenCode(ServletUtils.getEncoded("SEV"));
                 }else {

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/grade/vo/ClassGradeVo.java

@@ -24,6 +24,8 @@ import java.util.List;
 public class ClassGradeVo {
 	private static final long serialVersionUID = 1L;
 
+	private Long id;
+
 	/** $pkColumn.columnComment */
 	@ApiModelProperty("$pkColumn.columnComment")
 	private Long gradeId;

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderQueryBo.java

@@ -140,6 +140,7 @@ public class OrderQueryBo extends BaseEntity {
 	private String oldInstitutionId;
 	@ApiModelProperty("旧客户ID")
 	private String oldCustomerId;
+
 	@ApiModelProperty("公司名称")
 	private String companyName;
 }

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

@@ -8,11 +8,11 @@ import com.zhongzheng.modules.goods.vo.QuestionOpenImportVo;
 import com.zhongzheng.modules.order.bo.*;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.vo.OrderGoodsVo;
-
+import com.zhongzheng.modules.order.vo.OrderListExportVo;
 import com.zhongzheng.modules.order.vo.OrderListVo;
 import com.zhongzheng.modules.order.vo.OrderVo;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderInvoiceVo;
-import com.zhongzheng.modules.order.vo.OrderListExportVo;
+
 import java.util.Collection;
 import java.util.List;
 import java.util.Map;

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java

@@ -16,6 +16,7 @@ import com.github.pagehelper.Page;
 import com.zhongzheng.common.core.domain.entity.SysUser;
 import com.zhongzheng.common.core.domain.model.LoginUser;
 import com.zhongzheng.common.exception.CustomException;
+import com.zhongzheng.common.type.EncryptHandler;
 import com.zhongzheng.common.utils.DateUtils;
 import com.zhongzheng.common.utils.SecurityUtils;
 import com.zhongzheng.common.utils.ToolsUtils;

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

@@ -649,12 +649,6 @@ public class OrderGoodsServiceImpl extends ServiceImpl<OrderGoodsMapper, OrderGo
                 if (fullName.contains("继续教育")){
                     goodsVo.setGoodsName(classGradeVo.getClassName());
                 }
-                if(Validator.isNotEmpty(classGradeVo.getSevenPushReason())){
-                    goodsVo.setPushFailReason(classGradeVo.getSevenPushReason());
-                }
-                if(Validator.isNotEmpty(classGradeVo.getOfficialStatusMsg())){
-                    goodsVo.setPushFailReason(classGradeVo.getOfficialStatusMsg());
-                }
                 goodsVo.setPeriodStatus(classGradeVo.getPeriodStatus());
                 goodsVo.setPeriodPlush(classGradeVo.getPeriodPlush());
                 goodsVo.setGradeStatus(classGradeVo.getStatus());

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

@@ -298,7 +298,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         List<OrderListExportVo> list = new ArrayList<>();
         for(OrderListVo vo : orderListVos){
             OrderListExportVo item = BeanUtil.toBean(vo,OrderListExportVo.class);
-            item.setPayTime(DateUtils.timestampToDateFormat(vo.getPayTime(),DateUtils.YYYY_MM_DD_HH_MM_SS));
+            item.setPayTime(DateUtils.timestampToDate(vo.getPayTime()));
             list.add(item);
         }
         return list;

+ 16 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/vo/OrderListExportVo.java

@@ -34,7 +34,13 @@ public class OrderListExportVo {
     @ApiModelProperty("身份证号")
     private String idCard;
 
-    @Excel(name = "公司名称")
+    /**
+     * 手机号码
+     */
+    @Excel(name = "手机号码")
+    @ApiModelProperty("手机号码")
+    private String telphone;
+
     @ApiModelProperty("公司名称")
     private String companyName;
     /**
@@ -82,7 +88,15 @@ public class OrderListExportVo {
     @Excel(name = "教育名称")
     @ApiModelProperty("教育名称")
     private String educationName;
-
+    @Excel(name = "项目名称")
+    @ApiModelProperty("项目名称")
+    private String projectName;
+    @Excel(name = "业务名称")
+    @ApiModelProperty("业务名称")
+    private String businessName;
+    @Excel(name = "专业名称")
+    @ApiModelProperty("专业名称")
+    private String categoryName;
 
 
 }

+ 34 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserBusinessGoodsBo.java

@@ -0,0 +1,34 @@
+package com.zhongzheng.modules.user.bo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年04月01日 18:05
+ */
+@Data
+public class UserBusinessGoodsBo implements Serializable {
+
+    @ApiModelProperty("当前时间戳")
+    @NotBlank(message = "当前时间戳不能为空")
+    private Long stamp;
+
+    @ApiModelProperty("签名")
+    @NotBlank(message = "签名不能为空")
+    private String sign;
+
+    private Long userId;
+
+    private String idNum;
+
+    private String businessName;
+
+    private String majorName;
+
+    private String tenantId;
+
+}

+ 7 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/mapper/UserMapper.java

@@ -3,10 +3,12 @@ package com.zhongzheng.modules.user.mapper;
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.user.bo.RanKingUserQuery;
+import com.zhongzheng.modules.user.bo.UserBusinessGoodsBo;
 import com.zhongzheng.modules.user.bo.UserQueryBo;
 import com.zhongzheng.modules.user.bo.UserStudyRecordQueryBo;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.vo.RanKingUser;
+import com.zhongzheng.modules.user.vo.UserBusinessGoodsVo;
 import com.zhongzheng.modules.user.vo.UserStudyRecordVo;
 import org.apache.ibatis.annotations.Param;
 
@@ -87,6 +89,11 @@ public interface UserMapper extends BaseMapper<User> {
     @InterceptorIgnore(tenantLine = "true")
     User getByCardNoTenant(String idCard);
 
+    @InterceptorIgnore(tenantLine = "true")
+    User getByCardTenant(@Param("idCard") String idCard,@Param("tenantId")String tenantId);
+
     @InterceptorIgnore(tenantLine = "true")
     Long getFistStudyTime(@Param("userId")Long userId,@Param("tenantId")Long tenantId,@Param("businessName")String businessName);
+
+    List<UserBusinessGoodsVo> getCourseByUser(UserBusinessGoodsBo item);
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/IUserService.java

@@ -164,4 +164,6 @@ public interface IUserService extends IService<User> {
 	void userDataDownloadUp(UserDataDownloadUpBo bo);
 
 	UserStudyTimeVo getStudyTimeByCard(String idCard,Integer type);
+
+	List<UserBusinessGoodsVo> getUserBusinessGoods(List<UserBusinessGoodsBo> bos);
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/service/impl/UserStudyRecordServiceImpl.java

@@ -1779,6 +1779,9 @@ public class UserStudyRecordServiceImpl extends ServiceImpl<UserStudyRecordMappe
             if(Validator.isEmpty(bo.getSimilarity())){
                 throw new CustomException("相似度缺失");
             }
+            if(bo.getSimilarity()<80){
+                throw new CustomException("相似度不达标");
+            }
             UserStudyRecordPhotoAddBo userStudyRecordPhotoAddBo = new UserStudyRecordPhotoAddBo();
             userStudyRecordPhotoAddBo.setPhoto(bo.getPhoto());
             userStudyRecordPhotoAddBo.setRecordId(entity.getRecordId());

+ 25 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/vo/UserBusinessGoodsVo.java

@@ -0,0 +1,25 @@
+package com.zhongzheng.modules.user.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2024年04月01日 18:05
+ */
+@Data
+public class UserBusinessGoodsVo implements Serializable {
+
+    private String name;
+
+    private String idNum;
+
+    private String businessName;
+
+    private String majorName;
+
+    private String categoryName;
+
+    private Long createTimeStamp;
+}

+ 2 - 0
zhongzheng-system/src/main/resources/mapper/modules/course/CourseMapper.xml

@@ -228,6 +228,7 @@
     </resultMap>
 
     <resultMap type="com.zhongzheng.modules.grade.vo.ClassGradeVo" id="ClassGradeVoResult">
+        <result property="id" column="id"/>
         <result property="gradeId" column="grade_id"/>
         <result property="classStatus" column="class_status"/>
         <result property="officialName" column="official_name"/>
@@ -868,6 +869,7 @@
         cgu.period_plush,
         cgu.order_goods_id,
         cg.official_name,
+        cgu.id,
         cgu.period_wait_time
         FROM
         class_grade_user cgu

+ 1 - 0
zhongzheng-system/src/main/resources/mapper/modules/order/OrderGoodsRefundMapper.xml

@@ -139,6 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         LEFT JOIN order_goods og ON gr.order_goods_id = og.order_goods_id
         WHERE
         1 = 1
+        AND (SELECT COUNT(o.order_sn) FROM `order` o WHERE o.order_sn = og.order_sn AND o.order_handle IS NULL) > 0
         <if test="userId != null and userId != ''">
             AND gr.user_id = #{userId}
         </if>

+ 37 - 0
zhongzheng-system/src/main/resources/mapper/modules/user/UserMapper.xml

@@ -652,6 +652,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             LIMIT 1
     </select>
 
+    <select id="getByCardTenant" parameterType="java.lang.String" resultType="com.zhongzheng.modules.user.domain.User">
+        SELECT
+            *
+        FROM
+            `user`
+        WHERE
+            status = 1 AND id_card = #{idCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
+            AND tenant_id = #{tenantId}
+            LIMIT 1
+    </select>
+
     <select id="getFistStudyTime" parameterType="map" resultType="java.lang.Long">
         SELECT
         ustp.create_time
@@ -677,6 +688,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY ustp.create_time ASC LIMIT 1
     </select>
 
+    <select id="getCourseByUser" parameterType="com.zhongzheng.modules.user.bo.UserBusinessGoodsBo" resultType="com.zhongzheng.modules.user.vo.UserBusinessGoodsVo">
+        SELECT
+            u.realname AS `name`,
+            u.id_card AS idNum,
+            CONCAT( cet.education_name, cb.business_name, cpt.project_name ) AS business_name,
+            m.category_name AS majorName,
+            g.goods_name AS categoryName,
+            og.create_time AS createTimeStamp
+        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
+        WHERE
+            o.`status` = 1
+          AND og.`status` = 1
+          AND o.user_id = #{userId}
+          AND INSTR( CONCAT( cet.education_name, cb.business_name, cpt.project_name ), #{businessName} )
+        ORDER BY
+            og.create_time DESC
+    </select>
+
     <select id="getUserOrderCount" parameterType="map" resultType="java.lang.Long">
         SELECT
             COUNT(o.order_sn)