baolei 6 місяців тому
батько
коміт
5b835780b0

+ 3 - 3
08.src/Xingxi/xingxi-admin/src/main/java/com/xingxi/web/controller/business/ProdInventory/service/impl/ProdInventoryVoServiceImpl.java

@@ -87,8 +87,8 @@ public class ProdInventoryVoServiceImpl extends ProdInventoryServiceImpl impleme
         } else {
             ProdInventory prodInventory = new ProdInventory();
             BeanUtils.copyBeanProp(prodInventory, prodInventoryVo);
-            prodInventory.setQuantity(addInvQty);
-            prodInventory.setAvailQty(addInvQty);
+            prodInventory.setQuantity(addInvQty.intValue());
+            prodInventory.setAvailQty(addInvQty.intValue());
             prodInventory.setDelFlag(EDelFlag.NO.getVal());
             prodInventory.setCreateUser(ShiroUtils.getLoginName());
             prodInventory.setCreateTime(nowDate);
@@ -121,7 +121,7 @@ public class ProdInventoryVoServiceImpl extends ProdInventoryServiceImpl impleme
         prodInventoryBill.setBillTime(nowDate);
         prodInventoryBill.setBillType(EInventoryBillType.STOCKIN.getVal());
         prodInventoryBill.setInventoryId(prodInventoryVo.getProdInventoryId());
-        prodInventoryBill.setQuantity(addInvQty);
+        prodInventoryBill.setQuantity(addInvQty.intValue());
         prodInventoryBill.setDelFlag(EDelFlag.NO.getVal());
         prodInventoryBill.setCreateUser(ShiroUtils.getLoginName());
         prodInventoryBill.setCreateTime(nowDate);

+ 21 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/CartsApiController.java

@@ -10,6 +10,9 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
 
+/**
+ * 购物车相关
+ */
 @Slf4j
 @RequiredArgsConstructor
 @RestController
@@ -18,31 +21,49 @@ public class CartsApiController extends BaseApiController {
 
     private final CartsServiceI cartsService;
 
+    /**
+     * 购物车获取商品列表
+     */
     @GetMapping("/list")
     public CartsListResponse list(CartsRequest request){
         return cartsService.list(getUserContext(), request);
     }
 
+    /**
+     * 购物车增加商品列表
+     */
     @PostMapping("/add")
     public CartsListResponse add(@RequestBody @Valid CartsRequest request){
         return cartsService.add(getUserContext(),  request);
     }
 
+    /**
+     * 购物车选中/取消选中列表
+     */
     @PostMapping("/checked")
     public CartsListResponse checked(@RequestBody @Valid CartsRequest request){
         return cartsService.checked(getUserContext(), request);
     }
 
+    /**
+     * 购物车选中所有列表
+     */
     @PostMapping("/checkedAll")
     public CartsListResponse checkedAll(@RequestBody @Valid CartsRequest request){
         return cartsService.checkedAll(getUserContext(), request);
     }
 
+    /**
+     * 购物车取消选中所有列表
+     */
     @PostMapping("/uncheckedAll")
     public CartsListResponse uncheckedAll(@RequestBody @Valid CartsRequest request){
         return cartsService.uncheckedAll(getUserContext(),  request);
     }
 
+    /**
+     * 购物车删除商品列表
+     */
     @PostMapping("/delete")
     public CartsListResponse delete(@Valid @RequestBody CartsRequest request){
         return cartsService.delete(getUserContext(),  request);

+ 34 - 13
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/HomepageApiController.java

@@ -27,6 +27,9 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.ArrayList;
 import java.util.List;
 
+/**
+ * 首页相关
+ */
 @Slf4j
 @RequiredArgsConstructor
 @RestController
@@ -42,6 +45,9 @@ public class HomepageApiController extends BaseApiController {
     private final IProdPicService prodPicService;
     private final ProdServiceI prodService;
 
+    /**
+     * 获取Banner信息
+     */
     @GetMapping("/banners")
     public BannerResponse getBanners(){
         Banner cond = new Banner();
@@ -50,6 +56,9 @@ public class HomepageApiController extends BaseApiController {
         return new BannerResponse(bannerService.selectBannerList(cond));
     }
 
+    /**
+     * 获取IP信息
+     */
     @GetMapping("/ipInfos")
     public IpInfoResponse getIpInfos(){
 
@@ -59,19 +68,22 @@ public class HomepageApiController extends BaseApiController {
         return new IpInfoResponse(ipInfoService.selectIpInfoList(cond));
     }
 
-    @GetMapping("/titles")
-    public SysConfigResponse getTitles(){
-
-        List<String> rtn = new ArrayList<>();
-
-//        // TODO title的key待确认,数据库中未创建数据
-        rtn.add(prodService.selectConfigByKey("title.left"));
-        rtn.add(prodService.selectConfigByKey("title.middle"));
-        rtn.add(prodService.selectConfigByKey("title.right"));
-
-        return new SysConfigResponse(rtn);
-    }
-
+//    @GetMapping("/titles")
+//    public SysConfigResponse getTitles(){
+//
+//        List<String> rtn = new ArrayList<>();
+//
+////        // TODO title的key待确认,数据库中未创建数据
+//        rtn.add(prodService.selectConfigByKey("title.left"));
+//        rtn.add(prodService.selectConfigByKey("title.middle"));
+//        rtn.add(prodService.selectConfigByKey("title.right"));
+//
+//        return new SysConfigResponse(rtn);
+//    }
+
+    /**
+     * 获取今日热门商品列表
+     */
     @GetMapping("/leftProds")
     public LeftProdListResponse getLeftProds(){
 
@@ -101,6 +113,9 @@ public class HomepageApiController extends BaseApiController {
         return new LeftProdListResponse(prodList);
     }
 
+    /**
+     * 获取新品上架商品列表
+     */
     @GetMapping("/middleProds")
     public MiddleProdListResponse getMiddleProds(){
 
@@ -130,6 +145,9 @@ public class HomepageApiController extends BaseApiController {
         return new MiddleProdListResponse(prodList);
     }
 
+    /**
+     * 获取预售商品列表
+     */
     @GetMapping("/rightProds")
     public RightProdListResponse getRightProds(){
 
@@ -159,6 +177,9 @@ public class HomepageApiController extends BaseApiController {
         return new RightProdListResponse(prodList);
     }
 
+    /**
+     * 获取商品分类列表
+     */
     @GetMapping("/prodClasses")
     public ProdClassResponse getProdClasses(){
 

+ 15 - 1
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/OrderApiController.java

@@ -26,6 +26,9 @@ import java.nio.charset.StandardCharsets;
 import java.util.Date;
 import java.util.HashMap;
 
+/**
+ * 订单相关
+ */
 @Slf4j
 @RequiredArgsConstructor
 @RestController
@@ -42,23 +45,34 @@ public class OrderApiController extends BaseApiController {
     @Autowired
     private ObjectMapper objectMapper;
 
+    /**
+     * 订单列表
+     */
     @PostMapping("/orders")
     public OrderQueryResponse getOrderList(@Valid @RequestBody OrderQueryRequest request) {
 
         return orderServiceI.list(getUserContext(), request);
     }
 
+    /**
+     * 创建订单
+     */
     @PostMapping("/create")
     public OrderCreateResponse create(@Valid @RequestBody OrderCreateRequest request){
         return orderServiceI.create(getUserContext(), request);
     }
 
-
+    /**
+     * 订单详情
+     */
     @GetMapping("/detail")
     public OrderDetailResponse detail(OrderDetailRequest request){
         return orderServiceI.get(getUserContext(), request);
     }
 
+    /**
+     * 支付返回接口(未定)
+     */
     // 微信支付支付通知接口
     @PostMapping("/wxpay/callback")
     public void callback(HttpServletRequest request, HttpServletResponse response) {

+ 6 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/ProdApiController.java

@@ -21,6 +21,9 @@ public class ProdApiController extends BaseApiController {
 
     private final ProdServiceI prodService;
 
+    /**
+     * 获取商品列表(可加条件)
+     */
     @PostMapping("/prods")
     public MercProdListResponse getProdList(@Valid @RequestBody MercProdRequest request) {
 
@@ -29,6 +32,9 @@ public class ProdApiController extends BaseApiController {
         return new MercProdListResponse(prodList);
     }
 
+    /**
+     * 获取商品详情
+     */
     @PostMapping("/prodDetail")
     public MercProdResponse getProdDetail(@Valid @RequestBody MercProdRequest request) {
 

+ 19 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/UserProfileApiController.java

@@ -18,31 +18,50 @@ import javax.validation.Valid;
 public class UserProfileApiController extends BaseApiController {
     private final UserProfileServiceI userProfileServiceI;
 
+    /**
+     * 获取用户信息
+     */
     @GetMapping("/user-profile")
     public UserProfileResponse userProfile(UserProfileRequest request) {
         return userProfileServiceI.getUserProfile(getUserContext(), request);
     }
 
+    /**
+     * 更新用户信息
+     */
     @PostMapping("/user-profile")
     public UserProfileUpdateResponse userProfileUpdate(@Valid @RequestBody UserProfileUpdateRequest request) {
         return userProfileServiceI.updateUserProfile(getUserContext(), request);
     }
 
+    /**
+     * 更新用户头像
+     */
     @PostMapping("/user-profile/upload-avatar")
     public UserProfileUpdateResponse saveAvatar(@RequestBody UserProfileUpdateRequest request) {
         return userProfileServiceI.updateUserAvatar(getUserContext(), request);
     }
 
+    /**
+     * 更新用户昵称信息
+     */
     @PostMapping("/user-profile/upload-nickname")
     public UserProfileUpdateResponse saveNickName(@RequestBody UserProfileUpdateRequest request) {
         return userProfileServiceI.updateUserNickName(getUserContext(), request);
     }
 
+    /**
+     * 获取用户地址信息
+     */
+
     @PostMapping("/user-profile/address-list")
     public UserAddressListResponse getAddressList(@RequestBody UserAddressRequest request) {
         return userProfileServiceI.getUserAddressList(getUserContext(), request);
     }
 
+    /**
+     * 保存用户地址信息
+     */
     @PostMapping("/user-profile/save-address")
     public UserAddressListResponse saveAddress(@RequestBody UserAddressRequest request) {
         return userProfileServiceI.getUserAddressList(getUserContext(), request);

+ 3 - 0
08.src/Xingxi/xingxi-miniprogram-api/src/main/java/com/xingxi/api/controller/WxLogoutApiController.java

@@ -18,6 +18,9 @@ import org.springframework.web.bind.annotation.RestController;
 public class WxLogoutApiController extends BaseApiController {
     private final WxmaUserServiceI wxmaUserServiceI;
 
+    /**
+     * 用户登出信息
+     */
     @PostMapping
     public WxLogoutResponse logout(WxLogoutRequest request){
         wxmaUserServiceI.userExit(getUserContext(), request);

+ 46 - 12
08.src/Xingxi/xingxi-mq-server/src/main/java/com/xingxi/mq/consumer/order/OrderCloseConsumer.java

@@ -1,6 +1,12 @@
 package com.xingxi.mq.consumer.order;
 
 import com.alibaba.fastjson.JSON;
+import com.github.binarywang.wxpay.bean.request.WxPayOrderQueryV3Request;
+import com.github.binarywang.wxpay.bean.request.WxPayRefundV3Request;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderV3Request;
+import com.github.binarywang.wxpay.bean.result.WxPayOrderQueryV3Result;
+import com.github.binarywang.wxpay.bean.result.WxPayRefundV3Result;
+import com.github.binarywang.wxpay.config.WxPayConfig;
 import com.github.binarywang.wxpay.service.WxPayService;
 import com.xingxi.business.Order.domain.Order;
 import com.xingxi.business.Order.domain.OrderDetail;
@@ -13,6 +19,7 @@ import com.xingxi.business.ProdInventory.mapper.ProdInventoryMapper;
 import com.xingxi.common.enums.EDelFlag;
 import com.xingxi.common.enums.EOrderDetailStatus;
 import com.xingxi.common.enums.EOrderStatus;
+import com.xingxi.common.enums.ETradeState;
 import com.xingxi.common.mq.bo.order.OrderBO;
 import com.xingxi.common.mq.constant.OrderMqKey;
 import com.xingxi.common.mq.core.AbstractRabbitConsumer;
@@ -52,6 +59,7 @@ public class OrderCloseConsumer extends AbstractRabbitConsumer {
 
     @Autowired
     private WxPayService wxPayService;
+    private WxPayConfig config;
 
     @Bean(OrderMqKey.EDIT_QUEUE_DELAY_FOR_UNPAID)
     @Override
@@ -99,18 +107,41 @@ public class OrderCloseConsumer extends AbstractRabbitConsumer {
         spi.setDelFlag(EDelFlag.NO.getVal());
 
         List<PaymentInfo> paymentInfoList = paymentInfoService.selectPaymentInfoList(spi);
-
+        PaymentInfo pi = null;
         if(CollectionUtils.isNotEmpty(paymentInfoList)){
-            PaymentInfo pi = paymentInfoList.get(0);
-            if(pi != null) {
-                // 查询是否支付成功 TODO
+//            config = wxPayService.getConfig();
+
+            pi = paymentInfoList.get(0);
+            // 查询是否支付成功 TODO
+            WxPayOrderQueryV3Request wxQryRequest = new WxPayOrderQueryV3Request();
+            wxQryRequest.setOutTradeNo(orgOrder.getOrderNo());
+//            wxrequest.setMchid(config.getMchId());
+
+            WxPayOrderQueryV3Result rtn = wxPayService.queryOrderV3(wxQryRequest);
 
+            if (ETradeState.SUCCESS.getVal().equals(rtn.getTradeState())) {
 
                 // 如果支付成功并且微信支付没有回调成功就在这里退款 TODO
+                WxPayRefundV3Request wxRefundRequest = new WxPayRefundV3Request();
+                wxRefundRequest.setOutTradeNo(orgOrder.getOrderNo());
+                wxRefundRequest.setOutRefundNo("REFUND" + orgOrder.getOrderNo());
+                wxRefundRequest.setReason(orderBO.getOrderNo() + "退款");
+
+                WxPayRefundV3Request.Amount refundAmount = new WxPayRefundV3Request.Amount();
+                refundAmount.setRefund(orgOrder.getPayAmount().intValue()); // 分
+                refundAmount.setTotal(orgOrder.getPayAmount().intValue()); // 分
+                refundAmount.setCurrency("CNY");
+
+                wxRefundRequest.setAmount(refundAmount);
+                WxPayRefundV3Result refundV3Result = wxPayService.refundV3(wxRefundRequest);
+
+                // TODO 增加退款表,保存退款信息
 
 
-                return true;
             }
+
+
+            return true;
         }
 
         // 取消主订单
@@ -154,13 +185,16 @@ public class OrderCloseConsumer extends AbstractRabbitConsumer {
 //            prodInventoryMapper.
         }
 
-//        // 关闭支付信息
-//        PaymentInfo upi = new PaymentInfo();
-//        upi.setOrderId(orgOrder.getOrderId());
-//        upi.setTradeState(EOrderStatus.CANCELLED.getVal());
-//        upi.setUpdateUser(opName);
-//        upi.setUpdateTime(nowDate);
-//        paymentInfoService.updateOrderStatusByOrderId(upi);
+        // 关闭支付信息
+        if (pi != null) {
+            PaymentInfo upi = new PaymentInfo();
+            upi.setPayId(pi.getPayId());
+            upi.setOrderId(orgOrder.getOrderId());
+            upi.setTradeState(EOrderStatus.CANCELLED.getVal());
+            upi.setUpdateUser(opName);
+            upi.setUpdateTime(nowDate);
+            paymentInfoService.updatePaymentInfo(upi);
+        }
 
         log.info("订单关闭MQ,订单【{}】数据处理完成.", orgOrder.getOrderNo());
         return true;