Pu Zhibing
2024-09-26 35601b1455ec05ece1414bd288fa38944c03bfdd
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TShoppingOrderController.java
@@ -1,4 +1,5 @@
package com.ruoyi.order.controller;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@@ -41,7 +42,7 @@
/**
 * <p>
 *  前端控制器
 * 前端控制器
 * </p>
 *
 * @author xiaochen
@@ -60,14 +61,24 @@
   private GoodsClient goodsClient;
   @Resource
   private CouponClient couponClient;
   @Resource
   private TokenService tokenService;
   @Resource
   private AliPaymentClient aliPaymentClient;
   @Resource
   private WxPaymentClient wxPaymentClient;
   @Resource
   private AppCouponClient appCouponClient;
   @Resource
   private SysUserClient sysUserClient;
   @PostMapping("/getShoppingOrderList")
   @ApiOperation(value = "列表查询", tags = {"管理后台-购物订单"})
   public AjaxResult<PageInfo<TShoppingOrder>> getShoppingOrderList(@RequestBody ShoppingOrderQuery query) {
      if (StringUtils.hasLength(query.getPhone())) {
         List<Long> data = appUserClient.getUserIdsByPhone(query.getPhone()).getData();
         if (data.isEmpty()){
         if (data.isEmpty()) {
            return AjaxResult.success(new PageInfo<TShoppingOrder>());
         }
         query.setUserIds(data);
@@ -77,54 +88,47 @@
         query.setGoodsIds(data);
         List<Integer> data1 = couponClient.getCouponIdsByName(query.getName()).getData();
         query.setCouponIds(data1);
         if (data.isEmpty() && data1.isEmpty()){
         if (data.isEmpty() && data1.isEmpty()) {
            return AjaxResult.success(new PageInfo<TShoppingOrder>());
         }
      }
      PageInfo<TShoppingOrder> res = shoppingOrderService.pageList(query);
      return AjaxResult.success(res);
   }
   @Resource
   private SysUserClient sysUserClient;
   @GetMapping("/getShoppingOrderInfoById")
   @ApiOperation(value = "根据订单id查看订单详情", tags = {"管理后台-购物订单"})
   public AjaxResult<TShoppingOrder> getShoppingOrderList(String id) {
      TShoppingOrder byId = shoppingOrderService.getById(id);
      if (byId.getConsignerId()!=null){
      if (byId.getConsignerId() != null) {
         SysUser data = sysUserClient.getSysUser(byId.getConsignerId()).getData();
         if (data!=null){
         if (data != null) {
            byId.setConsignerName(data.getUserName());
         }
      }
      if (byId.getCancellationId()!=null){
      if (byId.getCancellationId() != null) {
         SysUser data = sysUserClient.getSysUser(byId.getCancellationId()).getData();
         if (data!=null){
         if (data != null) {
            byId.setCancellationName(data.getUserName());
         }
      }
      if (byId.getAppUserAddressId()!=null){
      if (byId.getAppUserAddressId() != null) {
         TAppUserAddress data = appUserClient.getAddressById(byId.getAppUserAddressId()).getData();
         if (data!=null){
            byId.setReceivingName(data.getName()+"-"+data.getPhone());
         if (data != null) {
            byId.setReceivingName(data.getName() + "-" + data.getPhone());
            byId.setReceivingAddress(data.getAddress());
         }
      }
      return AjaxResult.success(byId);
   }
   @GetMapping("/deleteShoppingOrder")
   @ApiOperation(value = "批量删除订单", tags = {"管理后台-购物订单"})
   public AjaxResult<TShoppingOrder> deleteShoppingOrder(String ids) {
      shoppingOrderService.removeBatchByIds(Arrays.asList(ids.split(",")));
      return AjaxResult.success();
   }
   @Resource
   private TokenService tokenService;
   @Resource
   private AliPaymentClient aliPaymentClient;
   @Resource
   private WxPaymentClient wxPaymentClient;
   @Resource
   private AppCouponClient appCouponClient;
   @GetMapping("/cancelShoppingOrder")
   @ApiOperation(value = "取消订单", tags = {"管理后台-购物订单"})
   public AjaxResult cancelShoppingOrder(String id) {
@@ -134,7 +138,7 @@
      byId.setCancellationId(userid);
      byId.setCancellationTime(LocalDateTime.now());
      byId.setStatus(4);
      switch (byId.getPaymentType()){
      switch (byId.getPaymentType()) {
         case 1:
            // 微信
            WxPaymentRefundModel wxPaymentRefundModel = new WxPaymentRefundModel();
@@ -144,8 +148,8 @@
            // todo 部署到线上之后写回调地址
//            wxPaymentRefundModel.setNotify_url("");
            String string = byId.getPaymentAmount().multiply(new BigDecimal("100")).toString();
            if (string.contains(".")){
               string = string.substring(0,string.indexOf("."));
            if (string.contains(".")) {
               string = string.substring(0, string.indexOf("."));
            }
            int i = Integer.parseInt(string);
            WxPaymentRefundModel.RefundAmount refundAmount = new WxPaymentRefundModel.RefundAmount();
@@ -163,10 +167,10 @@
            refundReq.setRefundAmount(byId.getPaymentAmount().toString());
            refundReq.setRefundReason("后台退款");
            RefundResp data = aliPaymentClient.refund(refundReq).getData();
            if (data!=null){
            if (data != null) {
               // 退款成功 回退优惠券
//               byId.setStatus(4);
               if (byId.getAppCouponId()!=null){
               if (byId.getAppCouponId() != null) {
                  appCouponClient.refund(byId.getAppCouponId().toString());
                  byId.setRefundCode(gw);
                  byId.setRefundAmount(byId.getPaymentAmount());
@@ -179,9 +183,10 @@
      shoppingOrderService.updateById(byId);
      return AjaxResult.success();
   }
   @GetMapping("/consignerShoppingOrder")
   @ApiOperation(value = "发货", tags = {"管理后台-购物订单"})
   public AjaxResult consignerShoppingOrder(String id,String companyName,String code) {
   public AjaxResult consignerShoppingOrder(String id, String companyName, String code) {
      TShoppingOrder byId = shoppingOrderService.getById(id);
      byId.setExpressCompany(companyName);
      byId.setExpressNumber(code);
@@ -192,16 +197,17 @@
      shoppingOrderService.updateById(byId);
      return AjaxResult.success();
   }
   @GetMapping("/getMyShoppingOrderList")
   @ApiOperation(value = "获取购买订单列表", tags = {"小程序-商城购买订单"})
   public AjaxResult<Map<String, Object>> getMyShoppingOrderList(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(){
   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));
@@ -215,29 +221,27 @@
      map.put("ywc", ywc);
      return AjaxResult.success(map);
   }
   
   
   @GetMapping("/getMyShoppingOrderInfo/{id}")
   @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单","管理后台-支付订单-订单信息"})
   public AjaxResult<MyShoppingOrderInfo> getMyShoppingOrderInfo(@PathVariable String id){
   @ApiOperation(value = "获取购买订单详情", tags = {"小程序-商城购买订单", "管理后台-支付订单-订单信息"})
   public AjaxResult<MyShoppingOrderInfo> getMyShoppingOrderInfo(@PathVariable String id) {
      MyShoppingOrderInfo info = shoppingOrderService.getMyShoppingOrderInfo(id);
      return AjaxResult.success(info);
   }
   
   
   @PutMapping("/confirmReceipt/{id}")
   @ApiOperation(value = "确认收货操作", tags = {"小程序-商城购买订单"})
   public AjaxResult confirmReceipt(@PathVariable String id){
   public AjaxResult confirmReceipt(@PathVariable String id) {
      TShoppingOrder shoppingOrder = shoppingOrderService.getById(id);
      if(shoppingOrder.getStatus() == 3){
      if (shoppingOrder.getStatus() == 3) {
         return AjaxResult.error("不能重复确认收货");
      }
      if(shoppingOrder.getStatus() == 1){
      if (shoppingOrder.getStatus() == 1) {
         return AjaxResult.error("订单还未发货呢");
      }
      if(shoppingOrder.getStatus() == 4){
      if (shoppingOrder.getStatus() == 4) {
         return AjaxResult.error("订单已取消,不允许操作。");
      }
      shoppingOrder.setStatus(3);
@@ -248,7 +252,7 @@
   
   @PutMapping("/cancelOrder/{id}")
   @ApiOperation(value = "取消订单操作", tags = {"小程序-商城购买订单"})
   public AjaxResult cancelOrder(@PathVariable String id){
   public AjaxResult cancelOrder(@PathVariable String id) {
      return shoppingOrderService.cancelOrder(id);
   }
   
@@ -256,9 +260,9 @@
    * 商城订单取消微信退款回调
    */
   @PostMapping("/cancelShoppingOrderWxRefund")
   public void cancelShoppingOrderWxRefund(HttpServletRequest request){
   public void cancelShoppingOrderWxRefund(HttpServletRequest request) {
      WxRefundNotifyResp data = wxPaymentClient.refundNotify(request).getData();
      if(null != data){
      if (null != data) {
         String out_refund_no = data.getOut_refund_no();
         String refund_id = data.getRefund_id();
         String tradeState = data.getTradeState();
@@ -268,31 +272,30 @@
   }
   
   
   @ResponseBody
   @GetMapping(value = "/getNoInvoicedOrder")
   @ApiOperation(value = "获取未开票的订单数据", tags = {"小程序-充电发票"})
   public AjaxResult<List<MyShoppingOrderList>> getNoInvoicedOrder(GetNoInvoicedOrder query){
   public AjaxResult<List<MyShoppingOrderList>> getNoInvoicedOrder(GetNoInvoicedOrder query) {
      List<MyShoppingOrderList> list = shoppingOrderService.getNoInvoicedOrder(query);
      return AjaxResult.success(list);
   }
   @PostMapping("/create")
   public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto){
   public R<TShoppingOrder> shopCreate(@RequestBody ExchangeDto exchangeDto) {
      TShoppingOrder shoppingOrder = new TShoppingOrder();
      shoppingOrder.setTitle(exchangeDto.getTitle());
      shoppingOrder.setCode(OrderCodeUtil.getOrderCode("GW"));
      shoppingOrder.setAppUserId(exchangeDto.getUserId());
      shoppingOrder.setOrderType(exchangeDto.getGoodType());
      if (exchangeDto.getGoodType()==1) {
      if (exchangeDto.getGoodType() == 1) {
         shoppingOrder.setGoodsId(exchangeDto.getGoodId());
      }else {
      } else {
         shoppingOrder.setCouponId(exchangeDto.getGoodId());
      }
      shoppingOrder.setPurchaseQuantity(exchangeDto.getNum());
      shoppingOrder.setAppUserAddressId(exchangeDto.getAddressId());
      shoppingOrder.setOrderAmount(exchangeDto.getOrderPrice());
      if (exchangeDto.getCouponId()!=null) {
      if (exchangeDto.getCouponId() != null) {
         shoppingOrder.setAppCouponId(exchangeDto.getCouponId());
      }
      shoppingOrder.setCouponDiscountAmount(exchangeDto.getDiscountPrice());
@@ -307,16 +310,16 @@
      shoppingOrder.setCreateTime(LocalDateTime.now());
      shoppingOrder.setDelFlag(false);
      shoppingOrderService.save(shoppingOrder);
      return R.ok(shoppingOrder);
   }
   @PostMapping("/callBack")
   public R callBack(@RequestParam("code")String code,@RequestParam("outTradeNo")String outTradeNo){
      shoppingOrderService.callBack(code,outTradeNo);
   public R callBack(@RequestParam("code") String code, @RequestParam("outTradeNo") String outTradeNo) {
      shoppingOrderService.callBack(code, outTradeNo);
      return R.ok();
   }
}