提交修改
This commit is contained in:
parent
95940263fd
commit
e78cce35f2
@ -149,4 +149,6 @@ public interface VvTradeOrderLineDao extends BaseMapper<VvTradeOrderLineEntity>
|
||||
|
||||
|
||||
List<VvTradeOrderLineEntity> selectVvTradeOrderLineByBuyerIdTrackNumber(Long buyerId, String trackNumber);
|
||||
|
||||
List<VvTradeOrderLineEntity> selectByTradeOrderIdAndTransactionId(Long tradeOrderId, String transactionId);
|
||||
}
|
||||
@ -10,7 +10,7 @@ import java.util.Date;import java.util.Date;
|
||||
/**
|
||||
*购物车
|
||||
* @author quyixiao
|
||||
* @since 2025-10-25
|
||||
* @since 2025-11-06
|
||||
*/
|
||||
|
||||
@Data
|
||||
@ -72,6 +72,8 @@ private static final long serialVersionUID = 1L;
|
||||
public final static String award_amount = CLASS_NAME + "award_amount"; // 奖励金额
|
||||
public final static String activity_id = CLASS_NAME + "activity_id"; // 活动id
|
||||
public final static String activity_award_count = CLASS_NAME + "activity_award_count"; // 这次活动的奖励次数
|
||||
public final static String transaction_id = CLASS_NAME + "transaction_id"; // 支付事务id
|
||||
public final static String pay_type = CLASS_NAME + "pay_type"; // 支付方式,weixin
|
||||
//
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
@ -175,6 +177,10 @@ private static final long serialVersionUID = 1L;
|
||||
private Long activityId;
|
||||
//这次活动的奖励次数
|
||||
private Integer activityAwardCount;
|
||||
//支付事务id
|
||||
private String transactionId;
|
||||
//支付方式,weixin
|
||||
private String payType;
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
@ -940,6 +946,36 @@ private static final long serialVersionUID = 1L;
|
||||
this.activityAwardCount = activityAwardCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付事务id
|
||||
* @return
|
||||
*/
|
||||
public String getTransactionId() {
|
||||
return transactionId;
|
||||
}
|
||||
/**
|
||||
* 支付事务id
|
||||
* @param transactionId
|
||||
*/
|
||||
public void setTransactionId(String transactionId) {
|
||||
this.transactionId = transactionId;
|
||||
}
|
||||
|
||||
/**
|
||||
* 支付方式,weixin
|
||||
* @return
|
||||
*/
|
||||
public String getPayType() {
|
||||
return payType;
|
||||
}
|
||||
/**
|
||||
* 支付方式,weixin
|
||||
* @param payType
|
||||
*/
|
||||
public void setPayType(String payType) {
|
||||
this.payType = payType;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VvTradeOrderLineEntity{" +
|
||||
@ -994,6 +1030,8 @@ private static final long serialVersionUID = 1L;
|
||||
",awardAmount=" + awardAmount +
|
||||
",activityId=" + activityId +
|
||||
",activityAwardCount=" + activityAwardCount +
|
||||
",transactionId=" + transactionId +
|
||||
",payType=" + payType +
|
||||
"}";
|
||||
}
|
||||
}
|
||||
@ -48,7 +48,7 @@ public class MysqlMain_update {
|
||||
}
|
||||
List<TablesBean> list = new ArrayList<TablesBean>();
|
||||
|
||||
list.add(new TablesBean("vv_product"));
|
||||
list.add(new TablesBean("vv_trade_order_line"));
|
||||
|
||||
|
||||
Map<String, String> map = MysqlUtil2ShowCreateTable.getComments();
|
||||
|
||||
@ -61,8 +61,7 @@ public class JsapiPrepay {
|
||||
|
||||
|
||||
|
||||
public DirectAPIv3JsapiPrepayResponse prePay(String tradeOrderId,
|
||||
String skuInfo,
|
||||
public DirectAPIv3JsapiPrepayResponse prePay(Long tradeOrderId,
|
||||
Long amount,
|
||||
String openid
|
||||
) {
|
||||
@ -70,8 +69,8 @@ public class JsapiPrepay {
|
||||
request.setAppid(appid);
|
||||
request.setMchid(mchid);
|
||||
request.setNotifyUrl(notifyUrl);
|
||||
request.setDescription(skuInfo);
|
||||
request.setOutTradeNo(tradeOrderId);
|
||||
request.setDescription(System.currentTimeMillis() + "");
|
||||
request.setOutTradeNo(tradeOrderId + "");
|
||||
request.setTimeExpire(WXPayUtility.generateExpireTime()); // 2025-11-05T21:02:16+08:00
|
||||
request.setAttach("自定义数据说明");
|
||||
request.setGoodsTag("WXG");
|
||||
@ -87,7 +86,7 @@ public class JsapiPrepay {
|
||||
return doPay(request);
|
||||
}
|
||||
|
||||
public DirectAPIv3JsapiPrepayResponse doPay(DirectAPIv3JsapiPrepayRequest request) {
|
||||
private DirectAPIv3JsapiPrepayResponse doPay(DirectAPIv3JsapiPrepayRequest request) {
|
||||
String uri = PATH;
|
||||
String reqBody = WXPayUtility.toJson(request);
|
||||
|
||||
|
||||
@ -15,6 +15,8 @@ import com.heyu.api.data.utils.BigDecimalUtil;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.data.utils.SanUtils;
|
||||
import com.heyu.api.data.utils.StringUtils;
|
||||
import com.heyu.api.jsapi.JsapiPrepay;
|
||||
import com.heyu.api.jsapi.dto.DirectAPIv3JsapiPrepayResponse;
|
||||
import com.heyu.api.utils.ISelect;
|
||||
import com.heyu.api.utils.PPageUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -63,6 +65,9 @@ public class AppOrderController {
|
||||
@Autowired
|
||||
private VvBuyerAddressDao vvBuyerAddressDao;
|
||||
|
||||
@Autowired
|
||||
private JsapiPrepay jsapiPrepay;
|
||||
|
||||
/***
|
||||
* https://api.1024api.com/api-interface/app/order/list
|
||||
*
|
||||
@ -267,7 +272,6 @@ public class AppOrderController {
|
||||
|
||||
VvTradeOrderEntity vvTradeOrderEntity = new VvTradeOrderEntity();
|
||||
VvBuyerEntity vvBuyerEntity = vvBuyerDao.selectVvBuyerById(vvOrderRequest.getBuyerId());
|
||||
|
||||
//创建时间
|
||||
vvTradeOrderEntity.setCreateTime(new Date());
|
||||
vvTradeOrderEntity.setModifyTime(new Date());
|
||||
@ -276,7 +280,6 @@ public class AppOrderController {
|
||||
vvTradeOrderEntity.setBuyerName(vvBuyerEntity.getBuyerName());
|
||||
vvTradeOrderEntity.setBuyerWeixin(vvBuyerEntity.getBuyerWeixin());
|
||||
vvTradeOrderEntity.setGmtDownOrder(new Date());
|
||||
|
||||
VvBuyerAddressEntity vvBuyerAddress = vvBuyerAddressDao.selectVvBuyerAddressById(vvOrderRequest.getBuyerAddressId());
|
||||
vvTradeOrderEntity.setContry(vvBuyerAddress.getContry());
|
||||
vvTradeOrderEntity.setProvince(vvBuyerAddress.getProvince());
|
||||
@ -287,13 +290,11 @@ public class AppOrderController {
|
||||
vvTradeOrderEntity.setBuyerId(vvOrderRequest.getBuyerId());
|
||||
vvTradeOrderEntity.setCreateTimestamp(System.currentTimeMillis());
|
||||
vvTradeOrderEntity.setModifyTimestamp(System.currentTimeMillis());
|
||||
|
||||
vvTradeOrderDao.insertVvTradeOrder(vvTradeOrderEntity);
|
||||
for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||
tradeOrderLineEntity.setTradeOrderId(vvTradeOrderEntity.getId());
|
||||
vvTradeOrderLineDao.insertOrUpdateVvTradeOrderLine(tradeOrderLineEntity);
|
||||
}
|
||||
|
||||
for (VvTradeOrderLineDTO vvTradeOrderLineDTO : vvOrderRequest.getVvTradeOrderLineDTOList()) {
|
||||
vvSkuDao.updateVvSkuStockSaleCountById(vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getNum(), vvTradeOrderLineDTO.getSkuId());
|
||||
}
|
||||
@ -301,12 +302,19 @@ public class AppOrderController {
|
||||
for (Map.Entry<Long, Integer> map : productNumMap.entrySet()) {
|
||||
vvProductDao.updateShowSaleCountAndSaleCount(map.getValue(), map.getValue(), map.getKey());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
DirectAPIv3JsapiPrepayResponse jsapiPrepayResponse = jsapiPrepay.prePay(vvTradeOrderEntity.getId(),
|
||||
BigDecimalUtil.multiply(vvTradeOrderEntity.getAllPrice(), new BigDecimal(100)).longValue(),
|
||||
vvBuyerEntity.getOpenid()
|
||||
);
|
||||
if (jsapiPrepayResponse != null && jsapiPrepayResponse.getPrepayId() != null) {
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntities = vvTradeOrderLineDao.selectVvTradeOrderLineByTradeOrderId(vvTradeOrderEntity.getId());
|
||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntities) {
|
||||
vvTradeOrderLineEntity.setPayType("weixin");
|
||||
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_pay.getStatus());
|
||||
vvTradeOrderLineEntity.setTransactionId(jsapiPrepayResponse.getPrepayId());
|
||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||
}
|
||||
}
|
||||
return R.ok("订单创建成功");
|
||||
}
|
||||
|
||||
@ -320,6 +328,8 @@ public class AppOrderController {
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***
|
||||
* 订单 妥投 /app/order/delivered
|
||||
*/
|
||||
@ -339,4 +349,8 @@ public class AppOrderController {
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -3,8 +3,13 @@ package com.heyu.api.controller.vv;
|
||||
|
||||
import com.fasterxml.jackson.databind.JsonNode;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.heyu.api.alibaba.request.mm.enums.OrderStatusEnums;
|
||||
import com.heyu.api.common.annotation.Describe;
|
||||
import com.heyu.api.data.dao.vv.VvTradeOrderLineDao;
|
||||
import com.heyu.api.data.entity.vv.VvTradeOrderLineEntity;
|
||||
import com.heyu.api.data.utils.NumberUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
@ -17,6 +22,8 @@ import javax.crypto.spec.SecretKeySpec;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.security.Key;
|
||||
import java.util.Base64;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@ -24,6 +31,10 @@ import java.util.Base64;
|
||||
public class AppWeiXinPayNotifyController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private VvTradeOrderLineDao vvTradeOrderLineDao;
|
||||
|
||||
|
||||
// 微信支付APIv3密钥
|
||||
@Value("${eb.config.weixin.pay.apiv3key}")
|
||||
private String apiv3key;
|
||||
@ -80,9 +91,16 @@ public class AppWeiXinPayNotifyController {
|
||||
return new String(decryptedData, StandardCharsets.UTF_8);
|
||||
}
|
||||
|
||||
|
||||
private void updateOrderStatus(String outTradeNo, String transactionId) {
|
||||
// 这里是更新商户订单状态的逻辑,例如标记订单已支付
|
||||
System.out.println("订单 " + outTradeNo + " 已支付,交易号:" + transactionId);
|
||||
log.info("订单 " + outTradeNo + " 已支付,交易号:" + transactionId + "开始更新子订单信息");
|
||||
List<VvTradeOrderLineEntity> vvTradeOrderLineEntityList = vvTradeOrderLineDao.selectByTradeOrderIdAndTransactionId(NumberUtil.objToLong(outTradeNo), transactionId);
|
||||
for (VvTradeOrderLineEntity vvTradeOrderLineEntity : vvTradeOrderLineEntityList) {
|
||||
vvTradeOrderLineEntity.setStatus(OrderStatusEnums.wait_shipping.getStatus());
|
||||
vvTradeOrderLineEntity.setGmtPay(new Date());
|
||||
vvTradeOrderLineDao.updateVvTradeOrderLineById(vvTradeOrderLineEntity);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user