From 79bf09e2355dbf10a342fb7409416166a727e5a4 Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Sat, 8 Feb 2025 09:46:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=E6=94=AF?= =?UTF-8?q?=E4=BB=98=E5=AE=9D=E6=94=AF=E4=BB=98=E7=9B=B8=E5=85=B3=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=B9=B6=E4=BF=AE=E6=94=B9=E4=BC=9A=E5=91=98=E6=9D=83?= =?UTF-8?q?=E7=9B=8A=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memberCenter/MemberLevelController.java | 16 +--- .../pay/AliPay/AliPayController.java | 22 +++--- .../src/main/resources/application-druid.yml | 30 +++++++- .../domain/vo/MemberBenefitVO.java | 4 +- .../service/MemberBenefitService.java | 5 +- .../impl/MemberBenefitServiceImpl.java | 37 +++++++++ .../com/mcwl/pay/service/AliPayService.java | 2 +- .../pay/service/impl/AliPayServiceImpl.java | 76 +++++++++---------- 8 files changed, 119 insertions(+), 73 deletions(-) diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberLevelController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberLevelController.java index 0ff9277..f1a2d59 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberLevelController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberLevelController.java @@ -48,21 +48,7 @@ public class MemberLevelController { @ApiOperation(value = "获取会员等级及权益列表") public AjaxResult getMemberBenefitList() { - List memberBenefitVOList = new ArrayList<>(); - - List memberLevelList = memberLevelService.list(); - for (MemberLevel memberLevel : memberLevelList) { - MemberBenefitVO memberBenefitVO = new MemberBenefitVO(); - memberBenefitVO.setMemberLevel(memberLevel); - // 获取会员等级对应的权益 - List memberBenefitList = memberBenefitService.lambdaQuery() - .eq(MemberBenefit::getMemberLevelId, memberLevel.getId()) - .list(); - memberBenefitVO.setMemberBenefitList(memberBenefitList); - memberBenefitVOList.add(memberBenefitVO); - } - - return AjaxResult.success(memberBenefitVOList); + return AjaxResult.success(memberBenefitService.getMemberBenefitList()); } } diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java index 76ef5da..27c24cf 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/AliPayController.java @@ -98,15 +98,15 @@ public class AliPayController extends BaseController { } } - /** - * 余额查询接口 - */ - @GetMapping("/balance") - @ResponseBody - public AjaxResult balance(@Valid @NotNull(message = "用户ID不能为空") Long userId) throws AlipayApiException { - String balance = aliPayService.balance(userId); - return AjaxResult.success(balance); - } +// /** +// * 账户余额查询 +// */ +// @GetMapping("/balance") +// @ResponseBody +// public AjaxResult balance() throws AlipayApiException { +// String balance = aliPayService.balance(); +// return AjaxResult.success(balance); +// } /** @@ -140,13 +140,13 @@ public class AliPayController extends BaseController { * 提现接口 */ @Anonymous - @PostMapping("/fetch") + @GetMapping("/fetch") @ResponseBody @ApiOperation(value = "提现") public AjaxResult fetch(@Valid @NotNull(message = "提现金额不能为空") Double amount) throws Exception { - if (amount < 0.01) { + if (amount < 0.1) { return AjaxResult.error("提现金额最小为0.01"); } String outBizNo = UUID.fastUUID().toString(true); diff --git a/mcwl-admin/src/main/resources/application-druid.yml b/mcwl-admin/src/main/resources/application-druid.yml index e3d9d4e..0161927 100644 --- a/mcwl-admin/src/main/resources/application-druid.yml +++ b/mcwl-admin/src/main/resources/application-druid.yml @@ -115,17 +115,39 @@ aliyun: accessKeySecret: F82IVNx0IGJ3AnP6gSIfcyql1HCXIH accessPre: https://ybl2112.oss-cn-beijing.aliyuncs.com/ +## 沙箱环境 mall: mgt: aliPayConfig: protocol: https gatewayHost: openapi-sandbox.dl.alipaydev.com signType: RSA2 - 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://253d7236.r27.cpolar.top/web/pay/notify + # 沙箱应用id + appId: 9021000143684202 + # 沙箱应用私钥 + privateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCyhwMKnP7oBQ9qKhxke9AXN7ZNcniMnJFcWWFPfs3W6QqKBGFGFYQFyqfmnf2gM4nYtEbvit0CcmSrdniR3aZVb6s0A/KWqD5ejf+zjdnn5XH4GYsm/DXZoBqdAMWQUaQcVB1lC9az1rn13n9UHBJ+s+UAWtFjXMDd78dsE7enU3RjBffyvl/A+r6c0jnSHDNttSXyamxGX8ng8hK5XdCAusOfYpWnLY90sjlyz98snIfVPqAfD3KTP88gRF1KfWZniwMCR/OjCp6jm5d5dvOj8xyk7R1LfZ0CH/fXOcvpCe9JISS9DyzEzW5XpsnO5p8Mo8wFL6TKVBng+Ss0Tr0NAgMBAAECggEAPnaCl+oKPf/XPtvxBy9SxWzWug49I2V8boVPSNMjDfiHmXai2jSY9rXLPSM2JCEkL9ATqag6X6rKkjtnQBH/KpFho1dmP1QqTkb8mkQdY8ehsp6tUzyXUsdzyE8G0NHfy5Gan0ofGtkcQ2xPvIv95JromtErxcokKQLGEYhsj3xL+KVsUh5YedX/6sAiJ1KS5Zs82eh6bbCvUzuSPc4hjyfLSux5AnGBPnwEzWWJiA5z9zK17i8Cb7FnEeRmNvJw7VsXaCMFquZ6+bzlKdSuUqzqNhHMX8AivePTjj7pPHFW3FTh64E20yzl7CIwkScToXT3H7oaHRA1xGySmGNBuQKBgQDXFcg0b8L0A/Zril+4IwfckH1gpUbqlplzfozM/a/0rojQEdS+X7g4ypdPc47cwoLJx08/84L8ZPj49CImoGNdj5K9B2fY/E10SIJJqN5lb9NI4KINvGGM58NDSAl+GjT5mljkPI8jzQ1ACcy9DGV/KVScGHUWUpeLOK22AEcfWwKBgQDUfPFBHc2Bkuv3bRoNT+fnChMw5CI65wD74vR5GKyurh50DB3RZXwhRsAFd9NowINm9B2KAR0IrB+vh3EwfJaWDauh3ykZZtrAphSa11dJXvtathHTuQmXalZv5brh5mHie87yoxMn7vqDi0bwkNlb/b1wwokwc0oc3NSoNsFptwKBgCJhjPs00kkHSSCvodVhZCRRxHjqcoeVQzo/BGrQMow+SghYkVVNH7mUSNOeeTu4rAdtILHsTwfhbBr/i2X5RWjzRlWJFYSN8COiY5E6uTIlyfRgVAc2EbHgakoa/cl2jvlHPuZc99SVNoUCDAQ8Mw08ohXBoxXKZgcPLFVnffb5AoGBAJW5cDmk6WCrCRAwVVIaAtsek0U5CxGcImpakk8d3te7IwQ8YWph6yR7eOSheVrvg+ewjXvnqvCocC877brvnyAeg9isqYYXnn5uyEgPApdVkSFq94bLdIG30S5JnvR8ZG61NK5t0BqsXuL/6b2rIy2Zzrm8qfR02D0cMdBRvNljAoGBAMJG7/TqodrYPYyOZ4/IbbhAitBHWpHYJHSENnuxbQGAQuCt52Jp3eULR2r7uk3dUDuE8mB2QAEStuV/orfdxxRxJIYbEynJFGCa9O5LTevbM4MoNRfLCPPmFK5PJivlJcdrCyQKEmGSLLrVdb3H/Wzu0/4K/ZhwyrtBz4MRkuwD + # 沙箱支付宝公钥 + publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAgfv3CE8I87I5HHcMtK1RrPQZzLqYlXxRa96lIYkEyFsxdMcMSwnNJJf/mceZhMQnXQDkuEYTZPO/DJbmiZkBWbRZNfIJur5Af/wKZEmHahtEWlrdJdJ6fh7j11eeqbXBfo55H1dxPEQA/obfe85WrqoE0fa06XElgq5/RwsSKjZpnorbO8mMnDaRwxIOoRVHQlHgfkMtTHfP+Zw8Kv0tyJdWLxVDgtg0OoO8VnrDNGBwsxJDOvLjZBbp9NX3wiWQpfh4OBkN1KKfIA9yfBhS6N0bnWfr428Boz/qNhycdrG/MYGQDiG8hVt177fKvTVXRf/kdSIz3izN1GnzOUkadQIDAQAB + notifyUrl: https://253d7236.r27.cpolar.top/ali/pay/notify + # 沙箱支付宝网关 gatewayUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do +## 线上环境 +#mall: +# mgt: +# aliPayConfig: +# protocol: https +# gatewayHost: openapi-sandbox.dl.alipaydev.com +# signType: RSA2 +# # 线上应用id +# appId: 2021005114616085 +# # 线上应用私钥 +# privateKey: MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCMsTikcbGWE/E9bzaVCUvtqlrzzOo26zYl1mOVRPjJTMRi7VJrOGRpanvG9d0tCh7D5HEBO6hkd5UxEXT0/HOBRgHx7GnvUIGyAstyL8galRWpsDrRD6NVEVMB6l7mntJzfF1GKsHME2ITPp8zv7IXGGHajlA7NWO4DK6dbVL9VwdcZI1HC5nvAVm4gRsfg3uFa2i6aG+M4iKK4F94HEifFhAbi3PNDt+AF7GeE+/IWY1raNupWhoEDRLL54p9UqVhjF+cKvKfspthfo5cAsk07vxB5QGBSOOM7/Sd4gP/9tXbhJmCjQT0EWShgyHHW95qaCBDRFfEu4fyehikBaFrAgMBAAECggEAVy+3/0gpmexv0fdqZr9lGzo3tN/mwPPQEXCjM6yTVAPLq9aP/bvrldwUKn7QeonL+O9HDFGRD/l/LfI4fV04owLkT6yHFXPZe5v5waBUrAx5aTe5qza6rAvZWdWIy/feSQznrITwpevZGj3zYJlJ3sAQW+VXWOnECxlo2EwYYr+xm6TPacjx3aP/tp/7wp8cDit3gJpoMPG8sSBoDNBgF4vHAkF9GOf4JpHXQyVvRM7hv/jfH2h0K0tae/FxCBwXnjHEiV0EJyRYhq+NRETU2Srd+gaJejz/fpIZgbU5C5hFYKzqhHDilIvvZJxsSsUQWDI/htxCBZW4IgwJyYOhUQKBgQDCKSg47AX9NJjZgJlEG9fbHNCEIwl3hQAWXGHup+S9V9UVx90KmkfQubUrdr4ToszsHsDINIALd9z6HgJvhLBbPQ7nvts+go6THZU38SPqxHdoyqD6g+qDVDYzZHFPWInNw1X3/AKERkOPl5Ifvn/sjy++X4I824Vgu137CfffSQKBgQC5gIZ7e7pe6DJr98oSpARjBjsbyI6WB5S1CBsHVLL78IN4CqwTkgpaOsO8c4OOlo5FkSU3gPtxOpshKWq2Xy1IBDh3cpj70GMs8DINzA/lYR6/Y366Spavkk5IBHsVJ2bflTVPtIWUXjbL+jcyaXgZIZTUbZb4wPwgOFAM5oyXEwKBgDxwtW2qw16D7gTfDFbwV+yEdsB7a6oCA/nx/iZdq03ptpJWKg/v4OUvuh7yks7oAeSK2jY4aZeoU2ikyNtQMdnlEuu/NN6ro5hWQCou7aBaUlWTpjL1t530K/8piEBL7nHYGb3dfCcS/FsJstog4g+QrysS7iblqwpmqSXJf5jJAoGBAKmzxdPj3h0DCVWyq1+gQw8gXSTOtnrUVpvC3Y84UkGfx3YjNUb2HJhtGDIn7xub6m4EGesMCXuNpOuSizhqG++9RLcp1IDSJFixKOlsXMJ4tftbF01v/SiDjS/fQYaZtEgopUvUlzujcTfsIWDyEdfT2+b2lt3dFwqW2czjgYyXAoGASBOqGf21NSwB+RO/gPWuA/EeL8jI9SBc3V6VFvpkp8EH5+yzwXumTD9TTwOvaXpxMgjraRkCmNDwZmMpCU3ZHg9Pj+37bbIXJOBt8f1COTWf2uPp0GqVqSeWDOrJ/MQ6Mqmou/ifXvkhgExmo5ustu4v5WNE0WsYiGeVBMRejDE= +# # 线上支付宝公钥 +# publicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApcX0/YWkzEYO4Lki2ViFzezoIYq1AgOjc4lES59hmrJLJGWenCk/88M4SqKRj/6xPpsiMqe+GAzKRqZoCJvV1Cp5sqRaR/e+QyAqW8wDZbEKvnCK3lKB9W/8lntwzB1zGRDD9Tk1v5hcdXbCJ/hrg8REwlTSespeVD1+nnlKZbj14zvgmYM1SupYzmDw3SWArkf/OQDo6dnJGQkBOv92dDA2pzatUVkdKccctd35MEM7N88gjlHKcUJ1d95H3vij/zy4luV4ylHnxho7ZkZK4vh0v40Oqw/DUdpkbju4dcuBUXGrup+8/7A7ZSdqkf2XDvPW9PxGotQ4YvmCDt6izwIDAQAB +# notifyUrl: https://253d7236.r27.cpolar.top/ali/pay/notify +# # 线上支付宝网关 +# gatewayUrl: https://openapi.alipay.com/gateway.do + diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberBenefitVO.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberBenefitVO.java index 248b5d0..f406491 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberBenefitVO.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/vo/MemberBenefitVO.java @@ -2,6 +2,8 @@ package com.mcwl.memberCenter.domain.vo; import com.mcwl.memberCenter.domain.MemberBenefit; import com.mcwl.memberCenter.domain.MemberLevel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; @@ -14,7 +16,7 @@ import java.util.List; public class MemberBenefitVO { // 会员等级 - private MemberLevel memberLevel; + private String memberLevelName; // 会员权益 private List memberBenefitList = new ArrayList<>(); diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberBenefitService.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberBenefitService.java index d7154e4..da40fc7 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberBenefitService.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/MemberBenefitService.java @@ -2,9 +2,12 @@ package com.mcwl.memberCenter.service; import com.baomidou.mybatisplus.extension.service.IService; import com.mcwl.memberCenter.domain.MemberBenefit; +import com.mcwl.memberCenter.domain.vo.MemberBenefitVO; + +import java.util.List; public interface MemberBenefitService extends IService { - + List getMemberBenefitList(); } diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberBenefitServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberBenefitServiceImpl.java index a469f2e..c05bc78 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberBenefitServiceImpl.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberBenefitServiceImpl.java @@ -1,14 +1,51 @@ package com.mcwl.memberCenter.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mcwl.memberCenter.domain.MemberBenefit; +import com.mcwl.memberCenter.domain.MemberLevel; +import com.mcwl.memberCenter.domain.vo.MemberBenefitVO; import com.mcwl.memberCenter.mapper.MemberBenefitMapper; import com.mcwl.memberCenter.service.MemberBenefitService; +import com.mcwl.memberCenter.service.MemberLevelService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; + @Service @RequiredArgsConstructor public class MemberBenefitServiceImpl extends ServiceImpl implements MemberBenefitService { + private final MemberLevelService memberLevelService; + + @Override + public List getMemberBenefitList() { + List memberBenefitVOList = initList(); + + List memberLevelList = memberLevelService.list(); + for (MemberLevel memberLevel : memberLevelList) { + MemberBenefitVO memberBenefitVO = new MemberBenefitVO(); + memberBenefitVO.setMemberLevelName(memberLevel.getMemberName()); + // 获取会员等级对应的权益 + List memberBenefitList = baseMapper.selectList(new LambdaQueryWrapper() + .eq(MemberBenefit::getMemberLevelId, memberLevel.getId())); + + memberBenefitVO.setMemberBenefitList(memberBenefitList); + memberBenefitVOList.add(memberBenefitVO); + } + + return memberBenefitVOList; + } + + private List initList() { + List memberBenefitVOList = new ArrayList<>(); + MemberBenefitVO memberBenefitVO = new MemberBenefitVO(); + memberBenefitVO.setMemberLevelName("会员权益"); + memberBenefitVO.setMemberBenefitList(baseMapper.selectList(null)); + memberBenefitVOList.add(memberBenefitVO); + return memberBenefitVOList; + } } diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java index 6a492ed..07ba9c9 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/AliPayService.java @@ -13,5 +13,5 @@ public interface AliPayService { AjaxResult fetch(String outBizNo, String amount) throws AlipayApiException; - String balance(Long userId) throws AlipayApiException; + String balance() throws AlipayApiException; } diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java index cc70c9c..da3c470 100644 --- a/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java +++ b/mcwl-pay/src/main/java/com/mcwl/pay/service/impl/AliPayServiceImpl.java @@ -19,14 +19,12 @@ import com.alipay.api.request.AlipayFundTransUniTransferRequest; import com.alipay.api.request.AlipaySystemOauthTokenRequest; import com.alipay.api.response.AlipayFundAccountQueryResponse; import com.alipay.api.response.AlipayFundTransUniTransferResponse; -import com.alipay.easysdk.base.oauth.models.AlipaySystemOauthTokenResponse; import com.alipay.easysdk.factory.Factory; import com.alipay.easysdk.kernel.Config; import com.alipay.easysdk.payment.facetoface.models.AlipayTradePrecreateResponse; import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.entity.SysUser; import com.mcwl.common.core.redis.RedisCache; -import com.mcwl.common.exception.BusinessException; import com.mcwl.common.exception.ServiceException; import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.ShareCodeUtils; @@ -255,50 +253,42 @@ public class AliPayServiceImpl implements AliPayService { // 收款方信息 Participant payeeInfo = new Participant(); - payeeInfo.setIdentity(sysUserPayAccount.getOpenId()); + + // 沙箱环境 + payeeInfo.setIdentity("2088722057445020"); payeeInfo.setIdentityType("ALIPAY_USER_ID"); + +// 线上环境 +// payeeInfo.setIdentity(sysUserPayAccount.getOpenId()); +// payeeInfo.setIdentityType("ALIPAY_OPEN_ID"); model.setPayeeInfo(payeeInfo); request.setBizModel(model); - AlipayFundTransUniTransferResponse response = alipayClient.certificateExecute(request); + + // 证书用:certificateExecute(request),密钥用:execute(request) + AlipayFundTransUniTransferResponse response = alipayClient.execute(request); System.out.println(response.getBody()); + if (response.isSuccess()) { + // 记录日志和修改用户钱包 + this.addLogAndUpdateUserWallet(sysUser, amount); + return AjaxResult.success("转账成功"); + } + if (response.getSubCode().equals("PAYER_BALANCE_NOT_ENOUGH")) { // 账户余额不足,发送邮件通知 ArrayList tos = CollUtil.newArrayList("2119157836@qq.com"); String content = String.format("账户余额不足:用户%s提现%s", sysUser.getUserName(), amount); MailUtil.send(tos, "上海辰风互娱", content, false); - return AjaxResult.error("系统繁忙,请稍后重试"); + throw new ServiceException("系统繁忙,请稍后重试"); } - - if (response.isSuccess()) { - System.out.println("调用成功"); - BigDecimal wallet = new BigDecimal(sysUser.getWallet().toString()); - BigDecimal amountBigDecimal = new BigDecimal(amount); - sysUser.setWallet(wallet.subtract(amountBigDecimal).doubleValue()); - sysUserService.updateUser(sysUser); - - // 添加记录 - SysUserPayAccountLog sysUserPayAccountLog = new SysUserPayAccountLog(); - sysUserPayAccountLog.setUserId(userId); - sysUserPayAccountLog.setAmount(Double.valueOf(amount)); - sysUserPayAccountLog.setAccount("支付宝"); - sysUserPayAccountLogService.save(sysUserPayAccountLog); -// response.getBody() - return AjaxResult.success("转账成功"); - } else { - System.out.println("调用失败"); - // sdk版本是"4.38.0.ALL"及以上,可以参考下面的示例获取诊断链接 - String diagnosisUrl = DiagnosisUtils.getDiagnosisUrl(response); - System.out.println(diagnosisUrl); - return AjaxResult.error("转账失败:" + response.getMsg()); - } + throw new ServiceException("转账失败:" + response.getSubMsg()); } @Override - public String balance(Long userId) throws AlipayApiException { + public String balance() throws AlipayApiException { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); @@ -306,17 +296,8 @@ public class AliPayServiceImpl implements AliPayService { AlipayFundAccountQueryRequest request = new AlipayFundAccountQueryRequest(); AlipayFundAccountQueryModel model = new AlipayFundAccountQueryModel(); - SysUserPayAccount sysUserPayAccount = sysUserPayAccountService - .lambdaQuery() - .eq(SysUserPayAccount::getUserId, userId) - .eq(SysUserPayAccount::getType, 0) - .one(); - if (Objects.isNull(sysUserPayAccount)) { - return "fail"; - } - - // 设置支付宝openId - model.setAlipayOpenId("2021005114616085"); + // 应用userId + model.setAlipayUserId("2088721057420516"); // 设置查询的账号类型 model.setAccountType("ACCTRANS_ACCOUNT"); @@ -377,6 +358,21 @@ public class AliPayServiceImpl implements AliPayService { } + private void addLogAndUpdateUserWallet(SysUser sysUser, String amount) { + BigDecimal wallet = new BigDecimal(sysUser.getWallet().toString()); + BigDecimal amountBigDecimal = new BigDecimal(amount); + sysUser.setWallet(wallet.subtract(amountBigDecimal).doubleValue()); + sysUserService.updateUser(sysUser); + + // 添加记录 + SysUserPayAccountLog sysUserPayAccountLog = new SysUserPayAccountLog(); + sysUserPayAccountLog.setUserId(sysUser.getUserId()); + sysUserPayAccountLog.setAmount(Double.valueOf(amount)); + sysUserPayAccountLog.setAccount("支付宝"); + sysUserPayAccountLogService.save(sysUserPayAccountLog); + } + + private AlipayConfig getAlipayConfig() { String privateKey = aliConfig.getPrivateKey(); String alipayPublicKey = aliConfig.getPublicKey();