Browse Source

修改数据同步的bug

wangPH 2 years ago
parent
commit
ceab04eeb7

+ 1 - 1
background-user/src/main/java/cn/kdan/compdf/controller/v1/BackgroundUserBalanceController.java

@@ -74,7 +74,7 @@ public class BackgroundUserBalanceController {
     /**
      * FreePlan 免费资产月底跟新记录数据同步
      */
-    @PostMapping("/freePlanSync")
+    @PostMapping("/free-plansync")
     public R<Void> freePlanSync(@RequestBody AddFreePlanDTO freePlanDTO, HttpServletRequest request) {
         if (!DASHBOARD_SYNC_AUTOGRAPH.equals(request.getHeader("autograph"))) {
             throw new CommonException("错误");

+ 1 - 0
background-user/src/main/java/cn/kdan/compdf/dto/DashboardStatisticsDTO.java

@@ -49,5 +49,6 @@ public class DashboardStatisticsDTO {
      */
     private LocalDateTime syncTime;
 
+    private Long userId;
 
 }

+ 8 - 2
background-user/src/main/java/cn/kdan/compdf/service/impl/BackgroundConvertDataServiceImpl.java

@@ -13,6 +13,7 @@ import cn.kdan.compdf.enums.ResponseEnum;
 import cn.kdan.compdf.exception.CommonException;
 import cn.kdan.compdf.mapper.BackgroundConvertDataMapper;
 import cn.kdan.compdf.service.BackgroundConvertDataService;
+import cn.kdan.compdf.service.BackgroundUserService;
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.util.MapUtils;
 import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
@@ -34,7 +35,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.net.URLEncoder;
-import java.time.Duration;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
@@ -55,8 +55,11 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
 
     private final StringRedisTemplate redisTemplate;
 
-    public BackgroundConvertDataServiceImpl(StringRedisTemplate redisTemplate) {
+    private final BackgroundUserService userService;
+
+    public BackgroundConvertDataServiceImpl(StringRedisTemplate redisTemplate, BackgroundUserService userService) {
         this.redisTemplate = redisTemplate;
+        this.userService = userService;
     }
 
     @Override
@@ -525,6 +528,9 @@ public class BackgroundConvertDataServiceImpl extends ServiceImpl<BackgroundConv
     @CacheEvict(cacheNames = RedisConstantServer.DASHBOARD + "*", cacheManager = "myCacheManager", allEntries = true)
     public void dashboardDataSync(List<DashboardStatisticsDTO> list) {
         assert list != null : "Dashboard同步数据为空";
+        list.forEach(item ->{
+            item.setUserId(userService.getUserId(item.getTenantId()));
+        });
         final String DASHBOARD_SYNC_KEY = "DashboardSyncKey:" + list.get(0).getSyncTime();
         Boolean b = redisTemplate.hasKey(DASHBOARD_SYNC_KEY);
         assert b != null;

+ 21 - 5
background-user/src/main/java/cn/kdan/compdf/service/impl/BackgroundUserBalanceServiceImpl.java

@@ -2,6 +2,7 @@ package cn.kdan.compdf.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.kdan.compdf.dto.AddFreePlanDTO;
 import cn.kdan.compdf.dto.Asset;
 import cn.hutool.core.date.DateUtil;
@@ -126,7 +127,8 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
 
     /**
      * 账户消费充值记录导出
-     * @param userId 用户id
+     *
+     * @param userId   用户id
      * @param response response
      */
     @Override
@@ -193,7 +195,7 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
                 list.forEach(item -> {
                     Long userId = userService.getUserId(item.getTenantId());
                     // 最新的plan剩余额度
-                    Integer newestPlanRemainingFiles = this.baseMapper.selectNewestPlanRemainingFiles(item.getTenantId());
+                    Integer newestPlanRemainingFiles = getNewestPlanRemainingFiles(item.getTenantId());
                     BackgroundUserBalance backgroundUserBalance = new BackgroundUserBalance();
                     backgroundUserBalance.setUserId(userId);
                     backgroundUserBalance.setTenantId(item.getTenantId());
@@ -206,7 +208,7 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
                     userBalanceList.add(backgroundUserBalance);
                 });
                 this.saveBatch(userBalanceList);
-            }catch (Exception e){
+            } catch (Exception e) {
                 redisTemplate.delete(PLAN_SYNC_KEY);
                 throw e;
             }
@@ -221,7 +223,7 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
         List<Asset> assets = freePlanDTO.getAssets();
         for (Asset asset : assets) {
             // 最新的plan剩余额度
-            Integer newestPlanRemainingFiles = this.baseMapper.selectNewestPlanRemainingFiles(asset.getTenantId());
+            Integer newestPlanRemainingFiles = getNewestPlanRemainingFiles(asset.getTenantId());
             BackgroundUserBalance userBalance = new BackgroundUserBalance();
             userBalance.setTenantId(asset.getTenantId());
             userBalance.setUserId(userService.getUserId(asset.getTenantId()));
@@ -234,7 +236,8 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
 
             this.save(userBalance);
 
-            newestPlanRemainingFiles = this.baseMapper.selectNewestPlanRemainingFiles(asset.getTenantId());
+            newestPlanRemainingFiles = getNewestPlanRemainingFiles(asset.getTenantId());
+            userBalance.setId(null);
             userBalance.setDate(new Date());
             userBalance.setDescriptionType(3);
             userBalance.setDescription("Free增加资产");
@@ -245,5 +248,18 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
         }
     }
 
+    /**
+     * 获取最新的plan资产余额
+     *
+     * @param tenantId tenantId
+     * @return 最新的plan资产余额
+     */
+    private Integer getNewestPlanRemainingFiles(Long tenantId) {
+        Integer newestPlanRemainingFiles = this.baseMapper.selectNewestPlanRemainingFiles(tenantId);
+        if (ObjectUtil.isEmpty(newestPlanRemainingFiles)) {
+            newestPlanRemainingFiles = 0;
+        }
+        return newestPlanRemainingFiles;
+    }
 
 }

+ 1 - 1
background-user/src/main/resources/mapper/BackgroundConvertDataMapper.xml

@@ -23,7 +23,7 @@
 
 
     <insert id="insertList">
-        insert into background_convert_data(tenant_id, project_id, tool_id, file_total, file_success_total, file_failed_total,file_convert_time,sync_time) values
+        insert into background_convert_data(user_id,tenant_id, project_id, tool_id, file_total, file_success_total, file_failed_total,file_convert_time,sync_time) values
         <foreach collection="list" item="item" separator=",">
             (#{item.tenantId}, #{item.projectId}, #{item.useToolId}, #{item.fileTotal}, #{item.fileSuccessTotal}, #{item.fileFailedTotal}, #{item.fileConvertTime}, #{item.syncTime})
         </foreach>