Bladeren bron

2轮测试bug:修改密码旧密码不能等于新密码

wangPH 2 jaren geleden
bovenliggende
commit
4648806cab

+ 2 - 1
background-common/src/main/java/cn/kdan/compdf/enums/ResponseEnum.java

@@ -14,9 +14,10 @@ public enum ResponseEnum {
     TOKEN_ERROR("703","无效身份,请重新登录"),
     TOKEN_TIMEOUT("704","登录超时,请重新登录"),
     ROLE_NO_RIGHT("705","权限不足"),
+    OLDPWD_EQUALS_NEWPWD("706","旧密码不能和新密码相同"),
 
+    SYSTEM_ERROR("500","系统内部异常"),
 
-    SYSTEM_ERROR("500","系统内部异常");
     ;
 
 

+ 2 - 0
background-user/src/main/java/cn/kdan/compdf/dto/AddFreePlanDTO.java

@@ -19,4 +19,6 @@ public class AddFreePlanDTO implements Serializable {
 
     private List<Asset> assets;
 
+    private List<Asset> cleanFreeAssets;
+
 }

+ 2 - 0
background-user/src/main/java/cn/kdan/compdf/mapper/BackgroundUserBalanceMapper.java

@@ -10,4 +10,6 @@ import org.apache.ibatis.annotations.Param;
 public interface BackgroundUserBalanceMapper extends BaseMapper<BackgroundUserBalance> {
 
     Integer selectNewestPlanRemainingFiles(@Param("tenantId") Long tenantId);
+
+    Integer selectNewestPlanAddFreeNum(Long tenantId);
 }

+ 9 - 1
background-user/src/main/java/cn/kdan/compdf/mapper/BackgroundUserRemainMapper.java

@@ -2,10 +2,18 @@ package cn.kdan.compdf.mapper;
 
 import cn.kdan.compdf.entity.BackgroundUserRemain;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author ComPDFKit-WPH 2022-11-10
  */
 public interface BackgroundUserRemainMapper extends BaseMapper<BackgroundUserRemain> {
-
+    /**
+     * 修改资产总数,清除免费资产部分
+     *
+     * @param tenantId             tenantId
+     * @param newestPlanAddFreeNum newestPlanAddFreeNum
+     */
+    void updateCleanFreeTotal(@Param("tenantId") Long tenantId,
+                              @Param("newestPlanAddFreeNum") Integer newestPlanAddFreeNum);
 }

+ 8 - 0
background-user/src/main/java/cn/kdan/compdf/service/BackgroundUserRemainService.java

@@ -34,4 +34,12 @@ public interface BackgroundUserRemainService extends IService<BackgroundUserRema
      * @param tenantBalance tenantBalance
      */
     void userRemainSync(List<TenantAssetBalanceDTO> tenantBalance);
+
+    /**
+     * 清空free总资产
+     *
+     * @param tenantId             tenantId
+     * @param newestPlanAddFreeNum newestPlanAddFreeNum
+     */
+    void cleanFreeAssetTotal(Long tenantId, Integer newestPlanAddFreeNum);
 }

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

@@ -35,7 +35,6 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.*;
 import java.net.URLEncoder;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 
@@ -87,7 +86,7 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
      * @return 账户消费充值记录
      */
     @Override
-    public IPage<BackgroundUserBalanceVO> getBalanceRecordList(Long userId, Integer page, Integer size,Integer timeZone) {
+    public IPage<BackgroundUserBalanceVO> getBalanceRecordList(Long userId, Integer page, Integer size, Integer timeZone) {
         LambdaQueryWrapper<BackgroundUserBalance> eq = new LambdaQueryWrapper<BackgroundUserBalance>()
                 .eq(BackgroundUserBalance::getUserId, userId)
                 .orderByDesc(BackgroundUserBalance::getDate);
@@ -101,7 +100,7 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
         List<BackgroundUserBalanceVO> records = Lists.newArrayList();
         if (CollectionUtil.isNotEmpty(backgroundUserBalancePage.getRecords())) {
             backgroundUserBalancePage.getRecords().forEach(c -> {
-                c.setDate(MyLocalDateUtil.timeZoneConversion(c.getDate(),timeZone));
+                c.setDate(MyLocalDateUtil.timeZoneConversion(c.getDate(), timeZone));
                 BackgroundUserBalanceVO backgroundUserBalanceVO = new BackgroundUserBalanceVO();
                 BeanUtil.copyProperties(c, backgroundUserBalanceVO);
                 if (c.getChangeType() == 1) {
@@ -237,6 +236,25 @@ public class BackgroundUserBalanceServiceImpl extends ServiceImpl<BackgroundUser
             userBalance.setChangeType(1);
             this.save(userBalance);
         }
+        List<Asset> cleanFreeAssets = freePlanDTO.getCleanFreeAssets();
+        for (Asset cleanFreeAsset : cleanFreeAssets) {
+            // 最新的plan剩余额度
+            Integer newestPlanRemainingFiles = getNewestPlanRemainingFiles(cleanFreeAsset.getTenantId());
+            BackgroundUserBalance userBalance = new BackgroundUserBalance();
+            userBalance.setTenantId(cleanFreeAsset.getTenantId());
+            userBalance.setUserId(userService.getUserId(cleanFreeAsset.getTenantId()));
+            userBalance.setDate(LocalDateTime.now());
+            userBalance.setDescriptionType(3);
+            userBalance.setDescription("Files consumed"); // TODO 枚举值
+            userBalance.setRemainingFiles(newestPlanRemainingFiles - cleanFreeAsset.getAsset());
+            userBalance.setBalanceChange(cleanFreeAsset.getAsset());
+            userBalance.setChangeType(3);
+
+            Integer newestPlanAddFreeNum = this.baseMapper.selectNewestPlanAddFreeNum(cleanFreeAsset.getTenantId());
+            backgroundUserRemainService.cleanFreeAssetTotal(cleanFreeAsset.getTenantId(), newestPlanAddFreeNum);
+
+        }
+
     }
 
     /**

+ 5 - 0
background-user/src/main/java/cn/kdan/compdf/service/impl/BackgroundUserRemainServiceImpl.java

@@ -52,5 +52,10 @@ public class BackgroundUserRemainServiceImpl extends ServiceImpl<BackgroundUserR
         }
     }
 
+    @Override
+    public void cleanFreeAssetTotal(Long tenantId, Integer newestPlanAddFreeNum) {
+        this.baseMapper.updateCleanFreeTotal(tenantId,newestPlanAddFreeNum);
+    }
+
 
 }

+ 4 - 0
background-user/src/main/java/cn/kdan/compdf/service/impl/BackgroundUserServiceImpl.java

@@ -7,6 +7,7 @@ import cn.kdan.compdf.dto.LoginDTO;
 import cn.kdan.compdf.dto.LoginUserDTO;
 import cn.kdan.compdf.entity.BackgroundUser;
 import cn.kdan.compdf.enums.AuthEnum;
+import cn.kdan.compdf.enums.ResponseEnum;
 import cn.kdan.compdf.exception.BusinessException;
 import cn.kdan.compdf.mapper.BackgroundUserMapper;
 import cn.kdan.compdf.service.BackgroundUserService;
@@ -88,6 +89,9 @@ public class BackgroundUserServiceImpl extends ServiceImpl<BackgroundUserMapper,
 
     @Override
     public void changePassword(ChangePasswordDTO changePasswordDTO, String token) {
+        if (changePasswordDTO.getOldPassword().equals(changePasswordDTO.getNewPassword())){
+            throw new BusinessException(ResponseEnum.OLDPWD_EQUALS_NEWPWD);
+        }
         // 获取当前登录用户
         LoginUserDTO requestHeader = TokenUtil.getRequestHeader();
         BackgroundUser backgroundUser = this.baseMapper.selectOne(new LambdaQueryWrapper<BackgroundUser>().eq(BackgroundUser::getId, requestHeader.getId()));

+ 8 - 0
background-user/src/main/resources/mapper/BackgroundUserBalanceMapper.xml

@@ -27,5 +27,13 @@
         order by date desc
         limit 1
     </select>
+    <select id="selectNewestPlanAddFreeNum" resultType="java.lang.Integer">
+        select remaining_files
+        from background_user_balance
+        where tenant_id = #{tenantId}
+        and description_type = 3
+        order by date desc
+        limit 1
+    </select>
 
 </mapper>

+ 6 - 0
background-user/src/main/resources/mapper/BackgroundUserRemainMapper.xml

@@ -16,4 +16,10 @@
         <result property="userId" column="user_id" />
     </resultMap>
 
+    <update id="updateCleanFreeTotal">
+        UPDATE background_user_remain
+        SET total_files = total_files - #{newestPlanAddFreeNum}
+        WHERE tenant_id = #{tenantId}
+    </update>
+
 </mapper>