Selaa lähdekoodia

1、迁移用户账户变更记录模块到system
2、迁移企业账户变更记录模块到system

rayson 1 vuosi sitten
vanhempi
commit
c20d095869
44 muutettua tiedostoa jossa 499 lisäystä ja 455 poistoa
  1. 0 65
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/account/EnterpriseAccountController.java
  2. 0 63
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/account/UserAccountController.java
  3. 0 39
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/app/user/AppUserPointController.java
  4. 5 3
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/mq/consumer/UserPointConsumer.java
  5. 2 2
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/mq/message/UserPointSendMessage.java
  6. 4 4
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventRecordServiceImpl.java
  7. 2 2
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventTrackServiceImpl.java
  8. 8 6
      menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/signin/SignInRecordServiceImpl.java
  9. 109 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/account/AccountRecordSaveReqDTO.java
  10. 29 3
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/account/EnterpriseAccountApi.java
  11. 31 3
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/account/UserAccountApi.java
  12. 8 0
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java
  13. 1 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/MathOperationEnum.java
  14. 1 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/account/AccountRecordTypeEnum.java
  15. 1 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/account/BalanceBizTypeEnum.java
  16. 1 1
      menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/account/PointBizTypeEnum.java
  17. 40 0
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/api/account/EnterpriseAccountApiImpl.java
  18. 39 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/api/account/UserAccountApiImpl.java
  19. 44 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseAccountController.java
  20. 9 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/record/EnterpriseAccountRecordController.java
  21. 8 8
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/record/UserAccountRecordController.java
  22. 41 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/UserAccountController.java
  23. 8 7
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/record/AppUserAccountRecordController.java
  24. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/record/vo/AppAccountRecordPageReqVO.java
  25. 2 2
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/record/vo/AppUserAccountRecordRespVO.java
  26. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/AccountBalanceUpdateReqVO.java
  27. 1 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/AccountBaseVO.java
  28. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/AccountPointUpdateReqVO.java
  29. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/EnterpriseAccountRecordPageReqVO.java
  30. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/EnterpriseAccountRecordRespVO.java
  31. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/UserAccountRecordPageReqVO.java
  32. 1 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/UserAccountRecordRespVO.java
  33. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseAccountRecordConvert.java
  34. 5 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/UserAccountRecordConvert.java
  35. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/record/EnterpriseAccountRecordDO.java
  36. 3 3
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/record/UserAccountRecordDO.java
  37. 5 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/record/EnterpriseAccountRecordMapper.java
  38. 4 4
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/record/UserAccountRecordMapper.java
  39. 6 1
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/rpc/config/RpcConfiguration.java
  40. 6 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/EnterpriseAccountRecordService.java
  41. 28 26
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/EnterpriseAccountRecordServiceImpl.java
  42. 6 6
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/UserAccountRecordService.java
  43. 29 25
      menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/UserAccountRecordServiceImpl.java
  44. 0 132
      menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/user/UserAccountServiceImplTest.java

+ 0 - 65
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/account/EnterpriseAccountController.java

@@ -1,65 +0,0 @@
-package com.citu.module.menduner.reward.controller.admin.account;
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.module.menduner.reward.controller.base.account.AccountBalanceUpdateReqVO;
-import com.citu.module.menduner.reward.controller.base.account.AccountPointUpdateReqVO;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.BalanceBizTypeEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
-import com.citu.module.menduner.reward.service.record.EnterpriseAccountRecordService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "管理后台 - 企业账户")
-@RestController
-@RequestMapping("/menduner/reward/enterprise/account")
-@Validated
-public class EnterpriseAccountController {
-
-    @Resource
-    private EnterpriseAccountRecordService service;
-
-    @PutMapping("/update-point")
-    @Operation(summary = "修改账户的积分")
-    @PreAuthorize("@ss.hasPermission('menduner:reward:enterprise-point:update')")
-    public CommonResult<Boolean> updateUserPoint(@Valid @RequestBody AccountPointUpdateReqVO updateReqVO) {
-        service.createPointRecord(
-                updateReqVO.getEnterpriseId(),
-                updateReqVO.getUserId(),
-                null,
-                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
-                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
-                updateReqVO.getPoint(),
-                PointBizTypeEnum.ADMIN,
-                String.valueOf(updateReqVO.getUserId()));
-        return success(true);
-    }
-
-    @PutMapping("/update-balance")
-    @Operation(summary = "修改账户余额")
-    @PreAuthorize("@ss.hasPermission('menduner:reward:enterprise-balance:update')")
-    public CommonResult<Boolean> updateBalance(@Valid @RequestBody AccountBalanceUpdateReqVO updateReqVO) {
-        service.createBalanceRecord(
-                updateReqVO.getEnterpriseId(),
-                updateReqVO.getUserId(),
-                null,
-                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
-                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
-                updateReqVO.getBalance(),
-                BalanceBizTypeEnum.ADMIN,
-                String.valueOf(updateReqVO.getUserId()));
-        return success(true);
-    }
-
-}

+ 0 - 63
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/account/UserAccountController.java

@@ -1,63 +0,0 @@
-package com.citu.module.menduner.reward.controller.admin.account;
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.module.menduner.reward.controller.base.account.AccountBalanceUpdateReqVO;
-import com.citu.module.menduner.reward.controller.base.account.AccountPointUpdateReqVO;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.BalanceBizTypeEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
-import com.citu.module.menduner.reward.service.record.UserAccountRecordService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "管理后台 - 用户账户")
-@RestController
-@RequestMapping("/menduner/reward/user/account")
-@Validated
-public class UserAccountController {
-
-    @Resource
-    private UserAccountRecordService accountRecordService;
-
-    @PutMapping("/update-point")
-    @Operation(summary = "修改账户积分")
-    @PreAuthorize("@ss.hasPermission('menduner:reward:user-point:update')")
-    public CommonResult<Boolean> updatePoint(@Valid @RequestBody AccountPointUpdateReqVO updateReqVO) {
-        accountRecordService.createPointRecord(updateReqVO.getUserId(),
-                null,
-                null,
-                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
-                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
-                updateReqVO.getPoint(),
-                PointBizTypeEnum.ADMIN,
-                String.valueOf(updateReqVO.getUserId()));
-        return success(true);
-    }
-
-    @PutMapping("/update-balance")
-    @Operation(summary = "修改账户余额")
-    @PreAuthorize("@ss.hasPermission('menduner:reward:user-balance:update')")
-    public CommonResult<Boolean> updateBalance(@Valid @RequestBody AccountBalanceUpdateReqVO updateReqVO) {
-        accountRecordService.createBalanceRecord(updateReqVO.getUserId(),
-                null,
-                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
-                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
-                updateReqVO.getBalance(),
-                BalanceBizTypeEnum.ADMIN,
-                String.valueOf(updateReqVO.getUserId()));
-        return success(true);
-    }
-
-
-}

+ 0 - 39
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/app/user/AppUserPointController.java

@@ -1,39 +0,0 @@
-package com.citu.module.menduner.reward.controller.app.user;
-
-
-import com.citu.framework.common.pojo.CommonResult;
-import com.citu.framework.security.core.annotations.PreAuthenticated;
-import com.citu.module.menduner.common.util.LoginUserContext;
-import com.citu.module.menduner.system.api.account.UserAccountApi;
-import com.citu.module.menduner.system.api.account.AccountRespDTO;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-
-import static com.citu.framework.common.pojo.CommonResult.success;
-
-@Tag(name = "求职端 - 用户积分")
-@RestController
-@RequestMapping("/menduner/reward/user-point")
-@Validated
-public class AppUserPointController {
-
-    @Resource
-    private UserAccountApi userAccountApi;
-
-
-    @GetMapping("/get")
-    @Operation(summary = "获得用户积分")
-    @PreAuthenticated
-    public CommonResult<Integer> get() {
-        AccountRespDTO dto =
-                userAccountApi.createUserAccountIfAbsent(LoginUserContext.getUserId())
-                        .getCheckedData();
-        return success(dto.getPoint());
-    }
-}

+ 5 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/mq/consumer/UserPointConsumer.java

@@ -2,7 +2,8 @@ package com.citu.module.menduner.reward.mq.consumer;
 
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
 import com.citu.module.menduner.reward.mq.message.UserPointSendMessage;
-import com.citu.module.menduner.reward.service.record.UserAccountRecordService;
+import com.citu.module.menduner.system.api.account.AccountRecordSaveReqDTO;
+import com.citu.module.menduner.system.api.account.UserAccountApi;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.rocketmq.client.consumer.DefaultMQPushConsumer;
 import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
@@ -24,14 +25,14 @@ import javax.annotation.Resource;
 public class UserPointConsumer implements RocketMQListener<UserPointSendMessage>, RocketMQPushConsumerLifecycleListener {
 
     @Resource
-    private UserAccountRecordService accountRecordService;
+    private UserAccountApi userAccountApi;
 
     @Override
     @DSTransactional
     public void onMessage(UserPointSendMessage message) {
         log.info("接收到队列消息[{}]", message);
         // 增加用户积分
-        accountRecordService.createPointRecord(
+        AccountRecordSaveReqDTO dto = new AccountRecordSaveReqDTO(
                 message.getUserId(),
                 message.getUrl(),
                 message.getTitle(),
@@ -39,6 +40,7 @@ public class UserPointConsumer implements RocketMQListener<UserPointSendMessage>
                 message.getPoint(),
                 message.getBizType(),
                 message.getBizId());
+        userAccountApi.createPointRecord(dto);
         log.info("消息处理完备[{}]", message);
     }
 

+ 2 - 2
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/mq/message/UserPointSendMessage.java

@@ -1,7 +1,7 @@
 package com.citu.module.menduner.reward.mq.message;
 
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.AllArgsConstructor;
 import lombok.Builder;

+ 4 - 4
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventRecordServiceImpl.java

@@ -11,7 +11,7 @@ import com.citu.module.menduner.reward.dal.dataobject.event.EventMetricDO;
 import com.citu.module.menduner.reward.dal.dataobject.event.EventRecordDO;
 import com.citu.module.menduner.reward.dal.mysql.event.EventRecordMapper;
 import com.citu.module.menduner.reward.enums.event.EventMetricTypeEnum;
-import com.citu.module.menduner.reward.service.record.UserAccountRecordService;
+import com.citu.module.menduner.system.api.account.UserAccountApi;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -42,7 +42,7 @@ public class EventRecordServiceImpl implements EventRecordService {
     private EventMetricService eventMetricService;
 
     @Resource
-    private UserAccountRecordService userAccountService;
+    private UserAccountApi userAccountApi;
 
 
     @Override
@@ -124,9 +124,9 @@ public class EventRecordServiceImpl implements EventRecordService {
         EventMetricDO eventMetric = eventMetricService.getByValue(metricValue);
         LocalDateTime[] dateRange = generateDateRange(eventMetric);
         if (eventMetric.getValue().contains("event")) {
-            return userAccountService.getPointCount(userId, url, dateRange[0], dateRange[1]);
+            return userAccountApi.getPointCount(userId, url, dateRange[0], dateRange[1]).getCheckedData();
         } else if (eventMetric.getValue().contains("point")) {
-            return userAccountService.getPointCount(userId, null, dateRange[0], dateRange[1]);
+            return userAccountApi.getPointCount(userId, null, dateRange[0], dateRange[1]).getCheckedData();
         }
         List<EventRecordDO> list = eventRecordMapper.getList(userId, url, dateRange[0], dateRange[1]);
         if (ObjectUtil.isEmpty(list)) {

+ 2 - 2
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/event/EventTrackServiceImpl.java

@@ -13,8 +13,8 @@ import com.citu.module.menduner.reward.core.PointRule;
 import com.citu.module.menduner.reward.core.RuleMatch;
 import com.citu.module.menduner.reward.dal.dataobject.config.Condition;
 import com.citu.module.menduner.reward.dal.dataobject.config.PointRuleConfigDO;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 import com.citu.module.menduner.reward.mq.message.UserPointSendMessage;
 import com.citu.module.menduner.reward.mq.producer.UserPointProducer;
 import com.citu.module.menduner.reward.rule.DynamicPointRule;

+ 8 - 6
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/signin/SignInRecordServiceImpl.java

@@ -13,9 +13,10 @@ import com.citu.module.menduner.reward.convert.SignInRecordConvert;
 import com.citu.module.menduner.reward.dal.dataobject.signin.SignInConfigDO;
 import com.citu.module.menduner.reward.dal.dataobject.signin.SignInRecordDO;
 import com.citu.module.menduner.reward.dal.mysql.signin.SignInRecordMapper;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
-import com.citu.module.menduner.reward.service.record.UserAccountRecordService;
+import com.citu.module.menduner.system.api.account.AccountRecordSaveReqDTO;
+import com.citu.module.menduner.system.api.account.UserAccountApi;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
@@ -40,7 +41,7 @@ public class SignInRecordServiceImpl implements SignInRecordService {
     @Resource
     private SignInConfigService signInConfigService;
     @Resource
-    private UserAccountRecordService userAccountRecordService;
+    private UserAccountApi userAccountApi;
 
 
     @Override
@@ -74,14 +75,15 @@ public class SignInRecordServiceImpl implements SignInRecordService {
 
         // 4. 增加积分
         if (!ObjectUtils.equalsAny(record.getPoint(), null, 0)) {
-            userAccountRecordService.createPointRecord(
+            AccountRecordSaveReqDTO dto = new AccountRecordSaveReqDTO(
                     userId,
-                    null,
+                    "",
                     PointBizTypeEnum.SIGN.getName(),
                     MathOperationEnum.ADD,
                     record.getPoint(),
                     PointBizTypeEnum.SIGN,
                     String.valueOf(record.getId()));
+            userAccountApi.createPointRecord(dto);
         }
         return record;
     }

+ 109 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/account/AccountRecordSaveReqDTO.java

@@ -0,0 +1,109 @@
+package com.citu.module.menduner.system.api.account;
+
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@Schema(description = "账户记录保存 DTO VO")
+public class AccountRecordSaveReqDTO {
+
+    private Long enterpriseId;
+    private Long userId;
+    private String url;
+    private String title;
+    private MathOperationEnum operation;
+    private Integer point;
+    private BigDecimal balance;
+    private PointBizTypeEnum pointBizTypeEnum;
+    private BalanceBizTypeEnum balanceBizType;
+    private String bizId;
+
+
+    /**
+     * 创建用户账户积分变动记录
+     **/
+    public AccountRecordSaveReqDTO(Long userId,
+                                   String url,
+                                   String title,
+                                   MathOperationEnum operation,
+                                   Integer point,
+                                   PointBizTypeEnum bizType,
+                                   String bizId) {
+        this.url = url;
+        this.pointBizTypeEnum = bizType;
+        this.point = point;
+        initCommon(userId, title, operation, bizId);
+
+    }
+
+    /**
+     * 创建用户账户余额变动记录
+     **/
+    public AccountRecordSaveReqDTO(Long userId,
+                                   String title,
+                                   MathOperationEnum operation,
+                                   BigDecimal balance,
+                                   BalanceBizTypeEnum bizType,
+                                   String bizId) {
+        this.balanceBizType = bizType;
+        this.balance = balance;
+        initCommon(userId, title, operation, bizId);
+
+    }
+
+    /**
+     * 创建企业账户积分变动记录
+     **/
+    public AccountRecordSaveReqDTO(
+            Long enterpriseId,
+            Long userId,
+            String title,
+            MathOperationEnum operation,
+            Integer point,
+            PointBizTypeEnum bizType,
+            String bizId) {
+        this.enterpriseId = enterpriseId;
+        this.pointBizTypeEnum = bizType;
+        this.point = point;
+        initCommon(userId, title, operation, bizId);
+
+    }
+
+    /**
+     * 创建企业账户余额变动记录
+     **/
+    public AccountRecordSaveReqDTO(
+            Long enterpriseId,
+            Long userId,
+            String title,
+            MathOperationEnum operation,
+            BigDecimal balance,
+            BalanceBizTypeEnum bizType,
+            String bizId) {
+        this.enterpriseId = enterpriseId;
+        this.balanceBizType = bizType;
+        this.balance = balance;
+        initCommon(userId, title, operation, bizId);
+
+    }
+
+
+    /**
+     * 公共属性
+     **/
+    private void initCommon(Long userId,
+                            String title,
+                            MathOperationEnum operation,
+                            String bizId) {
+        this.userId = userId;
+        this.title = title;
+        this.operation = operation;
+        this.bizId = bizId;
+
+    }
+}

+ 29 - 3
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/account/EnterpriseAccountApi.java

@@ -7,11 +7,10 @@ import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 @FeignClient(name = ApiConstants.NAME)
 @Tag(name = "RPC 服务 - 企业账户")
@@ -56,4 +55,31 @@ public interface EnterpriseAccountApi {
             @RequestParam("userId") Long userId,
             @RequestParam("balance") BigDecimal balance);
 
+    @PostMapping(PREFIX + "/create/point/record")
+    @Operation(summary = "创建企业账户积分变动记录")
+    CommonResult<Boolean> createPointRecord(@RequestBody AccountRecordSaveReqDTO dto);
+
+
+    @PostMapping(PREFIX + "/create/balance/record")
+    @Operation(summary = "创建企业账户余额变动记录")
+    CommonResult<Boolean> createBalanceRecord(@RequestBody AccountRecordSaveReqDTO dto);
+
+
+    @GetMapping(PREFIX + "/get/point/count")
+    @Operation(summary = "获取一段时间内的企业账户积分变动获得的数量")
+    @Parameters({
+            @Parameter(name = "enterpriseId", description = "企业号", example = "2", required = true),
+            @Parameter(name = "userId", description = "用户编号", example = "2", required = true),
+            @Parameter(name = "url", description = "事件地址", example = "2", required = true),
+            @Parameter(name = "startDate", description = "开始时间", example = "2", required = true),
+            @Parameter(name = "endDate", description = "结束时间", example = "2", required = true)
+    })
+    CommonResult<Integer> getPointCount(
+            @RequestParam("enterpriseId") Long enterpriseId,
+            @RequestParam("userId") Long userId,
+            @RequestParam("url") String url,
+            @RequestParam("startDate") LocalDateTime startDate,
+            @RequestParam("endDate") LocalDateTime endDate);
+
+
 }

+ 31 - 3
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/api/account/UserAccountApi.java

@@ -2,16 +2,18 @@ package com.citu.module.menduner.system.api.account;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.menduner.system.enums.ApiConstants;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 @FeignClient(name = ApiConstants.NAME)
 @Tag(name = "RPC 服务 - 用户账户")
@@ -44,4 +46,30 @@ public interface UserAccountApi {
     CommonResult<Boolean> updateBalance(@RequestParam("userId") Long userId,
                                         @RequestParam("balance") BigDecimal balance);
 
+
+
+    @PostMapping(PREFIX + "/create/point/record")
+    @Operation(summary = "创建用户账户积分变动记录")
+    CommonResult<Boolean> createPointRecord(@RequestBody AccountRecordSaveReqDTO dto);
+
+
+    @PostMapping(PREFIX + "/create/balance/record")
+    @Operation(summary = "创建用户账户余额变动记录")
+    CommonResult<Boolean> createBalanceRecord( @RequestBody AccountRecordSaveReqDTO dto);
+
+
+    @GetMapping(PREFIX + "/get/point/count")
+    @Operation(summary = "获取一段时间内的用户账户积分变动获得的数量")
+    @Parameters({
+            @Parameter(name = "userId", description = "用户编号", example = "2", required = true),
+            @Parameter(name = "url", description = "事件地址", example = "2", required = true),
+            @Parameter(name = "startDate", description = "开始时间", example = "2", required = true),
+            @Parameter(name = "endDate", description = "结束时间", example = "2", required = true)
+    })
+    CommonResult<Integer> getPointCount(@RequestParam("userId")Long userId,
+                                        @RequestParam("url")String url,
+                                        @RequestParam("startDate")LocalDateTime startDate,
+                                        @RequestParam("endDate")LocalDateTime endDate);
+
+
 }

+ 8 - 0
menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/ErrorCodeConstants.java

@@ -319,4 +319,12 @@ public interface ErrorCodeConstants {
 
     // ========== 用户账户 1_100_038_000 ==========
     ErrorCode USER_ACCOUNT_NOT_EXISTS = new ErrorCode(1_100_038_001, "用户账户不存在");
+
+    // ========== 账户记录相关  1_100_039_000 ============
+    ErrorCode USER_NOT_EXISTS = new ErrorCode(1_100_038_001, "用户不存在");
+    ErrorCode USER_POINT_NOT_ENOUGH = new ErrorCode(1_100_038_002, "用户积分余额不足");
+    ErrorCode USER_POINT_CAN_NOT_BE_EMPTY = new ErrorCode(1_100_038_003, "变动积分不能为空");
+    ErrorCode USER_BALANCE_NOT_ENOUGH = new ErrorCode(1_100_038_004, "用户余额不足");
+    ErrorCode USER_BALANCE_CAN_NOT_BE_EMPTY = new ErrorCode(1_100_038_005, "变动余额不能为空");
+
 }

+ 1 - 1
menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/MathOperationEnum.java → menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/MathOperationEnum.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.enums;
+package com.citu.module.menduner.system.enums;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/record/AccountRecordTypeEnum.java → menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/account/AccountRecordTypeEnum.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.enums.record;
+package com.citu.module.menduner.system.enums.account;
 
 import lombok.AllArgsConstructor;
 import lombok.Getter;

+ 1 - 1
menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/record/BalanceBizTypeEnum.java → menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/account/BalanceBizTypeEnum.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.enums.record;
+package com.citu.module.menduner.system.enums.account;
 
 import cn.hutool.core.util.EnumUtil;
 import com.citu.framework.common.core.IntArrayValuable;

+ 1 - 1
menduner/menduner-reward-api/src/main/java/com/citu/module/menduner/reward/enums/record/PointBizTypeEnum.java → menduner/menduner-system-api/src/main/java/com/citu/module/menduner/system/enums/account/PointBizTypeEnum.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.enums.record;
+package com.citu.module.menduner.system.enums.account;
 
 import cn.hutool.core.util.EnumUtil;
 import com.citu.framework.common.core.IntArrayValuable;

+ 40 - 0
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/api/account/EnterpriseAccountApiImpl.java

@@ -3,11 +3,13 @@ package com.citu.module.menduner.system.api.account;
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAccountDO;
 import com.citu.module.menduner.system.service.enterprise.account.EnterpriseAccountService;
+import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
 
@@ -18,6 +20,9 @@ public class EnterpriseAccountApiImpl implements EnterpriseAccountApi {
     @Resource
     private EnterpriseAccountService service;
 
+    @Resource
+    private EnterpriseAccountRecordService accountRecordService;
+
     @Override
     public CommonResult<AccountRespDTO> createEnterpriseAccountIfAbsent(Long enterpriseId, Long userId) {
         EnterpriseAccountDO accountDO = service.createEnterpriseAccountIfAbsent(enterpriseId, userId);
@@ -36,4 +41,39 @@ public class EnterpriseAccountApiImpl implements EnterpriseAccountApi {
     public CommonResult<Boolean> updateBalance(Long enterpriseId, Long userId, BigDecimal balance) {
         return success(service.updateBalance(enterpriseId, userId, balance));
     }
+
+    @Override
+    public CommonResult<Boolean> createPointRecord(AccountRecordSaveReqDTO dto) {
+        accountRecordService.createPointRecord(dto.getEnterpriseId(),
+                dto.getUserId(),
+                dto.getTitle(),
+                dto.getOperation(),
+                dto.getPoint(),
+                dto.getPointBizTypeEnum(),
+                dto.getBizId()
+        );
+        return success(true);
+    }
+
+    @Override
+    public CommonResult<Boolean> createBalanceRecord(AccountRecordSaveReqDTO dto) {
+        accountRecordService.createBalanceRecord(dto.getEnterpriseId(),
+                dto.getUserId(),
+                dto.getTitle(),
+                dto.getOperation(),
+                dto.getBalance(),
+                dto.getBalanceBizType(),
+                dto.getBizId()
+        );
+        return success(true);
+    }
+
+    @Override
+    public CommonResult<Integer> getPointCount(Long enterpriseId,
+                                               Long userId,
+                                               String url,
+                                               LocalDateTime startDate,
+                                               LocalDateTime endDate) {
+        return success(accountRecordService.getPointCount(enterpriseId, userId, url, startDate, endDate));
+    }
 }

+ 39 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/api/account/UserAccountApiImpl.java

@@ -2,13 +2,14 @@ package com.citu.module.menduner.system.api.account;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.module.menduner.system.dal.dataobject.user.UserAccountDO;
+import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import com.citu.module.menduner.system.service.user.UserAccountService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
-
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 import static com.citu.framework.common.pojo.CommonResult.success;
 
@@ -19,6 +20,8 @@ public class UserAccountApiImpl implements UserAccountApi {
     @Resource
     private UserAccountService service;
 
+    @Resource
+    private UserAccountRecordService accountRecordService;
 
     @Override
     public CommonResult<AccountRespDTO> createUserAccountIfAbsent(Long userId) {
@@ -38,4 +41,39 @@ public class UserAccountApiImpl implements UserAccountApi {
     public CommonResult<Boolean> updateBalance(Long userId, BigDecimal balance) {
         return success(service.updateBalance(userId, balance));
     }
+
+    @Override
+    public CommonResult<Boolean> createPointRecord(AccountRecordSaveReqDTO dto) {
+        accountRecordService.createPointRecord(
+                dto.getUserId(),
+                dto.getUrl(),
+                dto.getTitle(),
+                dto.getOperation(),
+                dto.getPoint(),
+                dto.getPointBizTypeEnum(),
+                dto.getBizId()
+        );
+        return success(true);
+    }
+
+    @Override
+    public CommonResult<Boolean> createBalanceRecord(AccountRecordSaveReqDTO dto) {
+        accountRecordService.createBalanceRecord(
+                dto.getUserId(),
+                dto.getTitle(),
+                dto.getOperation(),
+                dto.getBalance(),
+                dto.getBalanceBizType(),
+                dto.getBizId()
+        );
+        return success(true);
+    }
+
+    @Override
+    public CommonResult<Integer> getPointCount(Long userId,
+                                               String url,
+                                               LocalDateTime startDate,
+                                               LocalDateTime endDate) {
+        return success(accountRecordService.getPointCount(userId, url, startDate, endDate));
+    }
 }

+ 44 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/enterprise/EnterpriseAccountController.java

@@ -8,17 +8,21 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.module.menduner.system.controller.admin.enterprise.vo.EnterpriseAccountPageRespVO;
+import com.citu.module.menduner.system.controller.base.account.AccountBalanceUpdateReqVO;
+import com.citu.module.menduner.system.controller.base.account.AccountPointUpdateReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.account.EnterpriseAccountPageReqVO;
 import com.citu.module.menduner.system.controller.base.enterprise.account.EnterpriseAccountRespVO;
 import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAccountDO;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 import com.citu.module.menduner.system.service.enterprise.account.EnterpriseAccountService;
+import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -38,7 +42,9 @@ public class EnterpriseAccountController {
     @Resource
     private EnterpriseAccountService enterpriseAccountService;
 
-
+    @Resource
+    private EnterpriseAccountRecordService service;
+    
     @GetMapping("/page")
     @Operation(summary = "获得企业账户分页")
     @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-account:query')")
@@ -61,4 +67,38 @@ public class EnterpriseAccountController {
                 BeanUtils.toBean(list, EnterpriseAccountRespVO.class));
     }
 
+ 
+
+    @PutMapping("/update-point")
+    @Operation(summary = "修改账户的积分")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-point:update')")
+    public CommonResult<Boolean> updateUserPoint(@Valid @RequestBody AccountPointUpdateReqVO updateReqVO) {
+        service.createPointRecord(
+                updateReqVO.getEnterpriseId(),
+                updateReqVO.getUserId(),
+                null,
+                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
+                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
+                updateReqVO.getPoint(),
+                PointBizTypeEnum.ADMIN,
+                String.valueOf(updateReqVO.getUserId()));
+        return success(true);
+    }
+
+    @PutMapping("/update-balance")
+    @Operation(summary = "修改账户余额")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-balance:update')")
+    public CommonResult<Boolean> updateBalance(@Valid @RequestBody AccountBalanceUpdateReqVO updateReqVO) {
+        service.createBalanceRecord(
+                updateReqVO.getEnterpriseId(),
+                updateReqVO.getUserId(),
+                null,
+                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
+                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
+                updateReqVO.getBalance(),
+                BalanceBizTypeEnum.ADMIN,
+                String.valueOf(updateReqVO.getUserId()));
+        return success(true);
+    }
+
 }

+ 9 - 8
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/record/EnterpriseAccountRecordController.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/record/EnterpriseAccountRecordController.java

@@ -1,12 +1,13 @@
-package com.citu.module.menduner.reward.controller.admin.record;
+package com.citu.module.menduner.system.controller.admin.record;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.EnterpriseAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.controller.base.record.EnterpriseAccountRecordRespVO;
-import com.citu.module.menduner.reward.convert.EnterpriseAccountRecordConvert;
-import com.citu.module.menduner.reward.dal.dataobject.record.EnterpriseAccountRecordDO;
-import com.citu.module.menduner.reward.service.record.EnterpriseAccountRecordService;
+import com.citu.module.menduner.system.controller.base.account.record.EnterpriseAccountRecordPageReqVO;
+import com.citu.module.menduner.system.controller.base.account.record.EnterpriseAccountRecordRespVO;
+
+import com.citu.module.menduner.system.convert.EnterpriseAccountRecordConvert;
+import com.citu.module.menduner.system.dal.dataobject.record.EnterpriseAccountRecordDO;
+import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -22,7 +23,7 @@ import static com.citu.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "管理后台 - 企业账户变动记录")
 @RestController
-@RequestMapping("/menduner/reward/enterprise/account/record")
+@RequestMapping("/menduner/system/enterprise/account/record")
 @Validated
 public class EnterpriseAccountRecordController {
 
@@ -31,7 +32,7 @@ public class EnterpriseAccountRecordController {
 
     @GetMapping("/page")
     @Operation(summary = "分页")
-    @PreAuthorize("@ss.hasPermission('menduner:reward:enterprise-account-record:query')")
+    @PreAuthorize("@ss.hasPermission('menduner:system:enterprise-account-record:query')")
     public CommonResult<PageResult<EnterpriseAccountRecordRespVO>> page
             (@Valid EnterpriseAccountRecordPageReqVO pageVO) {
         // 执行分页查询

+ 8 - 8
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/admin/record/UserAccountRecordController.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/record/UserAccountRecordController.java

@@ -1,12 +1,12 @@
-package com.citu.module.menduner.reward.controller.admin.record;
+package com.citu.module.menduner.system.controller.admin.record;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordRespVO;
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.convert.UserAccountRecordConvert;
-import com.citu.module.menduner.reward.dal.dataobject.record.UserAccountRecordDO;
-import com.citu.module.menduner.reward.service.record.UserAccountRecordService;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordRespVO;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordPageReqVO;
+import com.citu.module.menduner.system.convert.UserAccountRecordConvert;
+import com.citu.module.menduner.system.dal.dataobject.record.UserAccountRecordDO;
+import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -22,7 +22,7 @@ import static com.citu.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "管理后台 - 用户账户变动记录")
 @RestController
-@RequestMapping("/menduner/reward/user/account/record")
+@RequestMapping("/menduner/system/user/account/record")
 @Validated
 public class UserAccountRecordController {
 
@@ -31,7 +31,7 @@ public class UserAccountRecordController {
 
     @GetMapping("/page")
     @Operation(summary = "分页")
-    @PreAuthorize("@ss.hasPermission('menduner:reward:user-account-record:query')")
+    @PreAuthorize("@ss.hasPermission('menduner:system:user-account-record:query')")
     public CommonResult<PageResult<UserAccountRecordRespVO>> page
             (@Valid UserAccountRecordPageReqVO pageVO) {
         // 执行分页查询

+ 41 - 4
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/admin/user/UserAccountController.java

@@ -8,17 +8,21 @@ import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.common.util.object.BeanUtils;
 import com.citu.framework.excel.core.util.ExcelUtils;
 import com.citu.module.menduner.system.controller.admin.user.vo.UserAccountPageRespVO;
+import com.citu.module.menduner.system.controller.base.account.AccountBalanceUpdateReqVO;
+import com.citu.module.menduner.system.controller.base.account.AccountPointUpdateReqVO;
 import com.citu.module.menduner.system.controller.base.user.account.UserAccountPageReqVO;
 import com.citu.module.menduner.system.controller.base.user.account.UserAccountRespVO;
 import com.citu.module.menduner.system.dal.dataobject.user.UserAccountDO;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
+import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import com.citu.module.menduner.system.service.user.UserAccountService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -37,7 +41,8 @@ public class UserAccountController {
 
     @Resource
     private UserAccountService userAccountService;
-
+    @Resource
+    private UserAccountRecordService accountRecordService;
 
     @GetMapping("/page")
     @Operation(summary = "获得用户账户分页")
@@ -60,4 +65,36 @@ public class UserAccountController {
                 BeanUtils.toBean(list, UserAccountRespVO.class));
     }
 
+
+
+
+    @PutMapping("/update-point")
+    @Operation(summary = "修改账户积分")
+    @PreAuthorize("@ss.hasPermission('menduner:system:user-point:update')")
+    public CommonResult<Boolean> updatePoint(@Valid @RequestBody AccountPointUpdateReqVO updateReqVO) {
+        accountRecordService.createPointRecord(updateReqVO.getUserId(),
+                null,
+                null,
+                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
+                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
+                updateReqVO.getPoint(),
+                PointBizTypeEnum.ADMIN,
+                String.valueOf(updateReqVO.getUserId()));
+        return success(true);
+    }
+
+    @PutMapping("/update-balance")
+    @Operation(summary = "修改账户余额")
+    @PreAuthorize("@ss.hasPermission('menduner:system:user-balance:update')")
+    public CommonResult<Boolean> updateBalance(@Valid @RequestBody AccountBalanceUpdateReqVO updateReqVO) {
+        accountRecordService.createBalanceRecord(updateReqVO.getUserId(),
+                null,
+                MathOperationEnum.ADD.getOperator().equals(updateReqVO.getOperation())
+                        ? MathOperationEnum.ADD : MathOperationEnum.SUBTRACT,
+                updateReqVO.getBalance(),
+                BalanceBizTypeEnum.ADMIN,
+                String.valueOf(updateReqVO.getUserId()));
+        return success(true);
+    }
+
 }

+ 8 - 7
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/app/record/AppUserAccountRecordController.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/record/AppUserAccountRecordController.java

@@ -1,14 +1,15 @@
-package com.citu.module.menduner.reward.controller.app.record;
+package com.citu.module.menduner.system.controller.app.record;
 
 import com.citu.framework.common.pojo.CommonResult;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.security.core.annotations.PreAuthenticated;
 import com.citu.module.menduner.common.util.LoginUserContext;
-import com.citu.module.menduner.reward.controller.app.record.vo.AppAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.controller.app.record.vo.AppUserAccountRecordRespVO;
-import com.citu.module.menduner.reward.convert.UserAccountRecordConvert;
-import com.citu.module.menduner.reward.dal.dataobject.record.UserAccountRecordDO;
-import com.citu.module.menduner.reward.service.record.UserAccountRecordService;
+import com.citu.module.menduner.system.controller.app.record.vo.AppAccountRecordPageReqVO;
+import com.citu.module.menduner.system.controller.app.record.vo.AppUserAccountRecordRespVO;
+
+import com.citu.module.menduner.system.convert.UserAccountRecordConvert;
+import com.citu.module.menduner.system.dal.dataobject.record.UserAccountRecordDO;
+import com.citu.module.menduner.system.service.record.UserAccountRecordService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.validation.annotation.Validated;
@@ -23,7 +24,7 @@ import static com.citu.framework.common.pojo.CommonResult.success;
 
 @Tag(name = "求职端 - 用户账户变动记录")
 @RestController
-@RequestMapping("/menduner/reward/user/account/record")
+@RequestMapping("/menduner/system/user/account/record")
 @Validated
 public class AppUserAccountRecordController {
 

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/app/record/vo/AppAccountRecordPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/record/vo/AppAccountRecordPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.app.record.vo;
+package com.citu.module.menduner.system.controller.app.record.vo;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 2 - 2
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/app/record/vo/AppUserAccountRecordRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/app/record/vo/AppUserAccountRecordRespVO.java

@@ -1,6 +1,6 @@
-package com.citu.module.menduner.reward.controller.app.record.vo;
+package com.citu.module.menduner.system.controller.app.record.vo;
 
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordRespVO;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordRespVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/account/AccountBalanceUpdateReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/AccountBalanceUpdateReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.base.account;
+package com.citu.module.menduner.system.controller.base.account;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/account/AccountBaseVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/AccountBaseVO.java

@@ -1,10 +1,8 @@
-package com.citu.module.menduner.reward.controller.base.account;
+package com.citu.module.menduner.system.controller.base.account;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
-import javax.validation.constraints.NotNull;
-
 /**
  * 用户积分 Base VO,提供给添加、修改、详细的子 VO 使用
  * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/account/AccountPointUpdateReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/AccountPointUpdateReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.base.account;
+package com.citu.module.menduner.system.controller.base.account;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/record/EnterpriseAccountRecordPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/EnterpriseAccountRecordPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.base.record;
+package com.citu.module.menduner.system.controller.base.account.record;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/record/EnterpriseAccountRecordRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/EnterpriseAccountRecordRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.base.record;
+package com.citu.module.menduner.system.controller.base.account.record;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/record/UserAccountRecordPageReqVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/UserAccountRecordPageReqVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.base.record;
+package com.citu.module.menduner.system.controller.base.account.record;
 
 import com.citu.framework.common.pojo.PageParam;
 import io.swagger.v3.oas.annotations.media.Schema;

+ 1 - 1
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/controller/base/record/UserAccountRecordRespVO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/controller/base/account/record/UserAccountRecordRespVO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.controller.base.record;
+package com.citu.module.menduner.system.controller.base.account.record;
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;

+ 3 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/convert/EnterpriseAccountRecordConvert.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/EnterpriseAccountRecordConvert.java

@@ -1,8 +1,8 @@
-package com.citu.module.menduner.reward.convert;
+package com.citu.module.menduner.system.convert;
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.EnterpriseAccountRecordRespVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.EnterpriseAccountRecordDO;
+import com.citu.module.menduner.system.controller.base.account.record.EnterpriseAccountRecordRespVO;
+import com.citu.module.menduner.system.dal.dataobject.record.EnterpriseAccountRecordDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 

+ 5 - 4
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/convert/UserAccountRecordConvert.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/convert/UserAccountRecordConvert.java

@@ -1,9 +1,10 @@
-package com.citu.module.menduner.reward.convert;
+package com.citu.module.menduner.system.convert;
 
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.app.record.vo.AppUserAccountRecordRespVO;
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordRespVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.UserAccountRecordDO;
+
+import com.citu.module.menduner.system.controller.app.record.vo.AppUserAccountRecordRespVO;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordRespVO;
+import com.citu.module.menduner.system.dal.dataobject.record.UserAccountRecordDO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 

+ 3 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/dal/dataobject/record/EnterpriseAccountRecordDO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/record/EnterpriseAccountRecordDO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.dal.dataobject.record;
+package com.citu.module.menduner.system.dal.dataobject.record;
 
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -13,8 +13,8 @@ import java.math.BigDecimal;
  *
  * @author Rayson
  */
-@TableName("mde_reward_enterprise_account_record")
-@KeySequence("mde_reward_enterprise_account_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@TableName("mde_enterprise_account_record")
+@KeySequence("mde_enterprise_account_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 3 - 3
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/dal/dataobject/record/UserAccountRecordDO.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/dataobject/record/UserAccountRecordDO.java

@@ -1,4 +1,4 @@
-package com.citu.module.menduner.reward.dal.dataobject.record;
+package com.citu.module.menduner.system.dal.dataobject.record;
 
 import com.baomidou.mybatisplus.annotation.KeySequence;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -13,8 +13,8 @@ import java.math.BigDecimal;
  *
  * @author Rayson
  */
-@TableName("mde_reward_user_account_record")
-@KeySequence("mde_reward_user_account_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
+@TableName("mde_user_account_record")
+@KeySequence("mde_user_account_record_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @Data
 @EqualsAndHashCode(callSuper = true)
 @ToString(callSuper = true)

+ 5 - 4
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/dal/mysql/record/EnterpriseAccountRecordMapper.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/record/EnterpriseAccountRecordMapper.java

@@ -1,12 +1,13 @@
-package com.citu.module.menduner.reward.dal.mysql.record;
+package com.citu.module.menduner.system.dal.mysql.record;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
-import com.citu.module.menduner.reward.controller.base.record.EnterpriseAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.EnterpriseAccountRecordDO;
-import com.citu.module.menduner.reward.enums.record.AccountRecordTypeEnum;
+import com.citu.module.menduner.system.controller.base.account.record.EnterpriseAccountRecordPageReqVO;
+
+import com.citu.module.menduner.system.dal.dataobject.record.EnterpriseAccountRecordDO;
+import com.citu.module.menduner.system.enums.account.AccountRecordTypeEnum;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDateTime;

+ 4 - 4
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/dal/mysql/record/UserAccountRecordMapper.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/dal/mysql/record/UserAccountRecordMapper.java

@@ -1,12 +1,12 @@
-package com.citu.module.menduner.reward.dal.mysql.record;
+package com.citu.module.menduner.system.dal.mysql.record;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
 import com.citu.framework.mybatis.core.mapper.BaseMapperX;
 import com.citu.framework.mybatis.core.query.LambdaQueryWrapperX;
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.UserAccountRecordDO;
-import com.citu.module.menduner.reward.enums.record.AccountRecordTypeEnum;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.record.UserAccountRecordDO;
+import com.citu.module.menduner.system.enums.account.AccountRecordTypeEnum;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.time.LocalDateTime;

+ 6 - 1
menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/framework/rpc/config/RpcConfiguration.java

@@ -8,6 +8,11 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration(proxyBeanMethods = false)
-@EnableFeignClients(clients = {SmsCodeApi.class, LoginLogApi.class, SocialUserApi.class, SocialClientApi.class})
+@EnableFeignClients(clients = {
+        SmsCodeApi.class,
+        LoginLogApi.class,
+        SocialUserApi.class,
+        SocialClientApi.class
+})
 public class RpcConfiguration {
 }

+ 6 - 6
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/record/EnterpriseAccountRecordService.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/EnterpriseAccountRecordService.java

@@ -1,12 +1,12 @@
-package com.citu.module.menduner.reward.service.record;
+package com.citu.module.menduner.system.service.record;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.EnterpriseAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.EnterpriseAccountRecordDO;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.BalanceBizTypeEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
+import com.citu.module.menduner.system.controller.base.account.record.EnterpriseAccountRecordPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.record.EnterpriseAccountRecordDO;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;

+ 28 - 26
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/record/EnterpriseAccountRecordServiceImpl.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/EnterpriseAccountRecordServiceImpl.java

@@ -1,19 +1,22 @@
-package com.citu.module.menduner.reward.service.record;
+package com.citu.module.menduner.system.service.record;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.framework.common.exception.util.ServiceExceptionUtil;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.EnterpriseAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.EnterpriseAccountRecordDO;
-import com.citu.module.menduner.reward.dal.mysql.record.EnterpriseAccountRecordMapper;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.AccountRecordTypeEnum;
-import com.citu.module.menduner.reward.enums.record.BalanceBizTypeEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
 import com.citu.module.menduner.system.api.account.AccountRespDTO;
 import com.citu.module.menduner.system.api.account.EnterpriseAccountApi;
+import com.citu.module.menduner.system.controller.base.account.record.EnterpriseAccountRecordPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseAccountDO;
+import com.citu.module.menduner.system.dal.dataobject.record.EnterpriseAccountRecordDO;
+import com.citu.module.menduner.system.dal.mysql.record.EnterpriseAccountRecordMapper;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.AccountRecordTypeEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
+import com.citu.module.menduner.system.service.enterprise.account.EnterpriseAccountService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -23,9 +26,8 @@ import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
-import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.reward.enums.ErrorCodeConstants.USER_BALANCE_NOT_ENOUGH;
-import static com.citu.module.menduner.reward.enums.ErrorCodeConstants.USER_POINT_NOT_ENOUGH;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.USER_BALANCE_NOT_ENOUGH;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.USER_POINT_NOT_ENOUGH;
 
 /**
  * 企业账户变动 Service 实现类
@@ -41,7 +43,7 @@ public class EnterpriseAccountRecordServiceImpl implements EnterpriseAccountReco
     private EnterpriseAccountRecordMapper mapper;
 
     @Resource
-    private EnterpriseAccountApi enterpriseAccountApi;
+    private EnterpriseAccountService enterpriseAccountService;
 
     @Override
     public PageResult<EnterpriseAccountRecordDO> page(EnterpriseAccountRecordPageReqVO pageReqVO) {
@@ -61,17 +63,17 @@ public class EnterpriseAccountRecordServiceImpl implements EnterpriseAccountReco
             return;
         }
         // 1. 校验用户积分余额
-        AccountRespDTO userAccountResp = enterpriseAccountApi
-                .createEnterpriseAccountIfAbsent(enterpriseId, userId).getCheckedData();
-        Integer userPoint = ObjectUtil.defaultIfNull(userAccountResp.getPoint(), 0);
+        EnterpriseAccountDO enterpriseAccount =  enterpriseAccountService
+                .createEnterpriseAccountIfAbsent(enterpriseId, userId);
+        Integer userPoint = ObjectUtil.defaultIfNull(enterpriseAccount.getPoint(), 0);
         int totalPoint = userPoint + point; // 用户变动后的积分
         if (totalPoint < 0) {
-            throw exception(USER_POINT_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_POINT_NOT_ENOUGH);
         }
 
         if (MathOperationEnum.SUBTRACT.equals(operation)) {
             if (userPoint - point < 0) {
-                throw exception(USER_POINT_NOT_ENOUGH);
+                throw ServiceExceptionUtil.exception(USER_POINT_NOT_ENOUGH);
             }
             totalPoint = userPoint - point;
             // 减法
@@ -80,9 +82,9 @@ public class EnterpriseAccountRecordServiceImpl implements EnterpriseAccountReco
         }
 
         // 2. 更新用户积分
-        boolean success = enterpriseAccountApi.updatePoint(enterpriseId, userId, point).getCheckedData();
+        boolean success = enterpriseAccountService.updatePoint(enterpriseId, userId, point);
         if (!success) {
-            throw exception(USER_POINT_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_POINT_NOT_ENOUGH);
         }
 
         // 3. 增加用户账户变动
@@ -121,19 +123,19 @@ public class EnterpriseAccountRecordServiceImpl implements EnterpriseAccountReco
         }
 
         // 1. 校验用户余额
-        AccountRespDTO userAccountResp = enterpriseAccountApi.
-                createEnterpriseAccountIfAbsent(enterpriseId, userId).getCheckedData();
+        EnterpriseAccountDO enterpriseAccount =  enterpriseAccountService.
+                createEnterpriseAccountIfAbsent(enterpriseId, userId);
 
-        BigDecimal userBalance = ObjectUtil.defaultIfNull(userAccountResp.getBalance(), BigDecimal.ZERO);
+        BigDecimal userBalance = ObjectUtil.defaultIfNull(enterpriseAccount.getBalance(), BigDecimal.ZERO);
         BigDecimal totalBalance = userBalance.add(balance);
 
         if (totalBalance.compareTo(BigDecimal.ZERO) < 0) {
-            throw exception(USER_BALANCE_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_BALANCE_NOT_ENOUGH);
         }
 
         if (MathOperationEnum.SUBTRACT.equals(operation)) {
             if (userBalance.subtract(balance).compareTo(BigDecimal.ZERO) < 0) {
-                throw exception(USER_BALANCE_NOT_ENOUGH);
+                throw ServiceExceptionUtil.exception(USER_BALANCE_NOT_ENOUGH);
             }
             totalBalance = userBalance.subtract(balance);
             balance = balance.negate();
@@ -142,9 +144,9 @@ public class EnterpriseAccountRecordServiceImpl implements EnterpriseAccountReco
         }
 
         // 2. 更新用户余额
-        boolean success = enterpriseAccountApi.updateBalance(enterpriseId, userId, balance).getCheckedData();
+        boolean success = enterpriseAccountService.updateBalance(enterpriseId, userId, balance);
         if (!success) {
-            throw exception(USER_BALANCE_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_BALANCE_NOT_ENOUGH);
         }
 
         // 3. 增加用户账户变动

+ 6 - 6
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/record/UserAccountRecordService.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/UserAccountRecordService.java

@@ -1,12 +1,12 @@
-package com.citu.module.menduner.reward.service.record;
+package com.citu.module.menduner.system.service.record;
 
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.UserAccountRecordDO;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.BalanceBizTypeEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordPageReqVO;
+import com.citu.module.menduner.system.dal.dataobject.record.UserAccountRecordDO;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;

+ 29 - 25
menduner/menduner-reward-biz/src/main/java/com/citu/module/menduner/reward/service/record/UserAccountRecordServiceImpl.java → menduner/menduner-system-biz/src/main/java/com/citu/module/menduner/system/service/record/UserAccountRecordServiceImpl.java

@@ -1,19 +1,23 @@
-package com.citu.module.menduner.reward.service.record;
+package com.citu.module.menduner.system.service.record;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.citu.framework.common.exception.util.ServiceExceptionUtil;
 import com.citu.framework.common.pojo.PageParam;
 import com.citu.framework.common.pojo.PageResult;
-import com.citu.module.menduner.reward.controller.base.record.UserAccountRecordPageReqVO;
-import com.citu.module.menduner.reward.dal.dataobject.record.UserAccountRecordDO;
-import com.citu.module.menduner.reward.dal.mysql.record.UserAccountRecordMapper;
-import com.citu.module.menduner.reward.enums.MathOperationEnum;
-import com.citu.module.menduner.reward.enums.record.AccountRecordTypeEnum;
-import com.citu.module.menduner.reward.enums.record.BalanceBizTypeEnum;
-import com.citu.module.menduner.reward.enums.record.PointBizTypeEnum;
+import com.citu.module.menduner.system.controller.base.account.record.UserAccountRecordPageReqVO;
+
+import com.citu.module.menduner.system.dal.dataobject.record.UserAccountRecordDO;
+import com.citu.module.menduner.system.dal.dataobject.user.UserAccountDO;
+import com.citu.module.menduner.system.dal.mysql.record.UserAccountRecordMapper;
+import com.citu.module.menduner.system.enums.MathOperationEnum;
+import com.citu.module.menduner.system.enums.account.AccountRecordTypeEnum;
+import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
+import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
 import com.citu.module.menduner.system.api.account.AccountRespDTO;
 import com.citu.module.menduner.system.api.account.UserAccountApi;
+import com.citu.module.menduner.system.service.user.UserAccountService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
@@ -24,8 +28,8 @@ import java.time.LocalDateTime;
 import java.util.List;
 
 import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static com.citu.module.menduner.reward.enums.ErrorCodeConstants.USER_BALANCE_NOT_ENOUGH;
-import static com.citu.module.menduner.reward.enums.ErrorCodeConstants.USER_POINT_NOT_ENOUGH;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.USER_BALANCE_NOT_ENOUGH;
+import static com.citu.module.menduner.system.enums.ErrorCodeConstants.USER_POINT_NOT_ENOUGH;
 
 
 /**
@@ -42,7 +46,7 @@ public class UserAccountRecordServiceImpl implements UserAccountRecordService {
     private UserAccountRecordMapper mapper;
 
     @Resource
-    private UserAccountApi userAccountApi;
+    private UserAccountService userAccountService;
 
     @Override
     public PageResult<UserAccountRecordDO> page(UserAccountRecordPageReqVO pageReqVO) {
@@ -62,17 +66,17 @@ public class UserAccountRecordServiceImpl implements UserAccountRecordService {
             return;
         }
         // 1. 校验用户积分余额
-        AccountRespDTO userAccountResp = userAccountApi
-                .createUserAccountIfAbsent(userId).getCheckedData();
-        Integer userPoint = ObjectUtil.defaultIfNull(userAccountResp.getPoint(), 0);
+        UserAccountDO userAccountDO =  userAccountService
+                .createUserAccountIfAbsent(userId);
+        Integer userPoint = ObjectUtil.defaultIfNull(userAccountDO.getPoint(), 0);
         int totalPoint = userPoint + point; // 用户变动后的积分
         if (totalPoint < 0) {
-            throw exception(USER_POINT_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_POINT_NOT_ENOUGH);
         }
 
         if (MathOperationEnum.SUBTRACT.equals(operation)) {
             if (userPoint - point < 0) {
-                throw exception(USER_POINT_NOT_ENOUGH);
+                throw ServiceExceptionUtil.exception(USER_POINT_NOT_ENOUGH);
             }
             totalPoint = userPoint - point;
             // 减法
@@ -81,9 +85,9 @@ public class UserAccountRecordServiceImpl implements UserAccountRecordService {
         }
 
         // 2. 更新用户积分
-        boolean success = userAccountApi.updatePoint(userId, point).getCheckedData();
+        boolean success = userAccountService.updatePoint(userId, point);
         if (!success) {
-            throw exception(USER_POINT_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_POINT_NOT_ENOUGH);
         }
 
         // 3. 增加用户账户变动
@@ -121,19 +125,19 @@ public class UserAccountRecordServiceImpl implements UserAccountRecordService {
         }
 
         // 1. 校验用户余额
-        AccountRespDTO userAccountResp = userAccountApi.
-                createUserAccountIfAbsent(userId).getCheckedData();
+        UserAccountDO userAccountDO = userAccountService.
+                createUserAccountIfAbsent(userId);
 
-        BigDecimal userBalance = ObjectUtil.defaultIfNull(userAccountResp.getBalance(), BigDecimal.ZERO);
+        BigDecimal userBalance = ObjectUtil.defaultIfNull(userAccountDO.getBalance(), BigDecimal.ZERO);
         BigDecimal totalBalance = userBalance.add(balance);
 
         if (totalBalance.compareTo(BigDecimal.ZERO) < 0) {
-            throw exception(USER_BALANCE_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_BALANCE_NOT_ENOUGH);
         }
 
         if (MathOperationEnum.SUBTRACT.equals(operation)) {
             if (userBalance.subtract(balance).compareTo(BigDecimal.ZERO) < 0) {
-                throw exception(USER_BALANCE_NOT_ENOUGH);
+                throw ServiceExceptionUtil.exception(USER_BALANCE_NOT_ENOUGH);
             }
             totalBalance = userBalance.subtract(balance);
             balance = balance.negate();
@@ -142,9 +146,9 @@ public class UserAccountRecordServiceImpl implements UserAccountRecordService {
         }
 
         // 2. 更新用户余额
-        boolean success = userAccountApi.updateBalance(userId, balance).getCheckedData();
+        boolean success = userAccountService.updateBalance(userId, balance);
         if (!success) {
-            throw exception(USER_BALANCE_NOT_ENOUGH);
+            throw ServiceExceptionUtil.exception(USER_BALANCE_NOT_ENOUGH);
         }
 
         // 3. 增加用户账户变动

+ 0 - 132
menduner/menduner-system-biz/src/test/java/com/citu/module/menduner/system/service/user/UserAccountServiceImplTest.java

@@ -1,132 +0,0 @@
-package com.citu.module.menduner.system.service.user;
-
-
-import com.citu.framework.common.pojo.PageResult;
-import com.citu.framework.test.core.ut.BaseDbUnitTest;
-import com.citu.module.menduner.system.controller.base.user.account.UserAccountPageReqVO;
-import com.citu.module.menduner.system.controller.base.user.account.UserAccountSaveReqVO;
-import com.citu.module.menduner.system.dal.dataobject.user.UserAccountDO;
-import com.citu.module.menduner.system.dal.mysql.user.UserAccountMapper;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-import org.springframework.context.annotation.Import;
-
-import javax.annotation.Resource;
-
-import static com.citu.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
-import static com.citu.framework.common.util.object.ObjectUtils.cloneIgnoreId;
-import static com.citu.framework.test.core.util.AssertUtils.assertPojoEquals;
-import static com.citu.framework.test.core.util.AssertUtils.assertServiceException;
-import static com.citu.framework.test.core.util.RandomUtils.randomLongId;
-import static com.citu.framework.test.core.util.RandomUtils.randomPojo;
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.USER_ACCOUNT_NOT_EXISTS;
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * {@link UserAccountServiceImpl} 的单元测试类
- *
- * @author Rayson
- */
-@Import(UserAccountServiceImpl.class)
-public class UserAccountServiceImplTest extends BaseDbUnitTest {
-
-    @Resource
-    private UserAccountServiceImpl userAccountService;
-
-    @Resource
-    private UserAccountMapper userAccountMapper;
-
-    @Test
-    public void testCreateUserAccount_success() {
-        // 准备参数
-        UserAccountSaveReqVO createReqVO = randomPojo(UserAccountSaveReqVO.class).setId(null);
-
-        // 调用
-        Long userAccountId = userAccountService.createUserAccount(createReqVO);
-        // 断言
-        assertNotNull(userAccountId);
-        // 校验记录的属性是否正确
-        UserAccountDO userAccount = userAccountMapper.selectById(userAccountId);
-        assertPojoEquals(createReqVO, userAccount, "id");
-    }
-
-    @Test
-    public void testUpdateUserAccount_success() {
-        // mock 数据
-        UserAccountDO dbUserAccount = randomPojo(UserAccountDO.class);
-        userAccountMapper.insert(dbUserAccount);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        UserAccountSaveReqVO updateReqVO = randomPojo(UserAccountSaveReqVO.class, o -> {
-            o.setId(dbUserAccount.getId()); // 设置更新的 ID
-        });
-
-        // 调用
-        userAccountService.updateUserAccount(updateReqVO);
-        // 校验是否更新正确
-        UserAccountDO userAccount = userAccountMapper.selectById(updateReqVO.getId()); // 获取最新的
-        assertPojoEquals(updateReqVO, userAccount);
-    }
-
-    @Test
-    public void testUpdateUserAccount_notExists() {
-        // 准备参数
-        UserAccountSaveReqVO updateReqVO = randomPojo(UserAccountSaveReqVO.class);
-
-        // 调用, 并断言异常
-        assertServiceException(() -> userAccountService.updateUserAccount(updateReqVO), USER_ACCOUNT_NOT_EXISTS);
-    }
-
-    @Test
-    public void testDeleteUserAccount_success() {
-        // mock 数据
-        UserAccountDO dbUserAccount = randomPojo(UserAccountDO.class);
-        userAccountMapper.insert(dbUserAccount);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        Long id = dbUserAccount.getId();
-
-        // 调用
-        userAccountService.deleteUserAccount(id);
-        // 校验数据不存在了
-        assertNull(userAccountMapper.selectById(id));
-    }
-
-    @Test
-    public void testDeleteUserAccount_notExists() {
-        // 准备参数
-        Long id = randomLongId();
-
-        // 调用, 并断言异常
-        assertServiceException(() -> userAccountService.deleteUserAccount(id), USER_ACCOUNT_NOT_EXISTS);
-    }
-
-    @Test
-    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
-    public void testGetUserAccountPage() {
-        // mock 数据
-        UserAccountDO dbUserAccount = randomPojo(UserAccountDO.class, o -> { // 等会查询到
-            o.setUserId(null);
-            o.setBalance(null);
-            o.setCreateTime(null);
-        });
-        userAccountMapper.insert(dbUserAccount);
-        // 测试 userId 不匹配
-        userAccountMapper.insert(cloneIgnoreId(dbUserAccount, o -> o.setUserId(null)));
-        // 测试 balance 不匹配
-        userAccountMapper.insert(cloneIgnoreId(dbUserAccount, o -> o.setBalance(null)));
-        // 测试 createTime 不匹配
-        userAccountMapper.insert(cloneIgnoreId(dbUserAccount, o -> o.setCreateTime(null)));
-        // 准备参数
-        UserAccountPageReqVO reqVO = new UserAccountPageReqVO();
-        reqVO.setUserId(null);
-        reqVO.setBalance(null);
-        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
-
-        // 调用
-        PageResult<UserAccountDO> pageResult = userAccountService.getUserAccountPage(reqVO);
-        // 断言
-        assertEquals(1, pageResult.getTotal());
-        assertEquals(1, pageResult.getList().size());
-        assertPojoEquals(dbUserAccount, pageResult.getList().get(0));
-    }
-
-}