Przeglądaj źródła

渠道、经销商、优惠券

guanglong 3 lat temu
rodzic
commit
421b76792d
19 zmienionych plików z 338 dodań i 41 usunięć
  1. 40 8
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelMgrController.java
  2. 63 20
      mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/SaleSiteMgrController.java
  3. 2 2
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelController.java
  4. 1 1
      mp-admin/src/main/java/com/qs/mp/web/controller/api/channel/ChannelInviteController.java
  5. 3 2
      mp-common/src/main/java/com/qs/mp/common/enums/CouponStatusEnum.java
  6. 3 2
      mp-common/src/main/java/com/qs/mp/common/enums/GoodsStatusEnum.java
  7. 7 0
      mp-service/src/main/java/com/qs/mp/channel/domain/Channel.java
  8. 97 0
      mp-service/src/main/java/com/qs/mp/channel/domain/param/SaleSiteParam.java
  9. 1 1
      mp-service/src/main/java/com/qs/mp/channel/domain/param/SiteQueryParam.java
  10. 1 0
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOperDataVO.java
  11. 1 1
      mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelVO.java
  12. 18 0
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelCommissionMapper.java
  13. 4 4
      mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelMapper.java
  14. 18 0
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelCommissionService.java
  15. 16 0
      mp-service/src/main/java/com/qs/mp/channel/service/IChannelService.java
  16. 12 0
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelCommissionServiceImpl.java
  17. 21 0
      mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java
  18. 22 0
      mp-service/src/main/resources/mapper/channel/ChannelCommissionMapper.xml
  19. 8 0
      mp-service/src/main/resources/mapper/channel/ChannelMapper.xml

+ 40 - 8
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/ChannelMgrController.java

@@ -4,8 +4,11 @@ import com.alibaba.fastjson.JSONObject;
 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.ChannelOrder;
 import com.qs.mp.channel.domain.param.ChannelParam;
+import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;
+import com.qs.mp.channel.service.IChannelOrderService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
 import com.qs.mp.common.constant.UserConstants;
@@ -26,6 +29,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import org.springframework.validation.annotation.Validated;
@@ -51,6 +55,9 @@ public class ChannelMgrController extends BaseApiController {
 	@Autowired
 	private IChannelUserRelService channelUserRelService;
 	
+	@Autowired
+	private IChannelOrderService channelOrderService;
+	
 	@Autowired
 	private ISysUserService userService;
 	
@@ -285,18 +292,43 @@ public class ChannelMgrController extends BaseApiController {
 		}
 		try {
 			channelService.lambdaUpdate().set(Channel::getStatus, status).eq(Channel::getChannelId, channelId).update();
-			// 查询渠道信息
-//			Channel channel = channelService.getById(channelId);
-//			if(null != channel && null != channel.getUserId()) {
-//				SysUser sysUser = new SysUser();
-//				sysUser.setUserId(channel.getUserId());
-//				sysUser.setStatus(status);
-//				userService.updateUserStatus(sysUser);
-//			}
 		} catch (Exception e) {
 			return AjaxResult.error("操作失败");
 		}
 		return AjaxResult.success("操作成功");
 	}
 	
+	
+	/**
+	 * 查询渠道详情
+	 * @param
+	 * @return
+	 */
+	@ApiOperation(value = "查询渠道详情信息", notes = "渠道管理编辑子渠道查询渠道详情")
+	@PostMapping("/detail")
+	public AjaxResult getChannelDetail(@RequestBody JSONObject jsonObject) {
+		String channelId = (null != jsonObject && jsonObject.containsKey("channelId"))?jsonObject.getString("channelId"):"";
+		if (StringUtils.isBlank(channelId)) {
+			return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		ChannelVO channelVO = channelService.getChannelVoById(Long.valueOf(channelId));
+		if(null == channelVO || null == channelVO.getChannelId()) {
+			 return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		if(null != channelVO && StringUtils.isNotBlank(channelVO.getChannelNo())) {
+			int siteCnt = channelService.getChannelSiteCnt(channelVO.getChannelNo());
+			int userCnt = channelUserRelService.getChannelTotalUserCnt(channelVO.getChannelNo());
+			channelVO.setSiteCnt(siteCnt);
+			channelVO.setUserCnt(userCnt);
+		}
+	    // 查询渠道销售额、佣金收入、订单数等
+	    ChannelOperDataVO channelOperDataVO = channelService.getChannelTotalOperData(channelVO.getChannelNo());
+		LambdaQueryWrapper<ChannelOrder> queryWrapper = new LambdaQueryWrapper<ChannelOrder>();
+		queryWrapper.eq(ChannelOrder::getChannelId, channelId);
+		int orderCnt = channelOrderService.count(queryWrapper);
+		channelOperDataVO.setOrderCnt(orderCnt);
+	    channelVO.setOperData(channelOperDataVO);
+		return AjaxResult.success(channelVO);
+	}
+	
 }

+ 63 - 20
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/SaleSiteMgrController.java

@@ -4,8 +4,13 @@ import com.alibaba.fastjson.JSONObject;
 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.ChannelOrder;
+import com.qs.mp.channel.domain.ChannelUserRel;
 import com.qs.mp.channel.domain.param.ChannelParam;
+import com.qs.mp.channel.domain.param.SaleSiteParam;
+import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;
+import com.qs.mp.channel.service.IChannelOrderService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
 import com.qs.mp.common.constant.UserConstants;
@@ -37,9 +42,9 @@ import org.springframework.web.bind.annotation.RestController;
 /**
  * @auther zhongcp
  * @create 2022-02-28 16:17:48
- * @describe 渠道管理前端控制器
+ * @describe 经销商管理前端控制器
  */
-@Api("渠道管理API")
+@Api("经销商管理API")
 @RestController
 @RequestMapping("/api/v1/mp/admin/salesite/*")
 @Component
@@ -51,6 +56,9 @@ public class SaleSiteMgrController extends BaseApiController {
 	@Autowired
 	private IChannelUserRelService channelUserRelService;
 	
+	@Autowired
+	private IChannelOrderService channelOrderService;
+	
 	@Autowired
 	private ISysUserService userService;
 	
@@ -82,9 +90,10 @@ public class SaleSiteMgrController extends BaseApiController {
 		if(null != list && list.size() > 0) {
 			for(ChannelVO channelVO : list) {
 				if(null != channelVO && StringUtils.isNotBlank(channelVO.getChannelNo())) {
-					int siteCnt = channelService.getChannelSiteCnt(channelVO.getChannelNo());
-					int userCnt = channelUserRelService.getChannelTotalUserCnt(channelVO.getChannelNo());
-					channelVO.setSiteCnt(siteCnt);
+					// int siteCnt = channelService.getChannelSiteCnt(channelVO.getChannelNo());
+					LambdaQueryWrapper<ChannelUserRel> userCntQueryWrapper = new LambdaQueryWrapper<ChannelUserRel>();
+					userCntQueryWrapper.eq(ChannelUserRel::getChannelId, channelVO.getChannelId());
+					int userCnt = channelUserRelService.count(userCntQueryWrapper);
 					channelVO.setUserCnt(userCnt);
 					// 查询用户信息
 					//SysUser sysUser = userService.selectUserById(channelVO.getUserId());
@@ -101,38 +110,38 @@ public class SaleSiteMgrController extends BaseApiController {
 	 * @param
 	 * @return
 	 */
-	@ApiOperation(value = "新增经销商信息", notes = "渠道端新增经销商")
+	@ApiOperation(value = "新增经销商信息", notes = "经销商端新增经销商")
 	@PostMapping("/create")
-	public AjaxResult channelCreate(@Validated @RequestBody ChannelParam channelParam) {
+	public AjaxResult channelCreate(@Validated @RequestBody SaleSiteParam channelParam) {
 		if (channelParam.getChannelId() != null && channelParam.getChannelId() != 0) {
 			return AjaxResult.error("该经销商已存在");
 		}
 		Channel channel = mapperFacade.map(channelParam, Channel.class);
-		// 1、校验名称是否重复、手机号是否存在(渠道表)
+		// 1、校验名称是否重复、手机号是否存在(经销商表)
 		LambdaQueryWrapper<Channel> queryWrapper = new LambdaQueryWrapper<>();
 		queryWrapper.eq(Channel::getName, channel.getName());
-		queryWrapper.gt(Channel::getLevel, 1);
+		queryWrapper.eq(Channel::getLevel, 0);
 		int nameCount = channelService.count(queryWrapper);
 		if(nameCount > 0) {
-			return AjaxResult.error("渠道名称" + channel.getName() + "已存在!");
+			return AjaxResult.error("经销商名称" + channel.getName() + "已存在!");
 		}
 		int mobileCount = channelService.count(
 		        new LambdaQueryWrapper<Channel>().eq(Channel::getMobile, channel.getMobile()));
 		if(mobileCount > 0) {
 			 return AjaxResult.error("手机号码" + channel.getMobile() + "已注册!");
 		}
-		// 2.校验佣金比例,不能高于其父渠道的佣金比例
+		// 2.校验佣金比例,不能高于其父经销商的佣金比例
 		if(null != channel.getParentId() && channel.getParentId() != 0) {
 			Channel parentChannel = channelService.getById(channel.getParentId());
 			if(null != parentChannel) {
 				 if(null != parentChannel.getCommRate() 
 						 && channel.getCommRate().compareTo(parentChannel.getCommRate()) > 0) {
-					 return AjaxResult.error("佣金比例不能高于父渠道的佣金比例");
+					 return AjaxResult.error("佣金比例不能高于父经销商的佣金比例");
 				 }
 				 channel.setLevel(parentChannel.getLevel()+1);
 				 channel.setChannelNo(parentChannel.getChannelNo()+".");
 			}else {
-				return AjaxResult.error("父渠道不存在");
+				return AjaxResult.error("父经销商不存在");
 			}
 			
 		}else {
@@ -161,16 +170,16 @@ public class SaleSiteMgrController extends BaseApiController {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
 		}
 		Channel channel = mapperFacade.map(channelParam, Channel.class);
-		// 1、校验修改子渠道是否为当前用户的子渠道
+		// 1、校验修改子经销商是否为当前用户的子经销商
 		Channel oldChannel = channelService.getById(channel.getChannelId());
 		if(null == oldChannel || null == oldChannel.getChannelId()) {
 			return AjaxResult.error("经销商'" + oldChannel.getName() + "'编辑失败,ID异常");
 		}
-		// 2.校验名称是否重复、手机号是否存在(渠道表);
+		// 2.校验名称是否重复、手机号是否存在(经销商表);
 		if(!channel.getName().equals(oldChannel.getName())) {
 			LambdaQueryWrapper<Channel> queryWrapper = new LambdaQueryWrapper<>();
 			queryWrapper.eq(Channel::getName, channel.getName());
-			queryWrapper.gt(Channel::getLevel, 1);
+			queryWrapper.eq(Channel::getLevel, 0);
 			int nameCount = channelService.count(queryWrapper);
 			if(nameCount > 0) {
 				return AjaxResult.error("经销商名称" + channel.getName() + "已存在!");
@@ -188,17 +197,17 @@ public class SaleSiteMgrController extends BaseApiController {
 			}
 			mobileChange = true;
 		}
-		// 3.校验佣金比例,不能高于其父渠道的佣金比例,不能低于其子渠道的最大佣金比例
+		// 3.校验佣金比例,不能高于其父经销商的佣金比例,不能低于其子经销商的最大佣金比例
 		Channel parentChannel = channelService.getById(oldChannel.getParentId());
 		if(null != parentChannel) {
 			 if(null != parentChannel.getCommRate() 
 					 && channel.getCommRate().compareTo(parentChannel.getCommRate()) > 0) {
-				 return AjaxResult.error("佣金比例不能高于父渠道的佣金比例");
+				 return AjaxResult.error("佣金比例不能高于父经销商的佣金比例");
 			 }
 			 channel.setLevel(parentChannel.getLevel()+1);
 			 channel.setChannelNo(parentChannel.getChannelNo()+".");
 		}else {
-			return AjaxResult.error("父渠道不存在");
+			return AjaxResult.error("父经销商不存在");
 		}
 		try {
 			channelService.updateChannel(channel, mobileChange);
@@ -225,7 +234,7 @@ public class SaleSiteMgrController extends BaseApiController {
 		}
 		try {
 			channelService.lambdaUpdate().set(Channel::getStatus, status).eq(Channel::getChannelId, channelId).update();
-			// 查询渠道信息
+			// 查询经销商信息
 //			Channel channel = channelService.getById(channelId);
 //			if(null != channel && null != channel.getUserId()) {
 //				SysUser sysUser = new SysUser();
@@ -239,4 +248,38 @@ public class SaleSiteMgrController extends BaseApiController {
 		return AjaxResult.success("操作成功");
 	}
 	
+	
+	/**
+	 * 查询经销商详情
+	 * @param
+	 * @return
+	 */
+	@ApiOperation(value = "查询经销商详情信息", notes = "经销商管理编辑子经销商查询经销商详情")
+	@PostMapping("/detail")
+	public AjaxResult getChannelDetail(@RequestBody JSONObject jsonObject) {
+		String channelId = (null != jsonObject && jsonObject.containsKey("channelId"))?jsonObject.getString("channelId"):"";
+		if (StringUtils.isBlank(channelId)) {
+			return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		ChannelVO channelVO = channelService.getChannelVoById(Long.valueOf(channelId));
+		if(null == channelVO || null == channelVO.getChannelId()) {
+			 return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		if(null != channelVO && StringUtils.isNotBlank(channelVO.getChannelNo())) {
+			// int siteCnt = channelService.getChannelSiteCnt(channelVO.getChannelNo());
+			LambdaQueryWrapper<ChannelUserRel> userCntQueryWrapper = new LambdaQueryWrapper<ChannelUserRel>();
+			userCntQueryWrapper.eq(ChannelUserRel::getChannelId, channelVO.getChannelId());
+			int userCnt = channelUserRelService.count(userCntQueryWrapper);
+			channelVO.setUserCnt(userCnt);
+		}
+	    // 查询经销商销售额、佣金收入、订单数等
+	    ChannelOperDataVO channelOperDataVO = channelService.getChannelTotalOperData(channelVO.getChannelNo());
+		LambdaQueryWrapper<ChannelOrder> queryWrapper = new LambdaQueryWrapper<ChannelOrder>();
+		queryWrapper.eq(ChannelOrder::getChannelId, channelId);
+		int orderCnt = channelOrderService.count(queryWrapper);
+		channelOperDataVO.setOrderCnt(orderCnt);
+	    channelVO.setOperData(channelOperDataVO);
+		return AjaxResult.success(channelVO);
+	}
+	
 }

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

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.ChannelCommission;
 import com.qs.mp.channel.domain.param.ChannelParam;
-import com.qs.mp.channel.domain.param.SiteParam;
+import com.qs.mp.channel.domain.param.SiteQueryParam;
 import com.qs.mp.channel.domain.param.VerifyParam;
 import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;
@@ -325,7 +325,7 @@ public class ChannelController extends BaseApiController {
 	 * @return
 	 */
 	@PostMapping("site/list")
-	public TableDataInfo listSite(@RequestBody SiteParam siteParam) {
+	public TableDataInfo listSite(@RequestBody SiteQueryParam siteParam) {
 		Long channelId = SecurityUtils.getLoginUser().getChannelId();
 		List<ChannelVO> list = new ArrayList<ChannelVO>();
 		if(null != channelId) {

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

@@ -8,7 +8,7 @@ import com.qs.mp.channel.domain.Channel;
 import com.qs.mp.channel.domain.ChannelCommission;
 import com.qs.mp.channel.domain.param.ChannelInviteParam;
 import com.qs.mp.channel.domain.param.ChannelParam;
-import com.qs.mp.channel.domain.param.SiteParam;
+import com.qs.mp.channel.domain.param.SiteQueryParam;
 import com.qs.mp.channel.domain.param.VerifyParam;
 import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;

+ 3 - 2
mp-common/src/main/java/com/qs/mp/common/enums/CouponStatusEnum.java

@@ -13,8 +13,9 @@ import com.qs.mp.common.json.EnumValueDeserializer;
 @JSONType(deserializer = EnumValueDeserializer.class)
 public enum CouponStatusEnum implements IEnum<String> {
 
-  PUT_ON("on", "上架"),
-  PUT_OFF("off", "下架");
+  PUT_ON("on", "已上架"),
+  PUT_OFF("off", "已下架"),
+  PUT_INIT("init", "待上架");
 
   private final String value;
   private final String desc;

+ 3 - 2
mp-common/src/main/java/com/qs/mp/common/enums/GoodsStatusEnum.java

@@ -13,8 +13,9 @@ import com.qs.mp.common.json.EnumValueDeserializer;
 @JSONType(deserializer = EnumValueDeserializer.class)
 public enum GoodsStatusEnum implements IEnum<String> {
 
-  PUT_ON("on", "上架"),
-  PUT_OFF("off", "下架");
+  PUT_ON("on", "已上架"),
+  PUT_OFF("off", "已下架"),
+  PUT_INIT("init", "待上架");
 
   private final String value;
   private final String desc;

+ 7 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/Channel.java

@@ -62,6 +62,13 @@ public class Channel implements Serializable {
   @TableField("site_type")
   @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
   private SiteTypeEnum siteType;
+  
+  
+  /**
+   * 门店名称(用于用户端优惠券的详情页,说明优惠券的适用门店)
+   */
+  @TableField("site_name")
+  private String siteName;
 
   /**
    * 分佣百分比

+ 97 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/param/SaleSiteParam.java

@@ -0,0 +1,97 @@
+package com.qs.mp.channel.domain.param;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
+import com.qs.mp.common.enums.SiteTypeEnum;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import javax.validation.constraints.NotNull;
+
+import lombok.Data;
+
+/**
+ * @describe 经销商经销商实体类
+ * @auther quanshu
+ * @create 2022-03-02 12:22:24
+ */
+@Data
+public class SaleSiteParam{
+
+	@ApiModelProperty(value = "经销商ID",required=false)
+	private Long channelId;
+	
+	@NotNull(message = "经销商名称不能为空")
+	@ApiModelProperty(value = "经销商名称",required=true)
+	private String name;
+
+	@NotNull(message = "手机不能为空")
+	@ApiModelProperty(value = "手机",required=true)
+	private String mobile;
+
+	@NotNull(message = "联系人不能为空")
+	@ApiModelProperty(value = "联系人",required=true)
+	private String contact;
+
+	@NotNull(message = "上级渠道不能为空")
+	@ApiModelProperty(value = "上级渠道",required=true)
+	private Long parentId;
+	/**
+	   * 经销商类型
+	   */
+	@NotNull(message = "门店类型上级渠道不能为空")
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private SiteTypeEnum siteType;
+	  
+   /**
+    * 门店名称(用于用户端优惠券的详情页,说明优惠券的适用门店)
+    */
+	@NotNull(message = "门店名称上级渠道不能为空")
+	private String siteName;
+
+	@NotNull(message = "省ID不能为空")
+	@ApiModelProperty(value = "省ID",required=true)
+	private Long provinceId;
+
+	@NotNull(message = "城市ID不能为空")
+	@ApiModelProperty(value = "城市ID",required=true)
+	private Long cityId;
+
+	@NotNull(message = "区ID不能为空")
+	@ApiModelProperty(value = "区ID",required=true)
+	private Long areaId;
+
+	@NotNull(message = "省不能为空")
+	@ApiModelProperty(value = "省",required=true)
+	private String province;
+
+	@NotNull(message = "城市不能为空")
+	@ApiModelProperty(value = "城市",required=true)
+	private String city;
+
+	@NotNull(message = "区不能为空")
+	@ApiModelProperty(value = "区",required=true)
+	private String area;
+
+	@NotNull(message = "佣金比例不能为空")
+	@ApiModelProperty(value = "分佣百分比",required=true)
+    private BigDecimal commRate;
+	
+	@NotNull(message = "详细地址不能为空")
+	@ApiModelProperty(value = "详细地址",required=true)
+	private String address;
+	
+	@NotNull(message = "营业执照不能为空")
+	@ApiModelProperty(value = "营业执照",required=true)
+	private String bizLicensePic;
+
+	@NotNull(message = "门头照片不能为空")
+	@ApiModelProperty(value = "门头照片",required=true)
+	private String doorPic;
+
+	@NotNull(message = "认证状态不能为空")
+	@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
+	private ChannelCertifyStatusEnum certifyStatus;
+}

+ 1 - 1
mp-service/src/main/java/com/qs/mp/channel/domain/param/SiteParam.java → mp-service/src/main/java/com/qs/mp/channel/domain/param/SiteQueryParam.java

@@ -9,7 +9,7 @@ import lombok.Data;
 
 @ApiModel(value= "经销商查询参数")
 @Data
-public class SiteParam {
+public class SiteQueryParam {
 
 	@ApiModelProperty(value = "认证审核状态",required=false)
 	private List<String> verifyStatus;

+ 1 - 0
mp-service/src/main/java/com/qs/mp/channel/domain/vo/ChannelOperDataVO.java

@@ -14,4 +14,5 @@ public class ChannelOperDataVO {
   long newUserCnt; // 新增用户数
   String name; // 渠道名称
   String mobile; // 手机号
+  int orderCnt; // 新增用户数
 }

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

@@ -14,7 +14,7 @@ public class ChannelVO extends Channel {
   long siteCnt;   // 经销网点数
   long userCnt;   // 经销用户数
   String parentName; // 上级渠道名称
-  
+  long orderCnt;   // 订单数
   int childCnt;  // 子渠道数量
   ChannelOperDataVO operData;  // 经营数据
   // SysUser sysUser;  // 关联的用户账号信息

+ 18 - 0
mp-service/src/main/java/com/qs/mp/channel/mapper/ChannelCommissionMapper.java

@@ -30,4 +30,22 @@ public interface ChannelCommissionMapper extends BaseMapper<ChannelCommission> {
 	 */
 	public int getChannelSaleAmtCnt(@Param("channelNo") String channelNo,@Param("days") int days);
 	
+	
+	/**
+	 * 查询子渠道全部佣金金额 -
+	 * @param channelNo
+	 * @param days
+	 * @return
+	 */
+	public int getChannelTotalCommAmtCnt(@Param("channelNo") String channelNo);
+	
+	
+	/**
+	 * 查询子渠道全部的销售金额
+	 * @param channelNo
+	 * @param days
+	 * @return
+	 */
+	public int getChannelTotalSaleAmtCnt(@Param("channelNo") String channelNo);
+	
 }

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

@@ -27,12 +27,12 @@ public interface ChannelMapper extends BaseMapper<Channel> {
 	public List<ChannelVO> selectChannelVoList(@Param(Constants.WRAPPER) Wrapper<Channel> wrapper);
 	
 	/**
-	 * 获取我的经销商列表信息,支持翻页
-	 * 
-	 * @param channel
+	 * 根据ID查询渠道VO
+	 *
+	 * @param userId
 	 * @return
 	 */
-	// public List<ChannelVO> selectSiteVoList(@Param(Constants.WRAPPER) Wrapper<Channel> wrapper);
+	public ChannelVO getChannelVoById(@Param("channelId") Long channelId);
 	
 	
     /**

+ 18 - 0
mp-service/src/main/java/com/qs/mp/channel/service/IChannelCommissionService.java

@@ -31,4 +31,22 @@ public interface IChannelCommissionService extends IService<ChannelCommission> {
 	 */
 	public int getChannelSaleAmtCnt(String channelNo, int days);
 	
+	
+	/**
+	 * 查询子渠道全部佣金金额 -
+	 * @param channelNo
+	 * @param days
+	 * @return
+	 */
+	public int getChannelTotalCommAmtCnt(String channelNo);
+	
+	
+	/**
+	 * 查询子渠道全部的销售金额
+	 * @param channelNo
+	 * @param days
+	 * @return
+	 */
+	public int getChannelTotalSaleAmtCnt(String channelNo);
+	
 }

+ 16 - 0
mp-service/src/main/java/com/qs/mp/channel/service/IChannelService.java

@@ -66,4 +66,20 @@ public interface IChannelService extends IService<Channel> {
 	 * 根据channelNo统计最近几天days的经营数据
 	 */
 	public ChannelOperDataVO getChannelOperData(String channelNo, int days);
+	
+
+	/**
+	 * 根据ID查询渠道VO
+	 *
+	 * @param userId
+	 * @return
+	 */
+	public ChannelVO getChannelVoById(Long channelId);
+	
+	
+
+	/**
+	 * 根据channelNo统计全部的经营数据
+	 */
+	public ChannelOperDataVO getChannelTotalOperData(String channelNo);
 }

+ 12 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelCommissionServiceImpl.java

@@ -26,4 +26,16 @@ public class ChannelCommissionServiceImpl extends ServiceImpl<ChannelCommissionM
 	public int getChannelSaleAmtCnt(String channelNo, int days) {
 		return getBaseMapper().getChannelSaleAmtCnt(channelNo, days == 1?0:days);
 	}
+
+	@Override
+	public int getChannelTotalCommAmtCnt(String channelNo) {
+		return getBaseMapper().getChannelTotalCommAmtCnt(channelNo);
+	}
+
+	@Override
+	public int getChannelTotalSaleAmtCnt(String channelNo) {
+		return getBaseMapper().getChannelTotalSaleAmtCnt(channelNo);
+	}
+	
+	
 }

+ 21 - 0
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java

@@ -126,6 +126,11 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 	public int getChannelSiteCnt(String channelNo) {
 		return getBaseMapper().getChannelSiteCnt(channelNo);
 	}
+	
+	@Override
+	public ChannelVO getChannelVoById(Long channelId) {
+		return getBaseMapper().getChannelVoById(channelId);
+	}
 
 	@Override
 	public ChannelOperDataVO getChannelOperData(String channelNo, int days) {
@@ -139,4 +144,20 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 		channelOperData.setNewUserCnt(newUserCnt);
 		return channelOperData;
 	}
+
+
+	@Override
+	public ChannelOperDataVO getChannelTotalOperData(String channelNo) {
+		ChannelOperDataVO channelOperData = new ChannelOperDataVO();
+		// 查询销售金额
+		channelOperData.setSaleAmt(channelCommissionService.getChannelTotalSaleAmtCnt(channelNo));
+		// 查询佣金金额
+		channelOperData.setCommAmt(channelCommissionService.getChannelTotalCommAmtCnt(channelNo));
+		// 查询新增用户数
+		// int newUserCnt = channelUserRelService.getChannelNewUserCnt(channelNo, days);
+		// channelOperData.setNewUserCnt(newUserCnt);
+		return channelOperData;
+	}
+	
+	
 }

+ 22 - 0
mp-service/src/main/resources/mapper/channel/ChannelCommissionMapper.xml

@@ -44,5 +44,27 @@
 			GROUP BY t1.ticket_id
 		) t3
 	</select>
+	
+	
+	  <!-- 查询子渠道全部的佣金金额 -->
+    <select id="getChannelTotalCommAmtCnt" resultType="integer">
+		select IFNULL(SUM(t1.comm_amt),0) as commAmt
+		from mp_channel_commission t1
+		left join mp_channel t2 on t1.channel_id = t2.channel_id
+		where (t2.channel_no like concat(#{channelNo},'.%') or t2.channel_no = #{channelNo})
+	</select>
+
+
+    <!-- 查询子渠道全部的销售金额 -->
+    <select id="getChannelTotalSaleAmtCnt" resultType="integer">
+		select IFNULL(SUM(t3.sale_amt),0) as saleAmt
+		from (
+			select t1.ticket_id, MIN(t1.sale_amt) sale_amt
+			from mp_channel_commission t1
+			left join mp_channel t2 on t1.channel_id = t2.channel_id
+			where (t2.channel_no like concat(#{channelNo},'.%') or t2.channel_no = #{channelNo})
+			GROUP BY t1.ticket_id
+		) t3
+	</select>
 
 </mapper>

+ 8 - 0
mp-service/src/main/resources/mapper/channel/ChannelMapper.xml

@@ -54,5 +54,13 @@
 		where t1.`level`= 0
 		and (t1.channel_no like concat(#{channelNo}, '.%') or t1.channel_no = #{channelNo})
     </select>
+    
+     <!-- 查询渠道信息 -->
+    <select id="getChannelVoById" resultType="com.qs.mp.channel.domain.vo.ChannelVO">
+		select t1.* , t2.name parentName
+		from mp_channel t1
+		left join mp_channel t2 on t1.parent_id = t2.channel_id
+		where t1.channel_id = #{channelId}
+	</select>
 
 </mapper>