From dc3a45b27405b8490e39991db3b4b1ea017fa73c Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Thu, 9 Jan 2025 14:44:59 +0800 Subject: [PATCH] =?UTF-8?q?refactor(payment):=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E6=94=AF=E4=BB=98=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=B9=B6=E6=9B=B4=E6=96=B0=E7=9B=B8=E5=85=B3=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit -暂时注释掉了 AliPayIntegration 中的 orderPay 方法 - 更新了 application.yml 中的支付宝通知 URL - 重构了 OrderTradeServiceImpl 中的订单处理逻辑 - 移除了 mcwl-pay 中的 OrderTypeEnum 枚举 - 更新了 mcwl-resource 中的 OrderTypeEnum 枚举 - 升级了 alipay-sdk-java 版本 - 在 SysUser 模型中添加了邀请人 ID 和免费积分字段 - 更新了 SysUser --- mcwl-admin/pom.xml | 2 +- .../pay/AliPay/AliPayIntegration.java | 65 +++++++++---------- mcwl-admin/src/main/resources/application.yml | 2 +- .../common/core/domain/entity/SysUser.java | 27 ++++++++ mcwl-pay/pom.xml | 6 ++ .../mcwl/pay/domain/enums/OrderTypeEnum.java | 16 ----- .../service/impl/OrderTradeServiceImpl.java | 24 ++++--- .../resource/domain/enums/OrderTypeEnum.java | 5 +- .../resources/mapper/system/SysUserMapper.xml | 2 +- 9 files changed, 86 insertions(+), 63 deletions(-) delete mode 100644 mcwl-pay/src/main/java/com/mcwl/pay/domain/enums/OrderTypeEnum.java diff --git a/mcwl-admin/pom.xml b/mcwl-admin/pom.xml index d7c6bf5..c2794f3 100644 --- a/mcwl-admin/pom.xml +++ b/mcwl-admin/pom.xml @@ -31,7 +31,7 @@ - + diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayIntegration.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayIntegration.java index 733770e..919b44c 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayIntegration.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayIntegration.java @@ -17,7 +17,6 @@ import com.mcwl.memberCenter.service.MemberLevelService; import com.mcwl.memberCenter.service.MemberService; import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTradeDto; -import com.mcwl.resource.domain.MallProduct; import com.mcwl.resource.service.MallProductService; import com.mcwl.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; @@ -63,38 +62,38 @@ public class AliPayIntegration { * @return 二维码url * @throws Exception */ - public String orderPay(OrderTradeDto orderTradeDto) throws Exception { - Integer productId = orderTradeDto.getProductId(); - if (!Optional.ofNullable(productId).isPresent()) { - throw new ServiceException("mallProductId不能为空"); - } - - MallProduct mallProduct = mallProductService.getById(productId); - if (!Optional.ofNullable(mallProduct).isPresent()) { - throw new ServiceException("mallProduct不存在"); - } - - // 设置orderTrade信息 - OrderTrade tradeEntity = new OrderTrade(); - BeanUtil.copyProperties(orderTradeDto, tradeEntity); - tradeEntity.setCode(UUID.randomUUID().toString(true).substring(0, 30)); - tradeEntity.setUserId(SecurityUtils.getUserId()); - tradeEntity.setUserName(SecurityUtils.getUsername()); - tradeEntity.setProductName(mallProduct.getProductName()); - - //调用支付宝的接口 - AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace() - .preCreate(mallProduct.getProductName(), - tradeEntity.getCode() + "_product", - orderTradeDto.getPaymentAmount().toString()); - // 缓存到redis - redisCache.setCacheObject(tradeEntity.getCode() + "_product", JSONUtil.toJsonStr(tradeEntity), 3, TimeUnit.MINUTES); -// AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace().preCreate("订单主题:Mac笔记本", "LS123qwe123", "19999"); - //参照官方文档响应示例,解析返回结果 - String httpBodyStr = payResponse.getHttpBody(); - JSONObject jsonObject = JSONObject.parseObject(httpBodyStr); - return jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString(); - } +// public String orderPay(OrderTradeDto orderTradeDto) throws Exception { +// Integer productId = orderTradeDto.getProductId(); +// if (!Optional.ofNullable(productId).isPresent()) { +// throw new ServiceException("mallProductId不能为空"); +// } +// +// MallProduct mallProduct = mallProductService.getById(productId); +// if (!Optional.ofNullable(mallProduct).isPresent()) { +// throw new ServiceException("mallProduct不存在"); +// } +// +// // 设置orderTrade信息 +// OrderTrade tradeEntity = new OrderTrade(); +// BeanUtil.copyProperties(orderTradeDto, tradeEntity); +// tradeEntity.setCode(UUID.randomUUID().toString(true).substring(0, 30)); +// tradeEntity.setUserId(SecurityUtils.getUserId()); +// tradeEntity.setUserName(SecurityUtils.getUsername()); +// tradeEntity.setProductName(mallProduct.getProductName()); +// +// //调用支付宝的接口 +// AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace() +// .preCreate(mallProduct.getProductName(), +// tradeEntity.getCode() + "_product", +// orderTradeDto.getPaymentAmount().toString()); +// // 缓存到redis +// redisCache.setCacheObject(tradeEntity.getCode() + "_product", JSONUtil.toJsonStr(tradeEntity), 3, TimeUnit.MINUTES); +//// AlipayTradePrecreateResponse payResponse = Factory.Payment.FaceToFace().preCreate("订单主题:Mac笔记本", "LS123qwe123", "19999"); +// //参照官方文档响应示例,解析返回结果 +// String httpBodyStr = payResponse.getHttpBody(); +// JSONObject jsonObject = JSONObject.parseObject(httpBodyStr); +// return jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString(); +// } /** diff --git a/mcwl-admin/src/main/resources/application.yml b/mcwl-admin/src/main/resources/application.yml index f36a688..2d9736b 100644 --- a/mcwl-admin/src/main/resources/application.yml +++ b/mcwl-admin/src/main/resources/application.yml @@ -183,5 +183,5 @@ mall: appId: 9021000135682614 privateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCQxmQGcaiKjOhayWi+zNTvpp8B5YT8jFFkjLzrD+W+T2Dwf2GfFR4p95zsCJxYeoLWdghMPA6/GMFrLbuVFpaEjuTm4icqA9N8n5d3W0j7gh+wMjZoqyJclAIeb09ut7rY6mWzilA9kWmZnUG7MOWIU70RVRYrfJectCFw/odM9lG4XIVe13X2h+1ecTQyQzLWmnvKFCfo7dQjE7fIYiWfud1ZGUneNs3u73pNWMB6ThGTTCbs0atcgM3fYOg3q7fTxIu9VcaUCJiJ/kNbL9sVEyOrSyx2f2o6w06zdEaOiQFsuDeS8QPYGMg7pf42wAfqCO6hqxQiQT5vp1hvB0o1AgMBAAECggEAIhaEYLwMSispXo8D2cES9iaOU/z91hUX6Qv2Q4anuqqoEZh8nN91Db6etTjFz1NxURvTklelxTsH97t56n26DRY0MWTYgd0Kw9Iz8MeOpKGb4nnAM97vpUq4QQBGfLRIC2ENdzu+7vA5JBFR88hsky/cWaNmJ/EbJauIIDneE7GigMR2HF7kfzdZzOBN4ZEh/ef5NKeCnEieRJJhWRgrgNXVZ44Tqi67AM7ey9pyUtBe7fgzxXtrWXBN9yKaVxxSXm3KJXFQqA6mcilFVZaxMNlAySc4MPTW8lq0ozOCOCunoeIphNz/OVIxGu3/voXFXlBfOKqOkYMVZxMY6OrvtQKBgQD0nIlXK4VW72VaGpz9kxQkRNzJV/yqaqet1GOSlPM2l0RCRFOVVdnvbQdHGPe6+HxHL1dh5MP8T/aHoP+4UXkkQCc8moS2FZxJvFH2QTSZBcSSdGL7GMpROqs38J+XlJzrhNcB20lrW6D7yMeQa4YEcXwdbD8Er/YaIqODBWYYewKBgQCXg+16RLDArciwwhf0TBWZPor2iYFDdwU5UPu7CKOhU1MLfQhG85gGpXHjB6G8cMUi/ezxh/FEl+sWOZegpkPwL5/BQS9tNYWIaC4kipPF/a5Up4DMYUHVAuuPwNqqXpvgU+rGjCns0wtPRnjrkghLkc3oTSID7o7pzUwIk2whDwKBgAys3+EIfExY82OL5X6uVGjcuKQmTw11oWK8krxRw5iclgjpCXu/ix+BAtOIU634mlgF9/02oYE9k4TLrvSaJDDgsifNyfq1e/fGLmkYT+VuCxWbulVQn4s+AwlPCrYMGWWK6KlL9638fYcOjGjLaZJpXwkXRtyzUYlhKh/r87JpAoGBAIavRp2mi/xrPvgpQQPv0k9L8llfOCHRnjoqC+thrZsNp8eRmJcBmMVnskofEZ2iHQuS71pw/n58EQTLo0ayJbhPjVJL8K3CovXzrfjbmqqoa5xi3bJQTiXdF6rMw1QpD6Uk05E1LVuQ6v/IZFr7kBYlAQWb8z3NhQq+bPU+nyLvAoGAGpBbSM8gPzdWQqkHoos0icu3cj0GhN3MU7+1Eb/rsXyh/lk5wtZTEnHjwhdUOUtwVNjvrv7CzA7unhOoaM6YcE/Zpd4zt8pjqH1Mhds7UHf4Xg+A+J4G6meYnhSwfBpOub02ncsqfBlXE0qhFv6AvcMewWndyLb8EYaUUXTYkG0= publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApHkjwHnoUnZuqbas+ZputyWIfU2WKBFKd+wFwlCZytpQhVA16CGAMCGpgjxUPpqbmOtPy74y0wxmDHB9IaYOVsVmi2SAl1IqfxwUSIllbdvbjBvZFAIQlPa8U/zHJPgdGNHDt/Bwqp5uB0OkcGLB9PYyAXBEKiu6zdTsiZloUrPwgnBRJ0iNHYiWo/oOYD9KfopLA+D1nQjqq8m3ShZe46ecMo6ZCHtQI/HtgL/EGga5KY2zOUi0Wwviu8w79RjjzfdsDkzu5VnBdaSru4awDyiF9nAF+uPgA4ZOdLKkpoEANwuIorDW8tT69Gwh+mYx9sDJMxJf7XOekdPbymomiwIDAQAB - notifyUrl: https://702bc39c.r27.cpolar.top/web/pay/notify + notifyUrl: https://253d7236.r27.cpolar.top/web/pay/notify gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do diff --git a/mcwl-common/src/main/java/com/mcwl/common/core/domain/entity/SysUser.java b/mcwl-common/src/main/java/com/mcwl/common/core/domain/entity/SysUser.java index 1f39eeb..1816dc0 100644 --- a/mcwl-common/src/main/java/com/mcwl/common/core/domain/entity/SysUser.java +++ b/mcwl-common/src/main/java/com/mcwl/common/core/domain/entity/SysUser.java @@ -105,6 +105,17 @@ public class SysUser extends BaseEntity */ private String idCard; + /** + * 邀请人id + */ + private Long inviterUserId; + + /** + * 免费用户积分 + */ + private Double freePoints; + + public SysUser() { @@ -337,6 +348,22 @@ public class SysUser extends BaseEntity this.brief = brief; } + public Long getInviterUserId() { + return inviterUserId; + } + + public void setInviterUserId(Long inviterUserId) { + this.inviterUserId = inviterUserId; + } + + public Double getFreePoints() { + return freePoints; + } + + public void setFreePoints(Double freePoints) { + this.freePoints = freePoints; + } + @Override public String toString() { return "SysUser{" + diff --git a/mcwl-pay/pom.xml b/mcwl-pay/pom.xml index 5dc7363..ae0612e 100644 --- a/mcwl-pay/pom.xml +++ b/mcwl-pay/pom.xml @@ -53,6 +53,12 @@ com.mcwl mcwl-system + + com.mcwl + mcwl-resource + 3.8.8 + compile + diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/domain/enums/OrderTypeEnum.java b/mcwl-pay/src/main/java/com/mcwl/pay/domain/enums/OrderTypeEnum.java deleted file mode 100644 index 89830e5..0000000 --- a/mcwl-pay/src/main/java/com/mcwl/pay/domain/enums/OrderTypeEnum.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.mcwl.pay.domain.enums; - -import lombok.AllArgsConstructor; -import lombok.Getter; - - -@Getter -@AllArgsConstructor -public enum OrderTypeEnum { - - POINTS("points"), - MEMBER("member"); - - private final String name; - -} diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java index 8dd6136..5957d7b 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/OrderTradeServiceImpl.java @@ -5,17 +5,27 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.core.redis.RedisCache; import com.mcwl.common.domain.IdsParam; +import com.mcwl.common.utils.DateUtils; import com.mcwl.common.utils.StringUtils; +import com.mcwl.memberCenter.domain.RechargeRecord; +import com.mcwl.memberCenter.service.MemberService; +import com.mcwl.memberCenter.service.RechargeRecordService; +import com.mcwl.myInvitation.domain.Commission; +import com.mcwl.myInvitation.domain.Consume; +import com.mcwl.myInvitation.service.CommissionService; +import com.mcwl.myInvitation.service.ConsumeService; import com.mcwl.pay.domain.OrderTrade; -import com.mcwl.pay.domain.PaymentResult; -import com.mcwl.pay.domain.enums.PaymentStatus; import com.mcwl.pay.mapper.OrderTradeMapper; import com.mcwl.pay.service.OrderTradeService; +import com.mcwl.resource.domain.enums.OrderTypeEnum; +import com.mcwl.system.service.ISysUserService; +import com.mcwl.system.service.impl.SysUserServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; -import java.util.List; +import java.math.BigDecimal; +import java.util.*; /** * @Author:ChenYan @@ -36,12 +46,6 @@ public class OrderTradeServiceImpl extends ServiceImpl - select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, + select u.user_id, u.dept_id, u.user_name, u.nick_name, u.email, u.avatar, u.phonenumber, u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.inviter_user_id, u.free_points, d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.status as dept_status, r.role_id, r.role_name, r.role_key, r.role_sort, r.data_scope, r.status as role_status from sys_user u