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 | 97 +++++++++++++++++++++++++++++++++--------------- 1 files changed, 67 insertions(+), 30 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 9f38a7e..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,19 +1,27 @@ 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.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.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -40,15 +48,21 @@ @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()); } } @@ -61,10 +75,10 @@ @ApiOperation(value = "抢购商品") public R<AppPanicBuyVo> panicBuyGoods(@RequestBody AppPanicBuyDto appPanicBuyDto) { Long userId = SecurityUtils.getUserId(); - if(userId!=null){ + if (userId != null) { Member member = memberService.getMember(userId).getData(); appPanicBuyDto.setUserId(userId); - if(member!=null&&member.getRelationShopId()!=null){ + if (member != null && member.getRelationShopId() != null) { appPanicBuyDto.setShopId(member.getRelationShopId()); } } @@ -75,20 +89,28 @@ @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); - memberService.updateMemberBinding(appMemberBindingDto); + 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); @@ -97,21 +119,26 @@ @RequestMapping(value = "/placeActivityOrder", method = RequestMethod.POST) @ApiOperation(value = "创建活动订单") - public R<AppPlaceOrderVo> placeActivityOrder(@RequestBody AppPlaceActivityDto appPlaceActivityDto) { - Long userId = SecurityUtils.getUserId(); - if(userId!=null){ + 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){ + if (member != null && member.getRelationShopId() != null) { + appPlaceActivityDto.setOpenid(member.getMiniOpenid()); appPlaceActivityDto.setShopId(member.getRelationShopId()); } - if(member.getBindingFlag()!=1){ + 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); @@ -122,18 +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()); + 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)); } @@ -142,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); @@ -164,11 +191,21 @@ Long userId = SecurityUtils.getUserId(); 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.getReceivableMoney().subtract(order.getPayMoney())); - orderService.payBack(order.getOrderId()); + 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