+ * 如果不存在,则创建钱包。由于用户注册时候不会创建钱包
+ *
+ * @param userId 用户编号
+ * @param userType 用户类型
+ */
+ PayWalletDTO getOrCreateWallet(Long userId, Integer userType);
+
+ /**
+ * 获取钱包信息
+ *
+ * @param walletId 钱包 id
+ */
+ PayWalletDTO getWallet(Long walletId);
+
+ /**
+ * 扣减钱包余额
+ *
+ * @param walletId 钱包 id
+ * @param bizId 业务关联 id
+ * @param bizType 业务关联分类
+ * @param price 扣减金额
+ * @return 钱包流水
+ */
+ PayWalletTransactionDTO reduceWalletBalance(Long walletId, Long bizId,
+ PayWalletBizTypeEnum bizType, Integer price);
+
+ /**
+ * 扣减钱包余额
+ *
+ * @param userId 钱包 id
+ * @param bizId 业务关联 id
+ * @param bizType 业务关联分类
+ * @param price 扣减金额
+ * @return 钱包流水
+ */
+ PayWalletTransactionDTO reduceWalletBalance1(Long userId, Long bizId,
+ PayWalletBizTypeEnum bizType, Integer price);
+
+ /**
+ * 增加钱包余额
+ *
+ * @param walletId 钱包 id
+ * @param bizId 业务关联 id
+ * @param bizType 业务关联分类
+ * @param price 增加金额
+ * @return 钱包流水
+ */
+ PayWalletTransactionDTO addWalletBalance(Long walletId, String bizId,
+ PayWalletBizTypeEnum bizType, Integer price);
+
+ /**
+ * 冻结钱包部分余额
+ *
+ * @param id 钱包编号
+ * @param price 冻结金额
+ */
+ void freezePrice(Long id, Integer price);
+
+ /**
+ * 解冻钱包余额
+ *
+ * @param id 钱包编号
+ * @param price 解冻金额
+ */
+ void unfreezePrice(Long id, Integer price);
+
+}
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletDTO.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletDTO.java
new file mode 100644
index 0000000..5cf0ba3
--- /dev/null
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletDTO.java
@@ -0,0 +1,79 @@
+package cn.iocoder.yudao.module.pay.api.wallet.dto;
+
+import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 会员钱包 DO
+ *
+ * @author jason
+ */
+@Data
+public class PayWalletDTO {
+
+ /**
+ * 编号
+ */
+ private Long id;
+
+ /**
+ * 用户 id
+ *
+ * 关联 MemberUserDO 的 id 编号
+ * 关联 AdminUserDO 的 id 编号
+ */
+ private Long userId;
+ /**
+ * 用户类型, 预留 多商户转帐可能需要用到
+ *
+ * 关联 {@link UserTypeEnum}
+ */
+ private Integer userType;
+
+ /**
+ * 余额,单位分
+ */
+ private Integer balance;
+
+ /**
+ * 冻结金额,单位分
+ */
+ private Integer freezePrice;
+
+ /**
+ * 累计支出,单位分
+ */
+ private Integer totalExpense;
+ /**
+ * 累计充值,单位分
+ */
+ private Integer totalRecharge;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+ /**
+ * 最后更新时间
+ */
+ private LocalDateTime updateTime;
+ /**
+ * 创建者,目前使用 SysUser 的 id 编号
+ *
+ * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+ */
+ private String creator;
+ /**
+ * 更新者,目前使用 SysUser 的 id 编号
+ *
+ * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+ */
+ private String updater;
+ /**
+ * 是否删除
+ */
+ private Boolean deleted;
+
+}
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletRespDTO.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletRespDTO.java
new file mode 100644
index 0000000..c3d20b8
--- /dev/null
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletRespDTO.java
@@ -0,0 +1,36 @@
+package cn.iocoder.yudao.module.pay.api.wallet.dto;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.ToString;
+
+import javax.validation.constraints.NotNull;
+import java.time.LocalDateTime;
+
+@Data
+public class PayWalletRespDTO {
+
+ private Long id;
+
+ private LocalDateTime createTime;
+
+ private String nickname;
+ private String avatar;
+ @NotNull(message = "用户编号不能为空")
+ private Long userId;
+
+ @NotNull(message = "用户类型不能为空")
+ private Integer userType;
+
+ @NotNull(message = "余额,单位分不能为空")
+ private Integer balance;
+
+ @NotNull(message = "累计支出,单位分不能为空")
+ private Integer totalExpense;
+
+ @NotNull(message = "累计充值,单位分不能为空")
+ private Integer totalRecharge;
+
+ @NotNull(message = "冻结金额,单位分不能为空")
+ private Integer freezePrice;
+}
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletTransactionDTO.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletTransactionDTO.java
new file mode 100644
index 0000000..44f8ee8
--- /dev/null
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/dto/PayWalletTransactionDTO.java
@@ -0,0 +1,85 @@
+package cn.iocoder.yudao.module.pay.api.wallet.dto;
+
+import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+/**
+ * 会员钱包流水 DO
+ *
+ * @author jason
+ */
+@Data
+public class PayWalletTransactionDTO {
+
+ /**
+ * 编号
+ */
+ private Long id;
+
+ /**
+ * 流水号
+ */
+ private String no;
+
+ /**
+ * 钱包编号
+ *
+ */
+ private Long walletId;
+
+ /**
+ * 关联业务分类
+ *
+ * 枚举 {@link PayWalletBizTypeEnum#getType()}
+ */
+ private Integer bizType;
+
+ /**
+ * 关联业务编号
+ */
+ private String bizId;
+
+ /**
+ * 流水说明
+ */
+ private String title;
+
+ /**
+ * 交易金额,单位分
+ *
+ * 正值表示余额增加,负值表示余额减少
+ */
+ private Integer price;
+
+ /**
+ * 交易后余额,单位分
+ */
+ private Integer balance;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+ /**
+ * 最后更新时间
+ */
+ private LocalDateTime updateTime;
+ /**
+ * 创建者,目前使用 SysUser 的 id 编号
+ *
+ * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+ */
+ private String creator;
+ /**
+ * 更新者,目前使用 SysUser 的 id 编号
+ *
+ * 使用 String 类型的原因是,未来可能会存在非数值的情况,留好拓展性。
+ */
+ private String updater;
+ /**
+ * 是否删除
+ */
+ private Boolean deleted;
+}
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/wallet/PayWalletBizTypeEnum.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/wallet/PayWalletBizTypeEnum.java
index 20e0a8b..d23cafd 100644
--- a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/wallet/PayWalletBizTypeEnum.java
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-api/src/main/java/cn/iocoder/yudao/module/pay/enums/wallet/PayWalletBizTypeEnum.java
@@ -18,7 +18,11 @@ public enum PayWalletBizTypeEnum implements IntArrayValuable {
RECHARGE(1, "充值"),
RECHARGE_REFUND(2, "充值退款"),
PAYMENT(3, "支付"),
- PAYMENT_REFUND(4, "支付退款");
+ PAYMENT_REFUND(4, "支付退款"),
+ WITHDRAW(5, "提现申请"),
+ WITHDRAW_REJECT(6, "提现申请驳回");
+
+
// TODO 后续增加
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApiImpl.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApiImpl.java
new file mode 100644
index 0000000..9c129b8
--- /dev/null
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/api/wallet/PayWalletApiImpl.java
@@ -0,0 +1,82 @@
+package cn.iocoder.yudao.module.pay.api.wallet;
+
+import cn.hutool.core.lang.Assert;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.member.api.distributionconfig.vo.DistributionConfigRespDTO;
+import cn.iocoder.yudao.module.pay.api.wallet.dto.PayWalletDTO;
+import cn.iocoder.yudao.module.pay.api.wallet.dto.PayWalletTransactionDTO;
+import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.wallet.PayWalletPageReqVO;
+import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
+import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
+import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletDO;
+import cn.iocoder.yudao.module.pay.dal.dataobject.wallet.PayWalletTransactionDO;
+import cn.iocoder.yudao.module.pay.dal.mysql.wallet.PayWalletMapper;
+import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
+import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
+import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
+import cn.iocoder.yudao.module.pay.service.wallet.PayWalletService;
+import cn.iocoder.yudao.module.pay.service.wallet.PayWalletTransactionService;
+import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum.PAYMENT;
+import static cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum.PAYMENT_REFUND;
+
+/**
+ * 钱包 Service 实现类
+ *
+ * @author jason
+ */
+@Service
+@Slf4j
+public class PayWalletApiImpl implements PayWalletApi {
+
+
+ @Resource
+ @Lazy // 延迟加载,避免循环依赖
+ private PayWalletService payWalletService;
+
+ @Override
+ public PayWalletDTO getOrCreateWallet(Long userId, Integer userType) {
+ return BeanUtils.toBean(payWalletService.getOrCreateWallet(userId,userType), PayWalletDTO.class);
+ }
+
+ @Override
+ public PayWalletDTO getWallet(Long walletId) {
+ return BeanUtils.toBean(payWalletService.getWallet(walletId), PayWalletDTO.class);
+ }
+
+ @Override
+ public PayWalletTransactionDTO reduceWalletBalance(Long walletId, Long bizId, PayWalletBizTypeEnum bizType, Integer price) {
+ return BeanUtils.toBean(payWalletService.reduceWalletBalance(walletId,bizId,bizType,price), PayWalletTransactionDTO.class);
+ }
+ @Override
+ public PayWalletTransactionDTO reduceWalletBalance1(Long userId, Long bizId, PayWalletBizTypeEnum bizType, Integer price) {
+ return BeanUtils.toBean(payWalletService.reduceWalletBalance1(userId,bizId,bizType,price), PayWalletTransactionDTO.class);
+ }
+
+ @Override
+ public PayWalletTransactionDTO addWalletBalance(Long walletId, String bizId, PayWalletBizTypeEnum bizType, Integer price) {
+ return BeanUtils.toBean(payWalletService.addWalletBalance(walletId,bizId,bizType,price), PayWalletTransactionDTO.class);
+ }
+
+ @Override
+ public void freezePrice(Long id, Integer price) {
+ payWalletService.freezePrice(id,price);
+ }
+
+ @Override
+ public void unfreezePrice(Long id, Integer price) {
+ payWalletService.unfreezePrice(id,price);
+ }
+
+}
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java
index e98d826..af46012 100644
--- a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletService.java
@@ -68,6 +68,17 @@ public interface PayWalletService {
*/
PayWalletTransactionDO reduceWalletBalance(Long walletId, Long bizId,
PayWalletBizTypeEnum bizType, Integer price);
+ /**
+ * 扣减钱包余额
+ *
+ * @param walletId 钱包 id
+ * @param bizId 业务关联 id
+ * @param bizType 业务关联分类
+ * @param price 扣减金额
+ * @return 钱包流水
+ */
+ PayWalletTransactionDO reduceWalletBalance1(Long userId, Long bizId,
+ PayWalletBizTypeEnum bizType, Integer price);
/**
* 增加钱包余额
diff --git a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
index 9ebe1ca..59d6afa 100644
--- a/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
+++ b/ruoyi-vue-pro-master/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/wallet/PayWalletServiceImpl.java
@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.pay.service.wallet;
import cn.hutool.core.lang.Assert;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.number.MoneyUtils;
import cn.iocoder.yudao.module.pay.controller.admin.wallet.vo.wallet.PayWalletPageReqVO;
import cn.iocoder.yudao.module.pay.dal.dataobject.order.PayOrderExtensionDO;
import cn.iocoder.yudao.module.pay.dal.dataobject.refund.PayRefundDO;
@@ -12,6 +13,9 @@ import cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum;
import cn.iocoder.yudao.module.pay.service.order.PayOrderService;
import cn.iocoder.yudao.module.pay.service.refund.PayRefundService;
import cn.iocoder.yudao.module.pay.service.wallet.bo.WalletTransactionCreateReqBO;
+import cn.iocoder.yudao.module.trade.convert.brokerage.BrokerageRecordConvert;
+import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageRecordDO;
+import cn.iocoder.yudao.module.trade.dal.dataobject.brokerage.BrokerageUserDO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;
@@ -19,11 +23,13 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
+import java.util.Optional;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.pay.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum.PAYMENT;
import static cn.iocoder.yudao.module.pay.enums.wallet.PayWalletBizTypeEnum.PAYMENT_REFUND;
+import static cn.iocoder.yudao.module.trade.enums.ErrorCodeConstants.BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH;
/**
* 钱包 Service 实现类
@@ -156,6 +162,57 @@ public class PayWalletServiceImpl implements PayWalletService {
.setBizType(bizType.getType()).setTitle(bizType.getDescription());
return walletTransactionService.createWalletTransaction(bo);
}
+ @Override
+ public PayWalletTransactionDO reduceWalletBalance1(Long userId, Long bizId,
+ PayWalletBizTypeEnum bizType, Integer price) {
+ // 1. 获取钱包
+ PayWalletDO payWallet = getOrCreateWallet(userId,1);
+ if (payWallet == null) {
+ log.error("[reduceWalletBalance],用户钱包({})不存在.", userId);
+ throw exception(WALLET_NOT_FOUND);
+ }
+
+ // 1. 校验佣金余额
+ int balance = Optional.of(payWallet)
+ .map(PayWalletDO::getBalance).orElse(0);
+ if (balance - price < 0) {
+ throw exception(BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH, MoneyUtils.fenToYuanStr(balance));
+ }
+
+ // 2.1 扣除余额
+ int updateCounts;
+ switch (bizType) {
+ case WITHDRAW: {
+ updateCounts = walletMapper.updateWhenConsumption(payWallet.getId(), price);
+ if (updateCounts<1) {
+ // 失败时,则抛出异常。只会出现扣减佣金时,余额不足的情况
+ throw exception(BROKERAGE_WITHDRAW_USER_BALANCE_NOT_ENOUGH, MoneyUtils.fenToYuanStr(balance));
+ }
+ break;
+ }
+// case RECHARGE_REFUND: {
+// updateCounts = walletMapper.updateWhenRechargeRefund(payWallet.getId(), price);
+// break;
+// }
+ default: {
+ // TODO 其它类型待实现
+ throw new UnsupportedOperationException("待实现");
+ }
+ }
+ if (updateCounts == 0) {
+ throw exception(WALLET_BALANCE_NOT_ENOUGH);
+ }
+ // 2.2 生成钱包流水
+ Integer afterBalance = payWallet.getBalance() - price;
+ WalletTransactionCreateReqBO bo = new WalletTransactionCreateReqBO().setWalletId(payWallet.getId())
+ .setPrice(-price).setBalance(afterBalance).setBizId(String.valueOf(bizId))
+ .setBizType(bizType.getType()).setTitle(bizType.getDescription());
+ // 3. 新增记录
+// BrokerageRecordDO record = BrokerageRecordConvert.INSTANCE.convert(user, bizType, bizId, 0, brokeragePrice,
+// null, title, null, null);
+// brokerageRecordMapper.insert(record);
+ return walletTransactionService.createWalletTransaction(bo);
+ }
@Override
public PayWalletTransactionDO addWalletBalance(Long walletId, String bizId,
diff --git a/yudao-ui-admin-vue3-master/.env.dev b/yudao-ui-admin-vue3-master/.env.dev
index 81bd56e..e33e333 100644
--- a/yudao-ui-admin-vue3-master/.env.dev
+++ b/yudao-ui-admin-vue3-master/.env.dev
@@ -4,18 +4,18 @@ NODE_ENV=production
VITE_DEV=true
# 请求路径
-VITE_BASE_URL='http://localhost:48080'
-
-# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
-VITE_UPLOAD_TYPE=server
-# 上传路径
-VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload'
-# VITE_BASE_URL='http://zd.huamar.com'
+# VITE_BASE_URL='http://localhost:48080'
# # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
# VITE_UPLOAD_TYPE=server
# # 上传路径
-# VITE_UPLOAD_URL='http://zd.huamar.com/admin-api/infra/file/upload'
+# VITE_UPLOAD_URL='http://localhost:48080/admin-api/infra/file/upload'
+VITE_BASE_URL='http://zd.huamar.com'
+
+# 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持S3服务
+VITE_UPLOAD_TYPE=server
+# 上传路径
+VITE_UPLOAD_URL='http://zd.huamar.com/admin-api/infra/file/upload'
# 接口地址
VITE_API_URL=/admin-api
diff --git a/yudao-ui-admin-vue3-master/src/api/trade/verifylog/index.ts b/yudao-ui-admin-vue3-master/src/api/trade/verifylog/index.ts
new file mode 100644
index 0000000..552c53a
--- /dev/null
+++ b/yudao-ui-admin-vue3-master/src/api/trade/verifylog/index.ts
@@ -0,0 +1,49 @@
+import request from '@/config/axios'
+
+// 门店核销记录 VO
+export interface VerifyLogVO {
+ id: number // 订单编号
+ mebId: number // 会员id
+ orderId: number // 订单id
+ pickUpVerifyCode: string // 核销编码
+ verifyTime: Date // 核销时间
+ status: string // 兑换状态
+ remark: string // 备注
+}
+
+// 门店核销记录 API
+export const VerifyLogApi = {
+ // 查询门店核销记录分页
+ getVerifyLogPage: async (params: any) => {
+ return await request.get({ url: `/trade/verify-log/page`, params })
+ },
+
+ // 查询门店核销记录详情
+ getVerifyLog: async (id: number) => {
+ return await request.get({ url: `/trade/verify-log/get?id=` + id })
+ },
+
+ // 新增门店核销记录
+ createVerifyLog: async (data: VerifyLogVO) => {
+ return await request.post({ url: `/trade/verify-log/create`, data })
+ },
+
+ // 修改门店核销记录
+ updateVerifyLog: async (data: VerifyLogVO) => {
+ return await request.put({ url: `/trade/verify-log/update`, data })
+ },
+
+ // 删除门店核销记录
+ deleteVerifyLog: async (id: number) => {
+ return await request.delete({ url: `/trade/verify-log/delete?id=` + id })
+ },
+
+ // 导出门店核销记录 Excel
+ exportVerifyLog: async (params) => {
+ return await request.download({ url: `/trade/verify-log/export-excel`, params })
+ },
+ // 结算核销统计
+ updateAlready: async (data: VerifyLogVO) => {
+ return await request.put({ url: `/trade/verify-log/updateAlready`, data })
+ },
+}
diff --git a/yudao-ui-admin-vue3-master/src/views/Home/components/ComparisonCard.vue b/yudao-ui-admin-vue3-master/src/views/Home/components/ComparisonCard.vue
new file mode 100644
index 0000000..ee1c2f0
--- /dev/null
+++ b/yudao-ui-admin-vue3-master/src/views/Home/components/ComparisonCard.vue
@@ -0,0 +1,42 @@
+
+