Просмотр исходного кода

我的创客-新增搜索创客

mac 2 лет назад
Родитель
Сommit
9a7145662d

+ 4 - 1
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserMyUserListDTO.java

@@ -21,6 +21,9 @@ public class UserMyUserListDTO {
      */
      */
     @NotEmpty(message = "排序值不能为空")
     @NotEmpty(message = "排序值不能为空")
     private String sort;
     private String sort;
-    private String tableName;
+
+    /**
+     * 用户 ID
+     */
     private Long userId;
     private Long userId;
 }
 }

+ 6 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUser.java

@@ -2,6 +2,7 @@ package com.kxs.user.api.model;
 
 
 import java.io.Serial;
 import java.io.Serial;
 import java.io.Serializable;
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 
 
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.annotation.*;
@@ -156,6 +157,11 @@ public class KxsUser extends Model<KxsUser> {
     @Schema(description = "用户名")
     @Schema(description = "用户名")
     private String username;
     private String username;
 
 
+    /**
+     * 本月交易额统计
+     */
+    private BigDecimal thisMonthTrade;
+
     /**
     /**
      * 备注
      * 备注
      */
      */

+ 65 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/SearchMyUserListVO.java

@@ -0,0 +1,65 @@
+package com.kxs.user.api.vo.kxsapp.user;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 搜索伞下创客
+ *
+ * @author 系统
+ * @date 2024-05-16 15:25:54
+ */
+@Data
+@Schema(description = "搜索伞下创客返回实体")
+public class SearchMyUserListVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 用户名
+     */
+    @Schema(description = "用户名")
+    private String username;
+
+    /**
+     * 编号
+     */
+    @Schema(description = "编号")
+    private String userCode;
+
+    /**
+     * 头像
+     */
+    @Schema(description = "头像")
+    private String avatar;
+
+    /**
+     * 用户本月交易额
+     */
+    @Schema(description = "用户本月交易额")
+    private BigDecimal thisMonthTrade;
+
+
+}

+ 12 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java

@@ -309,6 +309,18 @@ public class KxsUserController {
     public R myUserList(@ParameterObject Page<KxsUser> page, @Valid @ParameterObject UserMyUserListDTO param) {
     public R myUserList(@ParameterObject Page<KxsUser> page, @Valid @ParameterObject UserMyUserListDTO param) {
         return R.ok(kxsUserService.myUserList(page,param));
         return R.ok(kxsUserService.myUserList(page,param));
     }
     }
+
+    /**
+     * 搜索伞下创客
+     *
+     * @param keyword 用户姓名/编号
+     * @return 创客列表
+     */
+    @GetMapping("/searchMyUserLIst")
+    public R searchMyUserLIst(@RequestParam("keyword") String keyword){
+        return R.ok(kxsUserService.searchMyUserList(keyword));
+    }
+
     /**
     /**
      * 未实名列表
      * 未实名列表
      *
      *

+ 12 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsUserMapper.java

@@ -4,11 +4,14 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.kxs.user.api.dto.kxsapp.user.UserMyUserListDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserMyUserListDTO;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
+import com.kxs.user.api.vo.kxsapp.user.SearchMyUserListVO;
 import com.kxs.user.api.vo.kxsapp.user.UserMyUserListVO;
 import com.kxs.user.api.vo.kxsapp.user.UserMyUserListVO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
 
+import java.util.List;
+
 /**
 /**
  * 用户表(KxsSecurityUser)表数据库访问层
  * 用户表(KxsSecurityUser)表数据库访问层
  *
  *
@@ -56,5 +59,14 @@ public interface KxsUserMapper extends BaseMapper<KxsUser> {
      * @return {@link Integer}
      * @return {@link Integer}
      */
      */
     Integer selectMaxBeforeLevel(@Param("userId") Long userId);
     Integer selectMaxBeforeLevel(@Param("userId") Long userId);
+
+    /**
+     * 搜索伞下创客
+     *
+     * @param userId 用户ID
+     * @param keyword   关键词
+     * @return {@link List}<{@link SearchMyUserListVO}>
+     */
+    List<SearchMyUserListVO> searchMyUserList(@Param("userId") Long userId, @Param("keyword") String keyword);
 }
 }
 
 

+ 8 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java

@@ -10,6 +10,7 @@ import com.kxs.user.api.dto.kxsapp.app.RegisterDTO;
 import com.kxs.user.api.dto.kxsapp.user.*;
 import com.kxs.user.api.dto.kxsapp.user.*;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
+import com.kxs.user.api.vo.kxsapp.user.SearchMyUserListVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserCodeInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
 import com.kxs.user.api.vo.kxsapp.user.UserInfoVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
@@ -277,5 +278,12 @@ public interface KxsUserService extends IService<KxsUser> {
      */
      */
     R mchRegister(MchRegisterDTO registerDTO);
     R mchRegister(MchRegisterDTO registerDTO);
 
 
+    /**
+     * 搜索伞下创客
+     *
+     * @param keyword 关键词
+     * @return {@link List}<{@link SearchMyUserListVO}>
+     */
+    List<SearchMyUserListVO> searchMyUserList(String keyword);
 }
 }
 
 

+ 14 - 5
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java

@@ -21,6 +21,7 @@ import com.kxs.common.core.exception.ValidateCodeException;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.AssertUtil;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.SpringContextHolder;
 import com.kxs.common.core.util.SpringContextHolder;
+import com.kxs.common.core.util.TotalDateUtil;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.product.api.model.KxsMerchant;
 import com.kxs.product.api.model.KxsMerchant;
@@ -65,6 +66,7 @@ import org.springframework.security.web.authentication.preauth.PreAuthenticatedA
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.List;
@@ -267,6 +269,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         return R.ok();
         return R.ok();
     }
     }
 
 
+
     @Override
     @Override
     public Boolean sendCode(String mobile) {
     public Boolean sendCode(String mobile) {
 
 
@@ -497,12 +500,18 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
 
 
     @Override
     @Override
     public Object myUserList(Page<KxsUser> page, UserMyUserListDTO param) {
     public Object myUserList(Page<KxsUser> page, UserMyUserListDTO param) {
-        //拼接表名
-        param.setTableName("kxs_user_trade_" + LocalDateTimeUtil.format(LocalDateTime.now(), DatePattern.SIMPLE_MONTH_PATTERN));
+
         param.setUserId(SecurityUtils.getUser().getId());
         param.setUserId(SecurityUtils.getUser().getId());
         return baseMapper.myUserList(page,param);
         return baseMapper.myUserList(page,param);
     }
     }
 
 
+    @Override
+    public List<SearchMyUserListVO> searchMyUserList(String keyword) {
+
+        Long userId = SecurityUtils.getUser().getId();
+        return baseMapper.searchMyUserList(userId, keyword);
+    }
+
     @Override
     @Override
     public Object myUserStatistics() {
     public Object myUserStatistics() {
         Long userId = SecurityUtils.getUser().getId();
         Long userId = SecurityUtils.getUser().getId();
@@ -521,9 +530,9 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     public R myUserDetail(Integer id) {
     public R myUserDetail(Integer id) {
         KxsUser byId = getById(id);
         KxsUser byId = getById(id);
         UserMyUserDetailVO userMyUserDetailVO = new UserMyUserDetailVO();
         UserMyUserDetailVO userMyUserDetailVO = new UserMyUserDetailVO();
-        if (!Objects.equals(Long.valueOf(byId.getPid()), SecurityUtils.getUser().getId())){
-            return R.failed("非法参数,该用户非当前用户直属用户");
-        }
+//        if (!Objects.equals(Long.valueOf(byId.getPid()), SecurityUtils.getUser().getId())){
+//            return R.failed("非法参数,该用户非当前用户直属用户");
+//        }
         BeanUtils.copyProperties(byId,userMyUserDetailVO);
         BeanUtils.copyProperties(byId,userMyUserDetailVO);
         KxsUserReal kxsUserReal = kxsUserRealMapper.selectOne(Wrappers.<KxsUserReal>query().lambda().eq(KxsUserReal::getUserId, id));
         KxsUserReal kxsUserReal = kxsUserRealMapper.selectOne(Wrappers.<KxsUserReal>query().lambda().eq(KxsUserReal::getUserId, id));
         if (kxsUserReal != null){
         if (kxsUserReal != null){

+ 16 - 23
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserMapper.xml

@@ -27,6 +27,7 @@
         <result column="update_time" property="updateTime"/>
         <result column="update_time" property="updateTime"/>
         <result column="create_time" property="createTime"/>
         <result column="create_time" property="createTime"/>
         <result column="to_merchant_maker_time" property="toMerchantMakerTime"/>
         <result column="to_merchant_maker_time" property="toMerchantMakerTime"/>
+        <result column="this_month_trade" property="thisMonthTrade"/>
     </resultMap>
     </resultMap>
     <select id="findUserRealBankInfo" resultType="com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO">
     <select id="findUserRealBankInfo" resultType="com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO">
         select a.phone, a.user_code, r.real_name, r.id_card, b.bank_name, b.bank_open, b.bank_phone, b.bank_code
         select a.phone, a.user_code, r.real_name, r.id_card, b.bank_name, b.bank_open, b.bank_phone, b.bank_code
@@ -64,30 +65,13 @@
     </select>
     </select>
     <select id="myUserList" resultType="com.kxs.user.api.vo.kxsapp.user.UserMyUserListVO">
     <select id="myUserList" resultType="com.kxs.user.api.vo.kxsapp.user.UserMyUserListVO">
         SELECT
         SELECT
-        ku.id, ku.username,ku.create_time,kur.create_time as realTime,
-        SUM(
-        COALESCE(kut.pro_b_direct_trade_amt,0)
-        + COALESCE(kut.pro_b_debit_trade_amt,0)
-        + COALESCE(kut.pro_a_debit_trade_amt,0)
-        + COALESCE(kut.pro_a_direct_trade_amt,0)
-        + COALESCE(kut.pro_debit_trade_amt,0)
-        + COALESCE(kut.pro_direct_trade_amt,0)
-        + COALESCE(kut.help_debit_trade_amt,0)
-        + COALESCE(kut.help_direct_trade_amt,0)
-        + COALESCE(klt.act_trade_amt,0)
-        + COALESCE(klt.trade_amt,0)
-        + COALESCE(kzt.trade_amt,0)
-        ) AS thisMonthTrade
+        ku.id, ku.username,ku.create_time,kur.create_time as real_time, ku.this_month_trade
         FROM
         FROM
         kxs_user ku
         kxs_user ku
         LEFT JOIN kxs_user_real kur ON kur.user_id = ku.id
         LEFT JOIN kxs_user_real kur ON kur.user_id = ku.id
-        LEFT JOIN kxs_stat.${param.tableName} kut ON kut.user_id = ku.id AND kut.total_type = 1
-        LEFT JOIN kxs_stat.kxs_lkb_trade klt ON kut.user_id = klt.user_id
-        AND kut.trade_month = klt.trade_month
-        LEFT JOIN kxs_stat.kxs_zlb_trade kzt ON kut.user_id = kzt.user_id
-        AND kut.trade_month = kzt.trade_month
         WHERE
         WHERE
-        ku.del_flag != 1
+        ku.del_flag = 0
+        AND ku.real_status = 1
         AND ku.pid = #{param.userId}
         AND ku.pid = #{param.userId}
         <if test="param.keyword != null and param.keyword != ''">
         <if test="param.keyword != null and param.keyword != ''">
             AND ku.username = #{param.keyword} or ku.user_code = #{param.keyword}
             AND ku.username = #{param.keyword} or ku.user_code = #{param.keyword}
@@ -95,15 +79,24 @@
         <if test="param.userLevel != null and param.userLevel != ''">
         <if test="param.userLevel != null and param.userLevel != ''">
             AND ku.user_level = #{param.userLevel}
             AND ku.user_level = #{param.userLevel}
         </if>
         </if>
-        AND ku.real_status = 1
-        GROUP BY ku.id, ku.username,ku.create_time,kur.create_time
         <if test="param.sort != null and param.sort !='' and param.sort == 'amount'">
         <if test="param.sort != null and param.sort !='' and param.sort == 'amount'">
-            ORDER BY thisMonthTrade DESC
+            ORDER BY ku.this_month_trade DESC
         </if>
         </if>
         <if test="param.sort != null and param.sort !='' and param.sort == 'time'">
         <if test="param.sort != null and param.sort !='' and param.sort == 'time'">
             ORDER BY realTime
             ORDER BY realTime
         </if>
         </if>
     </select>
     </select>
+    <select id="searchMyUserList" resultType="com.kxs.user.api.vo.kxsapp.user.SearchMyUserListVO">
+        SELECT
+        ku.id, ku.username, ku.create_time, ku.avatar, ku.user_code,ku.this_month_trade
+        FROM
+        kxs_user ku
+        WHERE
+        ku.del_flag = 0
+        AND ku.real_status = 1
+        AND ku.pid_path LIKE concat('%,', #{userId}, ',%')
+        AND (ku.username = #{keyword} or ku.user_code = #{keyword})
+    </select>
 
 
 
 
 </mapper>
 </mapper>