mac 2 лет назад
Родитель
Сommit
fce3283ecf
26 измененных файлов с 288 добавлено и 57 удалено
  1. 2 2
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/enums/UserAdvanceStatusEnum.java
  2. 31 0
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/enums/UserAdvanceTypeEnum.java
  3. 1 1
      kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/enums/UserStatusEnum.java
  4. 9 1
      kxs-common/kxs-common-security/src/main/java/com/kxs/common/security/service/KxsAppUserServiceImpl.java
  5. 11 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsMachine.java
  6. 9 3
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsTicket.java
  7. 21 0
      kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/brand/BrandListVO.java
  8. 36 3
      kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsBrandServiceImpl.java
  9. 3 6
      kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java
  10. 6 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java
  11. 2 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/KxsUserAddressService.java
  12. 68 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsUserAddressServiceImpl.java
  13. 3 34
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsUserServiceImpl.java
  14. 1 1
      kxs-transfer/src/main/resources/import.txt
  15. 7 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java
  16. 6 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUser.java
  17. 0 2
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserAddress.java
  18. 1 1
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserAdvance.java
  19. 24 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserAmount.java
  20. 7 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserWithdrawal.java
  21. 31 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/WithdrawalTypeEnum.java
  22. 2 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsAppController.java
  23. 1 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/UserAccountController.java
  24. 1 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAdvanceServiceImpl.java
  25. 5 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserServiceImpl.java
  26. 0 1
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserWithdrawalServiceImpl.java

+ 2 - 2
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/UserAdvanceStatusEnum.java → kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/enums/UserAdvanceStatusEnum.java

@@ -1,10 +1,10 @@
-package com.kxs.user.biz.constant.enums;
+package com.kxs.common.core.constant.enums;
 
 
 import lombok.Getter;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 
 
 /**
 /**
- * 用户帐户枚举
+ * 用户预扣款状态枚举
  *
  *
  * @author 没秃顶的码农
  * @author 没秃顶的码农
  * @date 2024-01-03
  * @date 2024-01-03

+ 31 - 0
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/enums/UserAdvanceTypeEnum.java

@@ -0,0 +1,31 @@
+package com.kxs.common.core.constant.enums;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 用户预扣款枚举
+ *
+ * @author 没秃顶的码农
+ * @date 2024-01-03
+ */
+@Getter
+@RequiredArgsConstructor
+public enum UserAdvanceTypeEnum {
+
+    MACHINE(0, "过期机具扣款"),
+    ADVANCE(1, "创客预扣款"),
+    STAGE(2, "分期预扣款"),
+    LEADER(3, "盟主预扣款"),
+    PARTNER(4, "合伙人预扣款");
+
+    /**
+     * 类型
+     */
+    private final Integer type;
+
+    /**
+     * 描述
+     */
+    private final String description;
+}

+ 1 - 1
kxs-common/kxs-common-core/src/main/java/com/kxs/common/core/constant/enums/UserStatusEnum.java

@@ -21,7 +21,7 @@ public enum UserStatusEnum {
 	NORMAL(1, "正常"),
 	NORMAL(1, "正常"),
 
 
 	/**
 	/**
-	 * 验证码登录
+	 * 锁定不可登陆和提现
 	 */
 	 */
 	LOCKED(2, "锁定");
 	LOCKED(2, "锁定");
 
 

+ 9 - 1
kxs-common/kxs-common-security/src/main/java/com/kxs/common/security/service/KxsAppUserServiceImpl.java

@@ -4,6 +4,7 @@ package com.kxs.common.security.service;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.constant.enums.ErrorTypeEnum;
 import com.kxs.common.core.constant.enums.ErrorTypeEnum;
 import com.kxs.common.core.constant.enums.UserStatusEnum;
 import com.kxs.common.core.constant.enums.UserStatusEnum;
+import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.RetOps;
 import com.kxs.common.core.util.RetOps;
 import com.kxs.common.security.model.KxsSecurityUser;
 import com.kxs.common.security.model.KxsSecurityUser;
@@ -12,10 +13,14 @@ import com.kxs.user.api.model.KxsUser;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.authentication.InternalAuthenticationServiceException;
+import org.springframework.security.authentication.LockedException;
 import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
 
 
+import java.util.Objects;
+
 /**
 /**
  * 客小爽 app用户服务实现
  * 客小爽 app用户服务实现
  *
  *
@@ -37,9 +42,12 @@ public class KxsAppUserServiceImpl implements KxsUserDetailsService{
                 .getData()
                 .getData()
                 .orElseThrow(() -> new UsernameNotFoundException(ErrorTypeEnum.BAD_CREDENTIALS.getDescription()));
                 .orElseThrow(() -> new UsernameNotFoundException(ErrorTypeEnum.BAD_CREDENTIALS.getDescription()));
 
 
-        if(custom.getStatus() == 0 ){
+        if(Objects.equals(custom.getStatus(), UserStatusEnum.REMOVE.getCode())){
             throw new UsernameNotFoundException(ErrorTypeEnum.BAD_CREDENTIALS.getDescription());
             throw new UsernameNotFoundException(ErrorTypeEnum.BAD_CREDENTIALS.getDescription());
         }
         }
+        if(Objects.equals(custom.getStatus(), UserStatusEnum.LOCKED.getCode())){
+            throw new LockedException(ErrorTypeEnum.ACCOUNT_LOCKED.getDescription());
+        }
         // 构造security用户
         // 构造security用户
         return new KxsSecurityUser(Long.valueOf(custom.getId()), custom.getPhone(), SecurityConstants.BCRYPT + custom.getPassword(), custom.getPhone(), custom.getSalt(), true, true,
         return new KxsSecurityUser(Long.valueOf(custom.getId()), custom.getPhone(), SecurityConstants.BCRYPT + custom.getPassword(), custom.getPhone(), custom.getSalt(), true, true,
                 true, !custom.getStatus().equals(UserStatusEnum.LOCKED.getCode()), AuthorityUtils.NO_AUTHORITIES);
                 true, !custom.getStatus().equals(UserStatusEnum.LOCKED.getCode()), AuthorityUtils.NO_AUTHORITIES);

+ 11 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsMachine.java

@@ -220,6 +220,17 @@ public class KxsMachine extends Model<KxsMachine> implements Serializable {
     private Integer isRatio;
     private Integer isRatio;
 
 
 
 
+    /**
+     * 盟主用户ID
+     */
+    @Schema(description = "盟主用户ID")
+    private Integer leaderId;
+
+    /**
+     * 合伙人用户ID
+     */
+    @Schema(description = "合伙人用户ID")
+    private Integer partnerId;
 
 
 
 
 }
 }

+ 9 - 3
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/model/KxsTicket.java

@@ -112,10 +112,16 @@ public class KxsTicket extends Model<KxsTicket> implements Serializable {
 
 
 
 
     /**
     /**
-     * 大盟主标记 0否 1是
+     * 盟主用户ID
      */
      */
-    @Schema(description = "大盟主标记 0否 1是")
-    private Integer isLeader;
+    @Schema(description = "盟主用户ID")
+    private Integer leaderId;
+
+    /**
+     * 合伙人用户ID
+     */
+    @Schema(description = "合伙人用户ID")
+    private Integer partnerId;
 
 
 
 
 
 

+ 21 - 0
kxs-product/kxs-product-api/src/main/java/com/kxs/product/api/vo/kxsapp/brand/BrandListVO.java

@@ -65,6 +65,27 @@ public class BrandListVO implements Serializable {
     private Integer sort;
     private Integer sort;
 
 
 
 
+    /**
+     * 已绑定数量
+     */
+    @Schema(description = "已绑定数量")
+    private Long bindCount;
+
+
+    /**
+     * 未绑定数量
+     */
+    @Schema(description = "未绑定数量")
+    private Long unBindCount;
+
+
+    /**
+     * 全部机具数量
+     */
+    @Schema(description = "全部机具数量")
+    private Long totalMachineCount;
+
+
 
 
 
 
 
 

+ 36 - 3
kxs-product/kxs-product-biz/src/main/java/com/kxs/product/biz/service/impl/KxsBrandServiceImpl.java

@@ -1,13 +1,19 @@
 package com.kxs.product.biz.service.impl;
 package com.kxs.product.biz.service.impl;
 
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.CacheConstants;
 import com.kxs.common.core.constant.CacheConstants;
+import com.kxs.common.core.constant.enums.MachineTypeEnum;
+import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.product.api.model.KxsBrand;
 import com.kxs.product.api.model.KxsBrand;
+import com.kxs.product.api.model.KxsMachine;
 import com.kxs.product.api.vo.kxsapp.brand.BrandListVO;
 import com.kxs.product.api.vo.kxsapp.brand.BrandListVO;
 import com.kxs.product.biz.constant.ProductConstants;
 import com.kxs.product.biz.constant.ProductConstants;
 import com.kxs.product.biz.mapper.KxsBrandMapper;
 import com.kxs.product.biz.mapper.KxsBrandMapper;
+import com.kxs.product.biz.mapper.KxsMachineMapper;
 import com.kxs.product.biz.service.KxsBrandService;
 import com.kxs.product.biz.service.KxsBrandService;
+import lombok.RequiredArgsConstructor;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -21,10 +27,13 @@ import java.util.List;
  * @since 2023-12-20 10:09:35
  * @since 2023-12-20 10:09:35
  */
  */
 @Service("kxsBrandService")
 @Service("kxsBrandService")
+@RequiredArgsConstructor
 public class KxsBrandServiceImpl extends ServiceImpl<KxsBrandMapper, KxsBrand> implements KxsBrandService {
 public class KxsBrandServiceImpl extends ServiceImpl<KxsBrandMapper, KxsBrand> implements KxsBrandService {
 
 
+    private final KxsMachineMapper kxsMachineMapper;
+
     @Override
     @Override
-    @CacheEvict(value = ProductConstants.BRAND_DETAILS, key = "'list'")
+//    @CacheEvict(value = ProductConstants.BRAND_DETAILS, key = "'list'")
     public Boolean sortByList(List<Integer> sorts) {
     public Boolean sortByList(List<Integer> sorts) {
 
 
         for (int i = 0; i < sorts.size(); i++) {
         for (int i = 0; i < sorts.size(); i++) {
@@ -38,10 +47,34 @@ public class KxsBrandServiceImpl extends ServiceImpl<KxsBrandMapper, KxsBrand> i
     }
     }
 
 
     @Override
     @Override
-    @Cacheable(value = ProductConstants.BRAND_DETAILS, key = "'list'", unless = "#result.isEmpty()")
+//    @Cacheable(value = ProductConstants.BRAND_DETAILS, key = "'list'", unless = "#result.isEmpty()")
     public List<BrandListVO> getSortByList() {
     public List<BrandListVO> getSortByList() {
 
 
-        return baseMapper.getSortByList();
+        Long userId = SecurityUtils.getUser().getId();
+
+        List<BrandListVO> brandList = baseMapper.getSortByList();
+        for (BrandListVO brandListVO : brandList) {
+            Long totalCount = kxsMachineMapper.selectCount(Wrappers.<KxsMachine>lambdaQuery()
+                    .eq(KxsMachine::getUserId, userId)
+                    .eq(KxsMachine::getBrandId, brandListVO.getId()));
+            brandListVO.setTotalMachineCount(totalCount == null ? 0L : totalCount);
+
+            Long unBindCount = kxsMachineMapper.selectCount(Wrappers.<KxsMachine>lambdaQuery()
+                    .eq(KxsMachine::getUserId, userId)
+                    .eq(KxsMachine::getBindStatus, MachineTypeEnum.NO_BIND.getType())
+                    .eq(KxsMachine::getBrandId, brandListVO.getId()));
+            brandListVO.setUnBindCount(unBindCount == null ? 0L : unBindCount);
+
+            Long bindCount = kxsMachineMapper.selectCount(Wrappers.<KxsMachine>lambdaQuery()
+                    .eq(KxsMachine::getUserId, userId)
+                    .eq(KxsMachine::getBindStatus, MachineTypeEnum.BIND.getType())
+                    .eq(KxsMachine::getBrandId, brandListVO.getId()));
+            brandListVO.setBindCount(bindCount == null ? 0L : bindCount);
+
+        }
+
+
+        return brandList;
     }
     }
 
 
 
 

+ 3 - 6
kxs-store/kxs-store-biz/src/main/java/com/kxs/store/biz/service/impl/KxsMachineApplyServiceImpl.java

@@ -10,10 +10,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.constant.SecurityConstants;
-import com.kxs.common.core.constant.enums.BrandTypeEnum;
-import com.kxs.common.core.constant.enums.ErrorTypeEnum;
-import com.kxs.common.core.constant.enums.KindTypeEnum;
-import com.kxs.common.core.constant.enums.MachineTypeEnum;
+import com.kxs.common.core.constant.enums.*;
 import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.RetOps;
 import com.kxs.common.core.util.RetOps;
@@ -215,13 +212,13 @@ public class KxsMachineApplyServiceImpl extends ServiceImpl<KxsMachineApplyMappe
                             .getData()
                             .getData()
                             .orElseThrow(() -> new GlobalCustomerException(StoreErrorTypeEnum.DATA_ERROR.getDescription()));
                             .orElseThrow(() -> new GlobalCustomerException(StoreErrorTypeEnum.DATA_ERROR.getDescription()));
                     //预扣款未扣 删除该条预扣款
                     //预扣款未扣 删除该条预扣款
-                    if (advance.getStatus() == 0) {
+                    if (Objects.equals(advance.getStatus(), UserAdvanceStatusEnum.ADVANCE_NOT_CHARGED.getType())) {
                         R<Boolean> result = remoteKxsUserService.removeById(advance.getId(), SecurityConstants.FROM_IN);
                         R<Boolean> result = remoteKxsUserService.removeById(advance.getId(), SecurityConstants.FROM_IN);
                         if(!result.getData()){
                         if(!result.getData()){
                             throw new GlobalCustomerException(StoreErrorTypeEnum.DATA_ERROR.getDescription());
                             throw new GlobalCustomerException(StoreErrorTypeEnum.DATA_ERROR.getDescription());
                         }
                         }
                     }
                     }
-                    if(advance.getStatus() == 1){
+                    if(Objects.equals(advance.getStatus(), UserAdvanceStatusEnum.ADVANCE_CHARGED.getType())){
                         //预扣款已扣,返还给创客余额并修改预扣款为已返还
                         //预扣款已扣,返还给创客余额并修改预扣款为已返还
                         R<Boolean> result = remoteKxsUserService.returnAdvance(advance.getId(), SecurityConstants.FROM);
                         R<Boolean> result = remoteKxsUserService.returnAdvance(advance.getId(), SecurityConstants.FROM);
                         if(!result.getData()){
                         if(!result.getData()){

+ 6 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -7,6 +7,7 @@ import com.kxs.transfer.api.annotation.DtsMsgListener;
 import com.kxs.transfer.api.model.KxsDtsLog;
 import com.kxs.transfer.api.model.KxsDtsLog;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.transfer.api.service.KxsDtsLogService;
 import com.kxs.transfer.api.service.KxsDtsLogService;
+import com.kxs.transfer.api.service.user.KxsUserAddressService;
 import com.kxs.transfer.api.service.user.KxsUserService;
 import com.kxs.transfer.api.service.user.KxsUserService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
@@ -32,6 +33,7 @@ public class DtsController {
     private final KxsDtsLogService kxsDtsLogService;
     private final KxsDtsLogService kxsDtsLogService;
 
 
     private final KxsUserService kxsUserService;
     private final KxsUserService kxsUserService;
+    private final KxsUserAddressService kxsUserAddressService;
 
 
     @DtsMsgListener
     @DtsMsgListener
     public void dtsListener(Long dataId, DMLData dmlData, DefaultUserRecord record){
     public void dtsListener(Long dataId, DMLData dmlData, DefaultUserRecord record){
@@ -66,6 +68,10 @@ public class DtsController {
         if("Users".equals(dmlData.getTableName())){
         if("Users".equals(dmlData.getTableName())){
             kxsUserService.changeUser(dmlData);
             kxsUserService.changeUser(dmlData);
         }
         }
+        //用户地址表
+        if("UserAddress".equals(dmlData.getTableName())){
+            kxsUserAddressService.changeData(dmlData);
+        }
         //密码操作
         //密码操作
         if("UserMoveInfo".equals(dmlData.getTableName())){
         if("UserMoveInfo".equals(dmlData.getTableName())){
             kxsUserService.changeUserPwd(dmlData);
             kxsUserService.changeUserPwd(dmlData);

+ 2 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/KxsUserAddressService.java

@@ -2,6 +2,7 @@ package com.kxs.transfer.api.service.user;
 
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
+import com.kxs.transfer.api.model.table.DMLData;
 import com.kxs.user.api.dto.kxsapp.userAddress.UserAddressDTO;
 import com.kxs.user.api.dto.kxsapp.userAddress.UserAddressDTO;
 import com.kxs.user.api.model.KxsUserAddress;
 import com.kxs.user.api.model.KxsUserAddress;
 import com.kxs.user.api.vo.kxsapp.userAddress.UserAddressListVO;
 import com.kxs.user.api.vo.kxsapp.userAddress.UserAddressListVO;
@@ -16,5 +17,6 @@ import java.util.List;
  */
  */
 public interface KxsUserAddressService extends IService<KxsUserAddress> {
 public interface KxsUserAddressService extends IService<KxsUserAddress> {
 
 
+    void changeData(DMLData dmlData);
 }
 }
 
 

+ 68 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsUserAddressServiceImpl.java

@@ -1,11 +1,21 @@
 package com.kxs.transfer.api.service.user.impl;
 package com.kxs.transfer.api.service.user.impl;
 
 
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.LocalDateTimeUtil;
+import com.aliyun.dts.subscribe.clients.record.OperationType;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.transfer.api.mapper.user.KxsUserAddressMapper;
 import com.kxs.transfer.api.mapper.user.KxsUserAddressMapper;
+import com.kxs.transfer.api.model.table.DMLData;
+import com.kxs.transfer.api.model.table.FieldData;
 import com.kxs.transfer.api.service.user.KxsUserAddressService;
 import com.kxs.transfer.api.service.user.KxsUserAddressService;
+import com.kxs.user.api.model.KxsUser;
 import com.kxs.user.api.model.KxsUserAddress;
 import com.kxs.user.api.model.KxsUserAddress;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
+
 /**
 /**
  * 用户收货地址表(KxsUserAddress)表服务实现类
  * 用户收货地址表(KxsUserAddress)表服务实现类
  *
  *
@@ -15,5 +25,63 @@ import org.springframework.stereotype.Service;
 @Service("kxsUserAddressService")
 @Service("kxsUserAddressService")
 public class KxsUserAddressServiceImpl extends ServiceImpl<KxsUserAddressMapper, KxsUserAddress> implements KxsUserAddressService {
 public class KxsUserAddressServiceImpl extends ServiceImpl<KxsUserAddressMapper, KxsUserAddress> implements KxsUserAddressService {
 
 
+    @Override
+    public void changeData(DMLData dmlData) {
+        //修改的字段值
+        Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        //全部字段值
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+        //修改的字段
+        List<String> changeFieldList = dmlData.getChangeFieldList();
+        //操作的主键
+        int id = Integer.parseInt(dmlData.getId());
+
+        KxsUserAddress address = new KxsUserAddress();
+        address.setId(id);
+        //操作类型
+        OperationType operation = dmlData.getOperation();
+        for (String field : changeFieldList) {
+
+            switch (field) {
+                case "RealName":
+                    address.setConsignee(validFieldDataMap.get(field).toString());
+                    break;
+                case "Mobile":
+                    address.setPhone(validFieldDataMap.get(field).toString());
+                    break;
+                case "Address":
+                    address.setAddress(validFieldDataMap.get(field).toString());
+                    break;
+                case "UserId":
+                    address.setUserId(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "IsDefault":
+                    address.setIsDefault(Integer.valueOf(validFieldDataMap.get(field).toString()));
+                    break;
+                case "Areas":
+                    String[] split = validFieldDataMap.get(field).toString().split(",");
+                    if(split.length == 3){
+                        address.setProvince(split[0]);
+                        address.setCity(split[1]);
+                        address.setArea(split[2]);
+                    }
+                    break;
+            }
+        }
+
+        if(operation.equals(OperationType.UPDATE)){
+            baseMapper.updateById(address);
+        }
+        if(operation.equals(OperationType.INSERT)){
+            FieldData createDate = fieldDataMap.get("CreateDate");
+            FieldData updateDate = fieldDataMap.get("UpdateDate");
+
+            LocalDateTime createTime = LocalDateTimeUtil.parse(createDate.getValue().toString(), DatePattern.NORM_DATETIME_PATTERN);
+            LocalDateTime updateTime = LocalDateTimeUtil.parse(updateDate.getValue().toString(), DatePattern.NORM_DATETIME_PATTERN);
+            address.setCreateTime(createTime);
+            address.setUpdateTime(updateTime);
+            baseMapper.insert(address);
+        }
+    }
 }
 }
 
 

+ 3 - 34
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsUserServiceImpl.java

@@ -71,11 +71,6 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         //操作的主键
         //操作的主键
         String userId = dmlData.getId();
         String userId = dmlData.getId();
 
 
-        KxsUser kxsUser = baseMapper.selectById(userId);
-        if(kxsUser == null){
-            return;
-        }
-
         KxsUser user = new KxsUser();
         KxsUser user = new KxsUser();
         KxsUserReal userReal = new KxsUserReal();
         KxsUserReal userReal = new KxsUserReal();
         KxsUserBank userBank = new KxsUserBank();
         KxsUserBank userBank = new KxsUserBank();
@@ -181,20 +176,9 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         }
         }
 
 
         if(operation.equals(OperationType.UPDATE)){
         if(operation.equals(OperationType.UPDATE)){
-//            user.setId(Integer.valueOf(userId));
-//            userReal.setUserId(Integer.valueOf(userId));
-//            userBank.setUserId(Integer.valueOf(userId));
 
 
             if(BeanUtil.isNotEmpty(user, "entityClass")){
             if(BeanUtil.isNotEmpty(user, "entityClass")){
                 user.setId(Integer.valueOf(userId));
                 user.setId(Integer.valueOf(userId));
-                //密码明文
-                if(StrUtil.isNotBlank(user.getPassword())){
-                    user.setPassword(ENCODER.encode(user.getPassword() + kxsUser.getSalt()));
-                }
-                //支付密码明文
-                if(StrUtil.isNotBlank(user.getPayPwd())){
-                    user.setPayPwd(ENCODER.encode(user.getPayPwd() + kxsUser.getSalt()));
-                }
                 baseMapper.updateById(user);
                 baseMapper.updateById(user);
             }
             }
             if(BeanUtil.isNotEmpty(userReal, "entityClass")){
             if(BeanUtil.isNotEmpty(userReal, "entityClass")){
@@ -222,27 +206,12 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         if(operation.equals(OperationType.INSERT)){
         if(operation.equals(OperationType.INSERT)){
             //加盐
             //加盐
             String salt = UUID.randomUUID().toString();
             String salt = UUID.randomUUID().toString();
-            kxsUser.setSalt(salt);
+            user.setSalt(salt);
             //登陆密码
             //登陆密码
-            kxsUser.setPassword(ENCODER.encode(user.getPassword() + salt));
+            user.setPassword(ENCODER.encode(user.getPassword() + salt));
+            user.setId(Integer.valueOf(userId));
             baseMapper.insert(user);
             baseMapper.insert(user);
 
 
-            //添加用户账户表
-//            KxsUserAmount kxsUserAmount = new KxsUserAmount();
-//            kxsUserAmount.setUserId(kxsUser.getId());
-//            userAmountMapper.insert(kxsUserAmount);
-//
-//            //初始化用户预发额度表
-//            KxsWarehouseLimit kxsWarehouseLimit = new KxsWarehouseLimit();
-//            kxsWarehouseLimit.setUserId(kxsUser.getId());
-//            R<Boolean> booleanR = remoteKxsStoreService.addUserAdvanceLimit(kxsWarehouseLimit, SecurityConstants.FROM_IN);
-//            if(!booleanR.getData()){
-//                throw new RuntimeException(ErrorTypeEnum.REMOTE_DATA_ERROR.getDescription());
-//            }
-//
-//            //发送个人消息
-//            KxsUserMsg kxsUserMsg = MsgTemplateUtil.newUserPush(user.getPid());
-//            remoteUserMsgService.pushUserMsg(kxsUserMsg, SecurityConstants.FROM_IN);
         }
         }
 
 
     }
     }

+ 1 - 1
kxs-transfer/src/main/resources/import.txt

@@ -1,5 +1,5 @@
 //用户基础信息表
 //用户基础信息表
-select Id as id, RealName as username, Mobile as phone, ReferralUserId as hidden_level, Areas as address,
+select Id as id, (case Status when  0 then 1 when -1 then 0 else 0 end ) as status, RealName as username, Mobile as phone, ReferralUserId as hidden_level, Areas as address,
 ParentUserId as pid, CONCAT('0',REPLACE(ParentNav,',,',','))  as pid_path, MakerCode as user_code, HeadPhoto as avatar,
 ParentUserId as pid, CONCAT('0',REPLACE(ParentNav,',,',','))  as pid_path, MakerCode as user_code, HeadPhoto as avatar,
 UserLevel as user_level, AuthFlag as real_status, MerchantType as is_merchant_maker, Remark as remark, CreateDate as create_time, UpdateDate as update_time
 UserLevel as user_level, AuthFlag as real_status, MerchantType as is_merchant_maker, Remark as remark, CreateDate as create_time, UpdateDate as update_time
 FROM Users
 FROM Users

+ 7 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java

@@ -99,6 +99,13 @@ public interface RemoteKxsUserService {
 	@GetExchange("/user/checkUserIsChildren")
 	@GetExchange("/user/checkUserIsChildren")
 	R<Boolean> checkUserIsChildren(@RequestParam("userId") Integer userId, @RequestParam("checkUserId") Integer checkUserId, @RequestHeader(SecurityConstants.FROM) String from);
 	R<Boolean> checkUserIsChildren(@RequestParam("userId") Integer userId, @RequestParam("checkUserId") Integer checkUserId, @RequestHeader(SecurityConstants.FROM) String from);
 
 
+	/**
+	 * 用户金额变化
+	 *
+	 * @param userAmount 用户金额
+	 * @param from       调用标志
+	 * @return {@link R}<{@link Boolean}>
+	 */
 	@PostExchange("/userAccount/userAmountChange")
 	@PostExchange("/userAccount/userAmountChange")
 	R<Boolean> userAmountChange(@RequestBody KxsUserAmountLog userAmount, @RequestHeader(SecurityConstants.FROM) String from);
 	R<Boolean> userAmountChange(@RequestBody KxsUserAmountLog userAmount, @RequestHeader(SecurityConstants.FROM) String from);
 }
 }

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

@@ -47,6 +47,12 @@ public class KxsUser extends Model<KxsUser> {
      */     
      */     
     @Schema(description = "是否商户型创客 0否 1是")
     @Schema(description = "是否商户型创客 0否 1是")
     private Integer isMerchantMaker;
     private Integer isMerchantMaker;
+
+    /**
+     * 成为商户型创客时间
+     */
+    @Schema(description = "成为商户型创客时间")
+    private Integer toMerchantMakerTime;
     
     
     
     
     /**
     /**

+ 0 - 2
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserAddress.java

@@ -57,8 +57,6 @@ public class KxsUserAddress extends Model<KxsUserAddress> implements Serializabl
     @Schema(description = "删除标记,0未删除,1已删除")
     @Schema(description = "删除标记,0未删除,1已删除")
     private String delFlag;
     private String delFlag;
 
 
-
-
     /**
     /**
      * 版本
      * 版本
      */
      */

+ 1 - 1
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserAdvance.java

@@ -76,7 +76,7 @@ public class KxsUserAdvance extends Model<KxsUserAdvance> implements Serializabl
     /**
     /**
      * 预扣款类型 0过期机具扣款 1创客预扣款 2分期预扣款
      * 预扣款类型 0过期机具扣款 1创客预扣款 2分期预扣款
      */
      */
-    @Schema(description = "预扣款类型 0过期机具扣款 1创客预扣款 2分期预扣款")
+    @Schema(description = "预扣款类型 0过期机具扣款 1创客预扣款 2分期预扣款 3盟主预扣款 4合伙人预扣款")
     private Integer advanceType;
     private Integer advanceType;
 
 
 
 

+ 24 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserAmount.java

@@ -114,6 +114,30 @@ public class KxsUserAmount extends Model<KxsUserAmount> implements Serializable
     @Schema(description = "预扣款")
     @Schema(description = "预扣款")
     private BigDecimal advanceAmount;
     private BigDecimal advanceAmount;
 
 
+    /**
+     * 盟主储备金
+     */
+    @Schema(description = "盟主储备金")
+    private BigDecimal leaderReserve;
+
+    /**
+     * 盟主余额
+     */
+    @Schema(description = "盟主余额")
+    private BigDecimal leaderBalanceAmount;
+
+    /**
+     * 盟主预扣款
+     */
+    @Schema(description = "盟主预扣款")
+    private BigDecimal leaderAdvanceAmount;
+    
+    /**
+     * 合伙人预扣款
+     */
+    @Schema(description = "合伙人预扣款")
+    private BigDecimal partnerAdvanceAmount;
+
 
 
 }
 }
 
 

+ 7 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsUserWithdrawal.java

@@ -137,6 +137,13 @@ public class KxsUserWithdrawal extends Model<KxsUserWithdrawal> implements Seria
     private Integer applyStatus;
     private Integer applyStatus;
 
 
 
 
+    /**
+     * 提现类型 普通提现=0 盟主提现=3
+     */
+    @Schema(description = "提现类型 普通提现=0 盟主提现=3")
+    private Integer withdrawalType;
+
+
     /**
     /**
      * 代付返回信息json
      * 代付返回信息json
      */
      */

+ 31 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/WithdrawalTypeEnum.java

@@ -0,0 +1,31 @@
+package com.kxs.user.biz.constant.enums;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 提款状态
+ *
+ * @author 没秃顶的码农
+ * @date 2024-01-03
+ */
+@Getter
+@RequiredArgsConstructor
+public enum WithdrawalTypeEnum {
+
+
+    NORMAL(0, "普通提现"),
+    LEADER(3, "盟主提现");
+
+
+
+    /**
+     * 类型
+     */
+    private final Integer type;
+
+    /**
+     * 描述
+     */
+    private final String description;
+}

+ 2 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsAppController.java

@@ -50,6 +50,7 @@ public class KxsAppController {
      * @param phone 手机号
      * @param phone 手机号
      * @return 发送验证码
      * @return 发送验证码
      */
      */
+    @Inner(value = false)
     @GetMapping("/sendCode")
     @GetMapping("/sendCode")
     public R sendCode(@RequestParam("phone") String phone) {
     public R sendCode(@RequestParam("phone") String phone) {
 
 
@@ -141,6 +142,7 @@ public class KxsAppController {
      * @param param 实体对象
      * @param param 实体对象
      * @return 找回密码
      * @return 找回密码
      */
      */
+    @Inner(value = false)
     @PostMapping("/forgetPwd")
     @PostMapping("/forgetPwd")
     public R forgetPwd(@Valid @RequestBody ForgetPwdDTO param) {
     public R forgetPwd(@Valid @RequestBody ForgetPwdDTO param) {
 
 

+ 1 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/UserAccountController.java

@@ -9,7 +9,7 @@ import com.kxs.user.api.model.KxsUserAdvance;
 import com.kxs.user.api.model.KxsUserAmountLog;
 import com.kxs.user.api.model.KxsUserAmountLog;
 import com.kxs.user.api.vo.kxsapp.userAccount.UserAmountVariationListVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.UserAmountVariationListVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.WithdrawListVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.WithdrawListVO;
-import com.kxs.user.biz.constant.enums.UserAdvanceStatusEnum;
+import com.kxs.common.core.constant.enums.UserAdvanceStatusEnum;
 import com.kxs.user.biz.service.*;
 import com.kxs.user.biz.service.*;
 import jakarta.validation.Valid;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;

+ 1 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAdvanceServiceImpl.java

@@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.R;
 import com.kxs.user.api.model.KxsUserAmount;
 import com.kxs.user.api.model.KxsUserAmount;
-import com.kxs.user.biz.constant.enums.UserAdvanceStatusEnum;
+import com.kxs.common.core.constant.enums.UserAdvanceStatusEnum;
 import com.kxs.user.biz.mapper.KxsUserAdvanceMapper;
 import com.kxs.user.biz.mapper.KxsUserAdvanceMapper;
 import com.kxs.user.api.model.KxsUserAdvance;
 import com.kxs.user.api.model.KxsUserAdvance;
 import com.kxs.user.biz.mapper.KxsUserAmountMapper;
 import com.kxs.user.biz.mapper.KxsUserAmountMapper;

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

@@ -192,6 +192,10 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
         if(user == null){
         if(user == null){
             throw new GlobalCustomerException(UserErrorTypeEnum.USER_NOT_EXIST.getDescription());
             throw new GlobalCustomerException(UserErrorTypeEnum.USER_NOT_EXIST.getDescription());
         }
         }
+
+        if(CharSequenceUtil.isBlank(user.getSalt())){
+            user.setSalt(UUID.randomUUID().toString());
+        }
         //检查重复密码
         //检查重复密码
         if(!Objects.equals(param.getPassword(), param.getConfirmPwd())){
         if(!Objects.equals(param.getPassword(), param.getConfirmPwd())){
             throw new GlobalCustomerException(UserErrorTypeEnum.PWD_NOT_EQUALS.getDescription());
             throw new GlobalCustomerException(UserErrorTypeEnum.PWD_NOT_EQUALS.getDescription());
@@ -202,6 +206,7 @@ public class KxsUserServiceImpl extends ServiceImpl<KxsUserMapper, KxsUser> impl
 
 
         //保存新密码
         //保存新密码
         this.updateById(user);
         this.updateById(user);
+
         return Boolean.TRUE;
         return Boolean.TRUE;
     }
     }
 
 

+ 0 - 1
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserWithdrawalServiceImpl.java

@@ -30,7 +30,6 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
 
 
 /**
 /**
  * 用户提现申请表(KxsUserWithdrawal)表服务实现类
  * 用户提现申请表(KxsUserWithdrawal)表服务实现类