refactor(payment): 调整支付宝支付

master
yang 2025-02-08 17:35:16 +08:00
parent 79bf09e235
commit e97b6492b2
17 changed files with 274 additions and 47 deletions

View File

@ -6,12 +6,11 @@ import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.memberCenter.domain.MemberConsume; import com.mcwl.memberCenter.domain.MemberConsume;
import com.mcwl.memberCenter.domain.Member; import com.mcwl.memberCenter.domain.Member;
import com.mcwl.memberCenter.domain.MemberLevel; 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.RechargePointsDto;
import com.mcwl.memberCenter.domain.dto.UserMemberDto; 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.system.service.ISysUserService;
import com.mcwl.memberCenter.domain.vo.PointsVO; import com.mcwl.memberCenter.domain.vo.PointsVO;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -23,6 +22,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid; import javax.validation.Valid;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
@RestController @RestController
@ -41,6 +41,8 @@ public class MemberController {
private final MemberLevelService memberLevelService; private final MemberLevelService memberLevelService;
private final MemberPromotionService memberPromotionService;
/** /**
* *
* *
@ -152,7 +154,20 @@ public class MemberController {
*/ */
@GetMapping("calculatePayment") @GetMapping("calculatePayment")
@ApiOperation(value = "根据会员等级和活动计算支付金额") @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); MemberLevel memberLevel = memberLevelService.getById(memberLevelId);
Double unitPrice = memberLevel.getUnitPrice(); Double unitPrice = memberLevel.getUnitPrice();
unitPrice = memberService.calculatePayment(unitPrice, promotionId); unitPrice = memberService.calculatePayment(unitPrice, promotionId);

View File

@ -13,6 +13,7 @@ import com.mcwl.common.utils.SecurityUtils;
import com.mcwl.common.utils.ShareCodeUtils; import com.mcwl.common.utils.ShareCodeUtils;
import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.domain.OrderTradeDto; import com.mcwl.pay.domain.OrderTradeDto;
import com.mcwl.pay.domain.vo.PayVo;
import com.mcwl.pay.service.AliPayService; import com.mcwl.pay.service.AliPayService;
import com.mcwl.pay.service.OrderTradeService; import com.mcwl.pay.service.OrderTradeService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -119,21 +120,22 @@ public class AliPayController extends BaseController {
@Anonymous @Anonymous
@PostMapping("/doPay") @PostMapping("/doPay")
@ApiOperation(value = "支付宝支付") @ApiOperation(value = "支付宝支付")
public void doPay(@Valid @ResponseBody
@RequestBody public AjaxResult doPay(@Valid
OrderTradeDto orderTradeDto, @RequestBody
HttpServletResponse response) throws Exception { OrderTradeDto orderTradeDto,
String qrUrl = null; HttpServletResponse response) throws Exception {
PayVo payVo = null;
String type = orderTradeDto.getType(); String type = orderTradeDto.getType();
if ("member".equalsIgnoreCase(type)) { if ("member".equalsIgnoreCase(type)) {
qrUrl = aliPayService.memberPay(orderTradeDto); payVo = aliPayService.memberPay(orderTradeDto);
} else if ("points".equalsIgnoreCase(type)) { } 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);
} }
/** /**

View File

@ -23,12 +23,16 @@ import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.domain.OrderTradeDto; import com.mcwl.pay.domain.OrderTradeDto;
import com.mcwl.pay.service.AliPayService; import com.mcwl.pay.service.AliPayService;
import com.mcwl.pay.service.OrderTradeService; 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.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -49,6 +53,7 @@ import java.util.Random;
@RestController @RestController
@RequestMapping("/web/pay") @RequestMapping("/web/pay")
@Validated @Validated
@Api(tags = "订单模块")
public class OrderTradeController extends BaseController { public class OrderTradeController extends BaseController {
@Autowired @Autowired
@ -61,6 +66,7 @@ public class OrderTradeController extends BaseController {
* *
*/ */
@GetMapping("/list") @GetMapping("/list")
@ApiOperation(value = "查询订单列表")
public TableDataInfo list(OrderTrade orderTrade) { public TableDataInfo list(OrderTrade orderTrade) {
startPage(); startPage();
List<OrderTrade> list = orderTradeService.selectMallProductList(orderTrade); List<OrderTrade> list = orderTradeService.selectMallProductList(orderTrade);
@ -71,6 +77,7 @@ public class OrderTradeController extends BaseController {
* *
*/ */
@PostMapping("/add") @PostMapping("/add")
@ApiOperation(value = "新增订单")
public AjaxResult add(@RequestBody OrderTrade orderTrade) { public AjaxResult add(@RequestBody OrderTrade orderTrade) {
// 获取当前用户 // 获取当前用户
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
@ -86,6 +93,7 @@ public class OrderTradeController extends BaseController {
* *
*/ */
@PostMapping("/upda") @PostMapping("/upda")
@ApiOperation(value = "修改订单")
public AjaxResult upda(@RequestBody OrderTrade orderTrade) { public AjaxResult upda(@RequestBody OrderTrade orderTrade) {
// 获取当前用户 // 获取当前用户
Long userId = SecurityUtils.getUserId(); Long userId = SecurityUtils.getUserId();
@ -101,14 +109,19 @@ public class OrderTradeController extends BaseController {
* *
*/ */
@PostMapping @PostMapping
@ApiOperation(value = "删除订单")
public AjaxResult remove(@RequestBody IdsParam ids) { public AjaxResult remove(@RequestBody IdsParam ids) {
orderTradeService.deleteMallProductByIds(ids); orderTradeService.deleteMallProductByIds(ids);
return success(); return success();
} }
/**
*
*/
@GetMapping("/queryTradeStatus") @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); Factory.setOptions(config);
AlipayTradeQueryResponse query = Factory.Payment.Common().query(outTradeNo); AlipayTradeQueryResponse query = Factory.Payment.Common().query(outTradeNo);
Map<String, Object> map = JSONUtils.jsonToMap(query.getHttpBody()); Map<String, Object> map = JSONUtils.jsonToMap(query.getHttpBody());

View File

@ -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;
}

View File

@ -8,7 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
/** /**
* *
*/ */
@Data @Data
@EqualsAndHashCode(callSuper = false) @EqualsAndHashCode(callSuper = false)
@ -21,17 +21,8 @@ public class MemberBenefit extends BaseEntity {
// 会员等级id // 会员等级id
private Long memberLevelId; private Long memberLevelId;
// 权益名称 // 权益id
private String benefitName; private Long benefitId;
// 权益描述
private String benefitDesc;
// 权益类型
private MemberBenefitTypeEnum benefitType;
// 权益折扣 当权益类型为折扣时记录折扣的具体数值如0.9代表9折
private Double benefitDiscount;
} }

View File

@ -1,5 +1,6 @@
package com.mcwl.memberCenter.domain.vo; package com.mcwl.memberCenter.domain.vo;
import com.mcwl.memberCenter.domain.Benefit;
import com.mcwl.memberCenter.domain.MemberBenefit; import com.mcwl.memberCenter.domain.MemberBenefit;
import com.mcwl.memberCenter.domain.MemberLevel; import com.mcwl.memberCenter.domain.MemberLevel;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@ -19,7 +20,7 @@ public class MemberBenefitVO {
private String memberLevelName; private String memberLevelName;
// 会员权益 // 会员权益
private List<MemberBenefit> memberBenefitList = new ArrayList<>(); private List<Benefit> memberBenefitList = new ArrayList<>();
} }

View File

@ -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<Benefit> {
List<Benefit> getBenefitList();
List<Benefit> getBenefitListByMemberLevelId(@Param("memberLevelId") Long memberLevelId);
List<Benefit> getNotBenefitList(@Param("memberLevelId") Long memberLevelId);
Benefit getBenefitByType(@Param("memberLevelId") Long memberLevelId, @Param("benefitType") String benefitType);
}

View File

@ -5,7 +5,7 @@ import com.mcwl.memberCenter.domain.MemberBenefit;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
/** /**
* Mapper * Mapper
*/ */
@Mapper @Mapper
public interface MemberBenefitMapper extends BaseMapper<MemberBenefit> { public interface MemberBenefitMapper extends BaseMapper<MemberBenefit> {

View File

@ -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<Benefit> {
List<Benefit> getBenefitList();
List<Benefit> getBenefitListByMemberLevelId(Long memberLevelId);
List<Benefit> getNotBenefitList(Long memberLevelId);
Benefit getBenefitByType(Long memberLevelId, MemberBenefitTypeEnum memberBenefitTypeEnum);
}

View File

@ -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<BenefitMapper, Benefit> implements BenefitService {
@Override
public List<Benefit> getBenefitList() {
return baseMapper.getBenefitList();
}
@Override
public List<Benefit> getBenefitListByMemberLevelId(Long memberLevelId) {
return baseMapper.getBenefitListByMemberLevelId(memberLevelId);
}
@Override
public List<Benefit> getNotBenefitList(Long memberLevelId) {
return baseMapper.getNotBenefitList(memberLevelId);
}
@Override
public Benefit getBenefitByType(Long memberLevelId, MemberBenefitTypeEnum memberBenefitTypeEnum) {
return baseMapper.getBenefitByType(memberLevelId, memberBenefitTypeEnum.getValue());
}
}

View File

@ -3,17 +3,19 @@ package com.mcwl.memberCenter.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.MemberBenefit;
import com.mcwl.memberCenter.domain.MemberLevel; import com.mcwl.memberCenter.domain.MemberLevel;
import com.mcwl.memberCenter.domain.vo.MemberBenefitVO; import com.mcwl.memberCenter.domain.vo.MemberBenefitVO;
import com.mcwl.memberCenter.enums.MemberBenefitTypeEnum;
import com.mcwl.memberCenter.mapper.MemberBenefitMapper; import com.mcwl.memberCenter.mapper.MemberBenefitMapper;
import com.mcwl.memberCenter.service.BenefitService;
import com.mcwl.memberCenter.service.MemberBenefitService; import com.mcwl.memberCenter.service.MemberBenefitService;
import com.mcwl.memberCenter.service.MemberLevelService; import com.mcwl.memberCenter.service.MemberLevelService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.*;
import java.util.List;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@ -21,6 +23,8 @@ public class MemberBenefitServiceImpl extends ServiceImpl<MemberBenefitMapper, M
private final MemberLevelService memberLevelService; private final MemberLevelService memberLevelService;
private final BenefitService benefitService;
@Override @Override
public List<MemberBenefitVO> getMemberBenefitList() { public List<MemberBenefitVO> getMemberBenefitList() {
List<MemberBenefitVO> memberBenefitVOList = initList(); List<MemberBenefitVO> memberBenefitVOList = initList();
@ -30,10 +34,17 @@ public class MemberBenefitServiceImpl extends ServiceImpl<MemberBenefitMapper, M
MemberBenefitVO memberBenefitVO = new MemberBenefitVO(); MemberBenefitVO memberBenefitVO = new MemberBenefitVO();
memberBenefitVO.setMemberLevelName(memberLevel.getMemberName()); memberBenefitVO.setMemberLevelName(memberLevel.getMemberName());
// 获取会员等级对应的权益 // 获取会员等级对应的权益
List<MemberBenefit> memberBenefitList = baseMapper.selectList(new LambdaQueryWrapper<MemberBenefit>() List<Benefit> benefitList = benefitService.getBenefitListByMemberLevelId(memberLevel.getId());
.eq(MemberBenefit::getMemberLevelId, memberLevel.getId()));
memberBenefitVO.setMemberBenefitList(memberBenefitList); // 获取会员等级没有的权益
List<Benefit> notBenefitList = benefitService.getNotBenefitList(memberLevel.getId());
benefitList.addAll(notBenefitList);
// 排序
benefitList.sort(Comparator.comparingInt(Benefit::getBenefitOrder));
memberBenefitVO.setMemberBenefitList(benefitList);
memberBenefitVOList.add(memberBenefitVO); memberBenefitVOList.add(memberBenefitVO);
} }
@ -44,7 +55,7 @@ public class MemberBenefitServiceImpl extends ServiceImpl<MemberBenefitMapper, M
List<MemberBenefitVO> memberBenefitVOList = new ArrayList<>(); List<MemberBenefitVO> memberBenefitVOList = new ArrayList<>();
MemberBenefitVO memberBenefitVO = new MemberBenefitVO(); MemberBenefitVO memberBenefitVO = new MemberBenefitVO();
memberBenefitVO.setMemberLevelName("会员权益"); memberBenefitVO.setMemberLevelName("会员权益");
memberBenefitVO.setMemberBenefitList(baseMapper.selectList(null)); memberBenefitVO.setMemberBenefitList(benefitService.getBenefitList());
memberBenefitVOList.add(memberBenefitVO); memberBenefitVOList.add(memberBenefitVO);
return memberBenefitVOList; return memberBenefitVOList;
} }

View File

@ -37,6 +37,8 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
private final MemberConsumeService memberConsumeService; private final MemberConsumeService memberConsumeService;
private final BenefitService benefitService;
@Override @Override
public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) { public Member createUserMember(Long userId, Long memberLevelId, String paymentMethod, Long promotionId) {
if (userId == null) { if (userId == null) {
@ -80,12 +82,9 @@ public class MemberServiceImpl extends ServiceImpl<MemberMapper, Member> impleme
} }
// 设置积分 // 设置积分
MemberBenefit memberBenefit = memberBenefitService.lambdaQuery() Benefit benefit = benefitService.getBenefitByType(memberLevelId, MemberBenefitTypeEnum.POINTS);
.eq(MemberBenefit::getMemberLevelId, memberLevelId) if (Objects.nonNull(benefit)) {
.eq(MemberBenefit::getBenefitType, MemberBenefitTypeEnum.POINTS) Double points = benefit.getBenefitDiscount();
.one();
if (memberBenefit != null) {
Double points = memberBenefit.getBenefitDiscount();
// 根据活动id查询活动类型如果为积分则积分加成 // 根据活动id查询活动类型如果为积分则积分加成
if (promotionId != null) { if (promotionId != null) {
Promotion promotion = promotionMapper.selectById(promotionId); Promotion promotion = promotionMapper.selectById(promotionId);

View File

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mcwl.memberCenter.mapper.BenefitMapper">
<select id="getBenefitList" resultType="com.mcwl.memberCenter.domain.Benefit">
select id, benefit_name, benefit_desc, benefit_discount, benefit_order
from mem_benefit
where del_flag = '0'
order by benefit_order
</select>
<select id="getBenefitListByMemberLevelId" resultType="com.mcwl.memberCenter.domain.Benefit">
select b.id, benefit_name, benefit_desc, benefit_discount, benefit_order
from mem_benefit b
left join mem_member_benefit mb on b.id = mb.benefit_id
where mb.member_level_id = #{memberLevelId}
and b.del_flag = '0'
and mb.del_flag = '0'
order by b.benefit_order
</select>
<select id="getNotBenefitList" resultType="com.mcwl.memberCenter.domain.Benefit">
select benefit_name, benefit_desc, benefit_order
from mem_benefit b
where b.id not in (select mb.benefit_id
from mem_member_benefit mb
where mb.member_level_id = #{memberLevelId}
and mb.del_flag = '0')
and b.del_flag = '0'
order by b.benefit_order
</select>
<select id="getBenefitByType" resultType="com.mcwl.memberCenter.domain.Benefit">
select mb.id, benefit_name, benefit_desc, benefit_type, benefit_discount, benefit_order
from mem_benefit mb
left join mem_member_benefit mmb on mb.id = mmb.benefit_id
where mb.del_flag = '0'
and mmb.del_flag = '0'
and member_level_id = #{memberLevelId}
and benefit_type = #{benefitType}
</select>
</mapper>

View File

@ -0,0 +1,12 @@
package com.mcwl.pay.domain.vo;
import lombok.Data;
@Data
public class PayVo {
private String url;
private String orderNo;
}

View File

@ -3,13 +3,14 @@ package com.mcwl.pay.service;
import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayApiException;
import com.mcwl.common.core.domain.AjaxResult; import com.mcwl.common.core.domain.AjaxResult;
import com.mcwl.pay.domain.OrderTradeDto; import com.mcwl.pay.domain.OrderTradeDto;
import com.mcwl.pay.domain.vo.PayVo;
public interface AliPayService { public interface AliPayService {
String bindingCallback(String authCode, String state); 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; AjaxResult fetch(String outBizNo, String amount) throws AlipayApiException;

View File

@ -33,6 +33,7 @@ import com.mcwl.memberCenter.service.MemberLevelService;
import com.mcwl.pay.config.AliConfig; import com.mcwl.pay.config.AliConfig;
import com.mcwl.pay.domain.OrderTrade; import com.mcwl.pay.domain.OrderTrade;
import com.mcwl.pay.domain.OrderTradeDto; import com.mcwl.pay.domain.OrderTradeDto;
import com.mcwl.pay.domain.vo.PayVo;
import com.mcwl.pay.service.AliPayService; import com.mcwl.pay.service.AliPayService;
import com.mcwl.system.domain.SysUserPayAccount; import com.mcwl.system.domain.SysUserPayAccount;
import com.mcwl.system.domain.SysUserPayAccountLog; import com.mcwl.system.domain.SysUserPayAccountLog;
@ -132,7 +133,7 @@ public class AliPayServiceImpl implements AliPayService {
* @throws Exception * @throws Exception
*/ */
@Override @Override
public String memberPay(OrderTradeDto orderTradeDto) throws Exception { public PayVo memberPay(OrderTradeDto orderTradeDto) throws Exception {
// 会员等级id // 会员等级id
Integer productId = orderTradeDto.getProductId(); Integer productId = orderTradeDto.getProductId();
@ -168,7 +169,11 @@ public class AliPayServiceImpl implements AliPayService {
//参照官方文档响应示例,解析返回结果 //参照官方文档响应示例,解析返回结果
String httpBodyStr = payResponse.getHttpBody(); String httpBodyStr = payResponse.getHttpBody();
JSONObject jsonObject = JSONObject.parseObject(httpBodyStr); 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 * @throws Exception
*/ */
@Override @Override
public String pointsPay(Double paymentAmount) throws Exception { public PayVo pointsPay(Double paymentAmount) throws Exception {
// 设置orderTrade信息 // 设置orderTrade信息
OrderTrade tradeEntity = new OrderTrade(); OrderTrade tradeEntity = new OrderTrade();
tradeEntity.setCode(UUID.randomUUID().toString(true).substring(0, 30)); tradeEntity.setCode(UUID.randomUUID().toString(true).substring(0, 30));
@ -200,7 +205,13 @@ public class AliPayServiceImpl implements AliPayService {
//参照官方文档响应示例,解析返回结果 //参照官方文档响应示例,解析返回结果
String httpBodyStr = payResponse.getHttpBody(); String httpBodyStr = payResponse.getHttpBody();
JSONObject jsonObject = JSONObject.parseObject(httpBodyStr); 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;
} }
/** /**

View File

@ -60,7 +60,7 @@
</sql> </sql>
<select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult"> <select id="selectUserList" parameterType="SysUser" resultMap="SysUserResult">
select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.wallet u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u select u.user_id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex,u.wallet, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
left join sys_dept d on u.dept_id = d.dept_id left join sys_dept d on u.dept_id = d.dept_id
where u.del_flag = '0' where u.del_flag = '0'
<if test="userId != null and userId != 0"> <if test="userId != null and userId != 0">