Commit 374aa2e8 by 郑云飞

小程序登录修改

parent c4f155a4
...@@ -26,11 +26,11 @@ public class DbCoupon { ...@@ -26,11 +26,11 @@ public class DbCoupon {
/** /**
* 券类型1为新用户 0为满减卷 * 券类型1为新用户 0为满减卷
*/ */
private String couponType; private Integer couponType;
/** /**
* 优惠内容 * 优惠内容
*/ */
private String fullSubtraction; private BigDecimal fullSubtraction;
/** /**
* 使用门槛:最低消费 * 使用门槛:最低消费
*/ */
......
...@@ -25,6 +25,14 @@ public class DbOrder { ...@@ -25,6 +25,14 @@ public class DbOrder {
@TableId(value = "id") @TableId(value = "id")
private Long id; private Long id;
/** /**
* 订单号
*/
private String orderNo;
/**
* 微信订单号
*/
private String wxOrderNo;
/**
* 用户id * 用户id
*/ */
private Long userId; private Long userId;
...@@ -57,6 +65,14 @@ public class DbOrder { ...@@ -57,6 +65,14 @@ public class DbOrder {
*/ */
private BigDecimal actualAmount; private BigDecimal actualAmount;
/** /**
* 支付金额
*/
private BigDecimal payAmount;
/**
* 使用优惠券id
*/
private Long useCouponId;
/**
* 备注说明 * 备注说明
*/ */
private String remark; private String remark;
...@@ -65,6 +81,10 @@ public class DbOrder { ...@@ -65,6 +81,10 @@ public class DbOrder {
*/ */
private Integer status; private Integer status;
/** /**
* 支付时间
*/
private Date payTime;
/**
* 创建人 * 创建人
*/ */
private String createUser; private String createUser;
......
package com.yongqi.xinrenli.enums;
/**
* @author zyf
* @date 2023/3/14
*/
public enum OrderStatusEnum {
// 订单状态:0 已发布;1 已驳回;2 待支付;3 已接单;4 已完成;5 退款中;6 已退款
PUBLISHED(0, "已发布"),
REJECTED(1, "已驳回"),
TO_BE_PAID(2, "待支付"),
PAYMENT_IN_PROGRESS(3, "支付中"),
RECEIVED_ORDER(4, "已接单"),
FINISHED(5, "已完成"),
REFUBD_IN_PROGRESS(6, "退款中"),
REFUNDED(7, "已退款"),
;
private final Integer code;
private final String info;
OrderStatusEnum(Integer code, String info) {
this.code = code;
this.info = info;
}
public Integer getCode() {
return code;
}
public String getInfo() {
return info;
}
}
package com.yongqi.xinrenli.service.impl; package com.yongqi.xinrenli.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.constant.WxPayConstants;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.yongqi.common.core.domain.R; import com.yongqi.common.core.domain.R;
import com.yongqi.common.core.domain.entity.SysUser; import com.yongqi.common.core.domain.entity.SysUser;
import com.yongqi.common.core.domain.model.LoginUser; import com.yongqi.common.core.domain.model.LoginUser;
...@@ -50,6 +55,8 @@ public class DbOrderServiceImpl implements IDbOrderService { ...@@ -50,6 +55,8 @@ public class DbOrderServiceImpl implements IDbOrderService {
private final DbFileMapper fileMapper; private final DbFileMapper fileMapper;
@Autowired @Autowired
private DbCouponMapper couponMapper; private DbCouponMapper couponMapper;
@Autowired
private WxPayService wxPayService;
/** /**
* 查询订单 * 查询订单
...@@ -286,10 +293,42 @@ public class DbOrderServiceImpl implements IDbOrderService { ...@@ -286,10 +293,42 @@ public class DbOrderServiceImpl implements IDbOrderService {
if (dbCoupon.getMinUsed().compareTo(dbOrder.getActualAmount()) > 0){ if (dbCoupon.getMinUsed().compareTo(dbOrder.getActualAmount()) > 0){
throw new RuntimeException("未达到此优惠券的最低消费金额"); throw new RuntimeException("未达到此优惠券的最低消费金额");
} }
BigDecimal actualAmount = dbOrder.getActualAmount(); BigDecimal payAmount = dbOrder.getActualAmount().subtract(dbCoupon.getFullSubtraction());
dbOrder.setPayAmount(payAmount);
dbOrder.setUseCouponId(couponId);
dbOrder.setStatus();
// 4.组装支付数据 // 4.组装支付数据
WxPayUnifiedOrderRequest request = new WxPayUnifiedOrderRequest();
// 需求标题
String join = dbOrder.getTitle();
if (join.length() > 40) {
join = join.substring(0, 40) + "...";
}
request.setBody(join);
// 商户订单号
request.setOutTradeNo(consumerOrder.getOrderCode());
// 子商户号
request.setSubMchId(dealer.getWxShopNo());
BigDecimal actualPrice = consumerOrder.getFinalPrice().multiply(BigDecimal.valueOf(100));
// 标价金额
request.setTotalFee((actualPrice.intValue()));
// 客户端IP
request.setSpbillCreateIp(ip);
// 交易类型
request.setTradeType(WxPayConstants.TradeType.JSAPI);
// 签名类型,默认为MD5,支持HMAC-SHA256和MD5。
request.setSignType(WxPayConstants.SignType.MD5);
// 用户标识
request.setOpenid(wxUser.getOpenId());
// 5.调用微信统一下单接口 // 5.调用微信统一下单接口
try {
wxPayService.createOrder(request);
// 6.返回支付所需数据 // 6.返回支付所需数据
} catch (WxPayException e) {
throw new RuntimeException(e);
}
return null; return null;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment