chunping 3 жил өмнө
parent
commit
bb90853058

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

@@ -15,7 +15,7 @@ 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.user.domain.UserAddr;
 import com.qs.mp.channel.domain.ChannelCart;
 import com.qs.mp.channel.domain.ChannelOrder;
 import com.qs.mp.channel.domain.ChannelOrderItem;
@@ -24,7 +24,7 @@ import com.qs.mp.channel.domain.param.OrderPayParam;
 import com.qs.mp.channel.domain.vo.ChannelCartVO;
 import com.qs.mp.channel.domain.vo.ChannelOrderSettleVO;
 import com.qs.mp.channel.domain.vo.ChannelOrderVO;
-import com.qs.mp.channel.service.IChannelAddrService;
+import com.qs.mp.user.service.IUserAddrService;
 import com.qs.mp.channel.service.IChannelCartService;
 import com.qs.mp.channel.service.IChannelOrderItemService;
 import com.qs.mp.channel.service.IChannelOrderService;
@@ -76,7 +76,7 @@ public class ChannelOrderController extends BaseApiController {
   private ITicketBoxService ticketBoxService;
 
   @Autowired
-  private IChannelAddrService channelAddrService;
+  private IUserAddrService channelAddrService;
 
   @Autowired
   private MapperFacade mapperFacade;
@@ -143,7 +143,7 @@ public class ChannelOrderController extends BaseApiController {
     // 收货地址,如果用户选了地址,则此处不做处理
     if (null == param.getAddrId() || 0 == param.getAddrId()) {
       //读取默认地址
-      ChannelAddr addr = channelAddrService.getDefaultChannelAddr(channelId);
+      UserAddr addr = channelAddrService.getDefaultChannelAddr(channelId);
       if (null != addr) {
         orderSettleVO.setAddr(addr);
       }

+ 38 - 38
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/mall/ChannelAddrController.java → mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserAddrController.java

@@ -8,12 +8,12 @@
  * 版权所有,侵权必究!
  */
 
-package com.qs.mp.web.controller.api.channel.mall;
+package com.qs.mp.web.controller.api.user;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.qs.mp.channel.domain.ChannelAddr;
+import com.qs.mp.user.domain.UserAddr;
 import com.qs.mp.channel.domain.param.AddrParam;
-import com.qs.mp.channel.service.IChannelAddrService;
+import com.qs.mp.user.service.IUserAddrService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.utils.SecurityUtils;
 import io.swagger.annotations.Api;
@@ -31,14 +31,14 @@ import org.springframework.web.bind.annotation.RestController;
 
 
 @RestController
-@RequestMapping("/api/v1/mp/channel/mall")
+@RequestMapping("/api/v1/mp/user")
 @Api(tags = "地址接口")
 @AllArgsConstructor
-public class ChannelAddrController {
+public class UserAddrController {
 
 
   @Autowired
-  private IChannelAddrService channelAddrService;
+  private IUserAddrService userAddrService;
 
   @Autowired
   private MapperFacade mapperFacade;
@@ -50,34 +50,34 @@ public class ChannelAddrController {
   @ApiOperation(value = "渠道地址列表" , notes = "获取渠道的所有地址信息")
   public AjaxResult list(@RequestBody AddrParam addrParam) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
-    List<ChannelAddr> channelAddrs = channelAddrService.list(
-        new LambdaQueryWrapper<ChannelAddr>().eq(ChannelAddr::getChannelId, channelId)
-            .orderByDesc(ChannelAddr::getCommonAddr).orderByDesc(ChannelAddr::getUpdateTime));
-    return AjaxResult.success(channelAddrs);
+    List<UserAddr> userAddrs = userAddrService.list(
+        new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, channelId)
+            .orderByDesc(UserAddr::getCommonAddr).orderByDesc(UserAddr::getUpdateTime));
+    return AjaxResult.success(userAddrs);
   }
 
   @PostMapping("/addr/create")
   @ApiOperation(value = "新增用户地址" , notes = "新增用户地址")
   public AjaxResult create(@Valid @RequestBody AddrParam addrParam) {
-    Long channelId = SecurityUtils.getLoginUser().getChannelId();
+    Long userId = SecurityUtils.getLoginUser().getUserId();
 
     if (addrParam.getAddrId() != null && addrParam.getAddrId() != 0) {
       return AjaxResult.error("该地址已存在");
     }
-    int addrCount = channelAddrService.count(
-        new LambdaQueryWrapper<ChannelAddr>().eq(ChannelAddr::getChannelId, channelId));
-    ChannelAddr channelAddr = mapperFacade.map(addrParam, ChannelAddr.class);
+    int addrCount = userAddrService.count(
+        new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, userId));
+    UserAddr userAddr = mapperFacade.map(addrParam, UserAddr.class);
 
     if (addrCount == 0) {
-      channelAddr.setCommonAddr(1);
+      userAddr.setCommonAddr(1);
     } else {
-      channelAddr.setCommonAddr(0);
+      userAddr.setCommonAddr(0);
     }
-    channelAddr.setChannelId(channelId);
-    channelAddr.setStatus(1);
-    channelAddr.setCreateTime(new Date());
-    channelAddr.setUpdateTime(new Date());
-    channelAddrService.save(channelAddr);
+    userAddr.setUserId(userId);
+    userAddr.setStatus(1);
+    userAddr.setCreateTime(new Date());
+    userAddr.setUpdateTime(new Date());
+    userAddrService.save(userAddr);
 
     return AjaxResult.success("添加地址成功");
   }
@@ -88,17 +88,17 @@ public class ChannelAddrController {
   @PostMapping("/addr/update")
   @ApiOperation(value = "修改订单用户地址" , notes = "修改用户地址")
   public AjaxResult update(@Valid @RequestBody AddrParam addrParam) {
-    Long channelId = SecurityUtils.getLoginUser().getChannelId();
+    Long userId = SecurityUtils.getLoginUser().getUserId();
 
-    ChannelAddr dbChannelAddr = channelAddrService.getChannelAddrByUserId(addrParam.getAddrId(),
-        channelId);
+    UserAddr dbChannelAddr = userAddrService.getChannelAddrByUserId(addrParam.getAddrId(),
+        userId);
     if (dbChannelAddr == null) {
       return AjaxResult.error("该地址已被删除");
     }
 
-    ChannelAddr channelAddr = mapperFacade.map(addrParam, ChannelAddr.class);
-    channelAddr.setChannelId(channelId);
-    channelAddrService.updateById(channelAddr);
+    UserAddr userAddr = mapperFacade.map(addrParam, UserAddr.class);
+    userAddr.setUserId(userId);
+    userAddrService.updateById(userAddr);
     return AjaxResult.success("修改地址成功");
   }
 
@@ -111,16 +111,16 @@ public class ChannelAddrController {
     if (addrParam.getAddrId() == null || addrParam.getAddrId() == 0) {
       return AjaxResult.error("参数异常,地址ID缺失");
     }
-    Long channelId = SecurityUtils.getLoginUser().getChannelId();
-    ChannelAddr channelAddr = channelAddrService.getChannelAddrByUserId(addrParam.getAddrId(),
-        channelId);
+    Long userId = SecurityUtils.getLoginUser().getUserId();
+    UserAddr channelAddr = userAddrService.getChannelAddrByUserId(addrParam.getAddrId(),
+        userId);
     if (channelAddr == null) {
       return AjaxResult.error("该地址已被删除");
     }
     if (channelAddr.getCommonAddr() == 1) {
       return AjaxResult.error("默认地址无法删除");
     }
-    channelAddrService.removeById(addrParam.getAddrId());
+    userAddrService.removeById(addrParam.getAddrId());
     return AjaxResult.success();
   }
 
@@ -133,8 +133,8 @@ public class ChannelAddrController {
     if (addrParam.getAddrId() == null || addrParam.getAddrId() == 0) {
       return AjaxResult.error("参数异常,地址ID缺失");
     }
-    Long channelId = SecurityUtils.getLoginUser().getChannelId();
-    channelAddrService.updateDefaultChannelAddr(addrParam.getAddrId(), channelId);
+    Long userId = SecurityUtils.getLoginUser().getUserId();
+    userAddrService.updateDefaultChannelAddr(addrParam.getAddrId(), userId);
     return AjaxResult.success();
   }
 
@@ -144,8 +144,8 @@ public class ChannelAddrController {
   @PostMapping("/addr/queryDefault")
   @ApiOperation(value = "查询默认地址" , notes = "查询默认地址")
   public AjaxResult queryDefaultAddr(@RequestBody AddrParam addrParam) {
-    Long channelId = SecurityUtils.getLoginUser().getChannelId();
-    ChannelAddr addr = channelAddrService.getDefaultChannelAddr(channelId);
+    Long userId = SecurityUtils.getLoginUser().getUserId();
+    UserAddr addr = userAddrService.getDefaultChannelAddr(userId);
     return AjaxResult.success(addr);
   }
 
@@ -158,9 +158,9 @@ public class ChannelAddrController {
     if (addrParam.getAddrId() == null || addrParam.getAddrId() == 0) {
       return AjaxResult.error("参数异常,地址ID缺失");
     }
-    Long channelId = SecurityUtils.getLoginUser().getChannelId();
-    ChannelAddr channelAddr = channelAddrService.getChannelAddrByUserId(addrParam.getAddrId(),
-        channelId);
+    Long userId = SecurityUtils.getLoginUser().getUserId();
+    UserAddr channelAddr = userAddrService.getChannelAddrByUserId(addrParam.getAddrId(),
+        userId);
     return AjaxResult.success(channelAddr);
   }
 

+ 199 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/user/UserDeliverOrderController.java

@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
+ *
+ * https://www.mall4j.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.qs.mp.web.controller.api.user;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qs.mp.admin.domain.CouponTicket;
+import com.qs.mp.admin.domain.Ticket;
+import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.service.ICouponTicketService;
+import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.admin.service.ITicketService;
+import com.qs.mp.channel.domain.ChannelOrder;
+import com.qs.mp.channel.domain.param.OrderPayParam;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.core.redis.RedisCache;
+import com.qs.mp.common.enums.BizTypeEnum;
+import com.qs.mp.common.enums.CouponUseAreaEnum;
+import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.common.utils.StringUtils;
+import com.qs.mp.framework.redis.RedisKey;
+import com.qs.mp.pay.service.IWalletService;
+import com.qs.mp.user.domain.UserTicketOrder;
+import com.qs.mp.user.domain.param.TicketOrderParam;
+import com.qs.mp.user.domain.vo.TicketOrderSettleVO;
+import com.qs.mp.user.domain.vo.UserCouponVO;
+import com.qs.mp.user.service.IUserCouponService;
+import com.qs.mp.user.service.IUserTicketOrderService;
+import com.qs.mp.utils.SecurityUtils;
+import com.qs.mp.web.controller.common.BaseApiController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import ma.glasnost.orika.MapperFacade;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+@RestController
+@RequestMapping("/api/v1/mp/user/deliver")
+@Api(tags = "用户端购买盲票接口")
+@AllArgsConstructor
+public class UserDeliverOrderController extends BaseApiController {
+
+
+  @Autowired
+  private ITicketBoxService ticketBoxService;
+
+  @Autowired
+  private IUserTicketOrderService userTicketOrderService;
+
+  @Autowired
+  private ITicketService ticketService;
+
+  @Autowired
+  private IUserCouponService userCouponService;
+
+  @Autowired
+  private ICouponTicketService couponTicketService;
+
+  @Autowired
+  private IWalletService walletService;
+
+  @Autowired
+  private MapperFacade mapperFacade;
+
+  @Autowired
+  private RedisCache redisCache;
+
+
+  /**
+   * 订单结算,每次更换优惠券时需重新请求此接口
+   */
+  @PostMapping("/order/settle")
+  @ApiOperation(value = "订单结算" , notes = "单个盲票商品上点立即购买")
+  public AjaxResult settle(@Valid @RequestBody TicketOrderParam param) {
+    if (StringUtils.isBlank(param.getTicketId()) && StringUtils.isBlank(param.getBoxId())) {
+      return AjaxResult.error("参数缺失");
+    }
+    Long userId = SecurityUtils.getLoginUser().getUserId();
+
+    TicketOrderSettleVO orderSettleVO = new TicketOrderSettleVO();
+
+
+    // 订单金额计算
+    Integer orderAmt = 0;
+    Integer discountAmt = 0;
+    TicketBox ticketBox;
+    if (StringUtils.isNotBlank(param.getTicketId())) {
+      // 线下扫码购票
+      Ticket ticket = ticketService.getById(param.getTicketId());
+      ticketBox = ticketBoxService.getById(ticket.getBoxId());
+      orderAmt = ticketBox.getSalePrice();
+    } else {
+      // 线上购票
+      ticketBox = ticketBoxService.getById(param.getBoxId());
+      orderAmt = ticketBox.getSalePrice() * param.getOrderNum();
+    }
+
+    if (param.getAutoCoupon() == 1) {
+      // 系统自动选择优惠券,按照金额从大到小排序
+      List<UserCouponVO> userCouponList = userCouponService.listTicketOrderCoupon(userId);
+      for (UserCouponVO userCouponVO : userCouponList) {
+        if (orderAmt >= userCouponVO.getMinOrderAmt() && orderAmt >= userCouponVO.getDiscount()) {
+          if (userCouponVO.getUseArea() == CouponUseAreaEnum.PRE_SCOPE) {
+            // 使用范围验证
+            List<CouponTicket> couponTicketList = couponTicketService.list(new LambdaQueryWrapper<CouponTicket>()
+                .eq(CouponTicket::getCouponId, userCouponVO.getCouponId()).eq(CouponTicket::getBoxId, ticketBox.getBoxId()));
+            if (CollectionUtils.isEmpty(couponTicketList)) {
+              continue;
+            }
+          }
+          orderSettleVO.getCouponList().add(userCouponVO);
+          discountAmt = userCouponVO.getDiscount();
+        }
+      }
+    } else if (!CollectionUtils.isEmpty(param.getUserCouponIds())){
+      // 查询指定券
+      orderSettleVO.setCouponList(userCouponService.listTicketOrderCouponByIds(param.getUserCouponIds()));
+    }
+
+    orderSettleVO.setOrderAmt(orderAmt);
+    orderSettleVO.setDiscountAmt(discountAmt);
+    // 当前没有运费和优惠,实付金额=订单金额
+    orderSettleVO.setPayAmt(orderAmt - discountAmt);
+    orderSettleVO.setOrderNum(param.getOrderNum());
+    orderSettleVO.setBoxId(param.getBoxId());
+    orderSettleVO.setTicketId(param.getTicketId());
+    orderSettleVO.setPicUrl(ticketBox.getPicUrl());
+
+    // 缓存订单结算对象
+    redisCache.setCacheObject(RedisKey.build(RedisKey.USER_TICKET_ORDER_KEY, userId), orderSettleVO, 10, TimeUnit.MINUTES);
+    return AjaxResult.success(orderSettleVO);
+  }
+
+
+  /**
+   * 提交订单
+   */
+  @PostMapping("/order/submit")
+  @ApiOperation(value = "提交订单" , notes = "在订单确认页面提交")
+  public AjaxResult submit(@RequestBody UserTicketOrder order) {
+    Long userId = SecurityUtils.getLoginUser().getUserId();
+    TicketOrderSettleVO orderSettleVO = redisCache.getCacheObject(RedisKey.build(RedisKey.USER_TICKET_ORDER_KEY, userId));
+    if (null == orderSettleVO) {
+      return AjaxResult.error("订单已过期,请重新下单");
+    }
+    String orderId = userTicketOrderService.submitOrder(userId, orderSettleVO);
+
+    // 清除缓存的订单
+    redisCache.deleteObject(RedisKey.build(RedisKey.USER_TICKET_ORDER_KEY, userId));
+
+    return AjaxResult.success(orderId);
+  }
+
+
+  /**
+   * 取消订单
+   */
+  @PostMapping("/order/cancel")
+  @ApiOperation(value = "取消订单" , notes = "在订单列表页面取消")
+  public AjaxResult cancel(@RequestBody ChannelOrder order) {
+    userTicketOrderService.cancelOrder(order.getOrderId());
+    return AjaxResult.success("取消成功");
+  }
+
+  /**
+   * 订单支付
+   */
+  @PostMapping("/order/pay")
+  @ApiOperation(value = "订单支付" , notes = "在盲票页面支付")
+  public AjaxResult pay(@Valid @RequestBody OrderPayParam param) {
+    String openId = SecurityUtils.getLoginUser().getUser().getOpenId();
+    UserTicketOrder ticketOrder = userTicketOrderService.getById(param.getOrderId());
+    JSONObject jsonObject;
+    try {
+      jsonObject = walletService.pay(BizTypeEnum.USER_ORDER, param.getOrderId(), openId, ticketOrder.getPayAmt());
+    }catch (ServiceException e) {
+      return AjaxResult.error(e.getMessage());
+    }
+    return AjaxResult.success(jsonObject);
+  }
+
+}

+ 2 - 3
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOrderSettleVO.java

@@ -1,7 +1,6 @@
 package com.qs.mp.channel.domain.vo;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.qs.mp.channel.domain.ChannelAddr;
+import com.qs.mp.user.domain.UserAddr;
 import java.util.ArrayList;
 import java.util.List;
 import lombok.Data;
@@ -13,7 +12,7 @@ import lombok.Data;
 @Data
 public class ChannelOrderSettleVO {
 
-  private ChannelAddr addr;
+  private UserAddr addr;
 
   /**
    * 订单金额

+ 0 - 49
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelAddrServiceImpl.java

@@ -1,49 +0,0 @@
-package com.qs.mp.channel.service.impl;
-
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.qs.mp.channel.domain.ChannelAddr;
-import com.qs.mp.channel.mapper.ChannelAddrMapper;
-import com.qs.mp.channel.service.IChannelAddrService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * <p>
- * 渠道配送地址 服务实现类
- * </p>
- *
- * @author quanshu
- * @since 2022-03-02
- */
-@Service
-public class ChannelAddrServiceImpl extends ServiceImpl<ChannelAddrMapper, ChannelAddr> implements IChannelAddrService {
-
-  @Override
-  public ChannelAddr getDefaultChannelAddr(Long channelId) {
-    return getOne(new LambdaQueryWrapper<ChannelAddr>().eq(ChannelAddr::getChannelId, channelId)
-        .eq(ChannelAddr::getCommonAddr, 1));
-  }
-
-  @Override
-  @Transactional
-  public boolean updateDefaultChannelAddr(Long addrId, Long channelId) {
-    update(new LambdaUpdateWrapper<ChannelAddr>().set(ChannelAddr::getCommonAddr, 0)
-        .eq(ChannelAddr::getChannelId, channelId).eq(ChannelAddr::getCommonAddr, 1));
-    return update(new LambdaUpdateWrapper<ChannelAddr>().set(ChannelAddr::getCommonAddr, 1)
-        .eq(ChannelAddr::getChannelId, channelId).eq(ChannelAddr::getAddrId, addrId));
-  }
-
-  @Override
-  public boolean removeChannelAddrByUserId(Long addrId, Long channelId) {
-    return remove(new LambdaQueryWrapper<ChannelAddr>()
-        .eq(ChannelAddr::getChannelId, channelId).eq(ChannelAddr::getAddrId, addrId));
-  }
-
-  @Override
-  public ChannelAddr getChannelAddrByUserId(Long addrId, Long channelId) {
-    return getOne(new LambdaQueryWrapper<ChannelAddr>()
-        .eq(ChannelAddr::getChannelId, channelId).eq(ChannelAddr::getAddrId, addrId));
-  }
-}

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

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.service.ITicketBoxService;
-import com.qs.mp.channel.domain.ChannelAddr;
+import com.qs.mp.user.domain.UserAddr;
 import com.qs.mp.channel.domain.ChannelOrder;
 import com.qs.mp.channel.domain.ChannelOrderItem;
 import com.qs.mp.channel.domain.vo.ChannelCartVO;
@@ -61,7 +61,7 @@ public class ChannelOrderServiceImpl extends
   @Override
   @Transactional
   public String submitOrder(Long channelId, String memo, ChannelOrderSettleVO orderSettleVO) {
-    ChannelAddr addr = orderSettleVO.getAddr();
+    UserAddr addr = orderSettleVO.getAddr();
     String orderId = bizIdGenerator.newId();
     int prodNum = 0;
     StringBuilder title = new StringBuilder();

+ 5 - 5
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelAddr.java → mp-service/src/main/java/com/qs/mp/user/domain/UserAddr.java

@@ -1,4 +1,4 @@
-package com.qs.mp.channel.domain;
+package com.qs.mp.user.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
@@ -14,9 +14,9 @@ import lombok.Data;
  * @auther quanshu
  * @create 2022-03-02 13:57:20
  */
-@TableName("mp_channel_addr")
+@TableName("mp_user_addr")
 @Data
-public class ChannelAddr implements Serializable {
+public class UserAddr implements Serializable {
 
   private static final long serialVersionUID = 1L;
 
@@ -29,8 +29,8 @@ public class ChannelAddr implements Serializable {
   /**
    * 渠道ID
    */
-  @TableField("channel_id")
-  private Long channelId;
+  @TableField("user_id")
+  private Long userId;
 
   /**
    * 收货人

+ 0 - 4
mp-service/src/main/java/com/qs/mp/user/domain/vo/TicketOrderSettleVO.java

@@ -1,9 +1,5 @@
 package com.qs.mp.user.domain.vo;
 
-import com.qs.mp.admin.domain.Coupon;
-import com.qs.mp.channel.domain.ChannelAddr;
-import com.qs.mp.channel.domain.vo.ChannelCartVO;
-import io.swagger.annotations.ApiModelProperty;
 import java.util.ArrayList;
 import java.util.List;
 import lombok.Data;

+ 3 - 3
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelAddrMapper.java → mp-service/src/main/java/com/qs/mp/user/mapper/UserAddrMapper.java

@@ -1,6 +1,6 @@
-package com.qs.mp.channel.mapper;
+package com.qs.mp.user.mapper;
 
-import com.qs.mp.channel.domain.ChannelAddr;
+import com.qs.mp.user.domain.UserAddr;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -8,6 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @create 2022-03-02 13:57:20
  * @describe 用户配送地址mapper类
  */
-public interface ChannelAddrMapper extends BaseMapper<ChannelAddr> {
+public interface UserAddrMapper extends BaseMapper<UserAddr> {
 
 }

+ 5 - 5
mp-service/src/main/java/com/qs/mp/channel/service/IChannelAddrService.java → mp-service/src/main/java/com/qs/mp/user/service/IUserAddrService.java

@@ -1,6 +1,6 @@
-package com.qs.mp.channel.service;
+package com.qs.mp.user.service;
 
-import com.qs.mp.channel.domain.ChannelAddr;
+import com.qs.mp.user.domain.UserAddr;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -11,12 +11,12 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @author quanshu
  * @since 2022-03-02
  */
-public interface IChannelAddrService extends IService<ChannelAddr> {
-  ChannelAddr getDefaultChannelAddr(Long channelId);
+public interface IUserAddrService extends IService<UserAddr> {
+  UserAddr getDefaultChannelAddr(Long channelId);
 
   boolean updateDefaultChannelAddr(Long addrId, Long channelId);
 
   boolean removeChannelAddrByUserId(Long addrId, Long channelId);
 
-  ChannelAddr getChannelAddrByUserId(Long addrId, Long channelId);
+  UserAddr getChannelAddrByUserId(Long addrId, Long channelId);
 }

+ 50 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserAddrServiceImpl.java

@@ -0,0 +1,50 @@
+package com.qs.mp.user.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.qs.mp.user.domain.UserAddr;
+import com.qs.mp.user.mapper.UserAddrMapper;
+import com.qs.mp.user.service.IUserAddrService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 渠道配送地址 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-02
+ */
+@Service
+public class UserAddrServiceImpl extends ServiceImpl<UserAddrMapper, UserAddr> implements
+    IUserAddrService {
+
+  @Override
+  public UserAddr getDefaultChannelAddr(Long channelId) {
+    return getOne(new LambdaQueryWrapper<UserAddr>().eq(UserAddr::getUserId, channelId)
+        .eq(UserAddr::getCommonAddr, 1));
+  }
+
+  @Override
+  @Transactional
+  public boolean updateDefaultChannelAddr(Long addrId, Long channelId) {
+    update(new LambdaUpdateWrapper<UserAddr>().set(UserAddr::getCommonAddr, 0)
+        .eq(UserAddr::getUserId, channelId).eq(UserAddr::getCommonAddr, 1));
+    return update(new LambdaUpdateWrapper<UserAddr>().set(UserAddr::getCommonAddr, 1)
+        .eq(UserAddr::getUserId, channelId).eq(UserAddr::getAddrId, addrId));
+  }
+
+  @Override
+  public boolean removeChannelAddrByUserId(Long addrId, Long channelId) {
+    return remove(new LambdaQueryWrapper<UserAddr>()
+        .eq(UserAddr::getUserId, channelId).eq(UserAddr::getAddrId, addrId));
+  }
+
+  @Override
+  public UserAddr getChannelAddrByUserId(Long addrId, Long channelId) {
+    return getOne(new LambdaQueryWrapper<UserAddr>()
+        .eq(UserAddr::getUserId, channelId).eq(UserAddr::getAddrId, addrId));
+  }
+}

+ 4 - 4
mp-service/src/main/resources/mapper/channel/ChannelAddrMapper.xml → mp-service/src/main/resources/mapper/user/UserAddrMapper.xml

@@ -1,11 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.qs.mp.channel.mapper.ChannelAddrMapper">
+<mapper namespace="com.qs.mp.user.mapper.UserAddrMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.qs.mp.channel.domain.ChannelAddr">
+    <resultMap id="BaseResultMap" type="com.qs.mp.user.domain.UserAddr">
         <id column="addr_id" property="addrId" />
-        <result column="channel_id" property="channelId" />
+        <result column="user_id" property="userId" />
         <result column="receiver" property="receiver" />
         <result column="province" property="province" />
         <result column="province_id" property="provinceId" />
@@ -24,7 +24,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        addr_id, channel_id, receiver, province_id, province, city, city_id, area, area_id, post_code, addr, mobile, status, common_addr, create_time, update_time
+        addr_id, user_id, receiver, province_id, province, city, city_id, area, area_id, post_code, addr, mobile, status, common_addr, create_time, update_time
     </sql>
 
 </mapper>