Jelajahi Sumber

feature: 卡务中心->卡务操作->退款

luoyb 1 tahun lalu
induk
melakukan
67d0577e23
44 mengubah file dengan 799 tambahan dan 472 penghapusan
  1. 1 1
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CreditTypeConstants.java
  2. 28 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/payments/PaymentsException.java
  3. 166 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DigitUtils.java
  4. 75 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/RecordIdUtils.java
  5. 66 63
      ruoyi-common/ruoyi-common-core/src/main/resources/i18n/messages_zh_CN.properties
  6. 0 9
      ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java
  7. 9 62
      ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/YcEncryptUtil.java
  8. 111 19
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/payments/PaymentsBusiness.java
  9. 9 1
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/payments/strategy/impl/RefundPaymentsStrategyImpl.java
  10. 11 9
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/cardCenter/controller/PtCardController.java
  11. 9 9
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailController.java
  12. 9 9
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailoriginalController.java
  13. 9 9
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountController.java
  14. 9 9
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountbackController.java
  15. 1 2
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumeDetail.java
  16. 1 2
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumeDetailOriginal.java
  17. 2 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditAccount.java
  18. 1 2
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditAccountBack.java
  19. 3 4
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumeDetailBo.java
  20. 3 4
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumeDetailOriginalBo.java
  21. 3 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditAccountBackBo.java
  22. 8 7
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditAccountBo.java
  23. 4 6
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumeDetailOriginalVo.java
  24. 4 6
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumeDetailVo.java
  25. 3 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditAccountBackVo.java
  26. 4 8
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditAccountVo.java
  27. 3 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailMapper.java
  28. 3 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailoriginalMapper.java
  29. 3 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountMapper.java
  30. 3 3
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountbackMapper.java
  31. 7 8
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailService.java
  32. 7 8
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailoriginalService.java
  33. 9 7
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditAccountBackService.java
  34. 9 7
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditAccountService.java
  35. 47 47
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailServiceImpl.java
  36. 42 42
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailoriginalServiceImpl.java
  37. 50 39
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditAccountBackServiceImpl.java
  38. 58 47
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditAccountServiceImpl.java
  39. 1 1
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfTermServiceImpl.java
  40. 4 0
      ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/domain/bo/PtBagBo.java
  41. 1 1
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailMapper.xml
  42. 1 1
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailoriginalMapper.xml
  43. 1 1
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountMapper.xml
  44. 1 1
      ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountbackMapper.xml

+ 1 - 1
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CreditTypeConstants.java

@@ -18,7 +18,7 @@ public interface CreditTypeConstants {
     /**
      * 退款
      */
-    String REFUND="refund";
+    String REFUND="REFUND";
     /**
      * 管理费
      */

+ 28 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/exception/payments/PaymentsException.java

@@ -0,0 +1,28 @@
+package org.dromara.common.core.exception.payments;
+
+import org.dromara.common.core.exception.base.BaseException;
+
+import java.io.Serial;
+
+/**
+ * 资金收支信息异常类
+ *
+ * @author ruoyi
+ */
+public class PaymentsException extends BaseException {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    public PaymentsException(String code, Object... args) {
+        super("资金收支", code, args, null);
+    }
+
+    public PaymentsException(String module,String code, Object... args) {
+        super(module, code, args, null);
+    }
+
+    public PaymentsException(String module, String defaultMessage) {
+        super(module, defaultMessage);
+    }
+}

+ 166 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/DigitUtils.java

@@ -0,0 +1,166 @@
+package org.dromara.common.core.utils;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+/**
+ * name: DigitUtil
+ * package: com.zd.core.util
+ * description: 数制转换工具类
+ * date: 2019-08-14 16:33
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class DigitUtils {
+
+    /**
+     * 16进制字符串转字节码
+     * <p>
+     * date 2019-08-14 16:41
+     *
+     * @param hexStr 16进制字符串
+     * @return byte[] 字节
+     * @author luoyibo
+     */
+    public static byte[] hexToByte(String hexStr) {
+        int i = hexStr.length() / 2;
+        byte[] abyte0 = new byte[i];
+        for (int j = 0; j < i; ++j) {
+            String s1 = hexStr.substring(j * 2, j * 2 + 2);
+            abyte0[j] = (byte) Integer.parseInt(s1, 16);
+        }
+        return abyte0;
+    }
+    /**
+     *
+     * 16进制转2进制
+     * <p>
+     * date 2019-08-17 16:19
+     * @author luoyibo
+     * @param hexStr 16进制字符串
+     * @return byte[] 二进制
+     */
+    public static byte[] hexTo2Byte(String hexStr){
+        if (hexStr.isEmpty()) {
+            return null;
+        }
+        String prefix = "0x";
+        if(hexStr.substring(0, 2).toLowerCase().equals(prefix)){
+            hexStr = hexStr.substring(2, hexStr.length() - 2);
+        }
+        byte[] result = new byte[hexStr.length() / 2];
+        for (int i = 0; i < hexStr.length() / 2; i++) {
+            int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
+            int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
+            result[i] = (byte) (high * 16 + low);
+        }
+        return result;
+    }
+    /**
+     * 二进制数据转换成16进制字符串
+     * <p>
+     * date 2019-08-17 16:08
+     *
+     * @param bytes    二进制数据
+     * @param isPrefix 是否带0x前缀,true-要带 false-不带
+     * @return java.lang.String
+     * @author luoyibo
+     */
+    public static String byteToHexStr(byte[] bytes, boolean isPrefix) {
+        StringBuilder sb = new StringBuilder();
+        if (isPrefix) {
+            sb.append("0x");
+        }
+        for (byte aByte : bytes) {
+            String hex = Integer.toHexString(aByte & 0xFF);
+            if (hex.length() == 1) {
+                hex = '0' + hex;
+            }
+            sb.append(hex.toUpperCase());
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 二进制数据转换成16进制字符串
+     * <p>
+     * date 2019-08-17 16:11
+     *
+     * @param bytes 二进制数据
+     * @return java.lang.String
+     * @author luoyibo
+     */
+    public static String byteToHexStr(byte[] bytes) {
+        return byteToHexStr(bytes, false);
+    }
+
+    /**
+     *
+     * 将java short数据转换成无符号整数
+     * <p>
+     * date 2019-08-20 21:08
+     * @author luoyibo
+     * @param data java short data
+     * @return int
+     */
+    public static int shortToUnsigned(short data){
+        return data & 0x0FFFF;
+    }
+
+    /**
+     *
+     * 将整数转换成无符号数
+     * <p>
+     * date 2019-08-20 21:15
+     * @author luoyibo
+     * @param data 无符号数
+     * @return long
+     */
+    public static long intToUnsigned(int data) {
+        return data & 0x0FFFFFFFFL;
+    }
+
+    /**
+     *
+     * 字节转换成无符号整数
+     * <p>
+     * date 2019-08-20 21:19
+     * @author luoyibo
+     * @param data 字节
+     * @return int
+     */
+    public static int byteToUnsigned(byte data) {
+        return data & 0x0FF;
+    }
+
+    /**
+     * 将金额从元转换成以分为单位
+     * <p>
+     * date 2019-07-24 10:10
+     *
+     * @param money 金额
+     * @return int
+     * @author luoyibo
+     */
+    public  static int moneyToCents(BigDecimal money) {
+        BigDecimal a = new BigDecimal(100);
+        return a.multiply(money).intValue();
+    }
+    /**
+     * 将金额从分转换成以元为单位,保留2位小数
+     * <p>
+     * date 2019-07-24 10:10
+     *
+     * @param cents 金额
+     * @return int
+     * @author luoyibo
+     */
+    public static BigDecimal centsToMoney(int cents){
+        BigDecimal a = new BigDecimal(100);
+        BigDecimal b = new BigDecimal(cents);
+
+        return b.divide(a, 2, RoundingMode.UP);
+    }
+}

+ 75 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/RecordIdUtils.java

@@ -0,0 +1,75 @@
+package org.dromara.common.core.utils;
+
+import cn.hutool.core.date.DateUtil;
+
+import java.util.Date;
+
+/**
+ * name: RecordIdUtils
+ * package: org.dromara.common.core.utils
+ * description: 32记录Id生成器
+ * date: 2024-08-22 21:19:11 21:19
+ *
+ * @author luoyibo
+ * @version 0.1
+ * @since JDK 1.8
+ */
+public class RecordIdUtils {
+    /**
+     *
+     * 生成32位Id
+     * 前10位固定为时间:2位年+2位月+2位日
+     * <p>
+     * date 2019-08-20 21:23
+     * @author luoyibo
+     * @param date 日期
+     * @param key1 消费:设备机号
+     *             资金收支:收支类型
+     * @param key2 消费:设备机器流水号
+     *             资金收支:账户流水号
+     * @param key3 消费:卡片流水号
+     *             资金收支:充值金额*100去掉小数点
+     * @param key4 钱包代码
+     * @return java.lang.String
+     */
+    public static String getRecordId(Date date, short key1, int key2, int key3, int key4){
+        StringBuilder recordId = new StringBuilder();
+
+        // 10位时间
+        String dateStr = DateUtil.format(date, "yyMMddHHmmss");
+        long time = Long.parseLong(dateStr);
+        recordId.append(Long.toHexString(time));
+
+        // 4位 消费:设备机号   资金收支:收支类型
+        int i = DigitUtils.shortToUnsigned(key1);
+        StringBuilder str1 = new StringBuilder(Integer.toHexString(i));
+        while (str1.length() < 4) {
+            str1.insert(0, "0");
+        }
+        recordId.append(str1);
+        //8位消费:设备机器流水号  资金收支:账户流水号
+        long l1 = DigitUtils.intToUnsigned(key2);
+        StringBuilder str2 = new StringBuilder(Long.toHexString(l1));
+        while (str2.length() < 8) {
+            str2.insert(0, "0");
+        }
+        recordId.append(str2);
+        //8位 消费:卡片流水号  资金收支:充值金额*100去掉小数点
+        long l2 = DigitUtils.intToUnsigned(key3);
+        StringBuilder str3 = new StringBuilder(Long.toHexString(l2));
+        while (str3.length() < 8) {
+            str3.insert(0, "0");
+        }
+        recordId.append(str3);
+        // 2位钱包类型
+        byte temp = Byte.parseByte(String.valueOf(key4));
+        int i2 = DigitUtils.byteToUnsigned(temp);
+        StringBuilder str4 = new StringBuilder(Integer.toHexString(i2));
+        while (str4.length() < 2) {
+            str4.insert(0, "0");
+        }
+        recordId.append(str4);
+
+        return recordId.toString();
+    }
+}

+ 66 - 63
ruoyi-common/ruoyi-common-core/src/main/resources/i18n/messages_zh_CN.properties

@@ -1,63 +1,66 @@
-#错误消息
-not.null=* 必须填写
-user.jcaptcha.error=验证码错误
-user.jcaptcha.expire=验证码已失效
-user.not.exists=对不起, 您的账号:{0} 不存在.
-user.password.not.match=用户不存在/密码错误
-user.password.retry.limit.count=密码输入错误{0}次
-user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定{1}分钟
-user.password.delete=对不起,您的账号:{0} 已被删除
-user.blocked=对不起,您的账号:{0} 已禁用,请联系管理员
-role.blocked=角色已封禁,请联系管理员
-user.logout.success=退出成功
-length.not.valid=长度必须在{min}到{max}个字符之间
-user.username.not.blank=用户名不能为空
-user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
-user.username.length.valid=账户长度必须在{min}到{max}个字符之间
-user.password.not.blank=用户密码不能为空
-user.password.length.valid=用户密码长度必须在{min}到{max}个字符之间
-user.password.not.valid=* 5-50个字符
-user.email.not.valid=邮箱格式错误
-user.email.not.blank=邮箱不能为空
-user.phonenumber.not.blank=用户手机号不能为空
-user.mobile.phone.number.not.valid=手机号格式错误
-user.login.success=登录成功
-user.register.success=注册成功
-user.register.save.error=保存用户 {0} 失败,注册账号已存在
-user.register.error=注册失败,请联系系统管理人员
-user.notfound=请重新登录
-user.forcelogout=管理员强制退出,请重新登录
-user.unknown.error=未知错误,请重新登录
-auth.grant.type.error=认证权限类型错误
-auth.grant.type.blocked=认证权限类型已禁用
-auth.grant.type.not.blank=认证权限类型不能为空
-auth.clientid.not.blank=认证客户端id不能为空
-##文件上传消息
-upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
-upload.filename.exceed.length=上传的文件名最长{0}个字符
-##权限
-no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
-no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
-no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
-no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
-no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
-no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
-repeat.submit.message=不允许重复提交,请稍候再试
-rate.limiter.message=访问过于频繁,请稍候再试
-sms.code.not.blank=短信验证码不能为空
-sms.code.retry.limit.count=短信验证码输入错误{0}次
-sms.code.retry.limit.exceed=短信验证码输入错误{0}次,帐户锁定{1}分钟
-email.code.not.blank=邮箱验证码不能为空
-email.code.retry.limit.count=邮箱验证码输入错误{0}次
-email.code.retry.limit.exceed=邮箱验证码输入错误{0}次,帐户锁定{1}分钟
-xcx.code.not.blank=小程序[code]不能为空
-social.source.not.blank=第三方登录平台[source]不能为空
-social.code.not.blank=第三方登录平台[code]不能为空
-social.state.not.blank=第三方登录平台[state]不能为空
-##租户
-tenant.number.not.blank=租户编号不能为空
-tenant.not.exists=对不起, 您的租户不存在,请联系管理员
-tenant.blocked=对不起,您的租户已禁用,请联系管理员
-tenant.expired=对不起,您的租户已过期,请联系管理员
-##钱包
-bag.balance.valid=账户余额校验失败
+#\u9519\u8BEF\u6D88\u606F
+not.null=* \u5FC5\u987B\u586B\u5199
+user.jcaptcha.error=\u9A8C\u8BC1\u7801\u9519\u8BEF
+user.jcaptcha.expire=\u9A8C\u8BC1\u7801\u5DF2\u5931\u6548
+user.not.exists=\u5BF9\u4E0D\u8D77, \u60A8\u7684\u8D26\u53F7\uFF1A{0} \u4E0D\u5B58\u5728.
+user.password.not.match=\u7528\u6237\u4E0D\u5B58\u5728/\u5BC6\u7801\u9519\u8BEF
+user.password.retry.limit.count=\u5BC6\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21
+user.password.retry.limit.exceed=\u5BC6\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21\uFF0C\u5E10\u6237\u9501\u5B9A{1}\u5206\u949F
+user.password.delete=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u7684\u8D26\u53F7\uFF1A{0} \u5DF2\u88AB\u5220\u9664
+user.blocked=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u7684\u8D26\u53F7\uFF1A{0} \u5DF2\u7981\u7528\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
+role.blocked=\u89D2\u8272\u5DF2\u5C01\u7981\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
+user.logout.success=\u9000\u51FA\u6210\u529F
+length.not.valid=\u957F\u5EA6\u5FC5\u987B\u5728{min}\u5230{max}\u4E2A\u5B57\u7B26\u4E4B\u95F4
+user.username.not.blank=\u7528\u6237\u540D\u4E0D\u80FD\u4E3A\u7A7A
+user.username.not.valid=* 2\u523020\u4E2A\u6C49\u5B57\u3001\u5B57\u6BCD\u3001\u6570\u5B57\u6216\u4E0B\u5212\u7EBF\u7EC4\u6210\uFF0C\u4E14\u5FC5\u987B\u4EE5\u975E\u6570\u5B57\u5F00\u5934
+user.username.length.valid=\u8D26\u6237\u957F\u5EA6\u5FC5\u987B\u5728{min}\u5230{max}\u4E2A\u5B57\u7B26\u4E4B\u95F4
+user.password.not.blank=\u7528\u6237\u5BC6\u7801\u4E0D\u80FD\u4E3A\u7A7A
+user.password.length.valid=\u7528\u6237\u5BC6\u7801\u957F\u5EA6\u5FC5\u987B\u5728{min}\u5230{max}\u4E2A\u5B57\u7B26\u4E4B\u95F4
+user.password.not.valid=* 5-50\u4E2A\u5B57\u7B26
+user.email.not.valid=\u90AE\u7BB1\u683C\u5F0F\u9519\u8BEF
+user.email.not.blank=\u90AE\u7BB1\u4E0D\u80FD\u4E3A\u7A7A
+user.phonenumber.not.blank=\u7528\u6237\u624B\u673A\u53F7\u4E0D\u80FD\u4E3A\u7A7A
+user.mobile.phone.number.not.valid=\u624B\u673A\u53F7\u683C\u5F0F\u9519\u8BEF
+user.login.success=\u767B\u5F55\u6210\u529F
+user.register.success=\u6CE8\u518C\u6210\u529F
+user.register.save.error=\u4FDD\u5B58\u7528\u6237 {0} \u5931\u8D25\uFF0C\u6CE8\u518C\u8D26\u53F7\u5DF2\u5B58\u5728
+user.register.error=\u6CE8\u518C\u5931\u8D25\uFF0C\u8BF7\u8054\u7CFB\u7CFB\u7EDF\u7BA1\u7406\u4EBA\u5458
+user.notfound=\u8BF7\u91CD\u65B0\u767B\u5F55
+user.forcelogout=\u7BA1\u7406\u5458\u5F3A\u5236\u9000\u51FA\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55
+user.unknown.error=\u672A\u77E5\u9519\u8BEF\uFF0C\u8BF7\u91CD\u65B0\u767B\u5F55
+auth.grant.type.error=\u8BA4\u8BC1\u6743\u9650\u7C7B\u578B\u9519\u8BEF
+auth.grant.type.blocked=\u8BA4\u8BC1\u6743\u9650\u7C7B\u578B\u5DF2\u7981\u7528
+auth.grant.type.not.blank=\u8BA4\u8BC1\u6743\u9650\u7C7B\u578B\u4E0D\u80FD\u4E3A\u7A7A
+auth.clientid.not.blank=\u8BA4\u8BC1\u5BA2\u6237\u7AEFid\u4E0D\u80FD\u4E3A\u7A7A
+##\u6587\u4EF6\u4E0A\u4F20\u6D88\u606F
+upload.exceed.maxSize=\u4E0A\u4F20\u7684\u6587\u4EF6\u5927\u5C0F\u8D85\u51FA\u9650\u5236\u7684\u6587\u4EF6\u5927\u5C0F\uFF01<br/>\u5141\u8BB8\u7684\u6587\u4EF6\u6700\u5927\u5927\u5C0F\u662F\uFF1A{0}MB\uFF01
+upload.filename.exceed.length=\u4E0A\u4F20\u7684\u6587\u4EF6\u540D\u6700\u957F{0}\u4E2A\u5B57\u7B26
+##\u6743\u9650
+no.permission=\u60A8\u6CA1\u6709\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
+no.create.permission=\u60A8\u6CA1\u6709\u521B\u5EFA\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
+no.update.permission=\u60A8\u6CA1\u6709\u4FEE\u6539\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
+no.delete.permission=\u60A8\u6CA1\u6709\u5220\u9664\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
+no.export.permission=\u60A8\u6CA1\u6709\u5BFC\u51FA\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
+no.view.permission=\u60A8\u6CA1\u6709\u67E5\u770B\u6570\u636E\u7684\u6743\u9650\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458\u6DFB\u52A0\u6743\u9650 [{0}]
+repeat.submit.message=\u4E0D\u5141\u8BB8\u91CD\u590D\u63D0\u4EA4\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5
+rate.limiter.message=\u8BBF\u95EE\u8FC7\u4E8E\u9891\u7E41\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5
+sms.code.not.blank=\u77ED\u4FE1\u9A8C\u8BC1\u7801\u4E0D\u80FD\u4E3A\u7A7A
+sms.code.retry.limit.count=\u77ED\u4FE1\u9A8C\u8BC1\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21
+sms.code.retry.limit.exceed=\u77ED\u4FE1\u9A8C\u8BC1\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21\uFF0C\u5E10\u6237\u9501\u5B9A{1}\u5206\u949F
+email.code.not.blank=\u90AE\u7BB1\u9A8C\u8BC1\u7801\u4E0D\u80FD\u4E3A\u7A7A
+email.code.retry.limit.count=\u90AE\u7BB1\u9A8C\u8BC1\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21
+email.code.retry.limit.exceed=\u90AE\u7BB1\u9A8C\u8BC1\u7801\u8F93\u5165\u9519\u8BEF{0}\u6B21\uFF0C\u5E10\u6237\u9501\u5B9A{1}\u5206\u949F
+xcx.code.not.blank=\u5C0F\u7A0B\u5E8F[code]\u4E0D\u80FD\u4E3A\u7A7A
+social.source.not.blank=\u7B2C\u4E09\u65B9\u767B\u5F55\u5E73\u53F0[source]\u4E0D\u80FD\u4E3A\u7A7A
+social.code.not.blank=\u7B2C\u4E09\u65B9\u767B\u5F55\u5E73\u53F0[code]\u4E0D\u80FD\u4E3A\u7A7A
+social.state.not.blank=\u7B2C\u4E09\u65B9\u767B\u5F55\u5E73\u53F0[state]\u4E0D\u80FD\u4E3A\u7A7A
+##\u79DF\u6237
+tenant.number.not.blank=\u79DF\u6237\u7F16\u53F7\u4E0D\u80FD\u4E3A\u7A7A
+tenant.not.exists=\u5BF9\u4E0D\u8D77, \u60A8\u7684\u79DF\u6237\u4E0D\u5B58\u5728\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
+tenant.blocked=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u7684\u79DF\u6237\u5DF2\u7981\u7528\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
+tenant.expired=\u5BF9\u4E0D\u8D77\uFF0C\u60A8\u7684\u79DF\u6237\u5DF2\u8FC7\u671F\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458
+##\u94B1\u5305
+bag.balance.valid=\u8D26\u6237\u4F59\u989D\u6821\u9A8C\u5931\u8D25
+## \u8D44\u91D1\u6536\u652F
+payments.OriginalRecord.get=\u65E0\u6B64Id\u5BF9\u5E94\u7684\u539F\u59CB\u6536\u652F\u8BB0\u5F55:{0}
+payments.OriginalRecord.isPost=\u8BE5\u7B14\u539F\u59CB\u6536\u652F\u8BB0\u5F55\u5DF2\u5165\u8D26,\u539F\u59CBId:{0},\u6536\u652FId:{1}

+ 0 - 9
ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/EncryptUtils.java

@@ -351,13 +351,4 @@ public class EncryptUtils {
     public static String encryptBySm3(String data) {
         return SmUtil.sm3(data);
     }
-    public static byte[] hex(String key) {
-        String f = DigestUtils.md5Hex(key);
-        int enkLength = 24;
-        byte[] bKeys = f.getBytes();
-        byte[] enk = new byte[enkLength];
-        System.arraycopy(bKeys, 0, enk, 0, enkLength);
-        return enk;
-//        return new byte[1];
-    }
 }

+ 9 - 62
ruoyi-common/ruoyi-common-encrypt/src/main/java/org/dromara/common/encrypt/utils/YcEncryptUtil.java

@@ -8,6 +8,7 @@ import cn.hutool.crypto.asymmetric.RSA;
 import cn.hutool.crypto.digest.MD5;
 import org.apache.commons.codec.digest.DigestUtils;
 import org.dromara.common.core.constant.CacheNames;
+import org.dromara.common.core.utils.DigitUtils;
 import org.dromara.common.redis.utils.RedisUtils;
 
 import javax.crypto.Cipher;
@@ -47,7 +48,7 @@ public class YcEncryptUtil extends EncryptUtils {
             throw new IllegalArgumentException("RSA需要传入公钥进行解密");
         }
 
-        RSA rsa = SecureUtil.rsa(null, hexToByte(publicKey));
+        RSA rsa = SecureUtil.rsa(null, DigitUtils.hexToByte(publicKey));
         return rsa.decryptStr(data, KeyType.PublicKey, StandardCharsets.UTF_8);
     }
 
@@ -90,8 +91,11 @@ public class YcEncryptUtil extends EncryptUtils {
             content = data.getBytes(defaultCharset);
 
             // 构造一个密钥
-            byte[] md5Keys = parseHexStr2Byte(md5key);
-            SecretKeySpec keySpec = new SecretKeySpec(md5Keys, KEY_AES);
+            byte[] md5Keys = DigitUtils.hexTo2Byte(md5key);
+            SecretKeySpec keySpec = null;
+            if (md5Keys != null) {
+                keySpec = new SecretKeySpec(md5Keys, KEY_AES);
+            }
 
             // 创建密码器
             Cipher cipher = Cipher.getInstance(KEY_AES);
@@ -100,7 +104,7 @@ public class YcEncryptUtil extends EncryptUtils {
             // 加密
             byte[] result = cipher.doFinal(content);
 
-            return parseByte2HexStr(result, isPrefix);
+            return DigitUtils.byteToHexStr(result, isPrefix);
 
         } catch (Exception e) {
             System.out.println("AES 密文处理异常:" + e.getMessage());
@@ -179,7 +183,7 @@ public class YcEncryptUtil extends EncryptUtils {
          return decryptBagBalanceByPublicKey(data, userId, RedisUtils.getCacheObject(CacheNames.CUSTOM_PUB_KEY).toString());
     }
     /**
-     * 16进制字符串转字节码
+     * 16进制字符串转字节码,只取24位
      *
      * @param key 16进制字符串
      * @return 字节数组
@@ -192,61 +196,4 @@ public class YcEncryptUtil extends EncryptUtils {
         System.arraycopy(bKeys, 0, enk, 0, enkLength);
         return enk;
     }
-
-    /**
-     * 16进制字符串转字节码
-     *
-     * @param s 16进制字符串
-     * @return 字节数组
-     */
-    public static byte[] hexToByte(String s) {
-        int i = s.length() / 2;
-        byte[] bt = new byte[i];
-        for (int j = 0; j < i; ++j) {
-            String s1 = s.substring(j * 2, j * 2 + 2);
-            bt[j] = (byte) Integer.parseInt(s1, 16);
-        }
-        return bt;
-    }
-
-    /**
-     * 16进制字符串转字节码(高位在前,低位在后)
-     *
-     * @param hexStr 16进制字符串
-     * @return 字节数组
-     */
-    public static byte[] parseHexStr2Byte(String hexStr) {
-        if (StrUtil.isBlank(hexStr)) {
-            throw new IllegalArgumentException("待转换的16进制字符串丢失");
-        }
-
-        byte[] result = new byte[hexStr.length() / 2];
-        for (int i = 0; i < hexStr.length() / 2; i++) {
-            int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
-            int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
-            result[i] = (byte) (high * 16 + low);
-        }
-        return result;
-    }
-
-    /**
-     * 将二进制转换成16进制,并且前面是否加前缀
-     *
-     * @param buf      待转换字节数组
-     * @param isPrefix 是否添加0x前缀
-     * @return 字节数组
-     */
-    public static String parseByte2HexStr(byte[] buf, boolean isPrefix) {
-        StringBuilder sb = new StringBuilder();
-        if (isPrefix)
-            sb.append("0x");
-        for (int i = 0; i < buf.length; i++) {
-            String hex = Integer.toHexString(buf[i] & 0xFF);
-            if (hex.length() == 1) {
-                hex = '0' + hex;
-            }
-            sb.append(hex.toUpperCase());
-        }
-        return sb.toString();
-    }
 }

+ 111 - 19
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/payments/PaymentsBusiness.java

@@ -2,15 +2,19 @@ package org.dromara.backstage.business.payments;
 
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjUtil;
+import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import org.dromara.backstage.basics.domain.vo.PtWorkstationVo;
-import org.dromara.backstage.basics.service.IPtParameterService;
 import org.dromara.backstage.basics.service.IPtWorkstationService;
 import org.dromara.backstage.cardCenter.domain.vo.PtCardVo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBackBo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountVo;
 import org.dromara.backstage.consumption.domain.vo.XfTermVo;
+import org.dromara.backstage.consumption.service.IXfCreditAccountBackService;
+import org.dromara.backstage.consumption.service.IXfCreditAccountService;
 import org.dromara.backstage.consumption.service.IXfTermService;
 import org.dromara.backstage.payment.domain.bo.PtBagBo;
 import org.dromara.backstage.payment.domain.vo.PtBagVo;
@@ -18,8 +22,15 @@ import org.dromara.backstage.payment.domain.vo.PtUserAccountVo;
 import org.dromara.backstage.payment.service.IPtBagService;
 import org.dromara.backstage.payment.service.IPtUserAccountService;
 import org.dromara.common.core.enums.CreditStatusEnum;
+import org.dromara.common.core.exception.payments.PaymentsException;
+import org.dromara.common.core.utils.MessageUtils;
+import org.dromara.common.core.utils.RecordIdUtils;
+import org.jetbrains.annotations.NotNull;
 import org.springframework.stereotype.Service;
 
+import java.math.BigDecimal;
+import java.util.Date;
+
 /**
  * name: PaymentsBusiness
  * package: org.dromara.backstage.business.payments.strategy
@@ -33,12 +44,14 @@ import org.springframework.stereotype.Service;
 @RequiredArgsConstructor
 @Service
 public class PaymentsBusiness {
-    private final IPtParameterService parameterService;
     private final IPtWorkstationService workstationService;
     private final IPtUserAccountService userAccountService;
     private final IXfTermService termService;
     private final IPtCardService cardService;
     private final IPtBagService bagService;
+    private final IXfCreditAccountBackService creditAccountBackService;
+    private final IXfCreditAccountService creditAccountService;
+
     /**
      * 账户资金收支时获取必要的辅助信息
      *
@@ -63,25 +76,26 @@ public class PaymentsBusiness {
         //3.钱包辅助信息
         bagVo = bagService.queryById(bo.getBagId());
         //4.设备辅助信息
-        termVo = termService.queryByNo(bo.getTermNo());
+        termVo = termService.queryByNo(bo.getTermNo() == null ? 0 : bo.getTermNo());
         //5.工作站辅助信息
         workstationVo = workstationService.queryById(bo.getStationId());
 
     }
+
     /**
      * 生成原始收支记录(收支流水备份表)
      *
-     * @param bo 资金收支信息
-     * @param accountVo 资金收支账户信息
-     * @param cardVo 资金收支卡片信息
-     * @param termVo 资金收支消费设备信息
+     * @param bo            资金收支信息
+     * @param accountVo     资金收支账户信息
+     * @param cardVo        资金收支卡片信息
+     * @param termVo        资金收支消费设备信息
      * @param workstationVo 资金收支工作站信息
-     *
      * @return 原始收支记录
      */
-    public XfCreditaccountbackVo createOriginalRecord(PtBagBo bo,PtUserAccountVo accountVo, PtCardVo cardVo,PtBagVo bagVo, XfTermVo termVo, PtWorkstationVo workstationVo){
-        XfCreditaccountbackBo xfCreditaccountbackBo = new XfCreditaccountbackBo();
-        //xfCreditaccountbackBo.setBackId();
+    public XfCreditAccountBackVo createOriginalRecord(PtBagBo bo, PtUserAccountVo accountVo, PtCardVo cardVo, PtBagVo bagVo, XfTermVo termVo, PtWorkstationVo workstationVo) {
+        XfCreditAccountBackBo xfCreditaccountbackBo = new XfCreditAccountBackBo();
+        String backId = getRecordKeyId(bo, accountVo, bagVo);
+        xfCreditaccountbackBo.setBackId(backId);
 
         //设置交易数据
         xfCreditaccountbackBo.setCreditTime(DateUtil.date());
@@ -96,7 +110,7 @@ public class PaymentsBusiness {
         xfCreditaccountbackBo.setUserId(bo.getUserId());
 
         //设置交易卡片数据mq
-        if (ObjUtil.isNotEmpty(cardVo)){
+        if (ObjUtil.isNotEmpty(cardVo)) {
             xfCreditaccountbackBo.setCardNo(cardVo.getCardNo());
             xfCreditaccountbackBo.setMainCard(cardVo.getMainCard());
         }
@@ -105,14 +119,13 @@ public class PaymentsBusiness {
         xfCreditaccountbackBo.setCardValue(bagVo.getBalance());
 
         //设置交易设备信息
-        if(ObjUtil.isNotEmpty(termVo)){
+        if (ObjUtil.isNotEmpty(termVo)) {
             xfCreditaccountbackBo.setTermNo(termVo.getTermNo());
-            // TODO 2024-08-22 09:15:23 luoyibo 这个termRecordId要看看从哪里来的
-            xfCreditaccountbackBo.setTermRecordId(termVo.getTermId());
+            xfCreditaccountbackBo.setTermRecordId(bo.getTermRecordId());
         }
 
         //设置交易工作站信息
-        if(ObjUtil.isNotEmpty(workstationVo)){
+        if (ObjUtil.isNotEmpty(workstationVo)) {
             xfCreditaccountbackBo.setStationId(workstationVo.getStationId());
         }
         //xfCreditaccountbackBo.setRecordId();
@@ -120,10 +133,89 @@ public class PaymentsBusiness {
         //xfCreditaccountbackBo.setCreditId();
         //xfCreditaccountbackBo.setOriginalId();
         //xfCreditaccountbackBo.setSmsSend();
+        return  creditAccountBackService.createOriginalRecord(xfCreditaccountbackBo);
+    }
 
+    /**
+     * 收支记账(收支流水表)
+     *
+     * @param bo            资金收支信息
+     * @param accountVo     资金收支账户信息
+     * @param cardVo        资金收支卡片信息
+     * @param termVo        资金收支消费设备信息
+     * @param workstationVo 资金收支工作站信息
+     * @param originalId     原始收支记录Id(收支备份表主键)
+     * @return 正式收支记录
+     */
+    public XfCreditAccountVo keepAccounts(PtBagBo bo, PtUserAccountVo accountVo, PtCardVo cardVo, PtBagVo bagVo, XfTermVo termVo, PtWorkstationVo workstationVo,String originalId){
+        //校验要处理的原始收支记录
+        ValidOriginalRecord(originalId);
+        XfCreditAccountBo xfCreditaccountbo = new XfCreditAccountBo();
+        String backId = getRecordKeyId(bo, accountVo, bagVo);
+        xfCreditaccountbo.setCreditId(backId);
 
+        //设置交易数据
+        xfCreditaccountbo.setCreditTime(DateUtil.date());
+        xfCreditaccountbo.setCreditType(bo.getCreditType().code().toString());
+        xfCreditaccountbo.setReceiptMoney(bo.getReceiptMoney());
+        xfCreditaccountbo.setPayStyle(bo.getPayStyle());
+        xfCreditaccountbo.setUseType(bo.getUseType().code());
 
+        //设置交易账户信息
+        xfCreditaccountbo.setUserId(accountVo.getUserId());
+        xfCreditaccountbo.setUserNumb(accountVo.getUserNumb());
+        xfCreditaccountbo.setRealName(accountVo.getRealName());
+        xfCreditaccountbo.setDeptId(accountVo.getDeptId());
+        xfCreditaccountbo.setDeptName(accountVo.getDeptName());
+        //设置设备信息
+        xfCreditaccountbo.setTermNo(termVo.getTermNo());
+        xfCreditaccountbo.setTermName(termVo.getTermName());
+        xfCreditaccountbo.setTermRecordId(bo.getTermRecordId());
+        //设置工作站信息
+        xfCreditaccountbo.setStationNumb(workstationVo.getStationNumb());
+        xfCreditaccountbo.setStationName(workstationVo.getStationName());
+        //设置卡片信息
+        xfCreditaccountbo.setCardNo(cardVo.getCardNo());
+        xfCreditaccountbo.setCardValue(bagVo.getBalance());
+        xfCreditaccountbo.setCardType(cardVo.getCardType());
+        xfCreditaccountbo.setCardCount(bagVo.getRechargeCount()+1);
+        xfCreditaccountbo.setCardTypeName(cardVo.getCardTypeName());
+        xfCreditaccountbo.setMainCard(cardVo.getMainCard());
+        //设置钱包信息
+        xfCreditaccountbo.setBagType(bagVo.getBagCode());
+        // 设置操作员信息
+        xfCreditaccountbo.setOperatorId(bo.getOperatorId());
+        xfCreditaccountbo.setOperatorName("");
+
+        xfCreditaccountbo.setOriginalId(originalId);
+
+        //xfCreditaccountbo.setRecordId(0L);
+        return creditAccountService.keepAccounts(xfCreditaccountbo);
+    }
 
-        return null;
+
+    private void ValidOriginalRecord(String originalId){
+        String message;
+        XfCreditAccountBackVo xfCreditaccountbackVo = creditAccountBackService.queryById(originalId);
+        if(ObjUtil.isEmpty(xfCreditaccountbackVo)){
+            message = MessageUtils.message("payments.OriginalRecord.get", originalId);
+            throw new PaymentsException("资金收支-原始记录", message);
+        }
+        String accountId = xfCreditaccountbackVo.getCreditId();
+        if(StrUtil.isNotEmpty(accountId)){
+            message = MessageUtils.message("payments.OriginalRecord.isPost", originalId,accountId);
+            throw new PaymentsException("资金收支-原始记录", message);
+        }
+    }
+    @NotNull
+    private String getRecordKeyId(PtBagBo bo, PtUserAccountVo accountVo, PtBagVo bagVo) {
+        BigDecimal a = new BigDecimal(100);
+        int key3 = 0;
+        if(bo.getReceiptMoney().compareTo(BigDecimal.ZERO)>0){
+            key3 = bo.getReceiptMoney().multiply(a).intValue();
+        } else {
+            key3 = bo.getReceiptMoney().negate().multiply(a).intValue();
+        }
+        return RecordIdUtils.getRecordId(new Date(), Short.parseShort(bo.getCreditType().code().toString()), Integer.parseInt(accountVo.getUserNo().toString()), key3, Integer.parseInt(bagVo.getBagCode()));
     }
 }

+ 9 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/business/payments/strategy/impl/RefundPaymentsStrategyImpl.java

@@ -6,6 +6,8 @@ import org.dromara.backstage.basics.domain.vo.PtWorkstationVo;
 import org.dromara.backstage.business.payments.PaymentsBusiness;
 import org.dromara.backstage.business.payments.strategy.IPaymentsStrategy;
 import org.dromara.backstage.cardCenter.domain.vo.PtCardVo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountVo;
 import org.dromara.backstage.consumption.domain.vo.XfTermVo;
 import org.dromara.backstage.payment.domain.bo.PtBagBo;
 import org.dromara.backstage.payment.domain.vo.PtBagVo;
@@ -33,6 +35,8 @@ public class RefundPaymentsStrategyImpl implements IPaymentsStrategy {
     /**
      * 新增资金收支明细订单
      *
+     * 因为管理平台的退款操作是一次性完成,所以将订单创建及更新钱包一次性完成
+     *
      * @param bo 资金收支明细
      * @return 是否新增成功
      */
@@ -47,7 +51,11 @@ public class RefundPaymentsStrategyImpl implements IPaymentsStrategy {
         PtBagVo bagVo = new PtBagVo();
         business.getOtherInfo(bo,  accountVo,  cardVo, bagVo, termVo, workstationVo);
         //2.创建收支订单
-        //3.收支入账,此处只需要入收支明细表就可以了s
+        XfCreditAccountBackVo creditbackVo = business.createOriginalRecord(bo,  accountVo,  cardVo, bagVo, termVo, workstationVo);
+        //3.收支入账,此处只需要入收支明细表就可以了
+        log.info("[{}订单生成完成,开始生成{}收支记录]-{}",bo.getOperationMode().message(),bo.getOperationMode().message(), JSONUtil.toJsonStr(bo));
+        XfCreditAccountVo creditAccountVo = business.keepAccounts(bo, accountVo, cardVo, bagVo, termVo, workstationVo, creditbackVo.getBackId());
+
         return null;
     }
 

+ 11 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/cardCenter/controller/PtCardController.java

@@ -1,6 +1,7 @@
 package org.dromara.backstage.cardCenter.controller;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.bean.BeanUtil;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.NotEmpty;
 import jakarta.validation.constraints.NotNull;
@@ -11,7 +12,7 @@ import org.dromara.backstage.cardCenter.domain.vo.PtCardVo;
 import org.dromara.backstage.cardCenter.service.IPtCardService;
 import org.dromara.backstage.payment.domain.bo.PtBagBo;
 import org.dromara.backstage.payment.domain.vo.PtBagVo;
-import org.dromara.backstage.payment.domain.vo.PtBagVoToPtBagMapperImpl;
+import org.dromara.common.core.constant.Constants;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.enums.CreditTypeEnum;
 import org.dromara.common.core.enums.SystemUseTypeEnum;
@@ -46,7 +47,6 @@ public class PtCardController extends BaseController {
 
     private final IPtCardService ptCardService;
     private final PaymentsStrategyContent paymentsStrategyContent;
-    private final PtBagVoToPtBagMapperImpl ptBagVoToPtBagMapperImpl;
 
     /**
      * 查询账户卡片列表
@@ -147,15 +147,17 @@ public class PtCardController extends BaseController {
     public R<PtBagVo> recharge(@Validated(EditGroup.class) @RequestBody PtBagBo bo) {
         PtBagVo vo;
         bo.setUseType(SystemUseTypeEnum.CONSUME);
-        BigDecimal commission = ptCardService.computeCommission(bo);
-        if (commission.compareTo(BigDecimal.ZERO) > 0) {
-            PtBagBo commissionBo = MapstructUtils.convert(bo, PtBagBo.class);
-            if (commissionBo != null) {
+        if(bo.getTakeCommission().equals(Constants.TAKE_COMMISSION)) {
+            //如果要收管理费
+            BigDecimal commission = ptCardService.computeCommission(bo);
+            if (commission.compareTo(BigDecimal.ZERO) > 0) {
+                PtBagBo commissionBo = new PtBagBo();
+                BeanUtil.copyProperties(bo, commissionBo);
                 commissionBo.setReceiptMoney(commission);
                 commissionBo.setCreditType(CreditTypeEnum.COMMISSION_CHARGE);
-                paymentsStrategyContent.createOrder(commissionBo);
+                //paymentsStrategyContent.createOrder(commissionBo);
+                bo.setReceiptMoney(bo.getReceiptMoney().subtract(commission));
             }
-            bo.setReceiptMoney(bo.getReceiptMoney().subtract(commission));
         }
         vo = paymentsStrategyContent.createOrder(bo);
         return R.ok(vo);
@@ -169,8 +171,8 @@ public class PtCardController extends BaseController {
     @RepeatSubmit()
     @PostMapping("/refund")
     public R<PtBagVo> refund(@Validated(EditGroup.class) @RequestBody PtBagBo bo) {
-        //退款是记支出,所以金额设置为负数
         bo.setUseType(SystemUseTypeEnum.CONSUME);
+        //退款是记支出,所以金额设置为负数
         bo.setReceiptMoney(bo.getReceiptMoney().negate());
         PtBagVo vo = paymentsStrategyContent.createOrder(bo);
         return R.ok(vo);

+ 9 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailController.java

@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,8 +19,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
-import org.dromara.backstage.consumption.domain.bo.XfConsumedetailBo;
 import org.dromara.backstage.consumption.service.IXfConsumedetailService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
@@ -42,7 +42,7 @@ public class XfConsumedetailController extends BaseController {
      */
     @SaCheckPermission("consumption:xfConsumedetail:list")
     @GetMapping("/list")
-    public TableDataInfo<XfConsumedetailVo> list(XfConsumedetailBo bo, PageQuery pageQuery) {
+    public TableDataInfo<XfConsumeDetailVo> list(XfConsumeDetailBo bo, PageQuery pageQuery) {
         return xfConsumedetailService.queryPageList(bo, pageQuery);
     }
 
@@ -52,9 +52,9 @@ public class XfConsumedetailController extends BaseController {
     @SaCheckPermission("consumption:xfConsumedetail:export")
     @Log(title = "消费明细", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(XfConsumedetailBo bo, HttpServletResponse response) {
-        List<XfConsumedetailVo> list = xfConsumedetailService.queryList(bo);
-        ExcelUtil.exportExcel(list, "消费明细", XfConsumedetailVo.class, response);
+    public void export(XfConsumeDetailBo bo, HttpServletResponse response) {
+        List<XfConsumeDetailVo> list = xfConsumedetailService.queryList(bo);
+        ExcelUtil.exportExcel(list, "消费明细", XfConsumeDetailVo.class, response);
     }
 
     /**
@@ -64,7 +64,7 @@ public class XfConsumedetailController extends BaseController {
      */
     @SaCheckPermission("consumption:xfConsumedetail:query")
     @GetMapping("/{consumeId}")
-    public R<XfConsumedetailVo> getInfo(@NotNull(message = "主键不能为空")
+    public R<XfConsumeDetailVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable String consumeId) {
         return R.ok(xfConsumedetailService.queryById(consumeId));
     }
@@ -76,7 +76,7 @@ public class XfConsumedetailController extends BaseController {
     @Log(title = "消费明细", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfConsumedetailBo bo) {
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfConsumeDetailBo bo) {
         return toAjax(xfConsumedetailService.insertByBo(bo));
     }
 
@@ -87,7 +87,7 @@ public class XfConsumedetailController extends BaseController {
     @Log(title = "消费明细", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfConsumedetailBo bo) {
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfConsumeDetailBo bo) {
         return toAjax(xfConsumedetailService.updateByBo(bo));
     }
 

+ 9 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfConsumedetailoriginalController.java

@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailOriginalBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailOriginalVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,8 +19,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
-import org.dromara.backstage.consumption.domain.bo.XfConsumedetailoriginalBo;
 import org.dromara.backstage.consumption.service.IXfConsumedetailoriginalService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
@@ -42,7 +42,7 @@ public class XfConsumedetailoriginalController extends BaseController {
      */
     @SaCheckPermission("consumption:xfConsumedetailoriginal:list")
     @GetMapping("/list")
-    public TableDataInfo<XfConsumedetailoriginalVo> list(XfConsumedetailoriginalBo bo, PageQuery pageQuery) {
+    public TableDataInfo<XfConsumeDetailOriginalVo> list(XfConsumeDetailOriginalBo bo, PageQuery pageQuery) {
         return xfConsumedetailoriginalService.queryPageList(bo, pageQuery);
     }
 
@@ -52,9 +52,9 @@ public class XfConsumedetailoriginalController extends BaseController {
     @SaCheckPermission("consumption:xfConsumedetailoriginal:export")
     @Log(title = "原始消费记录", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(XfConsumedetailoriginalBo bo, HttpServletResponse response) {
-        List<XfConsumedetailoriginalVo> list = xfConsumedetailoriginalService.queryList(bo);
-        ExcelUtil.exportExcel(list, "原始消费记录", XfConsumedetailoriginalVo.class, response);
+    public void export(XfConsumeDetailOriginalBo bo, HttpServletResponse response) {
+        List<XfConsumeDetailOriginalVo> list = xfConsumedetailoriginalService.queryList(bo);
+        ExcelUtil.exportExcel(list, "原始消费记录", XfConsumeDetailOriginalVo.class, response);
     }
 
     /**
@@ -64,7 +64,7 @@ public class XfConsumedetailoriginalController extends BaseController {
      */
     @SaCheckPermission("consumption:xfConsumedetailoriginal:query")
     @GetMapping("/{originalId}")
-    public R<XfConsumedetailoriginalVo> getInfo(@NotNull(message = "主键不能为空")
+    public R<XfConsumeDetailOriginalVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable String originalId) {
         return R.ok(xfConsumedetailoriginalService.queryById(originalId));
     }
@@ -76,7 +76,7 @@ public class XfConsumedetailoriginalController extends BaseController {
     @Log(title = "原始消费记录", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfConsumedetailoriginalBo bo) {
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfConsumeDetailOriginalBo bo) {
         return toAjax(xfConsumedetailoriginalService.insertByBo(bo));
     }
 
@@ -87,7 +87,7 @@ public class XfConsumedetailoriginalController extends BaseController {
     @Log(title = "原始消费记录", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfConsumedetailoriginalBo bo) {
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfConsumeDetailOriginalBo bo) {
         return toAjax(xfConsumedetailoriginalService.updateByBo(bo));
     }
 

+ 9 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountController.java

@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,8 +19,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountBo;
 import org.dromara.backstage.consumption.service.IXfCreditAccountService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
@@ -42,7 +42,7 @@ public class XfCreditaccountController extends BaseController {
      */
     @SaCheckPermission("consumption:xfCreditaccount:list")
     @GetMapping("/list")
-    public TableDataInfo<XfCreditaccountVo> list(XfCreditaccountBo bo, PageQuery pageQuery) {
+    public TableDataInfo<XfCreditAccountVo> list(XfCreditAccountBo bo, PageQuery pageQuery) {
         return xfCreditaccountService.queryPageList(bo, pageQuery);
     }
 
@@ -52,9 +52,9 @@ public class XfCreditaccountController extends BaseController {
     @SaCheckPermission("consumption:xfCreditaccount:export")
     @Log(title = "资金收支明细", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(XfCreditaccountBo bo, HttpServletResponse response) {
-        List<XfCreditaccountVo> list = xfCreditaccountService.queryList(bo);
-        ExcelUtil.exportExcel(list, "资金收支明细", XfCreditaccountVo.class, response);
+    public void export(XfCreditAccountBo bo, HttpServletResponse response) {
+        List<XfCreditAccountVo> list = xfCreditaccountService.queryList(bo);
+        ExcelUtil.exportExcel(list, "资金收支明细", XfCreditAccountVo.class, response);
     }
 
     /**
@@ -64,7 +64,7 @@ public class XfCreditaccountController extends BaseController {
      */
     @SaCheckPermission("consumption:xfCreditaccount:query")
     @GetMapping("/{creditId}")
-    public R<XfCreditaccountVo> getInfo(@NotNull(message = "主键不能为空")
+    public R<XfCreditAccountVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable String creditId) {
         return R.ok(xfCreditaccountService.queryById(creditId));
     }
@@ -76,7 +76,7 @@ public class XfCreditaccountController extends BaseController {
     @Log(title = "资金收支明细", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfCreditaccountBo bo) {
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfCreditAccountBo bo) {
         return toAjax(xfCreditaccountService.insertByBo(bo));
     }
 
@@ -87,7 +87,7 @@ public class XfCreditaccountController extends BaseController {
     @Log(title = "资金收支明细", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfCreditaccountBo bo) {
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfCreditAccountBo bo) {
         return toAjax(xfCreditaccountService.updateByBo(bo));
     }
 

+ 9 - 9
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/controller/XfCreditaccountbackController.java

@@ -6,6 +6,8 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBackBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -17,8 +19,6 @@ import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
 import org.dromara.backstage.consumption.service.IXfCreditAccountBackService;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 
@@ -42,7 +42,7 @@ public class XfCreditaccountbackController extends BaseController {
      */
     @SaCheckPermission("consumption:xfCreditaccountback:list")
     @GetMapping("/list")
-    public TableDataInfo<XfCreditaccountbackVo> list(XfCreditaccountbackBo bo, PageQuery pageQuery) {
+    public TableDataInfo<XfCreditAccountBackVo> list(XfCreditAccountBackBo bo, PageQuery pageQuery) {
         return xfCreditaccountbackService.queryPageList(bo, pageQuery);
     }
 
@@ -52,9 +52,9 @@ public class XfCreditaccountbackController extends BaseController {
     @SaCheckPermission("consumption:xfCreditaccountback:export")
     @Log(title = "资金收支备份", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
-    public void export(XfCreditaccountbackBo bo, HttpServletResponse response) {
-        List<XfCreditaccountbackVo> list = xfCreditaccountbackService.queryList(bo);
-        ExcelUtil.exportExcel(list, "资金收支备份", XfCreditaccountbackVo.class, response);
+    public void export(XfCreditAccountBackBo bo, HttpServletResponse response) {
+        List<XfCreditAccountBackVo> list = xfCreditaccountbackService.queryList(bo);
+        ExcelUtil.exportExcel(list, "资金收支备份", XfCreditAccountBackVo.class, response);
     }
 
     /**
@@ -64,7 +64,7 @@ public class XfCreditaccountbackController extends BaseController {
      */
     @SaCheckPermission("consumption:xfCreditaccountback:query")
     @GetMapping("/{backId}")
-    public R<XfCreditaccountbackVo> getInfo(@NotNull(message = "主键不能为空")
+    public R<XfCreditAccountBackVo> getInfo(@NotNull(message = "主键不能为空")
                                      @PathVariable String backId) {
         return R.ok(xfCreditaccountbackService.queryById(backId));
     }
@@ -76,7 +76,7 @@ public class XfCreditaccountbackController extends BaseController {
     @Log(title = "资金收支备份", businessType = BusinessType.INSERT)
     @RepeatSubmit()
     @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfCreditaccountbackBo bo) {
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody XfCreditAccountBackBo bo) {
         return toAjax(xfCreditaccountbackService.insertByBo(bo));
     }
 
@@ -87,7 +87,7 @@ public class XfCreditaccountbackController extends BaseController {
     @Log(title = "资金收支备份", businessType = BusinessType.UPDATE)
     @RepeatSubmit()
     @PutMapping()
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfCreditaccountbackBo bo) {
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody XfCreditAccountBackBo bo) {
         return toAjax(xfCreditaccountbackService.updateByBo(bo));
     }
 

+ 1 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumedetail.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumeDetail.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.io.Serial;
 
@@ -18,7 +17,7 @@ import java.io.Serial;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("t_xf_consumeDetail")
-public class XfConsumedetail extends TenantEntity {
+public class XfConsumeDetail extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 1 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumedetailoriginal.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfConsumeDetailOriginal.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.io.Serial;
 
@@ -18,7 +17,7 @@ import java.io.Serial;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("t_xf_consumeDetailOriginal")
-public class XfConsumedetailoriginal extends TenantEntity {
+public class XfConsumeDetailOriginal extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 2 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditaccount.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditAccount.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.io.Serial;
 
@@ -18,7 +17,7 @@ import java.io.Serial;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("t_xf_creditAccount")
-public class XfCreditaccount extends TenantEntity {
+public class XfCreditAccount extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;
@@ -112,7 +111,7 @@ public class XfCreditaccount extends TenantEntity {
     /**
      * 使用类型,100-消费系统
      */
-    private Long useYpe;
+    private Long useType;
 
     /**
      * 工作站编号

+ 1 - 2
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditaccountback.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/XfCreditAccountBack.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.io.Serial;
 
@@ -18,7 +17,7 @@ import java.io.Serial;
 @Data
 @EqualsAndHashCode(callSuper = true)
 @TableName("t_xf_creditAccountBack")
-public class XfCreditaccountback extends TenantEntity {
+public class XfCreditAccountBack extends TenantEntity {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 3 - 4
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumedetailBo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumeDetailBo.java

@@ -1,6 +1,6 @@
 package org.dromara.backstage.consumption.domain.bo;
 
-import org.dromara.backstage.consumption.domain.XfConsumedetail;
+import org.dromara.backstage.consumption.domain.XfConsumeDetail;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -9,7 +9,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 消费明细业务对象 t_xf_consumeDetail
@@ -19,8 +18,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = XfConsumedetail.class, reverseConvertGenerate = false)
-public class XfConsumedetailBo extends BaseEntity {
+@AutoMapper(target = XfConsumeDetail.class, reverseConvertGenerate = false)
+public class XfConsumeDetailBo extends BaseEntity {
 
     /**
      * 消费记录Id,主键

+ 3 - 4
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumedetailoriginalBo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfConsumeDetailOriginalBo.java

@@ -1,6 +1,6 @@
 package org.dromara.backstage.consumption.domain.bo;
 
-import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+import org.dromara.backstage.consumption.domain.XfConsumeDetailOriginal;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -9,7 +9,6 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 原始消费记录业务对象 t_xf_consumeDetailOriginal
@@ -19,8 +18,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = XfConsumedetailoriginal.class, reverseConvertGenerate = false)
-public class XfConsumedetailoriginalBo extends BaseEntity {
+@AutoMapper(target = XfConsumeDetailOriginal.class, reverseConvertGenerate = false)
+public class XfConsumeDetailOriginalBo extends BaseEntity {
 
     /**
      * 原始记录Id,主键

+ 3 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditaccountbackBo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditAccountBackBo.java

@@ -1,6 +1,6 @@
 package org.dromara.backstage.consumption.domain.bo;
 
-import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+import org.dromara.backstage.consumption.domain.XfCreditAccountBack;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -20,8 +20,8 @@ import java.util.Date;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = XfCreditaccountback.class, reverseConvertGenerate = false)
-public class XfCreditaccountbackBo extends BaseEntity {
+@AutoMapper(target = XfCreditAccountBack.class, reverseConvertGenerate = false)
+public class XfCreditAccountBackBo extends BaseEntity {
 
     /**
      * 收支备份Id,主键

+ 8 - 7
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditaccountBo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/bo/XfCreditAccountBo.java

@@ -1,6 +1,6 @@
 package org.dromara.backstage.consumption.domain.bo;
 
-import org.dromara.backstage.consumption.domain.XfCreditaccount;
+import org.dromara.backstage.consumption.domain.XfCreditAccount;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -8,8 +8,9 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import jakarta.validation.constraints.*;
+
+import java.math.BigDecimal;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 /**
  * 资金收支明细业务对象 t_xf_creditAccount
@@ -19,8 +20,8 @@ import com.fasterxml.jackson.annotation.JsonFormat;
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = XfCreditaccount.class, reverseConvertGenerate = false)
-public class XfCreditaccountBo extends BaseEntity {
+@AutoMapper(target = XfCreditAccount.class, reverseConvertGenerate = false)
+public class XfCreditAccountBo extends BaseEntity {
 
     /**
      * 收支Id
@@ -83,7 +84,7 @@ public class XfCreditaccountBo extends BaseEntity {
     /**
      * 卡上余额
      */
-    private Long cardValue;
+    private BigDecimal cardValue;
 
     /**
      * 卡片类型
@@ -115,7 +116,7 @@ public class XfCreditaccountBo extends BaseEntity {
      * 使用类型,100-消费系统
      */
     @NotNull(message = "使用类型,100-消费系统不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long useYpe;
+    private Integer useType;
 
     /**
      * 工作站编号
@@ -159,7 +160,7 @@ public class XfCreditaccountBo extends BaseEntity {
      * 交易金额
      */
     @NotNull(message = "交易金额不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long receiptMoney;
+    private BigDecimal receiptMoney;
 
     /**
      * 核对状态,见sys_yes_no字典类型

+ 4 - 6
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumedetailoriginalVo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumeDetailOriginalVo.java

@@ -1,8 +1,8 @@
 package org.dromara.backstage.consumption.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
+
+import org.dromara.backstage.consumption.domain.XfConsumeDetailOriginal;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
@@ -12,8 +12,6 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
@@ -24,8 +22,8 @@ import java.util.Date;
  */
 @Data
 @ExcelIgnoreUnannotated
-@AutoMapper(target = XfConsumedetailoriginal.class)
-public class XfConsumedetailoriginalVo implements Serializable {
+@AutoMapper(target = XfConsumeDetailOriginal.class)
+public class XfConsumeDetailOriginalVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 4 - 6
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumedetailVo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfConsumeDetailVo.java

@@ -1,8 +1,8 @@
 package org.dromara.backstage.consumption.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.backstage.consumption.domain.XfConsumedetail;
+
+import org.dromara.backstage.consumption.domain.XfConsumeDetail;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import org.dromara.common.excel.annotation.ExcelDictFormat;
@@ -12,8 +12,6 @@ import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
@@ -24,8 +22,8 @@ import java.util.Date;
  */
 @Data
 @ExcelIgnoreUnannotated
-@AutoMapper(target = XfConsumedetail.class)
-public class XfConsumedetailVo implements Serializable {
+@AutoMapper(target = XfConsumeDetail.class)
+public class XfConsumeDetailVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 3 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditaccountbackVo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditAccountBackVo.java

@@ -2,7 +2,7 @@ package org.dromara.backstage.consumption.domain.vo;
 
 import java.util.Date;
 
-import org.dromara.backstage.consumption.domain.XfCreditaccountback;
+import org.dromara.backstage.consumption.domain.XfCreditAccountBack;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import io.github.linpeilie.annotations.AutoMapper;
@@ -20,8 +20,8 @@ import java.io.Serializable;
  */
 @Data
 @ExcelIgnoreUnannotated
-@AutoMapper(target = XfCreditaccountback.class)
-public class XfCreditaccountbackVo implements Serializable {
+@AutoMapper(target = XfCreditAccountBack.class)
+public class XfCreditAccountBackVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 4 - 8
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditaccountVo.java → ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/domain/vo/XfCreditAccountVo.java

@@ -1,19 +1,15 @@
 package org.dromara.backstage.consumption.domain.vo;
 
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
-import org.dromara.backstage.consumption.domain.XfCreditaccount;
+
+import org.dromara.backstage.consumption.domain.XfCreditAccount;
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 
 import java.io.Serial;
 import java.io.Serializable;
-import java.util.Date;
-
 
 
 /**
@@ -24,8 +20,8 @@ import java.util.Date;
  */
 @Data
 @ExcelIgnoreUnannotated
-@AutoMapper(target = XfCreditaccount.class)
-public class XfCreditaccountVo implements Serializable {
+@AutoMapper(target = XfCreditAccount.class)
+public class XfCreditAccountVo implements Serializable {
 
     @Serial
     private static final long serialVersionUID = 1L;

+ 3 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailMapper.java

@@ -1,7 +1,7 @@
 package org.dromara.backstage.consumption.mapper;
 
-import org.dromara.backstage.consumption.domain.XfConsumedetail;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
+import org.dromara.backstage.consumption.domain.XfConsumeDetail;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
@@ -10,6 +10,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface XfConsumedetailMapper extends BaseMapperPlus<XfConsumedetail, XfConsumedetailVo> {
+public interface XfConsumedetailMapper extends BaseMapperPlus<XfConsumeDetail, XfConsumeDetailVo> {
 
 }

+ 3 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfConsumedetailoriginalMapper.java

@@ -1,7 +1,7 @@
 package org.dromara.backstage.consumption.mapper;
 
-import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
+import org.dromara.backstage.consumption.domain.XfConsumeDetailOriginal;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailOriginalVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
@@ -10,6 +10,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface XfConsumedetailoriginalMapper extends BaseMapperPlus<XfConsumedetailoriginal, XfConsumedetailoriginalVo> {
+public interface XfConsumedetailoriginalMapper extends BaseMapperPlus<XfConsumeDetailOriginal, XfConsumeDetailOriginalVo> {
 
 }

+ 3 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountMapper.java

@@ -1,7 +1,7 @@
 package org.dromara.backstage.consumption.mapper;
 
-import org.dromara.backstage.consumption.domain.XfCreditaccount;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
+import org.dromara.backstage.consumption.domain.XfCreditAccount;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
@@ -10,6 +10,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author LionLi
  * @date 2024-08-15
  */
-public interface XfCreditaccountMapper extends BaseMapperPlus<XfCreditaccount, XfCreditaccountVo> {
+public interface XfCreditaccountMapper extends BaseMapperPlus<XfCreditAccount, XfCreditAccountVo> {
 
 }

+ 3 - 3
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/mapper/XfCreditaccountbackMapper.java

@@ -1,7 +1,7 @@
 package org.dromara.backstage.consumption.mapper;
 
-import org.dromara.backstage.consumption.domain.XfCreditaccountback;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
+import org.dromara.backstage.consumption.domain.XfCreditAccountBack;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 
 /**
@@ -10,6 +10,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
  * @author Yb
  * @date 2024-08-15
  */
-public interface XfCreditaccountbackMapper extends BaseMapperPlus<XfCreditaccountback, XfCreditaccountbackVo> {
+public interface XfCreditaccountbackMapper extends BaseMapperPlus<XfCreditAccountBack, XfCreditAccountBackVo> {
 
 }

+ 7 - 8
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailService.java

@@ -1,8 +1,7 @@
 package org.dromara.backstage.consumption.service;
 
-import org.dromara.backstage.consumption.domain.XfConsumedetail;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
-import org.dromara.backstage.consumption.domain.bo.XfConsumedetailBo;
+import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
@@ -23,7 +22,7 @@ public interface IXfConsumedetailService {
      * @param consumeId 主键
      * @return 消费明细
      */
-    XfConsumedetailVo queryById(String consumeId);
+    XfConsumeDetailVo queryById(String consumeId);
 
     /**
      * 分页查询消费明细列表
@@ -32,7 +31,7 @@ public interface IXfConsumedetailService {
      * @param pageQuery 分页参数
      * @return 消费明细分页列表
      */
-    TableDataInfo<XfConsumedetailVo> queryPageList(XfConsumedetailBo bo, PageQuery pageQuery);
+    TableDataInfo<XfConsumeDetailVo> queryPageList(XfConsumeDetailBo bo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的消费明细列表
@@ -40,7 +39,7 @@ public interface IXfConsumedetailService {
      * @param bo 查询条件
      * @return 消费明细列表
      */
-    List<XfConsumedetailVo> queryList(XfConsumedetailBo bo);
+    List<XfConsumeDetailVo> queryList(XfConsumeDetailBo bo);
 
     /**
      * 新增消费明细
@@ -48,7 +47,7 @@ public interface IXfConsumedetailService {
      * @param bo 消费明细
      * @return 是否新增成功
      */
-    Boolean insertByBo(XfConsumedetailBo bo);
+    Boolean insertByBo(XfConsumeDetailBo bo);
 
     /**
      * 修改消费明细
@@ -56,7 +55,7 @@ public interface IXfConsumedetailService {
      * @param bo 消费明细
      * @return 是否修改成功
      */
-    Boolean updateByBo(XfConsumedetailBo bo);
+    Boolean updateByBo(XfConsumeDetailBo bo);
 
     /**
      * 校验并批量删除消费明细信息

+ 7 - 8
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfConsumedetailoriginalService.java

@@ -1,8 +1,7 @@
 package org.dromara.backstage.consumption.service;
 
-import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
-import org.dromara.backstage.consumption.domain.bo.XfConsumedetailoriginalBo;
+import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailOriginalBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailOriginalVo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
@@ -23,7 +22,7 @@ public interface IXfConsumedetailoriginalService {
      * @param originalId 主键
      * @return 原始消费记录
      */
-    XfConsumedetailoriginalVo queryById(String originalId);
+    XfConsumeDetailOriginalVo queryById(String originalId);
 
     /**
      * 分页查询原始消费记录列表
@@ -32,7 +31,7 @@ public interface IXfConsumedetailoriginalService {
      * @param pageQuery 分页参数
      * @return 原始消费记录分页列表
      */
-    TableDataInfo<XfConsumedetailoriginalVo> queryPageList(XfConsumedetailoriginalBo bo, PageQuery pageQuery);
+    TableDataInfo<XfConsumeDetailOriginalVo> queryPageList(XfConsumeDetailOriginalBo bo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的原始消费记录列表
@@ -40,7 +39,7 @@ public interface IXfConsumedetailoriginalService {
      * @param bo 查询条件
      * @return 原始消费记录列表
      */
-    List<XfConsumedetailoriginalVo> queryList(XfConsumedetailoriginalBo bo);
+    List<XfConsumeDetailOriginalVo> queryList(XfConsumeDetailOriginalBo bo);
 
     /**
      * 新增原始消费记录
@@ -48,7 +47,7 @@ public interface IXfConsumedetailoriginalService {
      * @param bo 原始消费记录
      * @return 是否新增成功
      */
-    Boolean insertByBo(XfConsumedetailoriginalBo bo);
+    Boolean insertByBo(XfConsumeDetailOriginalBo bo);
 
     /**
      * 修改原始消费记录
@@ -56,7 +55,7 @@ public interface IXfConsumedetailoriginalService {
      * @param bo 原始消费记录
      * @return 是否修改成功
      */
-    Boolean updateByBo(XfConsumedetailoriginalBo bo);
+    Boolean updateByBo(XfConsumeDetailOriginalBo bo);
 
     /**
      * 校验并批量删除原始消费记录信息

+ 9 - 7
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditAccountBackService.java

@@ -1,7 +1,7 @@
 package org.dromara.backstage.consumption.service;
 
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBackBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
@@ -22,7 +22,7 @@ public interface IXfCreditAccountBackService {
      * @param backId 主键
      * @return 资金收支备份
      */
-    XfCreditaccountbackVo queryById(String backId);
+    XfCreditAccountBackVo queryById(String backId);
 
     /**
      * 分页查询资金收支备份列表
@@ -31,7 +31,7 @@ public interface IXfCreditAccountBackService {
      * @param pageQuery 分页参数
      * @return 资金收支备份分页列表
      */
-    TableDataInfo<XfCreditaccountbackVo> queryPageList(XfCreditaccountbackBo bo, PageQuery pageQuery);
+    TableDataInfo<XfCreditAccountBackVo> queryPageList(XfCreditAccountBackBo bo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的资金收支备份列表
@@ -39,7 +39,7 @@ public interface IXfCreditAccountBackService {
      * @param bo 查询条件
      * @return 资金收支备份列表
      */
-    List<XfCreditaccountbackVo> queryList(XfCreditaccountbackBo bo);
+    List<XfCreditAccountBackVo> queryList(XfCreditAccountBackBo bo);
 
     /**
      * 新增资金收支备份
@@ -47,7 +47,7 @@ public interface IXfCreditAccountBackService {
      * @param bo 资金收支备份
      * @return 是否新增成功
      */
-    Boolean insertByBo(XfCreditaccountbackBo bo);
+    Boolean insertByBo(XfCreditAccountBackBo bo);
 
     /**
      * 修改资金收支备份
@@ -55,7 +55,7 @@ public interface IXfCreditAccountBackService {
      * @param bo 资金收支备份
      * @return 是否修改成功
      */
-    Boolean updateByBo(XfCreditaccountbackBo bo);
+    Boolean updateByBo(XfCreditAccountBackBo bo);
 
     /**
      * 校验并批量删除资金收支备份信息
@@ -65,4 +65,6 @@ public interface IXfCreditAccountBackService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    XfCreditAccountBackVo createOriginalRecord(XfCreditAccountBackBo bo);
 }

+ 9 - 7
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/IXfCreditAccountService.java

@@ -1,7 +1,7 @@
 package org.dromara.backstage.consumption.service;
 
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountBo;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountVo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 
@@ -22,7 +22,7 @@ public interface IXfCreditAccountService {
      * @param creditId 主键
      * @return 资金收支明细
      */
-    XfCreditaccountVo queryById(String creditId);
+    XfCreditAccountVo queryById(String creditId);
 
     /**
      * 分页查询资金收支明细列表
@@ -31,7 +31,7 @@ public interface IXfCreditAccountService {
      * @param pageQuery 分页参数
      * @return 资金收支明细分页列表
      */
-    TableDataInfo<XfCreditaccountVo> queryPageList(XfCreditaccountBo bo, PageQuery pageQuery);
+    TableDataInfo<XfCreditAccountVo> queryPageList(XfCreditAccountBo bo, PageQuery pageQuery);
 
     /**
      * 查询符合条件的资金收支明细列表
@@ -39,7 +39,7 @@ public interface IXfCreditAccountService {
      * @param bo 查询条件
      * @return 资金收支明细列表
      */
-    List<XfCreditaccountVo> queryList(XfCreditaccountBo bo);
+    List<XfCreditAccountVo> queryList(XfCreditAccountBo bo);
 
     /**
      * 新增资金收支明细
@@ -47,7 +47,7 @@ public interface IXfCreditAccountService {
      * @param bo 资金收支明细
      * @return 是否新增成功
      */
-    Boolean insertByBo(XfCreditaccountBo bo);
+    Boolean insertByBo(XfCreditAccountBo bo);
 
     /**
      * 修改资金收支明细
@@ -55,7 +55,7 @@ public interface IXfCreditAccountService {
      * @param bo 资金收支明细
      * @return 是否修改成功
      */
-    Boolean updateByBo(XfCreditaccountBo bo);
+    Boolean updateByBo(XfCreditAccountBo bo);
 
     /**
      * 校验并批量删除资金收支明细信息
@@ -65,4 +65,6 @@ public interface IXfCreditAccountService {
      * @return 是否删除成功
      */
     Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);
+
+    XfCreditAccountVo keepAccounts(XfCreditAccountBo bo);
 }

+ 47 - 47
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailServiceImpl.java

@@ -1,6 +1,9 @@
 package org.dromara.backstage.consumption.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.backstage.consumption.domain.XfConsumeDetail;
+import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailVo;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,9 +13,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.dromara.backstage.consumption.domain.bo.XfConsumedetailBo;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailVo;
-import org.dromara.backstage.consumption.domain.XfConsumedetail;
 import org.dromara.backstage.consumption.mapper.XfConsumedetailMapper;
 import org.dromara.backstage.consumption.service.IXfConsumedetailService;
 
@@ -40,7 +40,7 @@ public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
      * @return 消费明细
      */
     @Override
-    public XfConsumedetailVo queryById(String consumeId){
+    public XfConsumeDetailVo queryById(String consumeId){
         return baseMapper.selectVoById(consumeId);
     }
 
@@ -52,9 +52,9 @@ public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
      * @return 消费明细分页列表
      */
     @Override
-    public TableDataInfo<XfConsumedetailVo> queryPageList(XfConsumedetailBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<XfConsumedetail> lqw = buildQueryWrapper(bo);
-        Page<XfConsumedetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+    public TableDataInfo<XfConsumeDetailVo> queryPageList(XfConsumeDetailBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfConsumeDetail> lqw = buildQueryWrapper(bo);
+        Page<XfConsumeDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -65,45 +65,45 @@ public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
      * @return 消费明细列表
      */
     @Override
-    public List<XfConsumedetailVo> queryList(XfConsumedetailBo bo) {
-        LambdaQueryWrapper<XfConsumedetail> lqw = buildQueryWrapper(bo);
+    public List<XfConsumeDetailVo> queryList(XfConsumeDetailBo bo) {
+        LambdaQueryWrapper<XfConsumeDetail> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
 
-    private LambdaQueryWrapper<XfConsumedetail> buildQueryWrapper(XfConsumedetailBo bo) {
+    private LambdaQueryWrapper<XfConsumeDetail> buildQueryWrapper(XfConsumeDetailBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<XfConsumedetail> lqw = Wrappers.lambdaQuery();
-        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfConsumedetail::getOriginalId, bo.getOriginalId());
-        lqw.eq(bo.getRecordId() != null, XfConsumedetail::getRecordId, bo.getRecordId());
-        lqw.eq(bo.getUserId() != null, XfConsumedetail::getUserId, bo.getUserId());
-        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfConsumedetail::getUserNumb, bo.getUserNumb());
-        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfConsumedetail::getRealName, bo.getRealName());
-        lqw.eq(bo.getDeptId() != null, XfConsumedetail::getDeptId, bo.getDeptId());
-        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfConsumedetail::getDeptName, bo.getDeptName());
-        lqw.eq(bo.getConsumeDate() != null, XfConsumedetail::getConsumeDate, bo.getConsumeDate());
-        lqw.eq(bo.getConsumeMoney() != null, XfConsumedetail::getConsumeMoney, bo.getConsumeMoney());
-        lqw.eq(bo.getCardNo() != null, XfConsumedetail::getCardNo, bo.getCardNo());
-        lqw.eq(bo.getFactoryId() != null, XfConsumedetail::getFactoryId, bo.getFactoryId());
-        lqw.eq(bo.getCardValue() != null, XfConsumedetail::getCardValue, bo.getCardValue());
-        lqw.eq(bo.getCardCount() != null, XfConsumedetail::getCardCount, bo.getCardCount());
-        lqw.eq(bo.getConsumeBalance() != null, XfConsumedetail::getConsumeBalance, bo.getConsumeBalance());
-        lqw.eq(bo.getTermNo() != null, XfConsumedetail::getTermNo, bo.getTermNo());
-        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfConsumedetail::getTermName, bo.getTermName());
-        lqw.eq(bo.getTermRecordId() != null, XfConsumedetail::getTermRecordId, bo.getTermRecordId());
-        lqw.eq(bo.getAnalysisFlag() != null, XfConsumedetail::getAnalysisFlag, bo.getAnalysisFlag());
-        lqw.eq(bo.getStatusFlag() != null, XfConsumedetail::getStatusFlag, bo.getStatusFlag());
-        lqw.eq(bo.getOperatorId() != null, XfConsumedetail::getOperatorId, bo.getOperatorId());
-        lqw.like(StringUtils.isNotBlank(bo.getOperatorName()), XfConsumedetail::getOperatorName, bo.getOperatorName());
-        lqw.eq(bo.getAccountId() != null, XfConsumedetail::getAccountId, bo.getAccountId());
-        lqw.like(StringUtils.isNotBlank(bo.getAccountName()), XfConsumedetail::getAccountName, bo.getAccountName());
-        lqw.eq(bo.getRoomId() != null, XfConsumedetail::getRoomId, bo.getRoomId());
-        lqw.like(StringUtils.isNotBlank(bo.getRoomName()), XfConsumedetail::getRoomName, bo.getRoomName());
-        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfConsumedetail::getBagType, bo.getBagType());
-        lqw.eq(bo.getMealType() != null, XfConsumedetail::getMealType, bo.getMealType());
-        lqw.like(StringUtils.isNotBlank(bo.getMealName()), XfConsumedetail::getMealName, bo.getMealName());
-        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfConsumedetail::getSmsSend, bo.getSmsSend());
-        lqw.eq(bo.getRecordStatus() != null, XfConsumedetail::getRecordStatus, bo.getRecordStatus());
-        lqw.eq(bo.getSyncStatus() != null, XfConsumedetail::getSyncStatus, bo.getSyncStatus());
+        LambdaQueryWrapper<XfConsumeDetail> lqw = Wrappers.lambdaQuery();
+        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfConsumeDetail::getOriginalId, bo.getOriginalId());
+        lqw.eq(bo.getRecordId() != null, XfConsumeDetail::getRecordId, bo.getRecordId());
+        lqw.eq(bo.getUserId() != null, XfConsumeDetail::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfConsumeDetail::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfConsumeDetail::getRealName, bo.getRealName());
+        lqw.eq(bo.getDeptId() != null, XfConsumeDetail::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfConsumeDetail::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getConsumeDate() != null, XfConsumeDetail::getConsumeDate, bo.getConsumeDate());
+        lqw.eq(bo.getConsumeMoney() != null, XfConsumeDetail::getConsumeMoney, bo.getConsumeMoney());
+        lqw.eq(bo.getCardNo() != null, XfConsumeDetail::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getFactoryId() != null, XfConsumeDetail::getFactoryId, bo.getFactoryId());
+        lqw.eq(bo.getCardValue() != null, XfConsumeDetail::getCardValue, bo.getCardValue());
+        lqw.eq(bo.getCardCount() != null, XfConsumeDetail::getCardCount, bo.getCardCount());
+        lqw.eq(bo.getConsumeBalance() != null, XfConsumeDetail::getConsumeBalance, bo.getConsumeBalance());
+        lqw.eq(bo.getTermNo() != null, XfConsumeDetail::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfConsumeDetail::getTermName, bo.getTermName());
+        lqw.eq(bo.getTermRecordId() != null, XfConsumeDetail::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getAnalysisFlag() != null, XfConsumeDetail::getAnalysisFlag, bo.getAnalysisFlag());
+        lqw.eq(bo.getStatusFlag() != null, XfConsumeDetail::getStatusFlag, bo.getStatusFlag());
+        lqw.eq(bo.getOperatorId() != null, XfConsumeDetail::getOperatorId, bo.getOperatorId());
+        lqw.like(StringUtils.isNotBlank(bo.getOperatorName()), XfConsumeDetail::getOperatorName, bo.getOperatorName());
+        lqw.eq(bo.getAccountId() != null, XfConsumeDetail::getAccountId, bo.getAccountId());
+        lqw.like(StringUtils.isNotBlank(bo.getAccountName()), XfConsumeDetail::getAccountName, bo.getAccountName());
+        lqw.eq(bo.getRoomId() != null, XfConsumeDetail::getRoomId, bo.getRoomId());
+        lqw.like(StringUtils.isNotBlank(bo.getRoomName()), XfConsumeDetail::getRoomName, bo.getRoomName());
+        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfConsumeDetail::getBagType, bo.getBagType());
+        lqw.eq(bo.getMealType() != null, XfConsumeDetail::getMealType, bo.getMealType());
+        lqw.like(StringUtils.isNotBlank(bo.getMealName()), XfConsumeDetail::getMealName, bo.getMealName());
+        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfConsumeDetail::getSmsSend, bo.getSmsSend());
+        lqw.eq(bo.getRecordStatus() != null, XfConsumeDetail::getRecordStatus, bo.getRecordStatus());
+        lqw.eq(bo.getSyncStatus() != null, XfConsumeDetail::getSyncStatus, bo.getSyncStatus());
         return lqw;
     }
 
@@ -114,8 +114,8 @@ public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
      * @return 是否新增成功
      */
     @Override
-    public Boolean insertByBo(XfConsumedetailBo bo) {
-        XfConsumedetail add = MapstructUtils.convert(bo, XfConsumedetail.class);
+    public Boolean insertByBo(XfConsumeDetailBo bo) {
+        XfConsumeDetail add = MapstructUtils.convert(bo, XfConsumeDetail.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -131,8 +131,8 @@ public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
      * @return 是否修改成功
      */
     @Override
-    public Boolean updateByBo(XfConsumedetailBo bo) {
-        XfConsumedetail update = MapstructUtils.convert(bo, XfConsumedetail.class);
+    public Boolean updateByBo(XfConsumeDetailBo bo) {
+        XfConsumeDetail update = MapstructUtils.convert(bo, XfConsumeDetail.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
@@ -140,7 +140,7 @@ public class XfConsumedetailServiceImpl implements IXfConsumedetailService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(XfConsumedetail entity){
+    private void validEntityBeforeSave(XfConsumeDetail entity){
         //TODO 做一些数据校验,如唯一约束
     }
 

+ 42 - 42
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfConsumedetailoriginalServiceImpl.java

@@ -1,6 +1,9 @@
 package org.dromara.backstage.consumption.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.backstage.consumption.domain.XfConsumeDetailOriginal;
+import org.dromara.backstage.consumption.domain.bo.XfConsumeDetailOriginalBo;
+import org.dromara.backstage.consumption.domain.vo.XfConsumeDetailOriginalVo;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,9 +13,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.dromara.backstage.consumption.domain.bo.XfConsumedetailoriginalBo;
-import org.dromara.backstage.consumption.domain.vo.XfConsumedetailoriginalVo;
-import org.dromara.backstage.consumption.domain.XfConsumedetailoriginal;
 import org.dromara.backstage.consumption.mapper.XfConsumedetailoriginalMapper;
 import org.dromara.backstage.consumption.service.IXfConsumedetailoriginalService;
 
@@ -40,7 +40,7 @@ public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailorigi
      * @return 原始消费记录
      */
     @Override
-    public XfConsumedetailoriginalVo queryById(String originalId){
+    public XfConsumeDetailOriginalVo queryById(String originalId){
         return baseMapper.selectVoById(originalId);
     }
 
@@ -52,9 +52,9 @@ public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailorigi
      * @return 原始消费记录分页列表
      */
     @Override
-    public TableDataInfo<XfConsumedetailoriginalVo> queryPageList(XfConsumedetailoriginalBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<XfConsumedetailoriginal> lqw = buildQueryWrapper(bo);
-        Page<XfConsumedetailoriginalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+    public TableDataInfo<XfConsumeDetailOriginalVo> queryPageList(XfConsumeDetailOriginalBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfConsumeDetailOriginal> lqw = buildQueryWrapper(bo);
+        Page<XfConsumeDetailOriginalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -65,40 +65,40 @@ public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailorigi
      * @return 原始消费记录列表
      */
     @Override
-    public List<XfConsumedetailoriginalVo> queryList(XfConsumedetailoriginalBo bo) {
-        LambdaQueryWrapper<XfConsumedetailoriginal> lqw = buildQueryWrapper(bo);
+    public List<XfConsumeDetailOriginalVo> queryList(XfConsumeDetailOriginalBo bo) {
+        LambdaQueryWrapper<XfConsumeDetailOriginal> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
 
-    private LambdaQueryWrapper<XfConsumedetailoriginal> buildQueryWrapper(XfConsumedetailoriginalBo bo) {
+    private LambdaQueryWrapper<XfConsumeDetailOriginal> buildQueryWrapper(XfConsumeDetailOriginalBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<XfConsumedetailoriginal> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getRecordId() != null, XfConsumedetailoriginal::getRecordId, bo.getRecordId());
-        lqw.eq(bo.getUserId() != null, XfConsumedetailoriginal::getUserId, bo.getUserId());
-        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfConsumedetailoriginal::getUserNumb, bo.getUserNumb());
-        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfConsumedetailoriginal::getRealName, bo.getRealName());
-        lqw.eq(bo.getDeptId() != null, XfConsumedetailoriginal::getDeptId, bo.getDeptId());
-        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfConsumedetailoriginal::getDeptName, bo.getDeptName());
-        lqw.eq(bo.getConsumeDate() != null, XfConsumedetailoriginal::getConsumeDate, bo.getConsumeDate());
-        lqw.eq(bo.getConsumeMoney() != null, XfConsumedetailoriginal::getConsumeMoney, bo.getConsumeMoney());
-        lqw.eq(bo.getCardNo() != null, XfConsumedetailoriginal::getCardNo, bo.getCardNo());
-        lqw.eq(bo.getFactoryId() != null, XfConsumedetailoriginal::getFactoryId, bo.getFactoryId());
-        lqw.eq(bo.getCardValue() != null, XfConsumedetailoriginal::getCardValue, bo.getCardValue());
-        lqw.eq(bo.getCardCount() != null, XfConsumedetailoriginal::getCardCount, bo.getCardCount());
-        lqw.eq(bo.getConsumeBalance() != null, XfConsumedetailoriginal::getConsumeBalance, bo.getConsumeBalance());
-        lqw.eq(bo.getTermNo() != null, XfConsumedetailoriginal::getTermNo, bo.getTermNo());
-        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfConsumedetailoriginal::getTermName, bo.getTermName());
-        lqw.eq(bo.getTermRecordId() != null, XfConsumedetailoriginal::getTermRecordId, bo.getTermRecordId());
-        lqw.eq(bo.getAnlysFlag() != null, XfConsumedetailoriginal::getAnlysFlag, bo.getAnlysFlag());
-        lqw.eq(bo.getDataFlag() != null, XfConsumedetailoriginal::getDataFlag, bo.getDataFlag());
-        lqw.eq(bo.getStatusFlag() != null, XfConsumedetailoriginal::getStatusFlag, bo.getStatusFlag());
-        lqw.eq(StringUtils.isNotBlank(bo.getDigitalSign()), XfConsumedetailoriginal::getDigitalSign, bo.getDigitalSign());
-        lqw.eq(bo.getWaterValue() != null, XfConsumedetailoriginal::getWaterValue, bo.getWaterValue());
-        lqw.eq(bo.getWaterHistoryValue() != null, XfConsumedetailoriginal::getWaterHistoryValue, bo.getWaterHistoryValue());
-        lqw.eq(bo.getWaterDaySum() != null, XfConsumedetailoriginal::getWaterDaySum, bo.getWaterDaySum());
-        lqw.eq(bo.getWaterErrValue() != null, XfConsumedetailoriginal::getWaterErrValue, bo.getWaterErrValue());
-        lqw.eq(bo.getWaterErrMoney() != null, XfConsumedetailoriginal::getWaterErrMoney, bo.getWaterErrMoney());
-        lqw.eq(bo.getOperatorId() != null, XfConsumedetailoriginal::getOperatorId, bo.getOperatorId());
+        LambdaQueryWrapper<XfConsumeDetailOriginal> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getRecordId() != null, XfConsumeDetailOriginal::getRecordId, bo.getRecordId());
+        lqw.eq(bo.getUserId() != null, XfConsumeDetailOriginal::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfConsumeDetailOriginal::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfConsumeDetailOriginal::getRealName, bo.getRealName());
+        lqw.eq(bo.getDeptId() != null, XfConsumeDetailOriginal::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfConsumeDetailOriginal::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getConsumeDate() != null, XfConsumeDetailOriginal::getConsumeDate, bo.getConsumeDate());
+        lqw.eq(bo.getConsumeMoney() != null, XfConsumeDetailOriginal::getConsumeMoney, bo.getConsumeMoney());
+        lqw.eq(bo.getCardNo() != null, XfConsumeDetailOriginal::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getFactoryId() != null, XfConsumeDetailOriginal::getFactoryId, bo.getFactoryId());
+        lqw.eq(bo.getCardValue() != null, XfConsumeDetailOriginal::getCardValue, bo.getCardValue());
+        lqw.eq(bo.getCardCount() != null, XfConsumeDetailOriginal::getCardCount, bo.getCardCount());
+        lqw.eq(bo.getConsumeBalance() != null, XfConsumeDetailOriginal::getConsumeBalance, bo.getConsumeBalance());
+        lqw.eq(bo.getTermNo() != null, XfConsumeDetailOriginal::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfConsumeDetailOriginal::getTermName, bo.getTermName());
+        lqw.eq(bo.getTermRecordId() != null, XfConsumeDetailOriginal::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getAnlysFlag() != null, XfConsumeDetailOriginal::getAnlysFlag, bo.getAnlysFlag());
+        lqw.eq(bo.getDataFlag() != null, XfConsumeDetailOriginal::getDataFlag, bo.getDataFlag());
+        lqw.eq(bo.getStatusFlag() != null, XfConsumeDetailOriginal::getStatusFlag, bo.getStatusFlag());
+        lqw.eq(StringUtils.isNotBlank(bo.getDigitalSign()), XfConsumeDetailOriginal::getDigitalSign, bo.getDigitalSign());
+        lqw.eq(bo.getWaterValue() != null, XfConsumeDetailOriginal::getWaterValue, bo.getWaterValue());
+        lqw.eq(bo.getWaterHistoryValue() != null, XfConsumeDetailOriginal::getWaterHistoryValue, bo.getWaterHistoryValue());
+        lqw.eq(bo.getWaterDaySum() != null, XfConsumeDetailOriginal::getWaterDaySum, bo.getWaterDaySum());
+        lqw.eq(bo.getWaterErrValue() != null, XfConsumeDetailOriginal::getWaterErrValue, bo.getWaterErrValue());
+        lqw.eq(bo.getWaterErrMoney() != null, XfConsumeDetailOriginal::getWaterErrMoney, bo.getWaterErrMoney());
+        lqw.eq(bo.getOperatorId() != null, XfConsumeDetailOriginal::getOperatorId, bo.getOperatorId());
         return lqw;
     }
 
@@ -109,8 +109,8 @@ public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailorigi
      * @return 是否新增成功
      */
     @Override
-    public Boolean insertByBo(XfConsumedetailoriginalBo bo) {
-        XfConsumedetailoriginal add = MapstructUtils.convert(bo, XfConsumedetailoriginal.class);
+    public Boolean insertByBo(XfConsumeDetailOriginalBo bo) {
+        XfConsumeDetailOriginal add = MapstructUtils.convert(bo, XfConsumeDetailOriginal.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -126,8 +126,8 @@ public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailorigi
      * @return 是否修改成功
      */
     @Override
-    public Boolean updateByBo(XfConsumedetailoriginalBo bo) {
-        XfConsumedetailoriginal update = MapstructUtils.convert(bo, XfConsumedetailoriginal.class);
+    public Boolean updateByBo(XfConsumeDetailOriginalBo bo) {
+        XfConsumeDetailOriginal update = MapstructUtils.convert(bo, XfConsumeDetailOriginal.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
@@ -135,7 +135,7 @@ public class XfConsumedetailoriginalServiceImpl implements IXfConsumedetailorigi
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(XfConsumedetailoriginal entity){
+    private void validEntityBeforeSave(XfConsumeDetailOriginal entity){
         //TODO 做一些数据校验,如唯一约束
     }
 

+ 50 - 39
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditAccountBackServiceImpl.java

@@ -1,6 +1,9 @@
 package org.dromara.backstage.consumption.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.backstage.consumption.domain.XfCreditAccountBack;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBackBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountBackVo;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,9 +13,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountbackBo;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountbackVo;
-import org.dromara.backstage.consumption.domain.XfCreditaccountback;
 import org.dromara.backstage.consumption.mapper.XfCreditaccountbackMapper;
 import org.dromara.backstage.consumption.service.IXfCreditAccountBackService;
 
@@ -40,7 +40,7 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
      * @return 资金收支备份
      */
     @Override
-    public XfCreditaccountbackVo queryById(String backId){
+    public XfCreditAccountBackVo queryById(String backId){
         return baseMapper.selectVoById(backId);
     }
 
@@ -52,9 +52,9 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
      * @return 资金收支备份分页列表
      */
     @Override
-    public TableDataInfo<XfCreditaccountbackVo> queryPageList(XfCreditaccountbackBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<XfCreditaccountback> lqw = buildQueryWrapper(bo);
-        Page<XfCreditaccountbackVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+    public TableDataInfo<XfCreditAccountBackVo> queryPageList(XfCreditAccountBackBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfCreditAccountBack> lqw = buildQueryWrapper(bo);
+        Page<XfCreditAccountBackVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -65,37 +65,37 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
      * @return 资金收支备份列表
      */
     @Override
-    public List<XfCreditaccountbackVo> queryList(XfCreditaccountbackBo bo) {
-        LambdaQueryWrapper<XfCreditaccountback> lqw = buildQueryWrapper(bo);
+    public List<XfCreditAccountBackVo> queryList(XfCreditAccountBackBo bo) {
+        LambdaQueryWrapper<XfCreditAccountBack> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
 
-    private LambdaQueryWrapper<XfCreditaccountback> buildQueryWrapper(XfCreditaccountbackBo bo) {
+    private LambdaQueryWrapper<XfCreditAccountBack> buildQueryWrapper(XfCreditAccountBackBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<XfCreditaccountback> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getRecordId() != null, XfCreditaccountback::getRecordId, bo.getRecordId());
-        lqw.eq(bo.getUserId() != null, XfCreditaccountback::getUserId, bo.getUserId());
-        lqw.eq(bo.getTermNo() != null, XfCreditaccountback::getTermNo, bo.getTermNo());
-        lqw.eq(bo.getTermRecordId() != null, XfCreditaccountback::getTermRecordId, bo.getTermRecordId());
-        lqw.eq(bo.getCardNo() != null, XfCreditaccountback::getCardNo, bo.getCardNo());
-        lqw.eq(bo.getCardValue() != null, XfCreditaccountback::getCardValue, bo.getCardValue());
-        lqw.eq(StringUtils.isNotBlank(bo.getMainCard()), XfCreditaccountback::getMainCard, bo.getMainCard());
-        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfCreditaccountback::getBagType, bo.getBagType());
-        lqw.eq(bo.getUseType() != null, XfCreditaccountback::getUseYpe, bo.getUseType());
-        lqw.eq(bo.getStationId() != null, XfCreditaccountback::getStationId, bo.getStationId());
-        lqw.eq(bo.getOperatorId() != null, XfCreditaccountback::getOperatorId, bo.getOperatorId());
-        lqw.eq(bo.getCreditTime() != null, XfCreditaccountback::getCreditTime, bo.getCreditTime());
-        lqw.eq(StringUtils.isNotBlank(bo.getCreditType()), XfCreditaccountback::getCreditType, bo.getCreditType());
-        lqw.eq(StringUtils.isNotBlank(bo.getPayStyle()), XfCreditaccountback::getPayStyle, bo.getPayStyle());
-        lqw.eq(bo.getReceiptMoney() != null, XfCreditaccountback::getReceiptMoney, bo.getReceiptMoney());
+        LambdaQueryWrapper<XfCreditAccountBack> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getRecordId() != null, XfCreditAccountBack::getRecordId, bo.getRecordId());
+        lqw.eq(bo.getUserId() != null, XfCreditAccountBack::getUserId, bo.getUserId());
+        lqw.eq(bo.getTermNo() != null, XfCreditAccountBack::getTermNo, bo.getTermNo());
+        lqw.eq(bo.getTermRecordId() != null, XfCreditAccountBack::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getCardNo() != null, XfCreditAccountBack::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getCardValue() != null, XfCreditAccountBack::getCardValue, bo.getCardValue());
+        lqw.eq(StringUtils.isNotBlank(bo.getMainCard()), XfCreditAccountBack::getMainCard, bo.getMainCard());
+        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfCreditAccountBack::getBagType, bo.getBagType());
+        lqw.eq(bo.getUseType() != null, XfCreditAccountBack::getUseYpe, bo.getUseType());
+        lqw.eq(bo.getStationId() != null, XfCreditAccountBack::getStationId, bo.getStationId());
+        lqw.eq(bo.getOperatorId() != null, XfCreditAccountBack::getOperatorId, bo.getOperatorId());
+        lqw.eq(bo.getCreditTime() != null, XfCreditAccountBack::getCreditTime, bo.getCreditTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreditType()), XfCreditAccountBack::getCreditType, bo.getCreditType());
+        lqw.eq(StringUtils.isNotBlank(bo.getPayStyle()), XfCreditAccountBack::getPayStyle, bo.getPayStyle());
+        lqw.eq(bo.getReceiptMoney() != null, XfCreditAccountBack::getReceiptMoney, bo.getReceiptMoney());
         //lqw.eq(bo.getCreditStatus() != null, XfCreditaccountback::getCreditStatus, bo.getCreditStatus());
-        lqw.eq(bo.getGroupId() != null, XfCreditaccountback::getGroupId, bo.getGroupId());
-        lqw.eq(StringUtils.isNotBlank(bo.getCreditId()), XfCreditaccountback::getCreditId, bo.getCreditId());
-        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfCreditaccountback::getOriginalId, bo.getOriginalId());
-        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfCreditaccountback::getSmsSend, bo.getSmsSend());
-        lqw.eq(bo.getRecordStatus() != null, XfCreditaccountback::getRecordStatus, bo.getRecordStatus());
-        lqw.eq(bo.getAnlysFlag() != null, XfCreditaccountback::getAnlysFlag, bo.getAnlysFlag());
-        lqw.eq(StringUtils.isNotBlank(bo.getDigitalSign()), XfCreditaccountback::getDigitalSign, bo.getDigitalSign());
+        lqw.eq(bo.getGroupId() != null, XfCreditAccountBack::getGroupId, bo.getGroupId());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreditId()), XfCreditAccountBack::getCreditId, bo.getCreditId());
+        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfCreditAccountBack::getOriginalId, bo.getOriginalId());
+        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfCreditAccountBack::getSmsSend, bo.getSmsSend());
+        lqw.eq(bo.getRecordStatus() != null, XfCreditAccountBack::getRecordStatus, bo.getRecordStatus());
+        lqw.eq(bo.getAnlysFlag() != null, XfCreditAccountBack::getAnlysFlag, bo.getAnlysFlag());
+        lqw.eq(StringUtils.isNotBlank(bo.getDigitalSign()), XfCreditAccountBack::getDigitalSign, bo.getDigitalSign());
         return lqw;
     }
 
@@ -106,12 +106,14 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
      * @return 是否新增成功
      */
     @Override
-    public Boolean insertByBo(XfCreditaccountbackBo bo) {
-        XfCreditaccountback add = MapstructUtils.convert(bo, XfCreditaccountback.class);
+    public Boolean insertByBo(XfCreditAccountBackBo bo) {
+        XfCreditAccountBack add = MapstructUtils.convert(bo, XfCreditAccountBack.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
-            bo.setBackId(add.getBackId());
+            if (add != null) {
+                bo.setBackId(add.getBackId());
+            }
         }
         return flag;
     }
@@ -123,8 +125,8 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
      * @return 是否修改成功
      */
     @Override
-    public Boolean updateByBo(XfCreditaccountbackBo bo) {
-        XfCreditaccountback update = MapstructUtils.convert(bo, XfCreditaccountback.class);
+    public Boolean updateByBo(XfCreditAccountBackBo bo) {
+        XfCreditAccountBack update = MapstructUtils.convert(bo, XfCreditAccountBack.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
@@ -132,7 +134,7 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(XfCreditaccountback entity){
+    private void validEntityBeforeSave(XfCreditAccountBack entity){
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -150,4 +152,13 @@ public class XfCreditAccountBackServiceImpl implements IXfCreditAccountBackServi
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    @Override
+    public XfCreditAccountBackVo createOriginalRecord(XfCreditAccountBackBo bo) {
+        if(insertByBo(bo)){
+            return baseMapper.selectVoById(bo.getBackId());
+        } else {
+            return null;
+        }
+    }
 }

+ 58 - 47
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfCreditAccountServiceImpl.java

@@ -1,6 +1,9 @@
 package org.dromara.backstage.consumption.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import org.dromara.backstage.consumption.domain.XfCreditAccount;
+import org.dromara.backstage.consumption.domain.bo.XfCreditAccountBo;
+import org.dromara.backstage.consumption.domain.vo.XfCreditAccountVo;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -10,9 +13,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
-import org.dromara.backstage.consumption.domain.bo.XfCreditaccountBo;
-import org.dromara.backstage.consumption.domain.vo.XfCreditaccountVo;
-import org.dromara.backstage.consumption.domain.XfCreditaccount;
 import org.dromara.backstage.consumption.mapper.XfCreditaccountMapper;
 import org.dromara.backstage.consumption.service.IXfCreditAccountService;
 
@@ -40,7 +40,7 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
      * @return 资金收支明细
      */
     @Override
-    public XfCreditaccountVo queryById(String creditId){
+    public XfCreditAccountVo queryById(String creditId){
         return baseMapper.selectVoById(creditId);
     }
 
@@ -52,9 +52,9 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
      * @return 资金收支明细分页列表
      */
     @Override
-    public TableDataInfo<XfCreditaccountVo> queryPageList(XfCreditaccountBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<XfCreditaccount> lqw = buildQueryWrapper(bo);
-        Page<XfCreditaccountVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+    public TableDataInfo<XfCreditAccountVo> queryPageList(XfCreditAccountBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<XfCreditAccount> lqw = buildQueryWrapper(bo);
+        Page<XfCreditAccountVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         return TableDataInfo.build(result);
     }
 
@@ -65,44 +65,44 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
      * @return 资金收支明细列表
      */
     @Override
-    public List<XfCreditaccountVo> queryList(XfCreditaccountBo bo) {
-        LambdaQueryWrapper<XfCreditaccount> lqw = buildQueryWrapper(bo);
+    public List<XfCreditAccountVo> queryList(XfCreditAccountBo bo) {
+        LambdaQueryWrapper<XfCreditAccount> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
 
-    private LambdaQueryWrapper<XfCreditaccount> buildQueryWrapper(XfCreditaccountBo bo) {
+    private LambdaQueryWrapper<XfCreditAccount> buildQueryWrapper(XfCreditAccountBo bo) {
         Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<XfCreditaccount> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getUserId() != null, XfCreditaccount::getUserId, bo.getUserId());
-        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfCreditaccount::getUserNumb, bo.getUserNumb());
-        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfCreditaccount::getRealName, bo.getRealName());
-        lqw.eq(bo.getDeptId() != null, XfCreditaccount::getDeptId, bo.getDeptId());
-        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfCreditaccount::getDeptName, bo.getDeptName());
-        lqw.eq(bo.getTermNo() != null, XfCreditaccount::getTermNo, bo.getTermNo());
-        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfCreditaccount::getTermName, bo.getTermName());
-        lqw.eq(bo.getTermRecordId() != null, XfCreditaccount::getTermRecordId, bo.getTermRecordId());
-        lqw.eq(bo.getCardNo() != null, XfCreditaccount::getCardNo, bo.getCardNo());
-        lqw.eq(bo.getCardValue() != null, XfCreditaccount::getCardValue, bo.getCardValue());
-        lqw.eq(bo.getCardType() != null, XfCreditaccount::getCardType, bo.getCardType());
-        lqw.eq(bo.getCardCount() != null, XfCreditaccount::getCardCount, bo.getCardCount());
-        lqw.like(StringUtils.isNotBlank(bo.getCardTypeName()), XfCreditaccount::getCardTypeName, bo.getCardTypeName());
-        lqw.eq(StringUtils.isNotBlank(bo.getMainCard()), XfCreditaccount::getMainCard, bo.getMainCard());
-        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfCreditaccount::getBagType, bo.getBagType());
-        lqw.eq(bo.getUseYpe() != null, XfCreditaccount::getUseYpe, bo.getUseYpe());
-        lqw.eq(bo.getStationNumb() != null, XfCreditaccount::getStationNumb, bo.getStationNumb());
-        lqw.like(StringUtils.isNotBlank(bo.getStationName()), XfCreditaccount::getStationName, bo.getStationName());
-        lqw.eq(bo.getOperatorId() != null, XfCreditaccount::getOperatorId, bo.getOperatorId());
-        lqw.like(StringUtils.isNotBlank(bo.getOperatorName()), XfCreditaccount::getOperatorName, bo.getOperatorName());
-        lqw.eq(bo.getCreditTime() != null, XfCreditaccount::getCreditTime, bo.getCreditTime());
-        lqw.eq(StringUtils.isNotBlank(bo.getCreditType()), XfCreditaccount::getCreditType, bo.getCreditType());
-        lqw.eq(StringUtils.isNotBlank(bo.getPayStyle()), XfCreditaccount::getPayStyle, bo.getPayStyle());
-        lqw.eq(bo.getReceiptMoney() != null, XfCreditaccount::getReceiptMoney, bo.getReceiptMoney());
-        lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XfCreditaccount::getAuditStatus, bo.getAuditStatus());
-        lqw.eq(bo.getAuditDate() != null, XfCreditaccount::getAuditDate, bo.getAuditDate());
-        lqw.eq(bo.getGroupId() != null, XfCreditaccount::getGroupId, bo.getGroupId());
-        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfCreditaccount::getOriginalId, bo.getOriginalId());
-        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfCreditaccount::getSmsSend, bo.getSmsSend());
-        lqw.eq(bo.getRecordStatus() != null, XfCreditaccount::getRecordStatus, bo.getRecordStatus());
+        LambdaQueryWrapper<XfCreditAccount> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getUserId() != null, XfCreditAccount::getUserId, bo.getUserId());
+        lqw.eq(StringUtils.isNotBlank(bo.getUserNumb()), XfCreditAccount::getUserNumb, bo.getUserNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getRealName()), XfCreditAccount::getRealName, bo.getRealName());
+        lqw.eq(bo.getDeptId() != null, XfCreditAccount::getDeptId, bo.getDeptId());
+        lqw.like(StringUtils.isNotBlank(bo.getDeptName()), XfCreditAccount::getDeptName, bo.getDeptName());
+        lqw.eq(bo.getTermNo() != null, XfCreditAccount::getTermNo, bo.getTermNo());
+        lqw.like(StringUtils.isNotBlank(bo.getTermName()), XfCreditAccount::getTermName, bo.getTermName());
+        lqw.eq(bo.getTermRecordId() != null, XfCreditAccount::getTermRecordId, bo.getTermRecordId());
+        lqw.eq(bo.getCardNo() != null, XfCreditAccount::getCardNo, bo.getCardNo());
+        lqw.eq(bo.getCardValue() != null, XfCreditAccount::getCardValue, bo.getCardValue());
+        lqw.eq(bo.getCardType() != null, XfCreditAccount::getCardType, bo.getCardType());
+        lqw.eq(bo.getCardCount() != null, XfCreditAccount::getCardCount, bo.getCardCount());
+        lqw.like(StringUtils.isNotBlank(bo.getCardTypeName()), XfCreditAccount::getCardTypeName, bo.getCardTypeName());
+        lqw.eq(StringUtils.isNotBlank(bo.getMainCard()), XfCreditAccount::getMainCard, bo.getMainCard());
+        lqw.eq(StringUtils.isNotBlank(bo.getBagType()), XfCreditAccount::getBagType, bo.getBagType());
+        lqw.eq(bo.getUseType() != null, XfCreditAccount::getUseType, bo.getUseType());
+        lqw.eq(bo.getStationNumb() != null, XfCreditAccount::getStationNumb, bo.getStationNumb());
+        lqw.like(StringUtils.isNotBlank(bo.getStationName()), XfCreditAccount::getStationName, bo.getStationName());
+        lqw.eq(bo.getOperatorId() != null, XfCreditAccount::getOperatorId, bo.getOperatorId());
+        lqw.like(StringUtils.isNotBlank(bo.getOperatorName()), XfCreditAccount::getOperatorName, bo.getOperatorName());
+        lqw.eq(bo.getCreditTime() != null, XfCreditAccount::getCreditTime, bo.getCreditTime());
+        lqw.eq(StringUtils.isNotBlank(bo.getCreditType()), XfCreditAccount::getCreditType, bo.getCreditType());
+        lqw.eq(StringUtils.isNotBlank(bo.getPayStyle()), XfCreditAccount::getPayStyle, bo.getPayStyle());
+        lqw.eq(bo.getReceiptMoney() != null, XfCreditAccount::getReceiptMoney, bo.getReceiptMoney());
+        lqw.eq(StringUtils.isNotBlank(bo.getAuditStatus()), XfCreditAccount::getAuditStatus, bo.getAuditStatus());
+        lqw.eq(bo.getAuditDate() != null, XfCreditAccount::getAuditDate, bo.getAuditDate());
+        lqw.eq(bo.getGroupId() != null, XfCreditAccount::getGroupId, bo.getGroupId());
+        lqw.eq(StringUtils.isNotBlank(bo.getOriginalId()), XfCreditAccount::getOriginalId, bo.getOriginalId());
+        lqw.eq(StringUtils.isNotBlank(bo.getSmsSend()), XfCreditAccount::getSmsSend, bo.getSmsSend());
+        lqw.eq(bo.getRecordStatus() != null, XfCreditAccount::getRecordStatus, bo.getRecordStatus());
         return lqw;
     }
 
@@ -113,12 +113,14 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
      * @return 是否新增成功
      */
     @Override
-    public Boolean insertByBo(XfCreditaccountBo bo) {
-        XfCreditaccount add = MapstructUtils.convert(bo, XfCreditaccount.class);
+    public Boolean insertByBo(XfCreditAccountBo bo) {
+        XfCreditAccount add = MapstructUtils.convert(bo, XfCreditAccount.class);
         validEntityBeforeSave(add);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
-            bo.setCreditId(add.getCreditId());
+            if (add != null) {
+                bo.setCreditId(add.getCreditId());
+            }
         }
         return flag;
     }
@@ -130,8 +132,8 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
      * @return 是否修改成功
      */
     @Override
-    public Boolean updateByBo(XfCreditaccountBo bo) {
-        XfCreditaccount update = MapstructUtils.convert(bo, XfCreditaccount.class);
+    public Boolean updateByBo(XfCreditAccountBo bo) {
+        XfCreditAccount update = MapstructUtils.convert(bo, XfCreditAccount.class);
         validEntityBeforeSave(update);
         return baseMapper.updateById(update) > 0;
     }
@@ -139,7 +141,7 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(XfCreditaccount entity){
+    private void validEntityBeforeSave(XfCreditAccount entity){
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -157,4 +159,13 @@ public class XfCreditAccountServiceImpl implements IXfCreditAccountService {
         }
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    @Override
+    public XfCreditAccountVo keepAccounts(XfCreditAccountBo bo) {
+        if(insertByBo(bo)){
+            return queryById(bo.getCreditId());
+        } else {
+            return null;
+        }
+    }
 }

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/consumption/service/impl/XfTermServiceImpl.java

@@ -154,6 +154,6 @@ public class XfTermServiceImpl implements IXfTermService {
         bo.setTermNo(termNo);
         List<XfTermVo> list = baseMapper.selectVoList(buildQueryWrapper(bo));
 
-        return list == null ? null : list.get(0);
+        return list.isEmpty() ? null : list.get(0);
     }
 }

+ 4 - 0
ruoyi-modules/ruoyi-backstage/src/main/java/org/dromara/backstage/payment/domain/bo/PtBagBo.java

@@ -108,6 +108,10 @@ public class PtBagBo extends BaseEntity {
      * 设备机号
      */
    private Long termNo;
+    /**
+     * 机器流水号,一般是消费机上传数据时会有此值
+     */
+    private Long termRecordId;
     /**
      * 工作站编号
      */

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailMapper.xml

@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.backstage.consumption.mapper.XfConsumedetailMapper">
 
-    <resultMap type="org.dromara.backstage.consumption.domain.XfConsumedetail" id="XfConsumedetailResult">
+    <resultMap type="org.dromara.backstage.consumption.domain.XfConsumeDetail" id="XfConsumedetailResult">
             <result property="consumeId"    column="consume_id"    />
             <result property="tenantId"    column="tenant_id"    />
             <result property="originalId"    column="original_id"    />

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfConsumedetailoriginalMapper.xml

@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.backstage.consumption.mapper.XfConsumedetailoriginalMapper">
 
-    <resultMap type="org.dromara.backstage.consumption.domain.XfConsumedetailoriginal" id="XfConsumedetailoriginalResult">
+    <resultMap type="org.dromara.backstage.consumption.domain.XfConsumeDetailOriginal" id="XfConsumedetailoriginalResult">
             <result property="originalId"    column="original_id"    />
             <result property="tenantId"    column="tenant_id"    />
             <result property="recordId"    column="record_id"    />

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountMapper.xml

@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.backstage.consumption.mapper.XfCreditaccountMapper">
 
-    <resultMap type="org.dromara.backstage.consumption.domain.XfCreditaccount" id="XfCreditaccountResult">
+    <resultMap type="org.dromara.backstage.consumption.domain.XfCreditAccount" id="XfCreditaccountResult">
             <result property="creditId"    column="credit_id"    />
             <result property="tenantId"    column="tenant_id"    />
             <result property="recordId"    column="record_id"    />

+ 1 - 1
ruoyi-modules/ruoyi-backstage/src/main/resources/mapper/consumption/XfCreditaccountbackMapper.xml

@@ -4,7 +4,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.backstage.consumption.mapper.XfCreditaccountbackMapper">
 
-    <resultMap type="org.dromara.backstage.consumption.domain.XfCreditaccountback" id="XfCreditaccountbackResult">
+    <resultMap type="org.dromara.backstage.consumption.domain.XfCreditAccountBack" id="XfCreditaccountbackResult">
             <result property="backId"    column="back_id"    />
             <result property="tenantId"    column="tenant_id"    />
             <result property="recordId"    column="record_id"    />