Pota1ovO 2 سال پیش
والد
کامیت
25b07e0caa

+ 0 - 85
kxs-stat/kxs-stat-api/src/main/java/com/kxs/stat/api/feign/config/KxsStoreFeignClientConfiguration.java

@@ -1,85 +0,0 @@
-package com.kxs.stat.api.feign.config;
-
-import cn.hutool.core.text.CharSequenceUtil;
-import com.kxs.common.core.constant.ServiceNameConstants;
-import com.kxs.stat.api.feign.RemoteKxsStatService;
-import io.seata.core.context.RootContext;
-import jakarta.servlet.http.HttpServletRequest;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.cloud.client.loadbalancer.reactive.ReactorLoadBalancerExchangeFilterFunction;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.HttpHeaders;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-import org.springframework.web.reactive.function.client.ClientRequest;
-import org.springframework.web.reactive.function.client.WebClient;
-import org.springframework.web.reactive.function.client.support.WebClientAdapter;
-import org.springframework.web.service.invoker.HttpServiceProxyFactory;
-
-/**
- * <p>
- * 当前服务的webClient配置
- * 服务下的远程调用统一在此配置
- * 使用注册中心 需配置远程调用器 以实现负载均衡
- * </p>
- *
- * @author 没秃顶的码农
- * @date 2023/11/13
- */
-@Configuration
-@RequiredArgsConstructor
-public class KxsStoreFeignClientConfiguration {
-
-	/**
-	 * 负载均衡器
-	 */
-	private final ReactorLoadBalancerExchangeFilterFunction reactorLoadBalancerExchangeFilterFunction;
-
-	private static final String SERVICE_NAME = ServiceNameConstants.CLIENT_NAME + ServiceNameConstants.STAT_SERVICE;
-
-	@Bean("kxsStatFeignClient")
-	public WebClient oauthRequestInterceptor() {
-
-
-		return WebClient.builder()
-			// 给请求添加过滤器,添加自定义的认证头
-			.filter((request, next) -> {
-				ClientRequest.Builder filtered = ClientRequest.from(request);
-
-				// seata XID传递
-				String xid = RootContext.getXID();
-				if (CharSequenceUtil.isNotBlank(xid)) {
-					filtered.header(RootContext.KEY_XID, xid);
-				}
-
-				ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder
-					.getRequestAttributes();
-				// 不是web请求不传递token
-				if (requestAttributes != null) {
-					HttpServletRequest httpServletRequest = requestAttributes.getRequest();
-					String token = httpServletRequest.getHeader(HttpHeaders.AUTHORIZATION);
-					if (!CharSequenceUtil.isBlank(token)) {
-						// 传递token
-						filtered.header(HttpHeaders.AUTHORIZATION, token);
-					}
-				}
-				return next.exchange(filtered.build());
-			}).filter(reactorLoadBalancerExchangeFilterFunction)
-			.baseUrl(SERVICE_NAME)
-			.build();
-	}
-
-	/**
-	 * 远程统计模块服务
-	 * @param client 客户端
-	 * @return 远程统计模块服务
-	 */
-	@Bean
-	RemoteKxsStatService remoteKxsStoreService(@Qualifier("kxsStatFeignClient") WebClient client) {
-		HttpServiceProxyFactory factory = HttpServiceProxyFactory.builder(WebClientAdapter.forClient(client)).build();
-		return factory.createClient(RemoteKxsStatService.class);
-	}
-
-}

+ 8 - 1
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/controller/KxsStatController.java

@@ -31,6 +31,13 @@ public class KxsStatController {
         return R.ok(kxsUserTradeService.getUserTradeList(month));
     }
 
-
+    /**
+     * 真实职级计算
+     */
+//    @Inner
+    @GetMapping("/userRealLevel")
+    public void userRealLevel() {
+        kxsUserTradeService.userRealLevel();
+    }
 }
 

+ 2 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/KxsUserTradeService.java

@@ -14,5 +14,7 @@ import java.util.List;
 public interface KxsUserTradeService extends IService<KxsUserTrade> {
 
     List<KxsUserTrade> getUserTradeList(String month);
+
+    void userRealLevel();
 }
 

+ 50 - 0
kxs-stat/kxs-stat-biz/src/main/java/com/kxs/stat/biz/service/impl/KxsUserTradeServiceImpl.java

@@ -1,12 +1,23 @@
 package com.kxs.stat.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.common.core.constant.SecurityConstants;
+import com.kxs.common.core.util.R;
 import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.stat.biz.mapper.KxsUserTradeMapper;
 import com.kxs.stat.api.model.KxsUserTrade;
 import com.kxs.stat.biz.service.KxsUserTradeService;
+import com.kxs.user.api.emun.UserLevel;
+import com.kxs.user.api.feign.RemoteKxsUserService;
+import com.kxs.user.api.model.KxsUser;
+import com.kxs.user.api.model.KxsUserRealLevel;
+import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 
 /**
@@ -16,7 +27,9 @@ import java.util.List;
  * @since 2024-05-07 17:25:06
  */
 @Service("kxsUserTradeService")
+@RequiredArgsConstructor
 public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, KxsUserTrade> implements KxsUserTradeService {
+    private final RemoteKxsUserService remoteKxsUserService;
 
     @Override
     public List<KxsUserTrade> getUserTradeList(String month) {
@@ -25,5 +38,42 @@ public class KxsUserTradeServiceImpl extends ServiceImpl<KxsUserTradeMapper, Kxs
         String tableName = "kxs_user_trade_" + split[0] + split[1];
         return baseMapper.getUserTradeList(tableName);
     }
+
+
+    @Override
+    public void userRealLevel() {
+        //构造月份
+        LocalDateTime now = LocalDateTime.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
+        String month = now.format(formatter);
+        List<KxsUserTrade> userTradeList = getUserTradeList(month);
+        for (KxsUserTrade datum : userTradeList) {
+            Integer userId = datum.getUserId();
+            BigDecimal helpDirectTradeAmt = datum.getHelpDirectTradeAmt();//扶持期贷记卡交易额
+            BigDecimal helpDebitTradeAmt = datum.getHelpDebitTradeAmt();//扶持期借记卡
+            BigDecimal proDirectTradeAmt = datum.getProDirectTradeAmt();//稳定期贷记卡
+            BigDecimal proDebitTradeAmt = datum.getProDebitTradeAmt();//稳定期借记卡
+            BigDecimal proADirectTradeAmt = datum.getProADirectTradeAmt();//稳定期A贷记卡
+            BigDecimal proADebitTradeAmt = datum.getProADebitTradeAmt();//稳定期A借记卡
+            BigDecimal proBDebitTradeAmt = datum.getProBDebitTradeAmt();//稳定期B借记卡
+            BigDecimal proBDirectTradeAmt = datum.getProBDirectTradeAmt();//稳定期B贷记卡
+            BigDecimal totalAmount = helpDirectTradeAmt.add(helpDebitTradeAmt).add(proDirectTradeAmt).add(proDebitTradeAmt).add(proADirectTradeAmt).add(proADebitTradeAmt).add(proBDebitTradeAmt).add(proBDirectTradeAmt);
+            KxsUserRealLevel kxsUserRealLevel = new KxsUserRealLevel();
+            kxsUserRealLevel.setCreateTime(now);
+            kxsUserRealLevel.setDelFlag("0");
+            kxsUserRealLevel.setMonth(month);
+            for (UserLevel userLevel : UserLevel.values()) {
+                if (totalAmount.compareTo(userLevel.getTransactions()) >= 0) {
+                    kxsUserRealLevel.setLevel(userLevel.getLevel());
+                } else if (totalAmount.compareTo(BigDecimal.ZERO) <= 0) {
+                    kxsUserRealLevel.setLevel("0");
+                }
+            }
+            kxsUserRealLevel.setUserId(Long.valueOf(userId));
+            remoteKxsUserService.updateUserRealLevel(kxsUserRealLevel, SecurityConstants.FROM_IN);
+        }
+
+    }
+
 }
 

+ 4 - 3
kxs-stat/kxs-stat-biz/src/main/resources/mapper/KxsUserTradeMapper.xml

@@ -36,12 +36,13 @@
         select
             sum(pro_b_direct_trade_amt) as proBDirectTradeAmt,
             sum(pro_b_debit_trade_amt) as proBDebitTradeAmt,
-            sum(pro_b_debit_trade_amt) as proBDebitTradeAmt,
-            sum(pro_a_direct_trade_amt) as proADirectTradeAmt,
             sum(pro_a_debit_trade_amt) as proADebitTradeAmt,
             sum(pro_a_direct_trade_amt) as proADirectTradeAmt,
+            sum(pro_debit_trade_amt) as proDebitTradeAmt,
+            sum(pro_direct_trade_amt) as proDirectTradeAmt,
             sum(help_debit_trade_amt) as helpDebitTradeAmt,
-            sum(help_direct_trade_amt) as helpDirectTradeAmt
+            sum(help_direct_trade_amt) as helpDirectTradeAmt,
+            user_id
         from ${tableName} where del_flag != 1
         and total_type = 1 group by user_id
     </select>

+ 10 - 4
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/feign/RemoteKxsUserService.java

@@ -3,10 +3,7 @@ package com.kxs.user.api.feign;
 
 import com.kxs.common.core.constant.SecurityConstants;
 import com.kxs.common.core.util.R;
-import com.kxs.user.api.model.KxsLeader;
-import com.kxs.user.api.model.KxsUser;
-import com.kxs.user.api.model.KxsUserAdvance;
-import com.kxs.user.api.model.KxsUserAmountLog;
+import com.kxs.user.api.model.*;
 import com.kxs.user.api.vo.kxsapp.user.RealUserInfoVO;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestHeader;
@@ -170,4 +167,13 @@ public interface RemoteKxsUserService {
 	 */
 	@GetExchange("/shareholder/userRealLevel")
 	void userRealLevel(@RequestHeader(SecurityConstants.FROM) String from);
+	/**
+	 * 修改用户真实职级表
+	 *
+	 * @param from       调用标志
+	 * @return {@link R}<{@link Boolean}>
+	 */
+	@PostExchange("/shareholder/userRealLevel")
+	R<Boolean> updateUserRealLevel(@RequestBody KxsUserRealLevel kxsUserRealLevel, @RequestHeader(SecurityConstants.FROM) String from);
+
 }

+ 4 - 3
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/ShareholderController.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.security.annotation.Inner;
 import com.kxs.system.api.feign.RemoteOldService;
 import com.kxs.user.api.model.KxsShdScore;
+import com.kxs.user.api.model.KxsUserRealLevel;
 import com.kxs.user.biz.service.KxsUserRealLevelService;
 import org.springdoc.core.annotations.ParameterObject;
 
@@ -98,10 +99,10 @@ public class ShareholderController {
     /**
      * 真实职级计算
      */
-//    @Inner
+    @Inner
     @GetMapping("/userRealLevel")
-    public void userRealLevel() {
-        kxsUserRealLevelService.userRealLevel();
+    public void userRealLevel(@RequestBody KxsUserRealLevel kxsUserRealLevel) {
+        kxsUserRealLevelService.userRealLevel(kxsUserRealLevel);
     }
 
 }

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

@@ -11,7 +11,7 @@ import com.kxs.user.api.model.KxsUserRealLevel;
  */
 public interface KxsUserRealLevelService extends IService<KxsUserRealLevel> {
 
-    void userRealLevel();
+    void userRealLevel(KxsUserRealLevel kxsUserRealLevel);
 
 }
 

+ 15 - 45
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserRealLevelServiceImpl.java

@@ -29,58 +29,28 @@ import java.util.List;
 @Service("kxsUserRealLevelService")
 @RequiredArgsConstructor
 public class KxsUserRealLevelServiceImpl extends ServiceImpl<KxsUserRealLevelMapper, KxsUserRealLevel> implements KxsUserRealLevelService {
-    private final RemoteKxsStatService remoteKxsStatService;
     private final KxsUserMapper kxsUserMapper;
     @Override
-    public void userRealLevel() {
+    public void userRealLevel(KxsUserRealLevel kxsUserRealLevel) {
+        Long userId = kxsUserRealLevel.getUserId();
         //构造月份
         LocalDateTime now = LocalDateTime.now();
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
         String month = now.format(formatter);
-        R<List<KxsUserTrade>> userTradeList = remoteKxsStatService.getUserTradeList(month, SecurityConstants.FROM_IN);
-        List<KxsUserTrade> data = userTradeList.getData();
-        for (KxsUserTrade datum : data) {
-            Integer userId = datum.getUserId();
-            BigDecimal helpDirectTradeAmt = datum.getHelpDirectTradeAmt();//扶持期贷记卡交易额
-            BigDecimal helpDebitTradeAmt = datum.getHelpDebitTradeAmt();//扶持期借记卡
-            BigDecimal proDirectTradeAmt = datum.getProDirectTradeAmt();//稳定期贷记卡
-            BigDecimal proDebitTradeAmt = datum.getProDebitTradeAmt();//稳定期借记卡
-            BigDecimal proADirectTradeAmt = datum.getProADirectTradeAmt();//稳定期A贷记卡
-            BigDecimal proADebitTradeAmt = datum.getProADebitTradeAmt();//稳定期A借记卡
-            BigDecimal proBDebitTradeAmt = datum.getProBDebitTradeAmt();//稳定期B借记卡
-            BigDecimal proBDirectTradeAmt = datum.getProBDirectTradeAmt();//稳定期B贷记卡
-            BigDecimal totalAmount = helpDirectTradeAmt.add(helpDebitTradeAmt).add(proDirectTradeAmt).add(proDebitTradeAmt).add(proADirectTradeAmt).add(proADebitTradeAmt).add(proBDebitTradeAmt).add(proBDirectTradeAmt);
-            KxsUserRealLevel kxsUserRealLevel = baseMapper.selectOne(Wrappers.<KxsUserRealLevel>query().lambda().eq(KxsUserRealLevel::getUserId, userId).eq(KxsUserRealLevel::getMonth, month));
-            if (kxsUserRealLevel == null){
-                kxsUserRealLevel = new KxsUserRealLevel();
-                kxsUserRealLevel.setCreateTime(now);
-                kxsUserRealLevel.setDelFlag("0");
-                kxsUserRealLevel.setMonth(month);
-                for (UserLevel userLevel : UserLevel.values()) {
-                    if (totalAmount.compareTo(userLevel.getTransactions()) >= 0) {
-                        kxsUserRealLevel.setLevel(userLevel.getLevel());
-                    }else if (totalAmount.compareTo(BigDecimal.ZERO) <= 0){
-                        kxsUserRealLevel.setLevel("0");
-                    }
-                }
-                kxsUserRealLevel.setUserId(Long.valueOf(userId));
-                KxsUser kxsUser = kxsUserMapper.selectById(userId);
-                kxsUserRealLevel.setPid(Long.valueOf(kxsUser.getPid()));
-                baseMapper.insert(kxsUserRealLevel);
-            }else {
-                //只修改等级
-                for (UserLevel userLevel : UserLevel.values()) {
-                    if (totalAmount.compareTo(userLevel.getTransactions()) >= 0) {
-                        kxsUserRealLevel.setLevel(userLevel.getLevel());
-                    }else if (totalAmount.compareTo(BigDecimal.ZERO) <= 0){
-                        kxsUserRealLevel.setLevel("0");
-                    }
-                }
-                kxsUserRealLevel.setUpdateTime(now);
-                baseMapper.updateById(kxsUserRealLevel);
-            }
+        //查询记录
+        KxsUserRealLevel kxsUserRealLevelSelect = baseMapper.selectOne(Wrappers.<KxsUserRealLevel>query().lambda().eq(KxsUserRealLevel::getUserId, userId).eq(KxsUserRealLevel::getMonth, month));
+        if (kxsUserRealLevelSelect == null){
+            //如果为空则增加pid后增加数据
+            KxsUser kxsUser = kxsUserMapper.selectById(userId);
+            kxsUserRealLevel.setPid(Long.valueOf(kxsUser.getPid()));
+            baseMapper.insert(kxsUserRealLevel);
+        }else {
+            //如果不为空则修改修改时间和职级
+            kxsUserRealLevelSelect.setLevel(kxsUserRealLevel.getLevel());
+            kxsUserRealLevelSelect.setUpdateTime(LocalDateTime.now());
+            baseMapper.updateById(kxsUserRealLevelSelect);
         }
-
     }
+
 }