yangdamao 1 жил өмнө
parent
commit
202dde73b8

+ 12 - 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;
@@ -647,6 +649,16 @@ public class CommonController extends BaseController {
         return AjaxResult.success(iUserService.getStudyTimeByCard(idCard,type));
     }
 
+    @ApiOperation("获取用户同专业下课程")
+    @PostMapping("common/free/getUserBusinessGoods")
+    public AjaxResult<List<UserBusinessGoodsVo>> getUserBusinessGoods(@RequestBody List<UserBusinessGoodsBo> bos) {
+        UserBusinessGoodsBo bo = bos.get(0);
+        if (!ToolsUtils.checkSignFromOldSys(bo.getStamp().toString(), bo.getSign())) {
+            throw new CustomException("签名错误");
+        }
+        return AjaxResult.success(iUserService.getUserBusinessGoods(bos));
+    }
+
     /**
      * 获取企业ID
      */

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

@@ -2091,6 +2091,23 @@ 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 = baseMapper.getByCardTenant(item.getIdNum(), item.getTenantId());
+            if (ObjectUtils.isNull(user)) {
+                continue;
+            }
+            item.setUserId(user.getUserId());
+            //查询购买课程
+            UserBusinessGoodsVo goodsVo = baseMapper.getCourseByUser(item);
+            goodsVo.setIdNum(item.getIdNum());
+            goodsBoList.add(goodsVo);
+        }
+        return goodsBoList;
+    }
+
     @Override
     public Map<String, Object> accountLogin(UserAppAccountLoginBo bo) {
         if(Validator.isEmpty(bo.getAccount())){

+ 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;
+
+}

+ 8 - 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,12 @@ 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);
+
+    @InterceptorIgnore(tenantLine = "true")
+    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);
 }

+ 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 createTime;
+}

+ 40 - 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,35 @@ 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 createTime
+        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 o.tenant_id = #{tenantId}
+          AND og.`status` = 1
+          AND o.user_id = #{userId}
+          AND INSTR( CONCAT( cet.education_name, cb.business_name, cpt.project_name ), #{businessName} )
+          AND INSTR( m.category_name, #{majorName} )
+        ORDER BY
+            og.create_time DESC
+            LIMIT 1
+    </select>
+
     <select id="getUserOrderCount" parameterType="map" resultType="java.lang.Long">
         SELECT
             COUNT(o.order_sn)