整数金额优化

This commit is contained in:
zhujunjieit 2019-01-26 01:28:50 +08:00
parent 1a53f0a436
commit ba156e72ff
1 changed files with 117 additions and 115 deletions

View File

@ -45,7 +45,7 @@ public class ApiWxPayController extends BaseController {
private static final Logger log = LoggerFactory.getLogger( ApiWxPayController.class ); private static final Logger log = LoggerFactory.getLogger( ApiWxPayController.class );
@Autowired @Autowired
private ITrainCourseUserService trainCourseUserService ; private ITrainCourseUserService trainCourseUserService;
@Autowired @Autowired
private IVipUserOrdersService vipUserOrdersService; private IVipUserOrdersService vipUserOrdersService;
@ -53,76 +53,78 @@ public class ApiWxPayController extends BaseController {
private ISysUserService sysUserService; private ISysUserService sysUserService;
@Autowired @Autowired
private WxPayService wxService; private WxPayService wxService;
@PostMapping("/notify/order") @PostMapping("/notify/order")
public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException { public String parseOrderNotifyResult(@RequestBody String xmlData) throws WxPayException {
final WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult(xmlData); final WxPayOrderNotifyResult notifyResult = this.wxService.parseOrderNotifyResult( xmlData );
log.debug("-------------------------------支付回调中----------------------------"); log.debug( "-------------------------------支付回调中----------------------------" );
if (null != notifyResult && notifyResult.getReturnCode().equals("SUCCESS")) { if (null != notifyResult && notifyResult.getReturnCode().equals( "SUCCESS" )) {
VipUserOrders userOrders = new VipUserOrders(); VipUserOrders userOrders = new VipUserOrders();
userOrders.setId(notifyResult.getOutTradeNo()); userOrders.setId( notifyResult.getOutTradeNo() );
userOrders.setDelFlag("1"); userOrders.setDelFlag( "1" );
vipUserOrdersService.updateSelectiveById(userOrders); vipUserOrdersService.updateSelectiveById( userOrders );
VipUserOrders vipUserOrders = vipUserOrdersService.selectById(notifyResult.getOutTradeNo()); VipUserOrders vipUserOrders = vipUserOrdersService.selectById( notifyResult.getOutTradeNo() );
TrainCourseUser courseUser = new TrainCourseUser(); TrainCourseUser courseUser = new TrainCourseUser();
courseUser.setVipUserId(vipUserOrders.getVipUserId()); courseUser.setVipUserId( vipUserOrders.getVipUserId() );
courseUser.setTrainCourseId(vipUserOrders.getTrainCourseId()); courseUser.setTrainCourseId( vipUserOrders.getTrainCourseId() );
courseUser.setDelFlag("0"); courseUser.setDelFlag( "0" );
courseUser.setCreateDate(new Date()); courseUser.setCreateDate( new Date() );
courseUser.setUpdateDate(new Date()); courseUser.setUpdateDate( new Date() );
courseUser.setRemarks("微信支付成功回调订单ID:"+vipUserOrders.getId()); courseUser.setRemarks( "微信支付成功回调订单ID:" + vipUserOrders.getId() );
trainCourseUserService.insertSelective(courseUser); trainCourseUserService.insertSelective( courseUser );
} }
return WxPayNotifyResponse.success("成功"); return WxPayNotifyResponse.success( "成功" );
} }
@ApiOperation(value = "扫码支付回调通知处理") @ApiOperation(value = "扫码支付回调通知处理")
@PostMapping("/notify/scanpay") @PostMapping("/notify/scanpay")
public String parseScanPayNotifyResult(String xmlData) throws WxPayException { public String parseScanPayNotifyResult(String xmlData) throws WxPayException {
final WxScanPayNotifyResult result = this.wxService.parseScanPayNotifyResult(xmlData); final WxScanPayNotifyResult result = this.wxService.parseScanPayNotifyResult( xmlData );
// TODO 根据自己业务场景需要构造返回对象 // TODO 根据自己业务场景需要构造返回对象
return WxPayNotifyResponse.success("成功"); return WxPayNotifyResponse.success( "成功" );
} }
/** /**
* 调用统一下单接口并组装生成支付所需参数对象. * 调用统一下单接口并组装生成支付所需参数对象.
* *
* @param request 统一下单请求参数 * @param request 统一下单请求参数
* @param <T> 请使用{@link com.github.binarywang.wxpay.bean.order}包下的类 * @param <T> 请使用{@link com.github.binarywang.wxpay.bean.order}包下的类
* @return 返回 {@link com.github.binarywang.wxpay.bean.order}包下的类对象 * @return 返回 {@link com.github.binarywang.wxpay.bean.order}包下的类对象
* * <p>
* 示例参数 * 示例参数
* { * {
"body":"测试商品", * "body":"测试商品",
"outTradeNo":"12344324242342342342554", * "outTradeNo":"12344324242342342342554",
"totalFee":1.01, * "totalFee":1.01,
"spbillCreateIp":"1.80.82.241", * "spbillCreateIp":"1.80.82.241",
"notifyUrl":"http://www.baidu.com", * "notifyUrl":"http://www.baidu.com",
"tradeType":"NATIVE", * "tradeType":"NATIVE",
"productId":"13652b4a71df2f49e3647c55c8e31a88" * "productId":"13652b4a71df2f49e3647c55c8e31a88"
} * }
返回 * 返回
{ * {
"codeUrl": "weixin://wxpay/bizpayurl?pr=pK0R74G" * "codeUrl": "weixin://wxpay/bizpayurl?pr=pK0R74G"
} * }
*/ */
@ApiOperation(value = "统一下单,并组装所需支付参数") @ApiOperation(value = "统一下单,并组装所需支付参数")
@PostMapping("/createOrder") @PostMapping("/createOrder")
public <T> T createOrder(@RequestBody WxPayUnifiedOrderRequest request) throws WxPayException { public <T> T createOrder(@RequestBody WxPayUnifiedOrderRequest request) throws WxPayException {
request.setOutTradeNo( IdUtil.simpleUUID()); request.setOutTradeNo( IdUtil.simpleUUID() );
request.setSpbillCreateIp( IpUtils.getIpAddr( ServletUtils.getRequest())); request.setSpbillCreateIp( IpUtils.getIpAddr( ServletUtils.getRequest() ) );
VipUserOrders userOrders = new VipUserOrders(); VipUserOrders userOrders = new VipUserOrders();
userOrders.setId(request.getOutTradeNo()); userOrders.setId( request.getOutTradeNo() );
userOrders.setVipUserId(Integer.parseInt(request.getOpenid())); userOrders.setVipUserId( Integer.parseInt( request.getOpenid() ) );
userOrders.setTrainCourseId(Integer.parseInt(request.getProductId())); userOrders.setTrainCourseId( Integer.parseInt( request.getProductId() ) );
userOrders.setPrice(new BigDecimal(request.getTotalFee().intValue()/100)); userOrders.setPrice( new BigDecimal( request.getTotalFee().intValue() ).divide( new BigDecimal( 100 ) ) );
//未支付订单 //未支付订单
userOrders.setDelFlag("0"); userOrders.setDelFlag( "0" );
vipUserOrdersService.insert(userOrders); vipUserOrdersService.insert( userOrders );
//零时存放我们自己的用户id,这儿清空 //零时存放我们自己的用户id,这儿清空
request.setOpenid(null); request.setOpenid( null );
return this.wxService.createOrder(request); return this.wxService.createOrder( request );
} }
/** /**
@ -133,35 +135,35 @@ public class ApiWxPayController extends BaseController {
* @param request 请求对象注意一些参数如appidmchid等不用设置方法内会自动从配置对象中获取到前提是对应配置中已经设置 * @param request 请求对象注意一些参数如appidmchid等不用设置方法内会自动从配置对象中获取到前提是对应配置中已经设置
* 示例参数 * 示例参数
* { * {
"body":"测试商品", * "body":"测试商品",
"outTradeNo":"12344324242342342342554", * "outTradeNo":"12344324242342342342554",
"totalFee":1.01, * "totalFee":1.01,
"spbillCreateIp":"1.80.82.241", * "spbillCreateIp":"1.80.82.241",
"notifyUrl":"http://www.baidu.com", * "notifyUrl":"http://www.baidu.com",
"tradeType":"JSAPI", * "tradeType":"JSAPI",
"productId":"13652b4a71df2f49e3647c55c8e31a88" * "productId":"13652b4a71df2f49e3647c55c8e31a88"
"openid":'' * "openid":''
} * }
返回 * 返回
{ * {
"codeUrl": "weixin://wxpay/bizpayurl?pr=pK0R74G" * "codeUrl": "weixin://wxpay/bizpayurl?pr=pK0R74G"
} * }
*/ */
@ApiOperation(value = "原生的统一下单接口") @ApiOperation(value = "原生的统一下单接口")
@PostMapping("/unifiedOrder") @PostMapping("/unifiedOrder")
public WxPayUnifiedOrderResult unifiedOrder(@RequestBody WxPayUnifiedOrderRequest request) throws WxPayException { public WxPayUnifiedOrderResult unifiedOrder(@RequestBody WxPayUnifiedOrderRequest request) throws WxPayException {
request.setOutTradeNo( IdUtil.simpleUUID()); request.setOutTradeNo( IdUtil.simpleUUID() );
request.setSpbillCreateIp( IpUtils.getIpAddr( ServletUtils.getRequest())); request.setSpbillCreateIp( IpUtils.getIpAddr( ServletUtils.getRequest() ) );
request.setSignType( "MD5" ); request.setSignType( "MD5" );
VipUserOrders userOrders = new VipUserOrders(); VipUserOrders userOrders = new VipUserOrders();
userOrders.setId(request.getOutTradeNo()); userOrders.setId( request.getOutTradeNo() );
SysUser sysUser = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() ); SysUser sysUser = sysUserService.selectUserByLoginName( JwtUtil.getLoginName() );
userOrders.setVipUserId(sysUser.getUserId().intValue()); userOrders.setVipUserId( sysUser.getUserId().intValue() );
userOrders.setTrainCourseId(Integer.parseInt(request.getProductId())); userOrders.setTrainCourseId( Integer.parseInt( request.getProductId() ) );
userOrders.setPrice(new BigDecimal(request.getTotalFee().intValue()/100)); userOrders.setPrice( new BigDecimal( request.getTotalFee().intValue() ).divide( new BigDecimal( 100 ) ) );
//未支付订单 //未支付订单
userOrders.setDelFlag("0"); userOrders.setDelFlag( "0" );
vipUserOrdersService.insert(userOrders); vipUserOrdersService.insert( userOrders );
return this.wxService.unifiedOrder(request); return this.wxService.unifiedOrder( request );
} }
} }