浏览代码

Merge branch 'dev' into 'mp-server-test'

收货地址

See merge request quanshu/mp-server!20
zhong chunping 3 年之前
父节点
当前提交
23f31b52c6

+ 8 - 8
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelAddrController.java

@@ -31,7 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 @RestController
-@RequestMapping("/api/v1/mp/channel")
+@RequestMapping("/api/v1/mp/channel/mall")
 @Api(tags = "地址接口")
 @AllArgsConstructor
 public class ChannelAddrController {
@@ -46,7 +46,7 @@ public class ChannelAddrController {
   /**
    * 选择订单配送地址
    */
-  @PostMapping("/address/list")
+  @PostMapping("/addr/list")
   @ApiOperation(value = "渠道地址列表" , notes = "获取渠道的所有地址信息")
   public AjaxResult list(@RequestBody AddrParam addrParam) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
@@ -56,7 +56,7 @@ public class ChannelAddrController {
     return AjaxResult.success(channelAddrs);
   }
 
-  @PostMapping("/address/create")
+  @PostMapping("/addr/create")
   @ApiOperation(value = "新增用户地址" , notes = "新增用户地址")
   public AjaxResult create(@Valid @RequestBody AddrParam addrParam) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
@@ -85,7 +85,7 @@ public class ChannelAddrController {
   /**
    * 修改订单配送地址
    */
-  @PostMapping("/address/update")
+  @PostMapping("/addr/update")
   @ApiOperation(value = "修改订单用户地址" , notes = "修改用户地址")
   public AjaxResult update(@Valid @RequestBody AddrParam addrParam) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
@@ -105,7 +105,7 @@ public class ChannelAddrController {
   /**
    * 删除订单配送地址
    */
-  @PostMapping("/address/remove")
+  @PostMapping("/addr/remove")
   @ApiOperation(value = "删除订单用户地址" , notes = "根据地址id,删除用户地址")
   public AjaxResult remove(@RequestBody AddrParam addrParam) {
     if (addrParam.getAddrId() == null || addrParam.getAddrId() == 0) {
@@ -127,7 +127,7 @@ public class ChannelAddrController {
   /**
    * 设置默认地址
    */
-  @PostMapping("/address/setDefault")
+  @PostMapping("/addr/setDefault")
   @ApiOperation(value = "设置默认地址" , notes = "根据地址id,设置默认地址")
   public AjaxResult defaultAddr(@RequestBody AddrParam addrParam) {
     if (addrParam.getAddrId() == null || addrParam.getAddrId() == 0) {
@@ -139,9 +139,9 @@ public class ChannelAddrController {
   }
 
   /**
-   * 获取地址信息订单配送地址
+   * 获取配送地址
    */
-  @PostMapping("/address/query")
+  @PostMapping("/addr/query")
   @ApiOperation(value = "获取地址信息" , notes = "根据地址id,获取地址信息")
   public AjaxResult info(@RequestBody AddrParam addrParam) {
     if (addrParam.getAddrId() == null || addrParam.getAddrId() == 0) {

+ 29 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelOrderController.java

@@ -14,6 +14,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.ChannelAddr;
 import com.qs.mp.channel.domain.ChannelCart;
 import com.qs.mp.channel.domain.ChannelOrder;
@@ -28,10 +29,15 @@ import com.qs.mp.channel.service.IChannelAddrService;
 import com.qs.mp.channel.service.IChannelCartService;
 import com.qs.mp.channel.service.IChannelOrderItemService;
 import com.qs.mp.channel.service.IChannelOrderService;
+import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.redis.RedisCache;
 import com.qs.mp.common.domain.param.BatchLongIdsParam;
 import com.qs.mp.common.enums.BizTypeEnum;
+import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
+import com.qs.mp.common.enums.ChannelVerifyStatusEnum;
+import com.qs.mp.common.enums.ErrorCodeEnum;
+import com.qs.mp.common.utils.LogUtil;
 import com.qs.mp.pay.service.IWalletService;
 import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
@@ -78,6 +84,9 @@ public class ChannelOrderController extends BaseApiController {
   @Autowired
   private IWalletService walletService;
 
+  @Autowired
+  private IChannelService channelService;
+
   @Autowired
   private RedisCache redisCache;
 
@@ -103,6 +112,20 @@ public class ChannelOrderController extends BaseApiController {
     return AjaxResult.success(channelOrderVOList);
   }
 
+  /**
+   * 订单详情
+   */
+  @PostMapping("/order/detail")
+  @ApiOperation(value = "订单详情" , notes = "在订单列表页面查看详情")
+  public AjaxResult query(@RequestBody ChannelOrder order) {
+    Long channelId = SecurityUtils.getLoginUser().getChannelId();
+    ChannelOrder channelOrder = channelOrderService.getOne(new LambdaQueryWrapper<ChannelOrder>()
+        .eq(ChannelOrder::getOrderId, order.getOrderId()).eq(ChannelOrder::getChannelId, channelId));
+    ChannelOrderVO channelOrderVO = mapperFacade.map(channelOrder, ChannelOrderVO.class);
+    channelOrderVO.setItems(channelOrderItemService.list(new LambdaQueryWrapper<ChannelOrderItem>()
+        .eq(ChannelOrderItem::getOrderId, channelOrderVO.getOrderId())));
+    return AjaxResult.success(channelOrderVO);
+  }
 
   /**
    * 订单结算,每次更换地址或优惠券时需重新请求此接口
@@ -111,6 +134,11 @@ public class ChannelOrderController extends BaseApiController {
   @ApiOperation(value = "订单结算" , notes = "购物车里点结算或者单个盲票组商品上点立即购买")
   public AjaxResult settle(@RequestBody ChannelOrderParam param) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
+    Channel channel = channelService.getById(channelId);
+    if (channel.getCertifyStatus() != ChannelCertifyStatusEnum.CERTIFIED) {
+      LogUtil.info(logger, "账号未认证。channelId:{0}", channelId);
+      return AjaxResult.error(ErrorCodeEnum.ERROR_CODE_1016);
+    }
     ChannelOrderSettleVO orderSettleVO = new ChannelOrderSettleVO();
 
     // 收货地址,如果用户选了地址,则此处不做处理
@@ -173,6 +201,7 @@ public class ChannelOrderController extends BaseApiController {
     return AjaxResult.success(orderId);
   }
 
+
   /**
    * 取消订单
    */

+ 35 - 29
mp-common/src/main/java/com/qs/mp/common/core/domain/AjaxResult.java

@@ -1,12 +1,13 @@
 package com.qs.mp.common.core.domain;
 
+import com.qs.mp.common.enums.ErrorCodeEnum;
 import java.util.HashMap;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
 /**
  * 操作消息提醒
- * 
+ *
  * @author eepay
  */
 public class AjaxResult extends HashMap<String, Object>
@@ -32,8 +33,8 @@ public class AjaxResult extends HashMap<String, Object>
         ERROR(500),
     	/** 登陆超时 */
     	TIMEOUT(401);
-    	
-    	
+
+
         private final int value;
 
         Type(int value)
@@ -65,11 +66,11 @@ public class AjaxResult extends HashMap<String, Object>
     public AjaxResult()
     {
     }
-    
+
 
     /**
      * 初始化一个新创建的 AjaxResult 对象
-     * 
+     *
      * @param type 状态类型
      * @param msg 返回内容
      */
@@ -81,7 +82,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 初始化一个新创建的 AjaxResult 对象
-     * 
+     *
      * @param type 状态类型
      * @param msg 返回内容
      * @param data 数据对象
@@ -92,10 +93,10 @@ public class AjaxResult extends HashMap<String, Object>
         super.put(MSG_TAG, msg);
         super.put(DATA_TAG, data);
     }
-    
+
     /**
      * 初始化一个新创建的 AjaxResult 对象
-     * 
+     *
      * @param code 状态码
      * @param msg 返回内容
      */
@@ -105,9 +106,9 @@ public class AjaxResult extends HashMap<String, Object>
         super.put(MSG_TAG, msg);
     }
 
-    
+
     /**
-     * 
+     *
      * @param code
      * @param msg
      * @param data
@@ -117,11 +118,11 @@ public class AjaxResult extends HashMap<String, Object>
         super.put(CODE_TAG, code);
         super.put(MSG_TAG, msg);
         super.put(DATA_TAG, data);
-    } 
-    
+    }
+
     /**
      * 返回成功消息
-     * 
+     *
      * @return 成功消息
      */
     public static AjaxResult success()
@@ -131,7 +132,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回成功消息
-     * 
+     *
      * @param msg 返回内容
      * @return 成功消息
      */
@@ -139,10 +140,10 @@ public class AjaxResult extends HashMap<String, Object>
     {
         return AjaxResult.success(msg, null);
     }
-    
+
     /**
      * 返回成功消息
-     * 
+     *
      * @param msg 返回内容
      * @param data 数据对象
      * @return 成功消息
@@ -154,7 +155,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回成功消息
-     * 
+     *
      * @param msg 返回内容
      * @param data 数据对象
      * @return 成功消息
@@ -166,7 +167,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回警告消息
-     * 
+     *
      * @param msg 返回内容
      * @return 警告消息
      */
@@ -177,7 +178,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回警告消息
-     * 
+     *
      * @param msg 返回内容
      * @param data 数据对象
      * @return 警告消息
@@ -189,7 +190,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回错误消息
-     * 
+     *
      * @return
      */
     public static AjaxResult error()
@@ -199,7 +200,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回错误消息
-     * 
+     *
      * @param msg 返回内容
      * @return 警告消息
      */
@@ -208,9 +209,14 @@ public class AjaxResult extends HashMap<String, Object>
         return AjaxResult.error(msg, null);
     }
 
+    public static AjaxResult error(ErrorCodeEnum errorCodeEnum)
+    {
+        return new AjaxResult(errorCodeEnum.getCode(), errorCodeEnum.getMsg());
+    }
+
     /**
      * 返回错误消息
-     * 
+     *
      * @param msg 返回内容
      * @param data 数据对象
      * @return 警告消息
@@ -219,30 +225,30 @@ public class AjaxResult extends HashMap<String, Object>
     {
         return new AjaxResult(Type.ERROR, msg, data);
     }
-    
+
     public static AjaxResult error(int code,String msg)
     {
         return new AjaxResult(code, msg);
     }
-    
+
     public static AjaxResult error(int code,String msg, Object data)
     {
         return new AjaxResult(code, msg, data);
     }
-    
+
     /**
      * 返回错误消息
-     * 
+     *
      * @return
      */
     public static AjaxResult timeout()
     {
         return AjaxResult.timeout("登陆超时");
     }
-    
+
     /**
      * 返回警告消息
-     * 
+     *
      * @param msg 返回内容
      * @return 警告消息
      */
@@ -253,7 +259,7 @@ public class AjaxResult extends HashMap<String, Object>
 
     /**
      * 返回警告消息
-     * 
+     *
      * @param msg 返回内容
      * @param data 数据对象
      * @return 警告消息

+ 1 - 0
mp-common/src/main/java/com/qs/mp/common/enums/ErrorCodeEnum.java

@@ -22,6 +22,7 @@ public enum ErrorCodeEnum {
   ERROR_CODE_1013(1013, "账号不存在"),
   ERROR_CODE_1014(1014, "当前账号不能删除"),
   ERROR_CODE_1015(1015, "保存失败"),
+  ERROR_CODE_1016(1016, "账号未认证,请先完成认证再提交"),
 
   ;
   private int code;

+ 8 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelOrderServiceImpl.java

@@ -12,6 +12,7 @@ import com.qs.mp.channel.domain.vo.ChannelCartVO;
 import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
 import com.qs.mp.channel.mapper.ChannelOrderMapper;
 import com.qs.mp.channel.service.IChannelAddrService;
+import com.qs.mp.channel.service.IChannelCartService;
 import com.qs.mp.channel.service.IChannelOrderItemService;
 import com.qs.mp.channel.service.IChannelOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -53,6 +54,9 @@ public class ChannelOrderServiceImpl extends ServiceImpl<ChannelOrderMapper, Cha
   @Autowired
   private IChannelOrderService channelOrderService;
 
+  @Autowired
+  private IChannelCartService channelCartService;
+
   @Override
   @Transactional
   public String submitOrder(Long channelId, String memo, ChannelOrderSettleVO orderSettleVO) {
@@ -87,6 +91,10 @@ public class ChannelOrderServiceImpl extends ServiceImpl<ChannelOrderMapper, Cha
               TicketBoxStatusEnum.PUT_OFF)
           .set(TicketBox::getSalePkgQty, ticketBox.getSalePkgQty() + channelCartVO.getOrderNum())
           .eq(TicketBox::getSalePkgQty, ticketBox.getSalePkgQty()).eq(TicketBox::getBoxId, ticketBox.getBoxId()));
+      // 删除购物车
+      if (null != channelCartVO.getCartId() && 0 != channelCartVO.getCartId()) {
+        channelCartService.removeById(channelCartVO.getCartId());
+      }
     }
 
     // 创建订单