فهرست منبع

Merge branch 'develop' into develop-leader

* develop:
  我的创客-新增搜索创客
  机具申请新增备注字段
  修复仓库相关接口
mac 2 سال پیش
والد
کامیت
cc73d63234
16فایلهای تغییر یافته به همراه187 افزوده شده و 45 حذف شده
  1. 6 0
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/dto/kxsapp/storeOrder/ApplyMachineDTO.java
  2. 10 0
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/store/StoreListVO.java
  3. 7 2
      kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeOrder/StoreOrderDetailVO.java
  4. 5 2
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreController.java
  5. 1 1
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsWarehouseService.java
  6. 19 11
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseServiceImpl.java
  7. 1 0
      kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineApplyMapper.xml
  8. 1 0
      kxs-store/kxs-store-biz/src/main/resources/mapper/KxsWarehouseMapper.xml
  9. 4 1
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/dto/kxsapp/user/UserMyUserListDTO.java
  10. 6 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUser.java
  11. 65 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/user/SearchMyUserListVO.java
  12. 12 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsUserController.java
  13. 12 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsUserMapper.java
  14. 8 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserService.java
  15. 14 5
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java
  16. 16 23
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsUserMapper.xml

+ 6 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/dto/kxsapp/storeOrder/ApplyMachineDTO.java

@@ -68,6 +68,12 @@ public class ApplyMachineDTO {
     @Schema(description = "收货地址")
     private String address;
 
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    private String remark;
+
 
     /**
      * 申请类型 1循环申请 0兑换券

+ 10 - 0
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/store/StoreListVO.java

@@ -71,6 +71,16 @@ public class StoreListVO implements Serializable {
     @Schema(description = "未发货机具数量")
     private Integer unfilledTotal;
 
+    /**
+     * 库存数量
+     */
+    private Integer stockNum;
+
+    /**
+     * 预发机数量
+     */
+    private Integer prePosNum;
+
 	
 
 }

+ 7 - 2
kxs-store/kxs-store-api/src/main/java/com/kxs/store/api/vo/kxsapp/storeOrder/StoreOrderDetailVO.java

@@ -96,14 +96,19 @@ public class StoreOrderDetailVO implements Serializable {
      * 用户姓名
      */
     @Schema(description = "用户姓名")
-    private Object username;
+    private String username;
 
 
     /**
      * 用户编号
      */
     @Schema(description = "用户编号")
-    private Object userCode;
+    private String userCode;
+
+    /**
+     * 备注
+     */
+    private String remark;
 
 
     /**

+ 5 - 2
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/controller/kxsapp/StoreController.java

@@ -50,13 +50,16 @@ public class StoreController {
 
 
     /**
+     * 列表
      * 用户所属仓库
      *
+     * @param reqType 要求类型
      * @return 用户所属仓库
      */
     @GetMapping("/list")
-    public R list() {
-        return R.ok(kxsWarehouseService.userStoreList());
+    public R list(@RequestParam("reqType") Integer reqType) {
+
+        return R.ok(kxsWarehouseService.userStoreList(reqType));
     }
 
 

+ 1 - 1
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/KxsWarehouseService.java

@@ -33,7 +33,7 @@ public interface KxsWarehouseService extends IService<KxsWarehouse> {
      *
      * @return {@link StoreListVO}
      */
-    List<StoreListVO> userStoreList();
+    List<StoreListVO> userStoreList(Integer reqType);
 
     /**
      * 仓库数据

+ 19 - 11
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsWarehouseServiceImpl.java

@@ -1,6 +1,5 @@
 package com.kxs.store.biz.service.impl;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -12,23 +11,20 @@ import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.RetOps;
 import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.product.api.feign.RemoteKxsProductService;
 import com.kxs.store.api.dto.kxsapp.store.StoreSearchListDTO;
 import com.kxs.store.api.model.*;
-import com.kxs.store.api.vo.kxsapp.store.StoreBrandListVO;
 import com.kxs.store.api.vo.kxsapp.store.StoreDataVO;
 import com.kxs.store.api.vo.kxsapp.store.StoreListVO;
 import com.kxs.store.api.vo.kxsapp.store.StoreSearchListVO;
-import com.kxs.store.biz.constant.enums.MachineOrderEnum;
 import com.kxs.store.biz.constant.enums.MachineOrderStatusEnum;
 import com.kxs.store.biz.mapper.*;
 import com.kxs.store.biz.service.KxsWarehouseService;
 import com.kxs.user.api.feign.RemoteKxsUserService;
 import com.kxs.user.api.model.KxsUser;
 import lombok.RequiredArgsConstructor;
-import org.checkerframework.checker.units.qual.K;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -51,6 +47,7 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
     private final KxsWarehouseMapper kxsWarehouseMapper;
 
     private final RemoteKxsUserService remoteKxsUserService;
+    private final RemoteKxsProductService remoteKxsProductService;
 
     @Override
     public IPage<StoreSearchListVO> searchList(Page<StoreSearchListVO> page, StoreSearchListDTO param) {
@@ -68,15 +65,26 @@ public class KxsWarehouseServiceImpl extends ServiceImpl<KxsWarehouseMapper, Kxs
     }
 
     @Override
-    public List<StoreListVO> userStoreList() {
+    public List<StoreListVO> userStoreList(Integer reqType) {
         Long userId = SecurityUtils.getUser().getId();
         List<StoreListVO> storeListVOS = baseMapper.userStoreList(userId);
         for (StoreListVO storeListVO : storeListVOS) {
-            //待发货
-            Long unSendCount = kxsMachineApplyMapper.selectCount(Wrappers.<KxsMachineApply>lambdaQuery()
-                    .eq(KxsMachineApply::getStatus, MachineOrderStatusEnum.UNDER_REVIEW.getType())
-                    .eq(KxsMachineApply::getWarehouseId, storeListVO.getId()));
-            storeListVO.setUnfilledTotal(unSendCount.intValue());
+            if(reqType == 0){
+                //待发货
+                Long unSendCount = kxsMachineApplyMapper.selectCount(Wrappers.<KxsMachineApply>lambdaQuery()
+                        .eq(KxsMachineApply::getStatus, MachineOrderStatusEnum.UNDER_REVIEW.getType())
+                        .eq(KxsMachineApply::getWarehouseId, storeListVO.getId()));
+                storeListVO.setUnfilledTotal(unSendCount.intValue());
+            }
+            if(reqType == 1){
+                //查询仓库库存
+                KxsWarehouseStock warehouseStock = kxsWarehouseStockMapper.selectOne(Wrappers.<KxsWarehouseStock>lambdaQuery()
+                        .eq(KxsWarehouseStock::getWarehouseId, storeListVO.getId()));
+                storeListVO.setStockNum(warehouseStock.getStockNum());
+                //查询预发机数量
+                Long preMachineCount = kxsMachineAdvanceMapper.selectWarehouseUserCount(storeListVO.getId());
+                storeListVO.setPrePosNum(preMachineCount.intValue());
+            }
         }
         return storeListVOS;
     }

+ 1 - 0
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsMachineApplyMapper.xml

@@ -49,6 +49,7 @@
                 '%'))
             </if>
         </where>
+        order by a.create_time desc
     </select>
     <select id="orderMonthTotal" resultType="com.kxs.store.api.vo.kxsapp.storeOrder.OrderMonthTotalVO">
         select * from

+ 1 - 0
kxs-store/kxs-store-biz/src/main/resources/mapper/KxsWarehouseMapper.xml

@@ -60,6 +60,7 @@
         from kxs_warehouse
         where user_id = #{userId}
           and del_flag = 0
+          and  warehouse_type &lt; 2
     </select>
 
 

+ 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 = "排序值不能为空")
     private String sort;
-    private String tableName;
+
+    /**
+     * 用户 ID
+     */
     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.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 
 import com.baomidou.mybatisplus.annotation.*;
@@ -156,6 +157,11 @@ public class KxsUser extends Model<KxsUser> {
     @Schema(description = "用户名")
     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) {
         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.model.KxsUser;
 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 org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 
+import java.util.List;
+
 /**
  * 用户表(KxsSecurityUser)表数据库访问层
  *
@@ -56,5 +59,14 @@ public interface KxsUserMapper extends BaseMapper<KxsUser> {
      * @return {@link Integer}
      */
     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.model.KxsUser;
 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.UserInfoVO;
 import com.kxs.user.api.vo.kxsapp.userLevel.LevelDetailVO;
@@ -277,5 +278,12 @@ public interface KxsUserService extends IService<KxsUser> {
      */
     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.R;
 import com.kxs.common.core.util.SpringContextHolder;
+import com.kxs.common.core.util.TotalDateUtil;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.feign.RemoteKxsProductService;
 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.transaction.annotation.Transactional;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
@@ -267,6 +269,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         return R.ok();
     }
 
+
     @Override
     public Boolean sendCode(String mobile) {
 
@@ -497,12 +500,18 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
 
     @Override
     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());
         return baseMapper.myUserList(page,param);
     }
 
+    @Override
+    public List<SearchMyUserListVO> searchMyUserList(String keyword) {
+
+        Long userId = SecurityUtils.getUser().getId();
+        return baseMapper.searchMyUserList(userId, keyword);
+    }
+
     @Override
     public Object myUserStatistics() {
         Long userId = SecurityUtils.getUser().getId();
@@ -521,9 +530,9 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
     public R myUserDetail(Integer id) {
         KxsUser byId = getById(id);
         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);
         KxsUserReal kxsUserReal = kxsUserRealMapper.selectOne(Wrappers.<KxsUserReal>query().lambda().eq(KxsUserReal::getUserId, id));
         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="create_time" property="createTime"/>
         <result column="to_merchant_maker_time" property="toMerchantMakerTime"/>
+        <result column="this_month_trade" property="thisMonthTrade"/>
     </resultMap>
     <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
@@ -64,30 +65,13 @@
     </select>
     <select id="myUserList" resultType="com.kxs.user.api.vo.kxsapp.user.UserMyUserListVO">
         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
         kxs_user ku
         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
-        ku.del_flag != 1
+        ku.del_flag = 0
+        AND ku.real_status = 1
         AND ku.pid = #{param.userId}
         <if test="param.keyword != null and 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 != ''">
             AND ku.user_level = #{param.userLevel}
         </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'">
-            ORDER BY thisMonthTrade DESC
+            ORDER BY ku.this_month_trade DESC
         </if>
         <if test="param.sort != null and param.sort !='' and param.sort == 'time'">
             ORDER BY realTime
         </if>
     </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>