From 156e141e55a8abf486157d1fa89d25e23f4a06a3 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期五, 25 八月 2023 19:32:30 +0800
Subject: [PATCH] bug

---
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java |  127 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 110 insertions(+), 17 deletions(-)

diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
index 9d0e97a..b6a88f8 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/miniapp/AppOrderController.java
@@ -1,23 +1,33 @@
 package com.ruoyi.order.controller.miniapp;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.binarywang.wxpay.bean.ecommerce.PartnerTransactionsResult;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.redis.service.RedisService;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.order.domain.dto.*;
+import com.ruoyi.order.domain.pojo.order.Order;
 import com.ruoyi.order.domain.vo.*;
 import com.ruoyi.order.service.order.OrderService;
-import com.ruoyi.system.api.RemoteMemberService;
+import com.ruoyi.system.api.constant.DelayTaskEnum;
+import com.ruoyi.system.api.constant.SecurityConstant;
 import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
+import com.ruoyi.system.api.domain.dto.AppMemberBindingDto;
 import com.ruoyi.system.api.domain.poji.member.Member;
+import com.ruoyi.system.api.model.LoginUser;
+import com.ruoyi.system.api.service.RemoteConfigService;
+import com.ruoyi.system.api.service.RemoteMemberService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 /**
@@ -32,21 +42,27 @@
 @RequestMapping("/app/order")
 public class AppOrderController extends BaseController {
 
-    @Autowired
+    @Resource
     private RemoteMemberService memberService;
 
-    @Autowired
+    @Resource
     private OrderService orderService;
+
+    @Resource
+    private RedisService redisService;
+
+    @Resource
+    private RemoteConfigService remoteConfigService;
 
 
     @RequestMapping(value = "/buyGoods", method = RequestMethod.POST)
     @ApiOperation(value = "购买商品")
     public R<AppSureOrderVo> buyGoods(@RequestBody AppSureOrderDto appSureOrderDto) {
         Long userId = SecurityUtils.getUserId();
-        if(userId!=null){
+        if (userId != null) {
             Member member = memberService.getMember(userId).getData();
             appSureOrderDto.setUserId(userId);
-            if(member!=null&&member.getRelationShopId()!=null){
+            if (member != null && member.getRelationShopId() != null) {
                 appSureOrderDto.setShopId(member.getRelationShopId());
             }
         }
@@ -54,18 +70,78 @@
         return R.ok(appSureOrderVo);
     }
 
+
+    @RequestMapping(value = "/panicBuyGoods", method = RequestMethod.POST)
+    @ApiOperation(value = "抢购商品")
+    public R<AppPanicBuyVo> panicBuyGoods(@RequestBody AppPanicBuyDto appPanicBuyDto) {
+        Long userId = SecurityUtils.getUserId();
+        if (userId != null) {
+            Member member = memberService.getMember(userId).getData();
+            appPanicBuyDto.setUserId(userId);
+            if (member != null && member.getRelationShopId() != null) {
+                appPanicBuyDto.setShopId(member.getRelationShopId());
+            }
+        }
+        AppPanicBuyVo panicBuyGoods = orderService.panicBuyGoods(appPanicBuyDto);
+        return R.ok(panicBuyGoods);
+    }
+
     @RequestMapping(value = "/placeOrder", method = RequestMethod.POST)
     @ApiOperation(value = "创建订单")
     public R<AppPlaceOrderVo> placeOrder(@RequestBody AppPlaceOrderDto appPlaceOrderDto) {
-        Long userId = SecurityUtils.getUserId();
-        if(userId!=null){
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        Long userId = loginUser.getUserid();
+        appPlaceOrderDto.setUserId(userId);
+        appPlaceOrderDto.setSpbillCreateIp(loginUser.getIpaddr());
+
+        if (userId != null) {
             Member member = memberService.getMember(userId).getData();
             appPlaceOrderDto.setUserId(userId);
-            if(member!=null&&member.getRelationShopId()!=null){
+
+            if (member != null) {
+                appPlaceOrderDto.setOpenid(member.getMiniOpenid());
                 appPlaceOrderDto.setShopId(member.getRelationShopId());
+                if (member.getBindingFlag() != 1) {
+                    //绑定商户
+                    AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
+                    appMemberBindingDto.setShopId(appPlaceOrderDto.getShopId());
+                    appMemberBindingDto.setUserId(userId);
+                    appMemberBindingDto.setBindingFlag(1);
+                    appMemberBindingDto.setBindingType(1);
+                    memberService.updateMemberBinding(appMemberBindingDto);
+                    appPlaceOrderDto.setNewMemberFlag(1);
+                }
             }
         }
         AppPlaceOrderVo appPlaceOrderVo = orderService.placeOrder(appPlaceOrderDto);
+        return R.ok(appPlaceOrderVo);
+    }
+
+    @RequestMapping(value = "/placeActivityOrder", method = RequestMethod.POST)
+    @ApiOperation(value = "创建活动订单")
+    public R<AppPlaceOrderVo> placeActivityOrder(@Validated @RequestBody AppPlaceActivityDto appPlaceActivityDto) {
+        LoginUser loginUser = SecurityUtils.getLoginUser();
+        Long userId = loginUser.getUserid();
+        appPlaceActivityDto.setSpbillCreateIp(loginUser.getIpaddr());
+        if (userId != null) {
+            Member member = memberService.getMember(userId).getData();
+            appPlaceActivityDto.setUserId(userId);
+            if (member != null && member.getRelationShopId() != null) {
+                appPlaceActivityDto.setOpenid(member.getMiniOpenid());
+                appPlaceActivityDto.setShopId(member.getRelationShopId());
+            }
+            if (member.getBindingFlag() != 1) {
+                //绑定商户
+                AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
+                appMemberBindingDto.setShopId(appPlaceActivityDto.getShopId());
+                appMemberBindingDto.setUserId(userId);
+                appMemberBindingDto.setBindingFlag(1);
+                appMemberBindingDto.setBindingType(2);
+                memberService.updateMemberBinding(appMemberBindingDto);
+                appPlaceActivityDto.setNewMemberFlag(1);
+            }
+        }
+        AppPlaceOrderVo appPlaceOrderVo = orderService.placeActivityOrder(appPlaceActivityDto);
         return R.ok(appPlaceOrderVo);
     }
 
@@ -73,17 +149,18 @@
     @ApiOperation(value = "分页获取用户订单")
     public R<Page<AppUserOrderPageVo>> pageUserOrder(@RequestBody AppUserOrderPageDto appUserOrderPageDto) {
         Long userId = SecurityUtils.getUserId();
-        if(userId!=null){
+        if (userId != null) {
             Member member = memberService.getMember(userId).getData();
             appUserOrderPageDto.setUserId(userId);
-            if(member!=null&&member.getRelationShopId()!=null){
+            if (member != null && member.getRelationShopId() != null) {
                 appUserOrderPageDto.setShopId(member.getRelationShopId());
             }
         }
+        logger.info("appUserOrderPageDto:" + appUserOrderPageDto.toString());
         Page<AppUserOrderPageVo> page = new Page<>();
         page.setSize(appUserOrderPageDto.getPageSize());
         page.setCurrent(appUserOrderPageDto.getPageNum());
-        List<AppUserOrderPageVo> appUserOrderPageVoList = orderService.pageUserOrder(page,appUserOrderPageDto);
+        List<AppUserOrderPageVo> appUserOrderPageVoList = orderService.pageUserOrder(page, appUserOrderPageDto);
         return R.ok(page.setRecords(appUserOrderPageVoList));
     }
 
@@ -92,17 +169,17 @@
     public R<AppUserOrderGetVo> getAppOrderDetail(@RequestBody AppBaseGetDto appBaseGetDto) {
         Long userId = SecurityUtils.getUserId();
         Long shopId = null;
-        if(userId!=null){
+        if (userId != null) {
             Member member = memberService.getMember(userId).getData();
             appBaseGetDto.setUserId(userId);
-            if(member!=null&&member.getRelationShopId()!=null){
+            if (member != null && member.getRelationShopId() != null) {
                 shopId = member.getRelationShopId();
             }
         }
         AppUserOrderGetVo appUserOrderGetVo = orderService.getAppOrderDetail(appBaseGetDto);
-        if(shopId!=null&&appUserOrderGetVo.getShopId().equals(shopId)){
+        if (shopId != null && appUserOrderGetVo.getShopId().equals(shopId)) {
             appUserOrderGetVo.setSameShop(1);
-        }else{
+        } else {
             appUserOrderGetVo.setSameShop(0);
         }
         return R.ok(appUserOrderGetVo);
@@ -112,7 +189,23 @@
     @ApiOperation(value = "支付订单(临时)")
     public R<AppPlaceOrderVo> placeOrder(@RequestBody AppBaseGetDto appBaseGetDto) {
         Long userId = SecurityUtils.getUserId();
-        AppPlaceOrderVo appPlaceOrderVo = null;
+        AppPlaceOrderVo appPlaceOrderVo = new AppPlaceOrderVo();
+        Order order = orderService.getById(appBaseGetDto.getId());
+        PartnerTransactionsResult transaction = new PartnerTransactionsResult();
+        transaction.setOutTradeNo(appBaseGetDto.getId());
+        orderService.payBack(transaction);
+        appPlaceOrderVo.setOrderId(order.getOrderId());
+        appPlaceOrderVo.setOrderNo(order.getOrderNo());
+        appPlaceOrderVo.setPayType(order.getPayType());
+        appPlaceOrderVo.setPayMoney(order.getPayMoney());
+        appPlaceOrderVo.setUnpaidMoney(order.getPayMoney());
+        Integer delayTime = 30;
+        if (redisService.hasKey(SecurityConstant.AUTO_CANCEL_ORDER_TIME)) {
+            delayTime = redisService.getCacheObject(SecurityConstant.AUTO_CANCEL_ORDER_TIME);
+        }
+        redisService.deleteObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
+        remoteConfigService.deleteDelayTask(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getOrderId());
+        appPlaceOrderVo.setEndTime(DateUtils.addMinutes(order.getCreateTime(), delayTime));
         return R.ok(appPlaceOrderVo);
     }
 

--
Gitblit v1.7.1