From e97b6492b2d77af85a86e8b203d103f7cc81e650 Mon Sep 17 00:00:00 2001 From: yang <2119157836@qq.com> Date: Sat, 8 Feb 2025 17:35:16 +0800 Subject: [PATCH] =?UTF-8?q?refactor(payment):=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=AE=9D=E6=94=AF=E4=BB=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../memberCenter/MemberController.java | 25 ++++++++--- .../pay/AliPay/AliPayController.java | 18 ++++---- .../pay/AliPay/OrderTradeController.java | 15 ++++++- .../com/mcwl/memberCenter/domain/Benefit.java | 41 +++++++++++++++++ .../memberCenter/domain/MemberBenefit.java | 15 ++----- .../domain/vo/MemberBenefitVO.java | 3 +- .../memberCenter/mapper/BenefitMapper.java | 23 ++++++++++ .../mapper/MemberBenefitMapper.java | 2 +- .../memberCenter/service/BenefitService.java | 20 +++++++++ .../service/impl/BenefitServiceImpl.java | 45 +++++++++++++++++++ .../impl/MemberBenefitServiceImpl.java | 23 +++++++--- .../service/impl/MemberServiceImpl.java | 11 +++-- .../mapper/memberCenter/BenefitMapper.xml | 42 +++++++++++++++++ .../java/com/mcwl/pay/domain/vo/PayVo.java | 12 +++++ .../com/mcwl/pay/service/AliPayService.java | 5 ++- .../pay/service/impl/AliPayServiceImpl.java | 19 ++++++-- .../resources/mapper/system/SysUserMapper.xml | 2 +- 17 files changed, 274 insertions(+), 47 deletions(-) create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitMapper.java create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitService.java create mode 100644 mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitServiceImpl.java create mode 100644 mcwl-memberCenter/src/main/resources/mapper/memberCenter/BenefitMapper.xml create mode 100644 mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/PayVo.java diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java index d6b6860..d9db407 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/memberCenter/MemberController.java @@ -6,12 +6,11 @@ import com.mcwl.common.utils.SecurityUtils; import com.mcwl.memberCenter.domain.MemberConsume; import com.mcwl.memberCenter.domain.Member; import com.mcwl.memberCenter.domain.MemberLevel; -import com.mcwl.memberCenter.service.MemberBenefitService; +import com.mcwl.memberCenter.domain.MemberPromotion; +import com.mcwl.memberCenter.enums.PromotionEnum; +import com.mcwl.memberCenter.service.*; import com.mcwl.memberCenter.domain.dto.RechargePointsDto; import com.mcwl.memberCenter.domain.dto.UserMemberDto; -import com.mcwl.memberCenter.service.MemberConsumeService; -import com.mcwl.memberCenter.service.MemberLevelService; -import com.mcwl.memberCenter.service.MemberService; import com.mcwl.system.service.ISysUserService; import com.mcwl.memberCenter.domain.vo.PointsVO; import io.swagger.annotations.Api; @@ -23,6 +22,7 @@ import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.List; +import java.util.Objects; import java.util.Optional; @RestController @@ -41,6 +41,8 @@ public class MemberController { private final MemberLevelService memberLevelService; + private final MemberPromotionService memberPromotionService; + /** * 创建用户会员 * @@ -152,7 +154,20 @@ public class MemberController { */ @GetMapping("calculatePayment") @ApiOperation(value = "根据会员等级和活动计算支付金额") - public AjaxResult calculatePayment(@NotNull(message = "请选择会员") Long memberLevelId, @RequestParam(required = false) Long promotionId) { + public AjaxResult calculatePayment(@Valid @NotNull(message = "请选择会员") Long memberLevelId, @RequestParam(required = false) Long promotionId) { + + // 获取当前用户 + Long userId = SecurityUtils.getUserId(); + MemberPromotion memberPromotion = memberPromotionService.lambdaQuery() + .eq(MemberPromotion::getUserId, userId) + .eq(MemberPromotion::getPromotionId, promotionId) + .eq(MemberPromotion::getStatus, PromotionEnum.PARTICIPATE) + .one(); + +// if (Objects.isNull(memberPromotion)) { +// return AjaxResult.warn("未参与活动或已过期"); +// } + MemberLevel memberLevel = memberLevelService.getById(memberLevelId); Double unitPrice = memberLevel.getUnitPrice(); unitPrice = memberService.calculatePayment(unitPrice, promotionId); 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 27c24cf..28e35c6 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 @@ -13,6 +13,7 @@ import com.mcwl.common.utils.SecurityUtils; import com.mcwl.common.utils.ShareCodeUtils; import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTradeDto; +import com.mcwl.pay.domain.vo.PayVo; import com.mcwl.pay.service.AliPayService; import com.mcwl.pay.service.OrderTradeService; import io.swagger.annotations.Api; @@ -119,21 +120,22 @@ public class AliPayController extends BaseController { @Anonymous @PostMapping("/doPay") @ApiOperation(value = "支付宝支付") - public void doPay(@Valid - @RequestBody - OrderTradeDto orderTradeDto, - HttpServletResponse response) throws Exception { - String qrUrl = null; + @ResponseBody + public AjaxResult doPay(@Valid + @RequestBody + OrderTradeDto orderTradeDto, + HttpServletResponse response) throws Exception { + PayVo payVo = null; String type = orderTradeDto.getType(); if ("member".equalsIgnoreCase(type)) { - qrUrl = aliPayService.memberPay(orderTradeDto); + payVo = aliPayService.memberPay(orderTradeDto); } else if ("points".equalsIgnoreCase(type)) { - qrUrl = aliPayService.pointsPay(orderTradeDto.getPaymentAmount()); + payVo = aliPayService.pointsPay(orderTradeDto.getPaymentAmount()); } - QrCodeUtil.generate(qrUrl, 300, 300, "png", response.getOutputStream()); + return AjaxResult.success(payVo); } /** diff --git a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/OrderTradeController.java b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/OrderTradeController.java index 89e7bbf..51408e4 100644 --- a/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/OrderTradeController.java +++ b/mcwl-admin/src/main/java/com/mcwl/web/controller/pay/AliPay/OrderTradeController.java @@ -23,12 +23,16 @@ import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTradeDto; import com.mcwl.pay.service.AliPayService; import com.mcwl.pay.service.OrderTradeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import javax.validation.constraints.NotBlank; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; @@ -49,6 +53,7 @@ import java.util.Random; @RestController @RequestMapping("/web/pay") @Validated +@Api(tags = "订单模块") public class OrderTradeController extends BaseController { @Autowired @@ -61,6 +66,7 @@ public class OrderTradeController extends BaseController { * 查询列表 */ @GetMapping("/list") + @ApiOperation(value = "查询订单列表") public TableDataInfo list(OrderTrade orderTrade) { startPage(); List list = orderTradeService.selectMallProductList(orderTrade); @@ -71,6 +77,7 @@ public class OrderTradeController extends BaseController { * 新增 */ @PostMapping("/add") + @ApiOperation(value = "新增订单") public AjaxResult add(@RequestBody OrderTrade orderTrade) { // 获取当前用户 Long userId = SecurityUtils.getUserId(); @@ -86,6 +93,7 @@ public class OrderTradeController extends BaseController { * 修改 */ @PostMapping("/upda") + @ApiOperation(value = "修改订单") public AjaxResult upda(@RequestBody OrderTrade orderTrade) { // 获取当前用户 Long userId = SecurityUtils.getUserId(); @@ -101,14 +109,19 @@ public class OrderTradeController extends BaseController { * 删除 */ @PostMapping + @ApiOperation(value = "删除订单") public AjaxResult remove(@RequestBody IdsParam ids) { orderTradeService.deleteMallProductByIds(ids); return success(); } + /** + * 查询交易状态 + */ @GetMapping("/queryTradeStatus") - public Object queryTradeStatus(@RequestParam String outTradeNo) throws Exception { + @ApiOperation(value = "查询交易状态") + public Object queryTradeStatus(@Valid @NotBlank(message = "订单号不能为空") @RequestParam String outTradeNo) throws Exception { Factory.setOptions(config); AlipayTradeQueryResponse query = Factory.Payment.Common().query(outTradeNo); Map map = JSONUtils.jsonToMap(query.getHttpBody()); diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java new file mode 100644 index 0000000..62a6e87 --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/Benefit.java @@ -0,0 +1,41 @@ +package com.mcwl.memberCenter.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mcwl.common.core.domain.BaseEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 权益表 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("mem_benefit") +public class Benefit extends BaseEntity { + + @TableId + private Long id; + /** + * 权益名称 + */ + private String benefitName; + /** + * 权益描述 + */ + private String benefitDesc; + /** + * 权益类型 + */ + private String benefitType; + /** + * 权益折扣,当权益类型为折扣时,记录折扣具体数值 + */ + private Double benefitDiscount; + /** + * 权益排序 + */ + private Integer benefitOrder; + + +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/MemberBenefit.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/MemberBenefit.java index f72a4c2..669fc88 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/MemberBenefit.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/domain/MemberBenefit.java @@ -8,7 +8,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; /** - * 会员权益表 + * 会员权益关联表 */ @Data @EqualsAndHashCode(callSuper = false) @@ -21,17 +21,8 @@ public class MemberBenefit extends BaseEntity { // 会员等级id private Long memberLevelId; - // 权益名称 - private String benefitName; - - // 权益描述 - private String benefitDesc; - - // 权益类型 - private MemberBenefitTypeEnum benefitType; - - // 权益折扣 当权益类型为折扣时,记录折扣的具体数值,如0.9代表9折 - private Double benefitDiscount; + // 权益id + private Long benefitId; } 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 f406491..11899ab 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 @@ -1,5 +1,6 @@ package com.mcwl.memberCenter.domain.vo; +import com.mcwl.memberCenter.domain.Benefit; import com.mcwl.memberCenter.domain.MemberBenefit; import com.mcwl.memberCenter.domain.MemberLevel; import io.swagger.annotations.ApiModel; @@ -19,7 +20,7 @@ public class MemberBenefitVO { private String memberLevelName; // 会员权益 - private List memberBenefitList = new ArrayList<>(); + private List memberBenefitList = new ArrayList<>(); } diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitMapper.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitMapper.java new file mode 100644 index 0000000..e78a3c5 --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/BenefitMapper.java @@ -0,0 +1,23 @@ +package com.mcwl.memberCenter.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.domain.MemberBenefit; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 权益 Mapper + */ +@Mapper +public interface BenefitMapper extends BaseMapper { + List getBenefitList(); + + List getBenefitListByMemberLevelId(@Param("memberLevelId") Long memberLevelId); + + List getNotBenefitList(@Param("memberLevelId") Long memberLevelId); + + Benefit getBenefitByType(@Param("memberLevelId") Long memberLevelId, @Param("benefitType") String benefitType); +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/MemberBenefitMapper.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/MemberBenefitMapper.java index a8b2b6b..d6c35ed 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/MemberBenefitMapper.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/mapper/MemberBenefitMapper.java @@ -5,7 +5,7 @@ import com.mcwl.memberCenter.domain.MemberBenefit; import org.apache.ibatis.annotations.Mapper; /** - * 会员权益 Mapper + * 会员权益关联 Mapper */ @Mapper public interface MemberBenefitMapper extends BaseMapper { diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitService.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitService.java new file mode 100644 index 0000000..f1b5c4f --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/BenefitService.java @@ -0,0 +1,20 @@ +package com.mcwl.memberCenter.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; + +import java.util.List; + +public interface BenefitService extends IService { + + List getBenefitList(); + + + List getBenefitListByMemberLevelId(Long memberLevelId); + + + List getNotBenefitList(Long memberLevelId); + + Benefit getBenefitByType(Long memberLevelId, MemberBenefitTypeEnum memberBenefitTypeEnum); +} diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitServiceImpl.java new file mode 100644 index 0000000..9b1a84b --- /dev/null +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/BenefitServiceImpl.java @@ -0,0 +1,45 @@ +package com.mcwl.memberCenter.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.mcwl.memberCenter.domain.Benefit; +import com.mcwl.memberCenter.domain.MemberBenefit; +import com.mcwl.memberCenter.domain.MemberLevel; +import com.mcwl.memberCenter.domain.vo.MemberBenefitVO; +import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; +import com.mcwl.memberCenter.mapper.BenefitMapper; +import com.mcwl.memberCenter.mapper.MemberBenefitMapper; +import com.mcwl.memberCenter.service.BenefitService; +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.Collections; +import java.util.List; + +@Service +@RequiredArgsConstructor +public class BenefitServiceImpl extends ServiceImpl implements BenefitService { + + @Override + public List getBenefitList() { + return baseMapper.getBenefitList(); + } + + @Override + public List getBenefitListByMemberLevelId(Long memberLevelId) { + return baseMapper.getBenefitListByMemberLevelId(memberLevelId); + } + + @Override + public List getNotBenefitList(Long memberLevelId) { + return baseMapper.getNotBenefitList(memberLevelId); + } + + @Override + public Benefit getBenefitByType(Long memberLevelId, MemberBenefitTypeEnum memberBenefitTypeEnum) { + return baseMapper.getBenefitByType(memberLevelId, memberBenefitTypeEnum.getValue()); + } +} 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 c05bc78..de9211a 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 @@ -3,17 +3,19 @@ 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.Benefit; import com.mcwl.memberCenter.domain.MemberBenefit; import com.mcwl.memberCenter.domain.MemberLevel; import com.mcwl.memberCenter.domain.vo.MemberBenefitVO; +import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum; import com.mcwl.memberCenter.mapper.MemberBenefitMapper; +import com.mcwl.memberCenter.service.BenefitService; 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; +import java.util.*; @Service @RequiredArgsConstructor @@ -21,6 +23,8 @@ public class MemberBenefitServiceImpl extends ServiceImpl getMemberBenefitList() { List memberBenefitVOList = initList(); @@ -30,10 +34,17 @@ public class MemberBenefitServiceImpl extends ServiceImpl memberBenefitList = baseMapper.selectList(new LambdaQueryWrapper() - .eq(MemberBenefit::getMemberLevelId, memberLevel.getId())); + List benefitList = benefitService.getBenefitListByMemberLevelId(memberLevel.getId()); - memberBenefitVO.setMemberBenefitList(memberBenefitList); + // 获取会员等级没有的权益 + List notBenefitList = benefitService.getNotBenefitList(memberLevel.getId()); + + benefitList.addAll(notBenefitList); + + // 排序 + benefitList.sort(Comparator.comparingInt(Benefit::getBenefitOrder)); + + memberBenefitVO.setMemberBenefitList(benefitList); memberBenefitVOList.add(memberBenefitVO); } @@ -44,7 +55,7 @@ public class MemberBenefitServiceImpl extends ServiceImpl memberBenefitVOList = new ArrayList<>(); MemberBenefitVO memberBenefitVO = new MemberBenefitVO(); memberBenefitVO.setMemberLevelName("会员权益"); - memberBenefitVO.setMemberBenefitList(baseMapper.selectList(null)); + memberBenefitVO.setMemberBenefitList(benefitService.getBenefitList()); memberBenefitVOList.add(memberBenefitVO); return memberBenefitVOList; } diff --git a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java index 490e93a..9eacbb4 100644 --- a/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java +++ b/mcwl-memberCenter/src/main/java/com/mcwl/memberCenter/service/impl/MemberServiceImpl.java @@ -37,6 +37,8 @@ public class MemberServiceImpl extends ServiceImpl impleme private final MemberConsumeService memberConsumeService; + private final BenefitService benefitService; + @Override public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) { if (userId == null) { @@ -80,12 +82,9 @@ public class MemberServiceImpl extends ServiceImpl impleme } // 设置积分 - MemberBenefit memberBenefit = memberBenefitService.lambdaQuery() - .eq(MemberBenefit::getMemberLevelId, memberLevelId) - .eq(MemberBenefit::getBenefitType, MemberBenefitTypeEnum.POINTS) - .one(); - if (memberBenefit != null) { - Double points = memberBenefit.getBenefitDiscount(); + Benefit benefit = benefitService.getBenefitByType(memberLevelId, MemberBenefitTypeEnum.POINTS); + if (Objects.nonNull(benefit)) { + Double points = benefit.getBenefitDiscount(); // 根据活动id查询活动类型,如果为积分,则积分加成 if (promotionId != null) { Promotion promotion = promotionMapper.selectById(promotionId); diff --git a/mcwl-memberCenter/src/main/resources/mapper/memberCenter/BenefitMapper.xml b/mcwl-memberCenter/src/main/resources/mapper/memberCenter/BenefitMapper.xml new file mode 100644 index 0000000..c4e9b8d --- /dev/null +++ b/mcwl-memberCenter/src/main/resources/mapper/memberCenter/BenefitMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + \ No newline at end of file diff --git a/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/PayVo.java b/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/PayVo.java new file mode 100644 index 0000000..bfc0a36 --- /dev/null +++ b/mcwl-pay/src/main/java/com/mcwl/pay/domain/vo/PayVo.java @@ -0,0 +1,12 @@ +package com.mcwl.pay.domain.vo; + +import lombok.Data; + +@Data +public class PayVo { + + private String url; + + private String orderNo; + +} 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 07ba9c9..315ac9c 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 @@ -3,13 +3,14 @@ package com.mcwl.pay.service; import com.alipay.api.AlipayApiException; import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.pay.domain.OrderTradeDto; +import com.mcwl.pay.domain.vo.PayVo; public interface AliPayService { String bindingCallback(String authCode, String state); - String memberPay(OrderTradeDto orderTradeDto) throws Exception; + PayVo memberPay(OrderTradeDto orderTradeDto) throws Exception; - String pointsPay(Double paymentAmount) throws Exception; + PayVo pointsPay(Double paymentAmount) throws Exception; AjaxResult fetch(String outBizNo, String amount) 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 da3c470..9680758 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 @@ -33,6 +33,7 @@ import com.mcwl.memberCenter.service.MemberLevelService; import com.mcwl.pay.config.AliConfig; import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTradeDto; +import com.mcwl.pay.domain.vo.PayVo; import com.mcwl.pay.service.AliPayService; import com.mcwl.system.domain.SysUserPayAccount; import com.mcwl.system.domain.SysUserPayAccountLog; @@ -132,7 +133,7 @@ public class AliPayServiceImpl implements AliPayService { * @throws Exception */ @Override - public String memberPay(OrderTradeDto orderTradeDto) throws Exception { + public PayVo memberPay(OrderTradeDto orderTradeDto) throws Exception { // 会员等级id Integer productId = orderTradeDto.getProductId(); @@ -168,7 +169,11 @@ public class AliPayServiceImpl implements AliPayService { //参照官方文档响应示例,解析返回结果 String httpBodyStr = payResponse.getHttpBody(); JSONObject jsonObject = JSONObject.parseObject(httpBodyStr); - return jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString(); + + PayVo payVo = new PayVo(); + payVo.setOrderNo(tradeEntity.getCode()); + payVo.setUrl(jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString()); + return payVo; } @@ -180,7 +185,7 @@ public class AliPayServiceImpl implements AliPayService { * @throws Exception */ @Override - public String pointsPay(Double paymentAmount) throws Exception { + public PayVo pointsPay(Double paymentAmount) throws Exception { // 设置orderTrade信息 OrderTrade tradeEntity = new OrderTrade(); tradeEntity.setCode(UUID.randomUUID().toString(true).substring(0, 30)); @@ -200,7 +205,13 @@ public class AliPayServiceImpl implements AliPayService { //参照官方文档响应示例,解析返回结果 String httpBodyStr = payResponse.getHttpBody(); JSONObject jsonObject = JSONObject.parseObject(httpBodyStr); - return jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString(); + + String url = jsonObject.getJSONObject("alipay_trade_precreate_response").get("qr_code").toString(); + PayVo payVo = new PayVo(); + payVo.setOrderNo(tradeEntity.getCode()); + payVo.setUrl(url); + + return payVo; } /** diff --git a/mcwl-system/src/main/resources/mapper/system/SysUserMapper.xml b/mcwl-system/src/main/resources/mapper/system/SysUserMapper.xml index 83fb171..dbf73a7 100644 --- a/mcwl-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/mcwl-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -60,7 +60,7 @@