Ver Fonte

feat(account): 在充电扣款时增加积分变动日志功能

- 在系统常量中新增充电扣款备注常量 CHARGE_DEDUCT_NOTE
- 在UserAccountServiceImpl中判断扣款备注为充电扣款时,创建积分变动日志记录
- 修改UserInfoIntegralLog实体,调整sourceType和changNo类型为Integer和Long
- UserOrderInfoQuery增加开始时间和结束时间支持分页查询
- UserOrderInfoMapper XML新增创建时间范围查询条件
- UserRefundsOrderInfo相关类添加userId字段,包括实体、表单、VO和Mapper XML
- ChargeOrderInfoServiceImpl中使用充电扣款常量替换硬编码文字“充电扣款”
wzq há 3 semanas atrás
pai
commit
6b4892b187

+ 2 - 2
src/main/java/com/zsElectric/boot/business/model/entity/UserInfoIntegralLog.java

@@ -40,11 +40,11 @@ public class UserInfoIntegralLog{
     /**
      * 来源(1自动上账,2手动上账)
      */
-    private String sourceType;
+    private Integer sourceType;
     /**
      * 来源单号
      */
-    private String changNo;
+    private Long changNo;
     /**
      * 备注
      */

+ 4 - 0
src/main/java/com/zsElectric/boot/business/model/entity/UserRefundsOrderInfo.java

@@ -33,6 +33,10 @@ public class UserRefundsOrderInfo extends BaseEntity {
      * 退款类型:1-主动退款 2-用户申请退款
      */
     private Integer type;
+    /**
+     * 用户ID
+     */
+    private Long userId;
     /**
      * 商户退款单号
      */

+ 3 - 0
src/main/java/com/zsElectric/boot/business/model/form/UserRefundsOrderInfoForm.java

@@ -37,6 +37,9 @@ public class UserRefundsOrderInfoForm implements Serializable {
     @Size(max=64, message="商户订单号长度不能超过64个字符")
     private String orderNo;
 
+    @Schema(description = "userId")
+    private Long userId;
+
     @Schema(description = "退款类型:1-主动退款 2-用户申请退款")
     private Integer type;
 

+ 7 - 0
src/main/java/com/zsElectric/boot/business/model/query/UserOrderInfoQuery.java

@@ -6,6 +6,7 @@ import lombok.Getter;
 import lombok.Setter;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 
 /**
  * 用户支付订单信息分页查询对象
@@ -29,4 +30,10 @@ public class UserOrderInfoQuery extends BasePageQuery {
 
     @Schema(description = "订单编号")
     private String orderNo;
+
+    @Schema(description = "开始时间")
+    private LocalDateTime startTime;
+
+    @Schema(description = "结束时间")
+    private LocalDateTime endTime;
 }

+ 2 - 0
src/main/java/com/zsElectric/boot/business/model/vo/UserRefundsOrderInfoVO.java

@@ -29,6 +29,8 @@ public class UserRefundsOrderInfoVO implements Serializable {
     private String orderId;
     @Schema(description = "商户订单号")
     private String orderNo;
+    @Schema(description = "userId")
+    private String userId;
     @Schema(description = "退款类型:1-主动退款 2-用户申请退款")
     private Integer type;
     @Schema(description = "商户退款单号")

+ 12 - 13
src/main/java/com/zsElectric/boot/business/service/impl/ChargeOrderInfoServiceImpl.java

@@ -1,15 +1,25 @@
 package com.zsElectric.boot.business.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Assert;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zsElectric.boot.business.converter.ChargeOrderInfoConverter;
 import com.zsElectric.boot.business.mapper.*;
 import com.zsElectric.boot.business.model.entity.*;
+import com.zsElectric.boot.business.model.form.ChargeOrderInfoForm;
 import com.zsElectric.boot.business.model.form.applet.AppInvokeChargeForm;
 import com.zsElectric.boot.business.model.form.applet.AppStopChargeForm;
+import com.zsElectric.boot.business.model.query.ChargeOrderInfoQuery;
 import com.zsElectric.boot.business.model.query.applet.AppChargeOrderInfoQuery;
+import com.zsElectric.boot.business.model.vo.ChargeOrderInfoVO;
 import com.zsElectric.boot.business.model.vo.applet.AppChargeVO;
 import com.zsElectric.boot.business.model.vo.applet.AppUserInfoVO;
 import com.zsElectric.boot.business.service.AppletHomeService;
+import com.zsElectric.boot.business.service.ChargeOrderInfoService;
 import com.zsElectric.boot.business.service.UserAccountService;
 import com.zsElectric.boot.charging.dto.StartChargingRequestDTO;
 import com.zsElectric.boot.charging.dto.StartChargingResponseVO;
@@ -23,14 +33,6 @@ import com.zsElectric.boot.security.util.SecurityUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zsElectric.boot.business.service.ChargeOrderInfoService;
-import com.zsElectric.boot.business.model.form.ChargeOrderInfoForm;
-import com.zsElectric.boot.business.model.query.ChargeOrderInfoQuery;
-import com.zsElectric.boot.business.model.vo.ChargeOrderInfoVO;
-import com.zsElectric.boot.business.converter.ChargeOrderInfoConverter;
 
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
@@ -39,9 +41,6 @@ import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 
-import cn.hutool.core.lang.Assert;
-import cn.hutool.core.util.StrUtil;
-
 /**
  * 充电订单信息服务实现类
  *
@@ -78,7 +77,7 @@ public class ChargeOrderInfoServiceImpl extends ServiceImpl<ChargeOrderInfoMappe
     * 获取充电订单信息分页列表
     *
     * @param queryParams 查询参数
-    * @return {@link IPage<ChargeOrderInfoVO>} 充电订单信息分页列表
+    * @return {@link IPage <ChargeOrderInfoVO>} 充电订单信息分页列表
     */
     @Override
     public IPage<ChargeOrderInfoVO> getChargeOrderInfoPage(ChargeOrderInfoQuery queryParams) {
@@ -298,7 +297,7 @@ public class ChargeOrderInfoServiceImpl extends ServiceImpl<ChargeOrderInfoMappe
                 userId,
                 totalCharge,
                 SystemConstants.CHANGE_TYPE_REDUCE,
-                "充电扣款",
+                SystemConstants.CHARGE_DEDUCT_NOTE,
                 chargeOrderInfo.getId()
         );
     }

+ 19 - 0
src/main/java/com/zsElectric/boot/business/service/impl/UserAccountServiceImpl.java

@@ -2,7 +2,9 @@ package com.zsElectric.boot.business.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zsElectric.boot.business.mapper.UserAccountLogMapper;
+import com.zsElectric.boot.business.mapper.UserInfoIntegralLogMapper;
 import com.zsElectric.boot.business.model.entity.UserAccountLog;
+import com.zsElectric.boot.business.model.entity.UserInfoIntegralLog;
 import com.zsElectric.boot.common.constant.SystemConstants;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -39,6 +41,8 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountMapper, UserA
     
     private final UserAccountLogMapper userAccountLogMapper;
 
+    private final UserInfoIntegralLogMapper userInfoIntegralLogMapper;
+
     /**
     * 获取个人账户分页列表
     *
@@ -152,6 +156,21 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountMapper, UserA
             finalBalance = userAccount.getBalance().subtract(changeAmount);
             // 减去账户余额
             userAccount.setBalance(finalBalance);
+
+            if (changeNote.equals(SystemConstants.CHARGE_DEDUCT_NOTE)){
+                //创建积分变动日志
+                UserInfoIntegralLog userInfoIntegralLog = new UserInfoIntegralLog();
+                userInfoIntegralLog.setUserId(userId);
+                userInfoIntegralLog.setIntegralNumOrg(userAccount.getIntegral());
+                userInfoIntegralLog.setIntegralNum(changeAmount);
+                userInfoIntegralLog.setType(SystemConstants.STATUS_ONE);
+                userInfoIntegralLog.setSourceType(SystemConstants.STATUS_ONE);
+                userInfoIntegralLog.setChangNo(changeId);
+                userInfoIntegralLog.setRemark(changeNote);
+
+                userInfoIntegralLogMapper.insert(userInfoIntegralLog);
+            }
+
         }
 //        else{
 //            // 减少余额,优先减少兑换余额,不够的再减抵用余额

+ 1 - 0
src/main/java/com/zsElectric/boot/common/constant/SystemConstants.java

@@ -50,6 +50,7 @@ public interface SystemConstants {
     String ACCOUNT_LOG_PAY_NOTE = "购买充点券";
     String ACCOUNT_LOG_REFUND_NOTE = "账户退款";
     String ACCOUNT_LOG_BACK_TAX_NOTE = "补缴欠费";
+    String CHARGE_DEDUCT_NOTE = "充电扣款";
 
     /**
      * 变更记录类型  1-增加 2-减少 3-兑换增加 账户退款

+ 6 - 0
src/main/resources/mapper/business/UserOrderInfoMapper.xml

@@ -40,6 +40,12 @@
             <if test="queryParams.orderNo != null">
                 AND a.order_no = #{queryParams.orderNo}
             </if>
+            <if test="queryParams.startTime != null">
+                AND a.create_time <![CDATA[  >=  ]]> #{queryParams.startTime,jdbcType=DATE}
+            </if>
+            <if test="queryParams.endTime != null">
+                AND a.create_time <![CDATA[  <=  ]]> #{queryParams.endTime,jdbcType=DATE}
+            </if>
         </where>
         ORDER BY a.create_time DESC
     </select>

+ 1 - 0
src/main/resources/mapper/business/UserRefundsOrderInfoMapper.xml

@@ -8,6 +8,7 @@
                 id,
                 order_id,
                 order_no,
+                user_id,
                 type,
                 out_refund_no,
                 refund_id,