diff --git a/.gitignore b/.gitignore
index 2ec4a7a7..64a69283 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,5 +10,5 @@ buildNumber.properties
# https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar
/.idea/
-src/main/resources/weChatConfig.properties
/src/test/
+peanut_book.iml
diff --git a/peanut_book.iml b/peanut_book.iml
deleted file mode 100644
index 6274e151..00000000
--- a/peanut_book.iml
+++ /dev/null
@@ -1,276 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/java/com/peanut/modules/book/controller/ActivityController.java b/src/main/java/com/peanut/modules/book/controller/ActivityController.java
index 25cc37f8..034e642c 100644
--- a/src/main/java/com/peanut/modules/book/controller/ActivityController.java
+++ b/src/main/java/com/peanut/modules/book/controller/ActivityController.java
@@ -1,24 +1,15 @@
package com.peanut.modules.book.controller;
-import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.peanut.common.utils.PageUtils;
import com.peanut.common.utils.R;
import com.peanut.modules.book.entity.*;
import com.peanut.modules.book.service.*;
import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
-import java.math.BigDecimal;
import java.util.*;
-import java.util.concurrent.locks.Lock;
-import java.util.concurrent.locks.ReentrantLock;
-import java.util.stream.Collectors;
/**
diff --git a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java
index 02bc6ef7..138f8430 100644
--- a/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java
+++ b/src/main/java/com/peanut/modules/book/controller/BuyOrderController.java
@@ -71,8 +71,20 @@ public class BuyOrderController {
private PayWechatOrderService payWechatOrderService;
@Autowired
private PayZfbOrderService payZfbOrderService;
-// @Autowired
-// private
+
+ /**
+ * 订单状态 - 待支付
+ */
+ private static final String ORDER_STATUS_TO_BE_PAID = "0";
+ /**
+ * 订单状态 - 待发货
+ */
+ private static final String ORDER_STATUS_TO_BE_SHIPPED = "1";
+ /**
+ * 订单状态 - 待收货
+ */
+ private static final String ORDER_STATUS_TO_BE_RECEIVED = "2";
+
/**
* 列表
*/
@@ -124,23 +136,18 @@ public class BuyOrderController {
/**
- * 保存
+ * 下单
*/
@RequestMapping("/buysave")
@Transactional
-// @RequiresPermissions("book:buyorder:save")
public R buysave(@RequestBody BuyOrderEntity buyOrder){
-
-
BigDecimal realMoney = new BigDecimal(0);
-
Lock l = new ReentrantLock();
l.lock();
try {
+ // 根据订单获取订单详情
List products = buyOrder.getProducts();
-
BigDecimal bigDecimal1 = new BigDecimal(0);
-
ArrayList list = new ArrayList<>();
// 遍历商品 查询价格
@@ -152,12 +159,13 @@ public class BuyOrderController {
BigDecimal big = new BigDecimal(0);
BigDecimal price=null;
- //activityPrice等于0,则原价
+ //activityPrice等于 0,则原价
if (activityPrice.equals(big)||activityPrice==null) {
price = product.getPrice();
}else {
price = product.getActivityPrice();
}
+
Integer quantity = buyOrderDetail.getQuantity();
BigDecimal bigDecimal = new BigDecimal(price.doubleValue() * quantity);
System.out.println("bigDecimal=================bigDecimal======================"+bigDecimal);
@@ -170,6 +178,7 @@ public class BuyOrderController {
product.setProductStock(product.getProductStock() - buyOrderDetail.getQuantity());
product.setSumSales(product.getSumSales() + buyOrderDetail.getQuantity());
shopProductService.updateById(product);
+
BeanUtils.copyProperties(buyOrderDetail,buyOrderDetailEntity);
buyOrderDetailEntity.setProductName(product.getProductName());
buyOrderDetailEntity.setProductPrice(product.getPrice());
@@ -200,9 +209,8 @@ public class BuyOrderController {
String timeId = IdWorker.getTimeId().substring(0,32);
buyOrder.setOrderSn(timeId);
if("4".equals(buyOrder.getPaymentMethod())){
- buyOrder.setOrderStatus("1");
+ buyOrder.setOrderStatus(ORDER_STATUS_TO_BE_SHIPPED);
}
- //todo 增加结束时间
buyOrder.setPaymentDate(new Date());
buyOrderService.save(buyOrder);
diff --git a/src/main/java/com/peanut/modules/book/entity/BuyOrderDetailEntity.java b/src/main/java/com/peanut/modules/book/entity/BuyOrderDetailEntity.java
index 1e339f43..48a7b1df 100644
--- a/src/main/java/com/peanut/modules/book/entity/BuyOrderDetailEntity.java
+++ b/src/main/java/com/peanut/modules/book/entity/BuyOrderDetailEntity.java
@@ -10,101 +10,107 @@ import java.io.Serializable;
import java.util.Date;
import lombok.Data;
-import javax.xml.soap.Text;
-
/**
* 商品订单详情表
- *
+ *
* @author yl
* @email yl328572838@163.com
* @date 2022-08-29 15:27:44
+ * @modify wu chunlei
+ * @date 2023-10-07 13:06:00
*/
@Data
@TableName("buy_order_detail")
public class BuyOrderDetailEntity implements Serializable {
- private static final long serialVersionUID = 1L;
- /**
- * 订单详情id
- */
- @TableId
- private Long allOrderId;
- /**
- * 订单表id
- */
- private Integer orderId;
- /**
- * 用户id
- */
- private Integer userId;
- /**
- * 商品id
- */
- private Integer productId;
- /**
- * 商品名称
- */
- private String productName;
- /**
- * 商品数量
- */
- private Integer quantity;
- /**
- * 商品单价
- */
- private BigDecimal productPrice;
- /**
- * 商品重量
- */
- private Float weight;
- /**
- * 商品类型
- */
- private String productType;
-
- private String shippingSn;
- private String orderStatus;
- private String remark;
- /**
- * 下单时间
- */
- @TableField(fill = FieldFill.INSERT)//创建注解
- private Date creatTime;
-
- @TableField(exist = false)
- private String image;
-
- /**
- * 地址id
- */
- private Integer addressId;
-
-
- /**
- * 面单html
- */
- private String fmsHtml;
-
- /**
- * 快递公司编码
- */
- private String shipperCode;
-
- /**
- * 快递公司名称
- */
- private String shipperName;
-
- /**
- * 是否已打印 0: 未打印,1:已打印
- */
- private String isPrint;
-
- /**
- * 商品图片地址
- */
- private String productUrl;
- @TableField("record_id")
- private Integer recordId;
+ private static final long serialVersionUID = 1L;
+ /**
+ * 订单详情id
+ */
+ @TableId
+ private Long allOrderId;
+ /**
+ * 订单表id
+ */
+ private Integer orderId;
+ /**
+ * 用户id
+ */
+ private Integer userId;
+ /**
+ * 商品id
+ */
+ private Integer productId;
+ /**
+ * 商品名称
+ */
+ private String productName;
+ /**
+ * 商品数量
+ */
+ private Integer quantity;
+ /**
+ * 商品单价
+ */
+ private BigDecimal productPrice;
+ /**
+ * 商品重量
+ */
+ private Float weight;
+ /**
+ * 商品类型
+ */
+ private String productType;
+ /**
+ * 物流单号
+ */
+ private String shippingSn;
+ /**
+ * 订单状态 0-待支付 1-待发货 2-待收货
+ */
+ private String orderStatus;
+ /**
+ * 备注
+ */
+ private String remark;
+ /**
+ * 下单时间
+ */
+ @TableField(fill = FieldFill.INSERT)
+ private Date creatTime;
+ /**
+ * 图片
+ */
+ @TableField(exist = false)
+ private String image;
+ /**
+ * 地址id
+ */
+ private Integer addressId;
+ /**
+ * 面单html
+ */
+ private String fmsHtml;
+ /**
+ * 快递公司编码
+ */
+ private String shipperCode;
+ /**
+ * 快递公司名称
+ */
+ private String shipperName;
+ /**
+ * 是否已打印 0: 未打印,1:已打印
+ */
+ private String isPrint;
+ /**
+ * 商品图片地址
+ */
+ private String productUrl;
+ /**
+ * 评价 ID
+ */
+ @TableField("record_id")
+ private Integer recordId;
}
diff --git a/src/main/java/com/peanut/modules/book/entity/BuyOrderEntity.java b/src/main/java/com/peanut/modules/book/entity/BuyOrderEntity.java
index 50cc0202..54285665 100644
--- a/src/main/java/com/peanut/modules/book/entity/BuyOrderEntity.java
+++ b/src/main/java/com/peanut/modules/book/entity/BuyOrderEntity.java
@@ -104,14 +104,11 @@ public class BuyOrderEntity implements Serializable {
private Date shippingTime;
/**
* 订单状态
- *
- *
* 0: 待付款
* 1: 待发货
* 2: 已发货
* 3:已完成
* 4: 交易失败
- *
*/
private String orderStatus;
/**
diff --git a/src/main/java/com/peanut/modules/pay/weChatPay/config/WechatPayConfig.java b/src/main/java/com/peanut/modules/pay/weChatPay/config/WechatPayConfig.java
index 7d06e9e2..05914449 100644
--- a/src/main/java/com/peanut/modules/pay/weChatPay/config/WechatPayConfig.java
+++ b/src/main/java/com/peanut/modules/pay/weChatPay/config/WechatPayConfig.java
@@ -190,8 +190,6 @@ public class WechatPayConfig implements Serializable {
* @return
*/
@Bean(name = "wxPayClient")
-
-
public CloseableHttpClient getWxPayClient(Verifier verifier) {
log.info("获取HttpClient");
diff --git a/src/main/java/com/peanut/modules/pay/weChatPay/controller/WeChatPayController.java b/src/main/java/com/peanut/modules/pay/weChatPay/controller/WeChatPayController.java
index 65fc3a1c..fdf90763 100644
--- a/src/main/java/com/peanut/modules/pay/weChatPay/controller/WeChatPayController.java
+++ b/src/main/java/com/peanut/modules/pay/weChatPay/controller/WeChatPayController.java
@@ -48,7 +48,7 @@ import java.util.concurrent.locks.ReentrantLock;
@Slf4j
@RestController
-@CrossOrigin //跨域
+@CrossOrigin
@RequestMapping("/pay")
@Configuration
public class WeChatPayController {
@@ -254,33 +254,24 @@ public class WeChatPayController {
BuyOrderEntity order = this.buyOrderService.getOne(new QueryWrapper().eq("order_sn", orderNo));
PayWechatOrderEntity wechatEntity = new PayWechatOrderEntity();
if(!ObjectUtils.isEmpty(order)){
-
wechatEntity = this.payWechatOrderService.getOne(new QueryWrapper().eq("order_sn", order.getOrderSn()));
}else{
log.error("无效订单!");
return R.error(500,"无效订单!");
}
// 1.根据订单id获取订单信息
-
if("order".equals(order.getOrderType())){
-
BuyOrderEntity orderEntity = buyOrderService.getBaseMapper().selectOne(new QueryWrapper().eq("order_sn", wechatEntity.getOrderSn()));
BigDecimal realMoney = orderEntity.getRealMoney();
-
//更新 订单 记录
if (wechatEntity.getTotalAmount().compareTo(realMoney) == 0) {
buyOrderService.updateOrderStatus(Integer.valueOf(order.getUserId()),order.getOrderSn(),"0");
}
-
}
if("point".equals(order.getOrderType())){
-// List bookBuyConfigEntity = bookBuyConfigService.getBaseMapper().selectList(new QueryWrapper().eq("price_type_id", ""));
-// 插入花生币 变动记录
PayWechatOrderEntity buy_order_id = payWechatOrderService.getBaseMapper().selectOne(new QueryWrapper().eq("order_sn", order.getOrderSn()));
Integer buyorder= buy_order_id.getBuyOrderId();
BookBuyConfigEntity bookBuyConfigEntity = bookBuyConfigService.getById(buyorder);
-
-
String realMoney =bookBuyConfigEntity.getRealMoney();
Integer money = Integer.valueOf(realMoney);
userService.rechargeHSPoint(Integer.valueOf(order.getUserId()),money);
@@ -288,7 +279,6 @@ public class WeChatPayController {
transactionDetailsEntity.setUserId(order.getUserId());
transactionDetailsEntity.setChangeAmount(new BigDecimal(money));
transactionDetailsEntity.setOrderType("充值");
-// transactionDetailsEntity.setRelationId(wechatEntity.getId().intValue());
transactionDetailsEntity.setRelationId(buy_order_id.getId().intValue());
transactionDetailsEntity.setRemark("充值");
diff --git a/src/main/java/com/peanut/modules/sys/controller/SysLogController.java b/src/main/java/com/peanut/modules/sys/controller/SysLogController.java
index dd2d3c88..9e10903c 100644
--- a/src/main/java/com/peanut/modules/sys/controller/SysLogController.java
+++ b/src/main/java/com/peanut/modules/sys/controller/SysLogController.java
@@ -41,7 +41,6 @@ public class SysLogController {
@RequiresPermissions("sys:log:list")
public R list(@RequestParam Map params){
PageUtils page = sysLogService.queryPage(params);
-
return R.ok().put("page", page);
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 667b4837..9e1db8ce 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -12,7 +12,7 @@ connection-timeout: 6000000ms
spring:
# 环境 dev|test|prod
profiles:
- active: prod
+ active: dev
# jackson时间格式化
jackson:
time-zone: GMT+8
diff --git a/src/main/resources/weChatConfig.properties b/src/main/resources/weChatConfig.properties
new file mode 100644
index 00000000..d4bbd90d
--- /dev/null
+++ b/src/main/resources/weChatConfig.properties
@@ -0,0 +1,50 @@
+wxpay:
+#应用编号
+wxpay.appId: wx47134a8f15083734
+#商户号
+wxpay.mchId: 1612860909
+# APIv3密钥
+wxpay.apiV3Key: 4aYFklzaULeGlr7oJPZ6rHWKcxjihZUF
+# 微信支付V3-url前缀
+wxpay.baseUrl: https://api.mch.weixin.qq.com/v3
+#po9k1ezoyexk.ngrok.xiaomiqiu123.top 内网穿透地址 测试ok 正式环境下切换服务器地址
+#wxpay.notifyUrl: http://101.201.146.165:9100
+
+wxpay.notifyUrl: http://59.110.212.44:9100/pb/pay/payNotify
+
+# 退款通知回调, pjm6m9.natappfree.cc 为内网穿透地址
+wxpay.refundNotifyUrl: http://pjm6m9.natappfree.cc/pay/refundNotify
+# 密钥路径,resources下 /usr/local/hs/peanut_book/target/classes/cent/apiclient_key.pem
+
+wxpay.keyPemPath:C:/Users/Administrator/IdeaProjects/peanut_book/src/main/resources/cent/apiclient_key.pem
+#wxpay.keyPemPath:D:/hs/nuttyreading-java/src/main/resources/cent/apiclient_key.pem
+#商户证书序列号
+wxpay.serialNo: 679AECB2F7AC4183033F713828892BA640E4EEE3
+#微信服务器地址
+wxpay.domain: https://api.mch.weixin.qq.com
+
+
+#wxpay:
+##应用编号
+#wxpay.appId: wx47134a8f15083734
+##商户号
+#wxpay.mchId: 1612860909
+## APIv3密钥
+#wxpay.apiV3Key: 4aYFklzaULeGlr7oJPZ6rHWKcxjihZUF
+## 微信支付V3-url前缀
+#wxpay.baseUrl: https://api.mch.weixin.qq.com/v3
+##po9k1ezoyexk.ngrok.xiaomiqiu123.top 内网穿透地址 测试ok 正式环境下切换服务器地址
+#
+##wxpay.notifyUrl: http://101.201.146.165:9100
+#
+#wxpay.notifyUrl: http://59.110.212.44:9100/pb/pay/payNotify
+#
+## 退款通知回调, pjm6m9.natappfree.cc 为内网穿透地址
+#wxpay.refundNotifyUrl: http://pjm6m9.natappfree.cc/pay/refundNotify
+## 密钥路径,resources下 /usr/local/hs/peanut_book/target/classes/cent/apiclient_key.pem
+#
+#wxpay.keyPemPath:/usr/local/hs/peanut_book/target/classes/cent/apiclient_key.pem
+##商户证书序列号
+#wxpay.serialNo: 679AECB2F7AC4183033F713828892BA640E4EEE3
+##微信服务器地址
+#wxpay.domain: https://api.mch.weixin.qq.com