puzhibing
2024-09-10 951cd384e7b81eb7686e303f77992340cc91e6d1
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -3,6 +3,8 @@
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ruoyi.account.api.feignClient.AppCouponClient;
import com.ruoyi.account.api.feignClient.AppUserClient;
import com.ruoyi.account.api.model.TAppUserAddress;
@@ -24,6 +26,7 @@
import com.ruoyi.payment.api.model.RefundReq;
import com.ruoyi.payment.api.model.RefundResp;
import com.ruoyi.payment.api.model.WxPaymentRefundModel;
import com.ruoyi.payment.api.vo.WxRefundNotifyResp;
import com.ruoyi.system.api.domain.SysUser;
import com.ruoyi.system.api.feignClient.SysUserClient;
import io.swagger.annotations.Api;
@@ -33,9 +36,8 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
/**
 * <p>
@@ -84,7 +86,7 @@
   }
   @Resource
   private SysUserClient sysUserClient;
   @PostMapping("/getShoppingOrderInfoById")
   @GetMapping("/getShoppingOrderInfoById")
   @ApiOperation(value = "根据订单id查看订单详情", tags = {"管理后台-购物订单"})
   public AjaxResult<TShoppingOrder> getShoppingOrderList(String id) {
      TShoppingOrder byId = shoppingOrderService.getById(id);
@@ -142,6 +144,9 @@
            // todo 部署到线上之后写回调地址
//            wxPaymentRefundModel.setNotify_url("");
            String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString();
            if (string.contains(".")){
               string = string.substring(0,string.indexOf("."));
            }
            int i = Integer.parseInt(string);
            WxPaymentRefundModel.RefundAmount refundAmount = new WxPaymentRefundModel.RefundAmount();
            refundAmount.setTotal(i);
@@ -176,8 +181,10 @@
   }
   @GetMapping("/consignerShoppingOrder")
   @ApiOperation(value = "发货", tags = {"管理后台-购物订单"})
   public AjaxResult consignerShoppingOrder(String id) {
   public AjaxResult consignerShoppingOrder(String id,String companyName,String code) {
      TShoppingOrder byId = shoppingOrderService.getById(id);
      byId.setExpressCompany(companyName);
      byId.setExpressNumber(code);
      Long userid = tokenService.getLoginUser().getUserid();
      byId.setConsignerId(userid);
      byId.setConsignerTime(LocalDateTime.now());
@@ -187,15 +194,32 @@
   }
   @GetMapping("/getMyShoppingOrderList")
   @ApiOperation(value = "获取购买订单列表", tags = {"小程序-商城购买订单"})
   public AjaxResult<List<MyShoppingOrderList>> getMyShoppingOrderList(GetMyShoppingOrderList query){
      List<MyShoppingOrderList> list = shoppingOrderService.getMyShoppingOrderList(query);
   public AjaxResult<Map<String, Object>> getMyShoppingOrderList(GetMyShoppingOrderList query){
      Map<String, Object> list = shoppingOrderService.getMyShoppingOrderList(query);
      return AjaxResult.success(list);
   }
   @GetMapping("/getMyShoppingOrderListNum")
   @ApiOperation(value = "获取购买订单列表数量", tags = {"小程序-商城购买订单"})
   public AjaxResult<Map<String, Object>> getMyShoppingOrderListNum(){
      Long userId = tokenService.getLoginUserApplet().getUserId();
      long dfh = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
            .eq(TShoppingOrder::getStatus, 1).eq(TShoppingOrder::getAppUserId, userId));
      long dsh = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
            .eq(TShoppingOrder::getStatus, 2).eq(TShoppingOrder::getAppUserId, userId));
      long ywc = shoppingOrderService.count(new LambdaQueryWrapper<TShoppingOrder>().eq(TShoppingOrder::getDelFlag, 0)
            .eq(TShoppingOrder::getStatus, 3).eq(TShoppingOrder::getAppUserId, userId));
      Map<String, Object> map = new HashMap<>();
      map.put("dfh", dfh);
      map.put("dsh", dsh);
      map.put("ywc", ywc);
      return AjaxResult.success(map);
   }
   
   
   @GetMapping("/getMyShoppingOrderInfo/{id}")
   @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单"})
   @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单","管理后台-支付订单-订单信息"})
   public AjaxResult<MyShoppingOrderInfo> getMyShoppingOrderInfo(@PathVariable String id){
      MyShoppingOrderInfo info = shoppingOrderService.getMyShoppingOrderInfo(id);
      return AjaxResult.success(info);
@@ -228,6 +252,21 @@
      return shoppingOrderService.cancelOrder(id);
   }
   
   /**
    * 商城订单取消微信退款回调
    */
   @PostMapping("/cancelShoppingOrderWxRefund")
   public void cancelShoppingOrderWxRefund(HttpServletRequest request){
      WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData();
      if(null != data){
         String out_refund_no = data.getOut_refund_no();
         String refund_id = data.getRefund_id();
         String tradeState = data.getTradeState();
         String success_time = data.getSuccess_time();
         shoppingOrderService.cancelShoppingOrderWxRefund(out_refund_no, refund_id, tradeState, success_time);
      }
   }
   
   
   @ResponseBody
@@ -250,7 +289,7 @@
         shoppingOrder.setCouponId(exchangeDto.getGoodId());
      }
      shoppingOrder.setPurchaseQuantity(exchangeDto.getNum());
      shoppingOrder.setAppUserAddressId(Long.valueOf(exchangeDto.getAddressId()));
      shoppingOrder.setAppUserAddressId(exchangeDto.getAddressId());
      shoppingOrder.setOrderAmount(exchangeDto.getOrderPrice());
      if (exchangeDto.getCouponId()!=null) {
         shoppingOrder.setAppCouponId(exchangeDto.getCouponId());