Răsfoiți Sursa

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

Dev

See merge request quanshu/mp-server!16
zhong chunping 3 ani în urmă
părinte
comite
e81f0bc9ff
58 a modificat fișierele cu 1125 adăugiri și 113 ștergeri
  1. 1 1
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelAddrController.java
  2. 94 0
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelCartController.java
  3. 9 3
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelController.java
  4. 84 0
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelTicketController.java
  5. 29 0
      mp-common/src/main/java/com/qs/mp/common/enums/SiteTypeEnum.java
  6. 27 0
      mp-common/src/main/java/com/qs/mp/common/enums/TicketBoxStatusEnum.java
  7. 27 0
      mp-common/src/main/java/com/qs/mp/common/enums/TicketTypeEnum.java
  8. 1 1
      mp-generator/src/main/java/com/qs/mp/generator/DbGenerator.java
  9. 2 2
      mp-service/src/main/java/com/qs/mp/admin/domain/TicketAwards.java
  10. 2 2
      mp-service/src/main/java/com/qs/mp/admin/domain/TicketAwardsPrize.java
  11. 26 5
      mp-service/src/main/java/com/qs/mp/admin/domain/TicketBox.java
  12. 59 0
      mp-service/src/main/java/com/qs/mp/admin/domain/TicketCategory.java
  13. 53 0
      mp-service/src/main/java/com/qs/mp/admin/domain/TicketTag.java
  14. 53 0
      mp-service/src/main/java/com/qs/mp/admin/domain/TicketTagRel.java
  15. 91 0
      mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketBoxListVO.java
  16. 27 0
      mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketBoxParam.java
  17. 2 2
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsMapper.java
  18. 2 2
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsPrizeMapper.java
  19. 13 0
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketCategoryMapper.java
  20. 13 0
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketTagMapper.java
  21. 13 0
      mp-service/src/main/java/com/qs/mp/admin/mapper/TicketTagRelMapper.java
  22. 2 2
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsPrizeService.java
  23. 2 2
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsService.java
  24. 16 0
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketCategoryService.java
  25. 16 0
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketTagRelService.java
  26. 16 0
      mp-service/src/main/java/com/qs/mp/admin/service/ITicketTagService.java
  27. 0 20
      mp-service/src/main/java/com/qs/mp/admin/service/impl/BoxAwardsPrizeServiceImpl.java
  28. 0 20
      mp-service/src/main/java/com/qs/mp/admin/service/impl/BoxAwardsServiceImpl.java
  29. 21 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsPrizeServiceImpl.java
  30. 21 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsServiceImpl.java
  31. 20 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketCategoryServiceImpl.java
  32. 20 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketTagRelServiceImpl.java
  33. 20 0
      mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketTagServiceImpl.java
  34. 3 2
      mp-service/src/main/java/com/qs/mp/channel/domain/Channel.java
  35. 3 1
      mp-service/src/main/java/com/qs/mp/channel/domain/ChannelCart.java
  36. 0 6
      mp-service/src/main/java/com/qs/mp/channel/domain/ChannelCommission.java
  37. 0 6
      mp-service/src/main/java/com/qs/mp/channel/domain/ChannelUserRel.java
  38. 24 0
      mp-service/src/main/java/com/qs/mp/channel/domain/param/ChannelCartParam.java
  39. 21 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelCartVO.java
  40. 2 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelVO.java
  41. 6 1
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelCartMapper.java
  42. 31 0
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelMapper.java
  43. 9 0
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelUserRelMapper.java
  44. 19 0
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelCartService.java
  45. 1 9
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelService.java
  46. 50 0
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelCartServiceImpl.java
  47. 16 11
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java
  48. 15 0
      mp-service/src/main/java/com/qs/mp/common/domain/param/BatchLongIdsParam.java
  49. 3 3
      mp-service/src/main/resources/mapper/admin/TicketAwardsMapper.xml
  50. 3 3
      mp-service/src/main/resources/mapper/admin/TicketAwardsPrizeMapper.xml
  51. 4 2
      mp-service/src/main/resources/mapper/admin/TicketBoxMapper.xml
  52. 20 0
      mp-service/src/main/resources/mapper/admin/TicketCategoryMapper.xml
  53. 19 0
      mp-service/src/main/resources/mapper/admin/TicketTagMapper.xml
  54. 19 0
      mp-service/src/main/resources/mapper/admin/TicketTagRelMapper.xml
  55. 7 0
      mp-service/src/main/resources/mapper/channel/ChannelCartMapper.xml
  56. 2 3
      mp-service/src/main/resources/mapper/channel/ChannelCommissionMapper.xml
  57. 54 1
      mp-service/src/main/resources/mapper/channel/ChannelMapper.xml
  58. 12 3
      mp-service/src/main/resources/mapper/channel/ChannelUserRelMapper.xml

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

@@ -48,7 +48,7 @@ public class ChannelAddrController {
    */
   @PostMapping("/address/list")
   @ApiOperation(value = "渠道地址列表" , notes = "获取渠道的所有地址信息")
-  public AjaxResult list() {
+  public AjaxResult list(@RequestBody AddrParam addrParam) {
     Long channelId = SecurityUtils.getLoginUser().getChannelId();
     List<ChannelAddr> channelAddrs = channelAddrService.list(
         new LambdaQueryWrapper<ChannelAddr>().eq(ChannelAddr::getChannelId, channelId)

+ 94 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelCartController.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
+ *
+ * https://www.mall4j.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.qs.mp.web.controller.api.channel;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.domain.param.TicketBoxListVO;
+import com.qs.mp.admin.domain.param.TicketBoxParam;
+import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.channel.domain.ChannelCart;
+import com.qs.mp.channel.domain.param.ChannelCartParam;
+import com.qs.mp.channel.domain.vo.ChannelCartVO;
+import com.qs.mp.channel.service.IChannelCartService;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.domain.param.BatchLongIdsParam;
+import com.qs.mp.common.enums.TicketBoxStatusEnum;
+import com.qs.mp.common.utils.StringUtils;
+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 lombok.AllArgsConstructor;
+import ma.glasnost.orika.MapperFacade;
+import org.springframework.beans.factory.annotation.Autowired;
+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/channel/mall")
+@Api(tags = "渠道盲票商城接口")
+@AllArgsConstructor
+public class ChannelCartController extends BaseApiController {
+
+
+  @Autowired
+  private IChannelCartService channelCartService;
+
+  @Autowired
+  private MapperFacade mapperFacade;
+
+  /**
+   * 购物车列表
+   */
+  @PostMapping("/cart/list")
+  @ApiOperation(value = "购物车列表" , notes = "获取所有购物车盲票信息")
+  public AjaxResult list(@RequestBody ChannelCart param) {
+    Long channelId = SecurityUtils.getLoginUser().getChannelId();
+    startPage();
+    List<ChannelCartVO> channelCartVOS = channelCartService.listCartVO(
+        new LambdaQueryWrapper<ChannelCart>().eq(ChannelCart::getChannelId, channelId)
+            .orderByDesc(ChannelCart::getUpdatedTime));
+    return AjaxResult.success(channelCartVOS);
+  }
+
+
+  /**
+   * 添加/修改购物车数量
+   */
+  @PostMapping("/cart/add")
+  @ApiOperation(value = "加购物车" , notes = "渠道经销商加购物车")
+  public AjaxResult add(@RequestBody ChannelCartParam param) {
+    boolean rtn = channelCartService.addToCart(param);
+    if (!rtn) {
+      return AjaxResult.success("操作失败");
+    }
+    return AjaxResult.error("操作成功");
+  }
+
+  /**
+   * 删除购物清单项
+   */
+  @PostMapping("/cart/remove")
+  @ApiOperation(value = "删除购物清单" , notes = "购物车里点删除")
+  public AjaxResult remove(@RequestBody BatchLongIdsParam param) {
+    boolean rtn = channelCartService.removeByIds(param.getIds());
+    if (!rtn) {
+      return AjaxResult.success("操作失败");
+    }
+    return AjaxResult.error("操作成功");
+  }
+
+}

+ 9 - 3
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelController.java

@@ -18,6 +18,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import ma.glasnost.orika.MapperFacade;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -59,8 +60,14 @@ public class ChannelController extends BaseApiController {
 	 */
 	@PostMapping("subchannel/list")
 	public TableDataInfo list(@RequestBody Channel channel) {
-		startPage();
-		List<Channel> list = channelService.list(new LambdaQueryWrapper<Channel>());
+		Long channelId = SecurityUtils.getLoginUser().getChannelId();
+		List<ChannelVO> list = new ArrayList<ChannelVO>();
+		if(null != channelId) {
+			channel.setParentId(channelId);
+			startPage();
+			// List<Channel> list = channelService.list(new LambdaQueryWrapper<Channel>());
+			list = channelService.selectChannelVoList(channel);
+		}
 		return getDataTable(list);
 	}
 
@@ -75,7 +82,6 @@ public class ChannelController extends BaseApiController {
 		if (null == channel || null == channel.getChannelId()) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
-
 		Long channelId = channel.getChannelId();
 		ChannelVO channelVO = new ChannelVO();
 		Channel queryChannel = channelService.getById(channelId);

+ 84 - 0
mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelTicketController.java

@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
+ *
+ * https://www.mall4j.com/
+ *
+ * 未经允许,不可做商业用途!
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.qs.mp.web.controller.api.channel;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.domain.param.TicketBoxListVO;
+import com.qs.mp.admin.domain.param.TicketBoxParam;
+import com.qs.mp.admin.service.ITicketBoxService;
+import com.qs.mp.channel.domain.ChannelAddr;
+import com.qs.mp.channel.domain.param.AddrParam;
+import com.qs.mp.channel.service.IChannelAddrService;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.enums.TicketBoxStatusEnum;
+import com.qs.mp.common.utils.StringUtils;
+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.ArrayList;
+import java.util.Date;
+import java.util.List;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import ma.glasnost.orika.MapperFacade;
+import org.springframework.beans.factory.annotation.Autowired;
+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/channel/mall")
+@Api(tags = "渠道盲票商城接口")
+@AllArgsConstructor
+public class ChannelTicketController extends BaseApiController {
+
+
+  @Autowired
+  private ITicketBoxService ticketBoxService;
+
+  @Autowired
+  private MapperFacade mapperFacade;
+
+  /**
+   * 盲票进货列表
+   */
+  @PostMapping("/ticket/list")
+  @ApiOperation(value = "盲票组列表" , notes = "获取所有盲票信息")
+  public AjaxResult list(@RequestBody TicketBoxParam param) {
+    // TODO 根据标签过滤
+    startPage();
+    List<TicketBox> ticketBoxes = ticketBoxService.list(
+        new LambdaQueryWrapper<TicketBox>().eq(TicketBox::getType, param.getType())
+            .eq(null != param.getCategoryId() && 0 != param.getCategoryId(), TicketBox::getCategoryId, param.getCategoryId())
+            .eq(TicketBox::getStatus, TicketBoxStatusEnum.PUT_ON));
+    List<TicketBoxListVO> ticketBoxListVOList = mapperFacade.mapAsList(ticketBoxes, TicketBoxListVO.class);
+    return AjaxResult.success(ticketBoxListVOList);
+  }
+
+
+  /**
+   * 查看盲票详情
+   */
+  @PostMapping("/ticket/detail")
+  @ApiOperation(value = "查看盲票详情" , notes = "根据盲票组ID,获取盲票信息")
+  public AjaxResult getInfo(@RequestBody TicketBoxParam param) {
+    if (StringUtils.isBlank(param.getBoxId())) {
+      return AjaxResult.error("参数异常,盲票组ID缺失");
+    }
+    TicketBox ticketBox = ticketBoxService.getById(param.getBoxId());
+    return AjaxResult.success(ticketBox);
+  }
+
+}

+ 29 - 0
mp-common/src/main/java/com/qs/mp/common/enums/SiteTypeEnum.java

@@ -0,0 +1,29 @@
+package com.qs.mp.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+
+/**
+ *
+ * 经销商门店类型
+ *
+ */
+public enum SiteTypeEnum implements IEnum<Integer> {
+
+  STREET_STORE(1, "临街门店"),
+  ENTERTAINMENT(2, "娱乐场所"),
+  CINEMA(3, "电影院"),
+  CHAIN_STORE(4, "品牌连锁店");
+
+  private final int value;
+  private final String desc;
+
+  SiteTypeEnum(final int value, final String desc) {
+    this.value = value;
+    this.desc = desc;
+  }
+
+  @Override
+  public Integer getValue() {
+    return value;
+  }
+}

+ 27 - 0
mp-common/src/main/java/com/qs/mp/common/enums/TicketBoxStatusEnum.java

@@ -0,0 +1,27 @@
+package com.qs.mp.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+
+/**
+ *
+ * 盲票组上下架状态
+ *
+ */
+public enum TicketBoxStatusEnum implements IEnum<String> {
+
+  PUT_ON("on", "上架"),
+  PUT_OFF("off", "下架");
+
+  private final String value;
+  private final String desc;
+
+  TicketBoxStatusEnum(final String value, final String desc) {
+    this.value = value;
+    this.desc = desc;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+}

+ 27 - 0
mp-common/src/main/java/com/qs/mp/common/enums/TicketTypeEnum.java

@@ -0,0 +1,27 @@
+package com.qs.mp.common.enums;
+
+import com.baomidou.mybatisplus.annotation.IEnum;
+
+/**
+ *
+ * 盲票实体形式
+ *
+ */
+public enum TicketTypeEnum implements IEnum<String> {
+
+  ONLINE("online", "线上票"),
+  OFFLINE("offline", "线下票");
+
+  private final String value;
+  private final String desc;
+
+  TicketTypeEnum(final String value, final String desc) {
+    this.value = value;
+    this.desc = desc;
+  }
+
+  @Override
+  public String getValue() {
+    return value;
+  }
+}

+ 1 - 1
mp-generator/src/main/java/com/qs/mp/generator/DbGenerator.java

@@ -49,7 +49,7 @@ public class DbGenerator {
      */
     private static final boolean REST_CONTROLLER_STYLE = true;
 
-    public static final String JDBC_MYSQL_URL = "jdbc:mysql://113.31.162.168:3306/mpdb_test?useUnicode=true&useSSL=false&characterEncoding=utf8";
+    public static final String JDBC_MYSQL_URL = "jdbc:mysql://110.40.236.236:3306/mpdb_test?useUnicode=true&useSSL=false&characterEncoding=utf8";
 
     public static final String JDBC_DRIVER_NAME = "com.mysql.cj.jdbc.Driver";
 

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/domain/BoxAwards.java → mp-service/src/main/java/com/qs/mp/admin/domain/TicketAwards.java

@@ -13,9 +13,9 @@ import lombok.Data;
  * @auther quanshu
  * @create 2022-03-02 12:25:55
  */
-@TableName("mp_box_awards")
+@TableName("mp_ticket_awards")
 @Data
-public class BoxAwards implements Serializable {
+public class TicketAwards implements Serializable {
 
   private static final long serialVersionUID = 1L;
 

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/domain/BoxAwardsPrize.java → mp-service/src/main/java/com/qs/mp/admin/domain/TicketAwardsPrize.java

@@ -13,9 +13,9 @@ import lombok.Data;
  * @auther quanshu
  * @create 2022-03-02 12:25:55
  */
-@TableName("mp_box_awards_prize")
+@TableName("mp_ticket_awards_prize")
 @Data
-public class BoxAwardsPrize implements Serializable {
+public class TicketAwardsPrize implements Serializable {
 
   private static final long serialVersionUID = 1L;
 

+ 26 - 5
mp-service/src/main/java/com/qs/mp/admin/domain/TicketBox.java

@@ -1,9 +1,15 @@
 package com.qs.mp.admin.domain;
 
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableLogic;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.qs.mp.common.enums.TicketBoxStatusEnum;
+import com.qs.mp.common.enums.TicketTypeEnum;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -41,8 +47,8 @@ public class TicketBox implements Serializable {
   /**
    * 盲票类别
    */
-  @TableField("category")
-  private String category;
+  @TableField("category_id")
+  private Long categoryId;
 
   /**
    * 详细描述
@@ -54,7 +60,7 @@ public class TicketBox implements Serializable {
    * 盲票形式(线上或线下)
    */
   @TableField("type")
-  private String type;
+  private TicketTypeEnum type;
 
   /**
    * 盲票张数
@@ -117,16 +123,30 @@ public class TicketBox implements Serializable {
   private BigDecimal saleCommRate;
 
   /**
-   * 分佣的销售额百分比
+   * 规格属性
    */
   @TableField("properties")
   private String properties;
 
+  /**
+   * 上架时间
+   */
+  @TableField("puton_time")
+  private Date putonTime;
+
   /**
    * 状态,上架/下架
    */
   @TableField("status")
-  private String status;
+  @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+  private TicketBoxStatusEnum status;
+
+  /**
+   * 逻辑删除标识
+   */
+  @TableField("is_deleted")
+  @TableLogic
+  private Integer isDeleted;
 
   /**
    * 创建时间
@@ -138,6 +158,7 @@ public class TicketBox implements Serializable {
    * 更新时间
    */
   @TableField("updated_time")
+  @Version
   private Date updatedTime;
 
 

+ 59 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/TicketCategory.java

@@ -0,0 +1,59 @@
+package com.qs.mp.admin.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @describe 盲票组分类表实体类
+ * @auther quanshu
+ * @create 2022-03-03 14:38:49
+ */
+@TableName("mp_ticket_category")
+@Data
+public class TicketCategory implements Serializable {
+
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * 主键
+   */
+  @TableId(value = "category_id" , type = IdType.AUTO)
+  private Long categoryId;
+
+  /**
+   * 分类名称
+   */
+  @TableField("name")
+  private String name;
+
+  /**
+   * 图片地址
+   */
+  @TableField("pic_url")
+  private String picUrl;
+
+  /**
+   * 顺序
+   */
+  @TableField("sort")
+  private Integer sort;
+
+  /**
+   * 创建时间
+   */
+  @TableField("created_time")
+  private Date createdTime;
+
+  /**
+   * 更新时间
+   */
+  @TableField("updated_time")
+  private Date updatedTime;
+
+
+}

+ 53 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/TicketTag.java

@@ -0,0 +1,53 @@
+package com.qs.mp.admin.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @describe 盲票组标签实体类
+ * @auther quanshu
+ * @create 2022-03-03 14:38:49
+ */
+@TableName("mp_ticket_tag")
+@Data
+public class TicketTag implements Serializable {
+
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * 主键
+   */
+  @TableId(value = "tag_id" , type = IdType.AUTO)
+  private Long tagId;
+
+  /**
+   * 标签名
+   */
+  @TableField("name")
+  private String name;
+
+  /**
+   * 顺序
+   */
+  @TableField("sort")
+  private Integer sort;
+
+  /**
+   * 创建时间
+   */
+  @TableField("created_time")
+  private Date createdTime;
+
+  /**
+   * 更新时间
+   */
+  @TableField("updated_time")
+  private Date updatedTime;
+
+
+}

+ 53 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/TicketTagRel.java

@@ -0,0 +1,53 @@
+package com.qs.mp.admin.domain;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.io.Serializable;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @describe 盲票组和标签的关系实体类
+ * @auther quanshu
+ * @create 2022-03-03 14:38:49
+ */
+@TableName("mp_ticket_tag_rel")
+@Data
+public class TicketTagRel implements Serializable {
+
+  private static final long serialVersionUID = 1L;
+
+  /**
+   * 主键
+   */
+  @TableId(value = "id" , type = IdType.AUTO)
+  private Long id;
+
+  /**
+   * 盲票组ID
+   */
+  @TableField("box_id")
+  private String boxId;
+
+  /**
+   * 标签ID
+   */
+  @TableField("tag_id")
+  private String tagId;
+
+  /**
+   * 创建时间
+   */
+  @TableField("created_time")
+  private Date createdTime;
+
+  /**
+   * 更新时间
+   */
+  @TableField("updated_time")
+  private Date updatedTime;
+
+
+}

+ 91 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketBoxListVO.java

@@ -0,0 +1,91 @@
+package com.qs.mp.admin.domain.param;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.qs.mp.admin.domain.TicketBox;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+
+/**
+ * @author zhongcp
+ * @Date 2022/3/3
+ */
+@Data
+public class TicketBoxListVO {
+  /**
+   * 主键
+   */
+  private String boxId;
+
+  /**
+   * 盲票组标题
+   */
+  private String title;
+
+  /**
+   * 主图url
+   */
+  private String picUrl;
+
+  /**
+   * 盲票张数
+   */
+  private Integer quantity;
+
+  /**
+   * 已售盲票张数
+   */
+  private Integer saleQty;
+
+  /**
+   * 盲票包原价
+   */
+  private Integer boxPrice;
+
+  /**
+   * 盲票包售价
+   */
+  private Integer boxSalePrice;
+
+  /**
+   * 每包盲票张数
+   */
+  private Integer pkgUnit;
+
+  /**
+   * 盲票包数
+   */
+  private Integer pkgQty;
+
+  /**
+   * 已销售包数
+   */
+  private Integer salePkgQty;
+
+  /**
+   * 盲票票面价格
+   */
+  private Integer facePrice;
+
+  /**
+   * 盲票销售价格
+   */
+  private Integer salePrice;
+
+  /**
+   * 分佣的销售额百分比
+   */
+  private BigDecimal saleCommRate;
+
+  /**
+   * 规格属性
+   */
+  private String properties;
+
+  /**
+   * 上架时间
+   */
+  private Date putonTime;
+}

+ 27 - 0
mp-service/src/main/java/com/qs/mp/admin/domain/param/TicketBoxParam.java

@@ -0,0 +1,27 @@
+package com.qs.mp.admin.domain.param;
+
+import com.qs.mp.common.enums.TicketTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+@ApiModel(value= "盲票组参数")
+@Data
+public class TicketBoxParam {
+
+	@ApiModelProperty(value = "盲票组ID",required=false)
+	private String boxId;
+
+	@ApiModelProperty(value = "分类ID",required=false)
+	private Long categoryId;
+
+	@ApiModelProperty(value = "标签ID",required=false)
+	private Long tagId;
+
+	@NotNull(message = "盲票类型不能为空")
+	@ApiModelProperty(value = "盲票类型",required=true)
+	private TicketTypeEnum type;
+
+}

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/mapper/BoxAwardsMapper.java → mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsMapper.java

@@ -1,6 +1,6 @@
 package com.qs.mp.admin.mapper;
 
-import com.qs.mp.admin.domain.BoxAwards;
+import com.qs.mp.admin.domain.TicketAwards;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -8,6 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @create 2022-03-02 12:25:55
  * @describe 盲票盒奖项设置mapper类
  */
-public interface BoxAwardsMapper extends BaseMapper<BoxAwards> {
+public interface TicketAwardsMapper extends BaseMapper<TicketAwards> {
 
 }

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/mapper/BoxAwardsPrizeMapper.java → mp-service/src/main/java/com/qs/mp/admin/mapper/TicketAwardsPrizeMapper.java

@@ -1,6 +1,6 @@
 package com.qs.mp.admin.mapper;
 
-import com.qs.mp.admin.domain.BoxAwardsPrize;
+import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -8,6 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @create 2022-03-02 12:25:55
  * @describe 盲票盒奖项对应的奖品设置mapper类
  */
-public interface BoxAwardsPrizeMapper extends BaseMapper<BoxAwardsPrize> {
+public interface TicketAwardsPrizeMapper extends BaseMapper<TicketAwardsPrize> {
 
 }

+ 13 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketCategoryMapper.java

@@ -0,0 +1,13 @@
+package com.qs.mp.admin.mapper;
+
+import com.qs.mp.admin.domain.TicketCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @auther quanshu
+ * @create 2022-03-03 14:38:49
+ * @describe 盲票组分类表mapper类
+ */
+public interface TicketCategoryMapper extends BaseMapper<TicketCategory> {
+
+}

+ 13 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketTagMapper.java

@@ -0,0 +1,13 @@
+package com.qs.mp.admin.mapper;
+
+import com.qs.mp.admin.domain.TicketTag;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @auther quanshu
+ * @create 2022-03-03 14:38:49
+ * @describe 盲票组标签mapper类
+ */
+public interface TicketTagMapper extends BaseMapper<TicketTag> {
+
+}

+ 13 - 0
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketTagRelMapper.java

@@ -0,0 +1,13 @@
+package com.qs.mp.admin.mapper;
+
+import com.qs.mp.admin.domain.TicketTagRel;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * @auther quanshu
+ * @create 2022-03-03 14:38:49
+ * @describe 盲票组和标签的关系mapper类
+ */
+public interface TicketTagRelMapper extends BaseMapper<TicketTagRel> {
+
+}

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/service/IBoxAwardsPrizeService.java → mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsPrizeService.java

@@ -1,6 +1,6 @@
 package com.qs.mp.admin.service;
 
-import com.qs.mp.admin.domain.BoxAwardsPrize;
+import com.qs.mp.admin.domain.TicketAwardsPrize;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @author quanshu
  * @since 2022-03-02
  */
-public interface IBoxAwardsPrizeService extends IService<BoxAwardsPrize> {
+public interface ITicketAwardsPrizeService extends IService<TicketAwardsPrize> {
 
 }

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/service/IBoxAwardsService.java → mp-service/src/main/java/com/qs/mp/admin/service/ITicketAwardsService.java

@@ -1,6 +1,6 @@
 package com.qs.mp.admin.service;
 
-import com.qs.mp.admin.domain.BoxAwards;
+import com.qs.mp.admin.domain.TicketAwards;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 /**
@@ -11,6 +11,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @author quanshu
  * @since 2022-03-02
  */
-public interface IBoxAwardsService extends IService<BoxAwards> {
+public interface ITicketAwardsService extends IService<TicketAwards> {
 
 }

+ 16 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketCategoryService.java

@@ -0,0 +1,16 @@
+package com.qs.mp.admin.service;
+
+import com.qs.mp.admin.domain.TicketCategory;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 盲票组分类表 服务类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-03
+ */
+public interface ITicketCategoryService extends IService<TicketCategory> {
+
+}

+ 16 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketTagRelService.java

@@ -0,0 +1,16 @@
+package com.qs.mp.admin.service;
+
+import com.qs.mp.admin.domain.TicketTagRel;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 盲票组和标签的关系 服务类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-03
+ */
+public interface ITicketTagRelService extends IService<TicketTagRel> {
+
+}

+ 16 - 0
mp-service/src/main/java/com/qs/mp/admin/service/ITicketTagService.java

@@ -0,0 +1,16 @@
+package com.qs.mp.admin.service;
+
+import com.qs.mp.admin.domain.TicketTag;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 盲票组标签 服务类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-03
+ */
+public interface ITicketTagService extends IService<TicketTag> {
+
+}

+ 0 - 20
mp-service/src/main/java/com/qs/mp/admin/service/impl/BoxAwardsPrizeServiceImpl.java

@@ -1,20 +0,0 @@
-package com.qs.mp.admin.service.impl;
-
-import com.qs.mp.admin.domain.BoxAwardsPrize;
-import com.qs.mp.admin.mapper.BoxAwardsPrizeMapper;
-import com.qs.mp.admin.service.IBoxAwardsPrizeService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 盲票盒奖项对应的奖品设置 服务实现类
- * </p>
- *
- * @author quanshu
- * @since 2022-03-02
- */
-@Service
-public class BoxAwardsPrizeServiceImpl extends ServiceImpl<BoxAwardsPrizeMapper, BoxAwardsPrize> implements IBoxAwardsPrizeService {
-
-}

+ 0 - 20
mp-service/src/main/java/com/qs/mp/admin/service/impl/BoxAwardsServiceImpl.java

@@ -1,20 +0,0 @@
-package com.qs.mp.admin.service.impl;
-
-import com.qs.mp.admin.domain.BoxAwards;
-import com.qs.mp.admin.mapper.BoxAwardsMapper;
-import com.qs.mp.admin.service.IBoxAwardsService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.springframework.stereotype.Service;
-
-/**
- * <p>
- * 盲票盒奖项设置 服务实现类
- * </p>
- *
- * @author quanshu
- * @since 2022-03-02
- */
-@Service
-public class BoxAwardsServiceImpl extends ServiceImpl<BoxAwardsMapper, BoxAwards> implements IBoxAwardsService {
-
-}

+ 21 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsPrizeServiceImpl.java

@@ -0,0 +1,21 @@
+package com.qs.mp.admin.service.impl;
+
+import com.qs.mp.admin.domain.TicketAwardsPrize;
+import com.qs.mp.admin.mapper.TicketAwardsPrizeMapper;
+import com.qs.mp.admin.service.ITicketAwardsPrizeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 盲票盒奖项对应的奖品设置 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-02
+ */
+@Service
+public class TicketAwardsPrizeServiceImpl extends ServiceImpl<TicketAwardsPrizeMapper, TicketAwardsPrize> implements
+    ITicketAwardsPrizeService {
+
+}

+ 21 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketAwardsServiceImpl.java

@@ -0,0 +1,21 @@
+package com.qs.mp.admin.service.impl;
+
+import com.qs.mp.admin.domain.TicketAwards;
+import com.qs.mp.admin.mapper.TicketAwardsMapper;
+import com.qs.mp.admin.service.ITicketAwardsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 盲票盒奖项设置 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-02
+ */
+@Service
+public class TicketAwardsServiceImpl extends ServiceImpl<TicketAwardsMapper, TicketAwards> implements
+    ITicketAwardsService {
+
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketCategoryServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qs.mp.admin.service.impl;
+
+import com.qs.mp.admin.domain.TicketCategory;
+import com.qs.mp.admin.mapper.TicketCategoryMapper;
+import com.qs.mp.admin.service.ITicketCategoryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 盲票组分类表 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-03
+ */
+@Service
+public class TicketCategoryServiceImpl extends ServiceImpl<TicketCategoryMapper, TicketCategory> implements ITicketCategoryService {
+
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketTagRelServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qs.mp.admin.service.impl;
+
+import com.qs.mp.admin.domain.TicketTagRel;
+import com.qs.mp.admin.mapper.TicketTagRelMapper;
+import com.qs.mp.admin.service.ITicketTagRelService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 盲票组和标签的关系 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-03
+ */
+@Service
+public class TicketTagRelServiceImpl extends ServiceImpl<TicketTagRelMapper, TicketTagRel> implements ITicketTagRelService {
+
+}

+ 20 - 0
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketTagServiceImpl.java

@@ -0,0 +1,20 @@
+package com.qs.mp.admin.service.impl;
+
+import com.qs.mp.admin.domain.TicketTag;
+import com.qs.mp.admin.mapper.TicketTagMapper;
+import com.qs.mp.admin.service.ITicketTagService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 盲票组标签 服务实现类
+ * </p>
+ *
+ * @author quanshu
+ * @since 2022-03-03
+ */
+@Service
+public class TicketTagServiceImpl extends ServiceImpl<TicketTagMapper, TicketTag> implements ITicketTagService {
+
+}

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

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
 import com.qs.mp.common.enums.ChannelVerifyStatusEnum;
+import com.qs.mp.common.enums.SiteTypeEnum;
 import java.io.Serializable;
 import java.math.BigDecimal;
 import java.util.Date;
@@ -55,10 +56,10 @@ public class Channel implements Serializable {
   private Integer level;
 
   /**
-   * 经销商类型
+   * 经销商类型
    */
   @TableField("site_type")
-  private Integer siteType;
+  private SiteTypeEnum siteType;
 
   /**
    * 分佣百分比

+ 3 - 1
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelCart.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
 import java.io.Serializable;
 import java.util.Date;
 import lombok.Data;
@@ -35,7 +36,7 @@ public class ChannelCart implements Serializable {
    * 盲票组ID
    */
   @TableField("box_id")
-  private Integer boxId;
+  private String boxId;
 
   /**
    * 订购包数
@@ -53,6 +54,7 @@ public class ChannelCart implements Serializable {
    * 更新时间
    */
   @TableField("updated_time")
+  @Version
   private Date updatedTime;
 
 

+ 0 - 6
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelCommission.java

@@ -32,12 +32,6 @@ public class ChannelCommission implements Serializable {
   @TableField("channel_id")
   private Long channelId;
 
-  /**
-   * 渠道编号
-   */
-  @TableField("channel_no")
-  private String channelNo;
-
   /**
    * 用户订单ID
    */

+ 0 - 6
mp-service/src/main/java/com/qs/mp/channel/domain/ChannelUserRel.java

@@ -31,12 +31,6 @@ public class ChannelUserRel implements Serializable {
   @TableField("channel_id")
   private Long channelId;
 
-  /**
-   * 渠道编号
-   */
-  @TableField("channel_no")
-  private String channelNo;
-
   /**
    * 用户ID
    */

+ 24 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/param/ChannelCartParam.java

@@ -0,0 +1,24 @@
+package com.qs.mp.channel.domain.param;
+
+import com.qs.mp.common.enums.TicketTypeEnum;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+@ApiModel(value= "经销商购物车参数")
+@Data
+public class ChannelCartParam {
+
+	@NotNull(message = "盲票组ID不能为空")
+	@ApiModelProperty(value = "盲票组ID",required=true)
+	private String boxId;
+
+	@ApiModelProperty(value = "购物清单ID",required=false)
+	private Long cartId;
+
+	@NotNull(message = "订购数量不能为空")
+	@ApiModelProperty(value = "订购数量,负数代表减购",required=true)
+	private Integer orderNum;
+
+}

+ 21 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelCartVO.java

@@ -0,0 +1,21 @@
+package com.qs.mp.channel.domain.vo;
+
+import com.qs.mp.admin.domain.param.TicketBoxListVO;
+import lombok.Data;
+
+/**
+ * @author zhongcp
+ * @Date 2022/3/3
+ */
+@Data
+public class ChannelCartVO extends TicketBoxListVO {
+
+  /**
+   * 购物车清单ID
+   */
+  private Long cartId;
+  /**
+   * 订购数量
+   */
+  private Integer orderNum;
+}

+ 2 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelVO.java

@@ -13,4 +13,6 @@ public class ChannelVO extends Channel {
   long userCnt; // 经销用户数
 
   String parentName; // 上级渠道名称
+  
+  ChannelOperDataVO operData;
 }

+ 6 - 1
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelCartMapper.java

@@ -1,7 +1,12 @@
 package com.qs.mp.channel.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.channel.domain.ChannelCart;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qs.mp.channel.domain.vo.ChannelCartVO;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @auther quanshu
@@ -9,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @describe 经销商购物车mapper类
  */
 public interface ChannelCartMapper extends BaseMapper<ChannelCart> {
-
+  List<ChannelCartVO> listCartVO(@Param(Constants.WRAPPER) Wrapper<ChannelCart> queryWrapper);
 }

+ 31 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelMapper.java

@@ -1,7 +1,15 @@
 package com.qs.mp.channel.mapper;
 
 import com.qs.mp.channel.domain.Channel;
+import com.qs.mp.channel.domain.vo.ChannelVO;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 
 /**
  * @auther quanshu
@@ -10,4 +18,27 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ChannelMapper extends BaseMapper<Channel> {
 
+	/**
+	 * 获取我的下级渠道列表信息,支持翻页
+	 * 
+	 * @param channel
+	 * @return
+	 */
+	public List<ChannelVO> selectChannelVoList(@Param(Constants.WRAPPER) Wrapper<Channel> wrapper);
+	
+	/**
+	 * 获取我的经销商列表信息,支持翻页
+	 * 
+	 * @param channel
+	 * @return
+	 */
+	public List<ChannelVO> selectSiteVoList(@Param(Constants.WRAPPER) Wrapper<Channel> wrapper);
+	
+	
+    /**
+     * 查询渠道及其子渠道经销商总数
+     * @param channelNo
+     * @return
+     */
+    int getChannelSiteCnt(@Param("channelNo") String channelNo);
 }

+ 9 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelUserRelMapper.java

@@ -1,6 +1,9 @@
 package com.qs.mp.channel.mapper;
 
 import com.qs.mp.channel.domain.ChannelUserRel;
+
+import org.apache.ibatis.annotations.Param;
+
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
 /**
@@ -10,4 +13,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface ChannelUserRelMapper extends BaseMapper<ChannelUserRel> {
 
+    /**
+     * 查询渠道及其子渠道经销商用户数总和
+     * @param channelNo
+     * @return
+     */
+    int getChannelUserCnt(@Param("channelNo") String channelNo);
 }

+ 19 - 0
mp-service/src/main/java/com/qs/mp/channel/service/IChannelCartService.java

@@ -1,7 +1,13 @@
 package com.qs.mp.channel.service;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.qs.mp.channel.domain.ChannelCart;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.qs.mp.channel.domain.param.ChannelCartParam;
+import com.qs.mp.channel.domain.vo.ChannelCartVO;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +19,17 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IChannelCartService extends IService<ChannelCart> {
 
+  /**
+   * 购物车列表
+   * @param queryWrapper
+   * @return
+   */
+  List<ChannelCartVO> listCartVO(Wrapper<ChannelCart> queryWrapper);
+
+  /**
+   * 加购,包含减购
+   * @param param
+   * @return
+   */
+  boolean addToCart(ChannelCartParam param);
 }

+ 1 - 9
mp-service/src/main/java/com/qs/mp/channel/service/IChannelService.java

@@ -42,15 +42,7 @@ public interface IChannelService extends IService<Channel> {
 	 * @param channel
 	 * @return
 	 */
-	public List<ChannelVO> selectVoList(Channel channel);
-	
-	/**
-	 * 获取指定渠道信息
-	 * 
-	 * @param channel
-	 * @return
-	 */
-	public ChannelVO getVoById(Long channelId);
+	public List<ChannelVO> selectChannelVoList(Channel channel);
 
 	/**
 	 * 根据用户ID查询渠道

+ 50 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelCartServiceImpl.java

@@ -1,9 +1,17 @@
 package com.qs.mp.channel.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.qs.mp.channel.domain.ChannelCart;
+import com.qs.mp.channel.domain.param.ChannelCartParam;
+import com.qs.mp.channel.domain.vo.ChannelCartVO;
 import com.qs.mp.channel.mapper.ChannelCartMapper;
 import com.qs.mp.channel.service.IChannelCartService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.utils.SecurityUtils;
+import java.util.List;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +25,46 @@ import org.springframework.stereotype.Service;
 @Service
 public class ChannelCartServiceImpl extends ServiceImpl<ChannelCartMapper, ChannelCart> implements IChannelCartService {
 
+  @Override
+  public List<ChannelCartVO> listCartVO(Wrapper<ChannelCart> queryWrapper) {
+    return getBaseMapper().listCartVO(queryWrapper);
+  }
+
+  @Override
+  public boolean addToCart(ChannelCartParam param) {
+    Long channelId = SecurityUtils.getLoginUser().getChannelId();
+    if (null != param.getCartId() && 0 != param.getCartId()) {
+      // 在购物车里增减
+      ChannelCart channelCart = getById(param.getCartId());
+      if (null == channelCart) {
+        throw new ServiceException("购物清单不存在,请退出后再试");
+      }
+      return refreshCart(param, channelCart);
+    }
+
+    // 从盲票销售列表页面点加购
+    ChannelCart channelCart = getOne(new LambdaQueryWrapper<ChannelCart>()
+        .eq(ChannelCart::getBoxId, param.getBoxId()).eq(ChannelCart::getChannelId, channelId));
+    if (null != channelCart) {
+      // 购物车里已存在,只更新订购数量
+      return refreshCart(param, channelCart);
+    }
+
+    channelCart = new ChannelCart();
+    channelCart.setChannelId(channelId);
+    channelCart.setBoxId(param.getBoxId());
+    channelCart.setOrderNum(param.getOrderNum());
+    save(channelCart);
+    return false;
+  }
+
+  private boolean refreshCart(ChannelCartParam param, ChannelCart channelCart) {
+    int orderNum = channelCart.getOrderNum() + param.getOrderNum();
+    if (orderNum <= 0) {
+      throw new ServiceException("该宝贝不能再减少了");
+    }
+    channelCart.setOrderNum(orderNum);
+    boolean rtn = updateById(channelCart);
+    return rtn;
+  }
 }

+ 16 - 11
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qs.mp.channel.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.vo.ChannelVO;
 import com.qs.mp.channel.mapper.ChannelMapper;
@@ -41,7 +42,11 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 	public void saveChannel(Channel channel) throws Exception {
 		// 1、校验名称是否重复、手机号是否存在(渠道表)
 		
-
+		// 2.校验佣金比例,不能高于其父渠道的佣金比例
+		
+		// 3.插入数据
+		
+		// 4.发送账号创建成功短信
 	}
 	
 
@@ -49,19 +54,19 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 	public void updateChannel(Channel channel) throws Exception {
 		// 1、校验修改子渠道是否为当前用户的子渠道
 		Long channelId = SecurityUtils.getLoginUser().getChannelId();
-
-	}
-
-	@Override
-	public List<ChannelVO> selectVoList(Channel channel) {
-
-		return null;
+		
+		// 2.校验名称是否重复、手机号是否存在(渠道表);
+		
+		// 3.校验佣金比例,不能高于其父渠道的佣金比例,不能低于其子渠道的最大佣金比例
+		
+	    // 4.更新入库
 	}
 
 	@Override
-	public ChannelVO getVoById(Long channelId) {
-		// TODO Auto-generated method stub
-		return null;
+	public List<ChannelVO> selectChannelVoList(Channel channel) {
+		QueryWrapper<Channel> queryWrapper = new QueryWrapper<>();
+		queryWrapper.eq("t1.parent_id", channel.getParentId());
+		return getBaseMapper().selectChannelVoList(queryWrapper);
 	}
 
 	@Override

+ 15 - 0
mp-service/src/main/java/com/qs/mp/common/domain/param/BatchLongIdsParam.java

@@ -0,0 +1,15 @@
+package com.qs.mp.common.domain.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import java.util.List;
+import lombok.Data;
+
+/**
+ * @author zhongcp
+ * @Date 2022/3/3
+ */
+@Data
+public class BatchLongIdsParam {
+  @ApiModelProperty(value = "ids")
+  private List<Long> ids;
+}

+ 3 - 3
mp-service/src/main/resources/mapper/admin/BoxAwardsMapper.xml → mp-service/src/main/resources/mapper/admin/TicketAwardsMapper.xml

@@ -1,9 +1,9 @@
 <?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.admin.mapper.BoxAwardsMapper">
+<mapper namespace="com.qs.mp.admin.mapper.TicketAwardsMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.BoxAwards">
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.TicketAwards">
         <id column="awards_id" property="awardsId" />
         <result column="box_id" property="boxId" />
         <result column="name" property="name" />
@@ -20,4 +20,4 @@
         awards_id, box_id, name, sort, quantity, memo, cashed_qty, created_time, updated_time
     </sql>
 
-</mapper>
+</mapper>

+ 3 - 3
mp-service/src/main/resources/mapper/admin/BoxAwardsPrizeMapper.xml → mp-service/src/main/resources/mapper/admin/TicketAwardsPrizeMapper.xml

@@ -1,9 +1,9 @@
 <?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.admin.mapper.BoxAwardsPrizeMapper">
+<mapper namespace="com.qs.mp.admin.mapper.TicketAwardsPrizeMapper">
 
     <!-- 通用查询映射结果 -->
-    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.BoxAwardsPrize">
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.TicketAwardsPrize">
         <id column="id" property="id" />
         <result column="awards_id" property="awardsId" />
         <result column="prize_id" property="prizeId" />
@@ -19,4 +19,4 @@
         id, awards_id, prize_id, prize_type, quantity, cashed_qty, created_time, updated_time
     </sql>
 
-</mapper>
+</mapper>

+ 4 - 2
mp-service/src/main/resources/mapper/admin/TicketBoxMapper.xml

@@ -7,7 +7,7 @@
         <id column="box_id" property="boxId" />
         <result column="title" property="title" />
         <result column="pic_url" property="picUrl" />
-        <result column="category" property="category" />
+        <result column="category_id" property="categoryId" />
         <result column="description" property="description" />
         <result column="type" property="type" />
         <result column="quantity" property="quantity" />
@@ -21,14 +21,16 @@
         <result column="sale_price" property="salePrice" />
         <result column="sale_comm_rate" property="saleCommRate" />
         <result column="properties" property="properties" />
+        <result column="puton_time" property="putonTime" />
         <result column="status" property="status" />
+        <result column="is_deleted" property="isDeleted" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        box_id, title, pic_url, category, description, type, quantity, sale_qty, box_price, box_sale_price, pkg_unit, pkg_qty, sale_pkg_qty, face_price, sale_price, sale_comm_rate, properties, status, created_time, updated_time
+        box_id, title, pic_url, category_id, description, type, quantity, sale_qty, box_price, box_sale_price, pkg_unit, pkg_qty, sale_pkg_qty, face_price, sale_price, sale_comm_rate, properties, puton_time, status, is_deleted, created_time, updated_time
     </sql>
 
 </mapper>

+ 20 - 0
mp-service/src/main/resources/mapper/admin/TicketCategoryMapper.xml

@@ -0,0 +1,20 @@
+<?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.admin.mapper.TicketCategoryMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.TicketCategory">
+        <id column="category_id" property="categoryId" />
+        <result column="name" property="name" />
+        <result column="pic_url" property="picUrl" />
+        <result column="sort" property="sort" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        category_id, name, pic_url, sort, created_time, updated_time
+    </sql>
+
+</mapper>

+ 19 - 0
mp-service/src/main/resources/mapper/admin/TicketTagMapper.xml

@@ -0,0 +1,19 @@
+<?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.admin.mapper.TicketTagMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.TicketTag">
+        <id column="tag_id" property="tagId" />
+        <result column="name" property="name" />
+        <result column="sort" property="sort" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        tag_id, name, sort, created_time, updated_time
+    </sql>
+
+</mapper>

+ 19 - 0
mp-service/src/main/resources/mapper/admin/TicketTagRelMapper.xml

@@ -0,0 +1,19 @@
+<?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.admin.mapper.TicketTagRelMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.qs.mp.admin.domain.TicketTagRel">
+        <id column="id" property="id" />
+        <result column="box_id" property="boxId" />
+        <result column="tag_id" property="tagId" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, box_id, tag_id, created_time, updated_time
+    </sql>
+
+</mapper>

+ 7 - 0
mp-service/src/main/resources/mapper/channel/ChannelCartMapper.xml

@@ -17,4 +17,11 @@
         cart_id, channel_id, box_id, order_num, created_time, updated_time
     </sql>
 
+    <select id="listCartVO" resultType="com.qs.mp.channel.domain.vo.ChannelCartVO">
+        select t1.cart_id, t1.order_num, t2.*
+        from mp_channel_cart t1
+        left join mp_ticket_box t2 on t1.box_id = t2.box_id
+            ${ew.customSqlSegment}
+    </select>
+
 </mapper>

+ 2 - 3
mp-service/src/main/resources/mapper/channel/ChannelCommissionMapper.xml

@@ -6,7 +6,6 @@
     <resultMap id="BaseResultMap" type="com.qs.mp.channel.domain.ChannelCommission">
         <id column="id" property="id" />
         <result column="channel_id" property="channelId" />
-        <result column="channel_no" property="channelNo" />
         <result column="order_id" property="orderId" />
         <result column="ticket_id" property="ticketId" />
         <result column="sale_price" property="salePrice" />
@@ -20,7 +19,7 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, channel_id, channel_no, order_id, ticket_id, sale_price, sale_comm_rate, sale_comm_amt, comm_rate, comm_amt, created_time, updated_time
+        id, channel_id, order_id, ticket_id, sale_price, sale_comm_rate, sale_comm_amt, comm_rate, comm_amt, created_time, updated_time
     </sql>
 
-</mapper>
+</mapper>

+ 54 - 1
mp-service/src/main/resources/mapper/channel/ChannelMapper.xml

@@ -32,9 +32,62 @@
         <result column="updated_time" property="updatedTime" />
     </resultMap>
 
+    <!-- 通用查询VO映射结果 -->
+    <resultMap id="VoResultMap" type="com.qs.mp.channel.domain.vo.ChannelVO">
+        <id column="channel_id" property="channelId" />
+        <result column="channel_no" property="channelNo" />
+        <result column="name" property="name" />
+        <result column="parent_id" property="parentId" />
+        <result column="level" property="level" />
+        <result column="site_type" property="siteType" />
+        <result column="comm_rate" property="commRate" />
+        <result column="province" property="province" />
+        <result column="province_id" property="provinceId" />
+        <result column="city" property="city" />
+        <result column="city_id" property="cityId" />
+        <result column="area" property="area" />
+        <result column="area_id" property="areaId" />
+        <result column="address" property="address" />
+        <result column="contact" property="contact" />
+        <result column="mobile" property="mobile" />
+        <result column="user_id" property="userId" />
+        <result column="money" property="money" />
+        <result column="frozen_money" property="frozenMoney" />
+        <result column="certify_status" property="certifyStatus" />
+        <result column="verify_status" property="verifyStatus" />
+        <result column="biz_license_pic" property="bizLicensePic" />
+        <result column="door_pic" property="doorPic" />
+        <result column="memo" property="memo" />
+        <result column="created_time" property="createdTime" />
+        <result column="updated_time" property="updatedTime" />
+        <result column="parentName" property="parentName" />
+        <association property="siteCnt" javaType="java.lang.Integer" select="getChannelSiteCnt" column="{channelNo=channelNo}" />
+        <association property="userCnt" javaType="java.lang.Integer" select="com.qs.mp.channel.mapper.ChannelUserRelMapper.getChannelUserCnt" column="{channelNo=channelNo}" />
+    </resultMap>
+
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        channel_id, channel_no, name, parent_id, level, site_type, comm_rate, province, province_id, city, city_id, area, area_id, address, contact, mobile, user_id, money, frozen_money, certify_status, verify_status, biz_license, door_pic, memo, created_time, updated_time
+        channel_id, channel_no, name, parent_id, level, site_type, comm_rate, province, province_id, city, city_id, area, area_id, address, contact, mobile, user_id, money, frozen_money, certify_status, verify_status, biz_license_pic, door_pic, memo, created_time, updated_time
     </sql>
 
+    <!-- 查询子渠道信息 -->
+    <select id="selectChannelVoList" resultMap="VoResultMap">
+		select t1.* , t2.siteCnt, t3.userCnt, t4.name parentName
+		from mp_channel t1
+		left join (select parent_id, count(*) as siteCnt from mp_channel where `level` = 0 GROUP BY parent_id ) t2 on t1.channel_id = t2.parent_id
+		left join (select channel_id, count(user_id) as userCnt from mp_channel_user_rel GROUP BY channel_id ) t3 on t1.channel_id = t3.channel_id
+		left join mp_channel t4 on t1.parent_id = t4.channel_id
+		${ew.customSqlSegment}
+		order by a.channel_id desc
+	</select>
+
+	<!-- 查询渠道及其子渠道经销商用户数总和 -->
+    <select id="getChannelSiteCnt" resultType="integer">
+        select count(t1.channel_id) as siteCnt
+		from mp_channel t1
+		left join mp_channel t2 on t1.parent_id = t2.channel_id
+		where t1.`level`= 0 and t1.certify_status = 'y'
+		and t2.channel_no like concat(#{channelNo}, '%')
+    </select>
+
 </mapper>

+ 12 - 3
mp-service/src/main/resources/mapper/channel/ChannelUserRelMapper.xml

@@ -6,7 +6,6 @@
     <resultMap id="BaseResultMap" type="com.qs.mp.channel.domain.ChannelUserRel">
         <id column="id" property="id" />
         <result column="channel_id" property="channelId" />
-        <result column="channel_no" property="channelNo" />
         <result column="user_id" property="userId" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
@@ -14,7 +13,17 @@
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id, channel_id, channel_no, user_id, created_time, updated_time
+        id, channel_id, user_id, created_time, updated_time
     </sql>
+    
+    <!-- 查询渠道及其子渠道经销商用户数总和 -->
+    <select id="getChannelUserCnt" resultType="integer">
+        select count(t1.user_id) as userCnt 
+		from mp_channel_user_rel t1
+		left join mp_channel t2 on t1.channel_id = t2.channel_id
+		where t2.channel_no like concat(#{channelNo}, '%')
+    </select>
+    
+    
 
-</mapper>
+</mapper>