Browse Source

渠道接口优化更新

guanglong 3 years ago
parent
commit
b849fef0a7

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

@@ -2,25 +2,34 @@ package com.qs.mp.web.controller.api.channel;
 
 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.ChannelCommission;
 import com.qs.mp.channel.domain.param.ChannelParam;
 import com.qs.mp.channel.domain.param.VerifyParam;
 import com.qs.mp.channel.domain.vo.ChannelOperDataVO;
 import com.qs.mp.channel.domain.vo.ChannelVO;
+import com.qs.mp.channel.service.IChannelCommissionService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.common.core.domain.AjaxResult;
 import com.qs.mp.common.core.page.TableDataInfo;
 import com.qs.mp.common.enums.ChannelCertifyStatusEnum;
 import com.qs.mp.common.enums.ChannelVerifyStatusEnum;
 import com.qs.mp.common.enums.ErrorCodeEnum;
+import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.common.utils.DateUtils;
 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 ma.glasnost.orika.MapperFacade;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -45,6 +54,9 @@ public class ChannelController extends BaseApiController {
 
 	@Autowired
 	private IChannelService channelService;
+	
+	@Autowired
+	private IChannelCommissionService channelCommissionService;
 
 	@Autowired
 	private MapperFacade mapperFacade;
@@ -343,14 +355,14 @@ public class ChannelController extends BaseApiController {
 	
 	
 	/**
-	 * 查看我的渠道信息
+	 * 我的(经销商)
 	 *
 	 * @param
 	 * @return
 	 */
-	@PostMapping(value = "mine/detail")
-	@ApiOperation(value = "查看我的渠道信息", notes = "渠道端我的里面点击佣金比例")
-	public AjaxResult getMineDetail() {
+	@PostMapping(value = "/site/mine/detail")
+	@ApiOperation(value = "经销商查看我的信息", notes = "经销商端点击我的")
+	public AjaxResult getSiteMineDetail() {
 		Long channelId = SecurityUtils.getLoginUser().getChannelId();
 		if (null == channelId) {
 			return error(ErrorCodeEnum.ERROR_CODE_1001);
@@ -363,4 +375,40 @@ public class ChannelController extends BaseApiController {
 	    channelVO.setParentName(parentChannel.getName());
 		return AjaxResult.success(channelVO);
 	}
+	
+	/**
+	 * 我的(渠道)
+	 *
+	 * @param
+	 * @return
+	 */
+	@PostMapping(value = "/mine/detail")
+	@ApiOperation(value = "渠道端查看我的信息", notes = "渠道端点击我的")
+	public AjaxResult getChannelMineDetail() {
+		Long channelId = SecurityUtils.getLoginUser().getChannelId();
+		if (null == channelId) {
+			return error(ErrorCodeEnum.ERROR_CODE_1001);
+		}
+		ChannelVO channelVO = new ChannelVO();
+		Channel queryChannel = channelService.getById(channelId);
+	    BeanUtils.copyProperties(queryChannel, channelVO);
+	    // 查询今日的销售额、佣金收入、新增用户数
+	    Channel parentChannel = channelService.getById(queryChannel.getParentId());
+	    channelVO.setParentName(parentChannel.getName());
+	    // 统计今天的分润金额
+        Date zero = DateUtils.getNowZero(); // 获取当天零点零分时间
+	    QueryWrapper<ChannelCommission> queryWrapper = new QueryWrapper<ChannelCommission>();
+		queryWrapper.select("IFNULL(sum(comm_amt) ,0) as commAmt");
+		queryWrapper.lambda().eq(ChannelCommission::getChannelId, channelId);
+		queryWrapper.lambda().gt(ChannelCommission::getCreatedTime, zero);
+		Map<String, Object> map = channelCommissionService.getMap(queryWrapper);
+		if(null != map && map.containsKey("commAmt")) {
+			BigDecimal commAmt = new BigDecimal(map.get("commAmt").toString());
+			
+			ChannelOperDataVO channelOperDataVO = new ChannelOperDataVO();
+			channelOperDataVO.setCommAmt(commAmt.longValue());
+			channelVO.setOperData(channelOperDataVO);
+		}
+		return AjaxResult.success(channelVO);
+	}
 }

+ 15 - 3
mp-admin/src/test/java/com/qs/mp/api/ChannelControllerTest.java

@@ -313,14 +313,26 @@ public class ChannelControllerTest extends BaseControllerTest {
 	
 	
 	/**
-	 * 查看我的渠道信息
-	 * 调用场景:渠道端我的里面点击佣金比例
+	 * 我的(渠道)
+	 * 调用场景:渠道端点击我的
 	 */
 	@Test
-	public void testGetMineDetail() {
+	public void testGetChannelMineDetail() {
 		String params = "{}";
 		String url = "http://localhost:8080/api/v1/mp/channel/mine/detail?";
 		System.out.println(request(url, params));
 	}
+	
+	
+	/**
+	 * 我的(经销商)
+	 * 调用场景:经销商端点击我的
+	 */
+	@Test
+	public void testGetSiteMineDetail() {
+		String params = "{}";
+		String url = "http://localhost:8080/api/v1/mp/channel/site/mine/detail?";
+		System.out.println(request(url, params));
+	}
 
 }

+ 1 - 1
mp-admin/src/test/java/com/qs/mp/common/BaseControllerTest.java

@@ -31,7 +31,7 @@ public class BaseControllerTest {
     headers.put("content-type", "application/json; charset=UTF-8");
     headers.put("x-zz-timestamp", timestamp);
     // 本地登录状态
-    String token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjNiODY5YWVjLWQ2NTYtNDc2OC05NmIyLWRmMDljMDk1ZWE4YyJ9.5ejb8VGTmqc8MyPHxnjyQLg2EMSFty3C-A0D9ZgVnghn_uxPNvtXvS3ApzKVhwsC8JL5RcoEvKZ2eR3rFEzqRA";
+    String token = "eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjEyY2NjMzUyLTZmZWQtNDVlNC04NzIzLWJlNjliOWM0Zjg0NCJ9.GAYmA8UEM3Tt97rAGl6PHSAC1wMqrxIlsbmBIpDXdmOACyYcYBgatAxLArovIJlEs1kYDVw_Z64nkE46I6Im2g";
 
     if (!StringUtils.isBlank(token)) {
       headers.put("Authorization", "Bearer "+token);

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

@@ -13,8 +13,8 @@ import org.apache.commons.compress.utils.Lists;
 public enum RoleTypeEnum {
 	
 	  SYS_ROLE("1", "系统角色"),
-	  CUSTOMER_ROLE("2", "门店角色"),
-	  MERCHANT_ROLE("3", "商户端角色");
+	  CHANNEL_ROLE("2", "渠道商角色"),
+	  SALESITE_ROLE("3", "经销商角色");
 	
 
 	  private String value;

+ 15 - 0
mp-common/src/main/java/com/qs/mp/common/utils/DateUtils.java

@@ -3,6 +3,7 @@ package com.qs.mp.common.utils;
 import java.lang.management.ManagementFactory;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.util.Calendar;
 import java.util.Date;
 import org.apache.commons.lang3.time.DateFormatUtils;
 
@@ -152,4 +153,18 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
         // long sec = diff % nd % nh % nm / ns;
         return day + "天" + hour + "小时" + min + "分钟";
     }
+    
+    /**
+     * 获取当天零点零分时间
+     * @return
+     */
+    public static Date getNowZero() {
+	    Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.set(Calendar.HOUR_OF_DAY, 0);
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        Date zero = calendar.getTime();
+        return zero;
+    }
 }

+ 3 - 3
mp-framework/src/main/java/com/qs/mp/framework/web/service/SysLoginService.java

@@ -100,7 +100,7 @@ public class SysLoginService
         recordLoginInfo(loginUser.getUser());
 
         loginUser.setIdentity(UserIdentityEnum.valueOf(identity));
-        if (UserIdentityEnum.isChannel(loginUser.getIdentity())) {
+        if (!loginUser.getUsername().equals("admin") && UserIdentityEnum.isChannel(loginUser.getIdentity())) {
             fillChannelInfo(loginUser);
         }
 /*
@@ -157,7 +157,7 @@ public class SysLoginService
         recordLoginInfo(loginUser.getUser());
 
         loginUser.setIdentity(UserIdentityEnum.valueOf(identity));
-        if (UserIdentityEnum.isChannel(loginUser.getIdentity())) {
+        if (!loginUser.getUsername().equals("admin") && UserIdentityEnum.isChannel(loginUser.getIdentity())) {
             fillChannelInfo(loginUser);
         }
 /*
@@ -204,7 +204,7 @@ public class SysLoginService
         recordLoginInfo(loginUser.getUser());
 
         loginUser.setIdentity(UserIdentityEnum.valueOf(smsCode.getIdentity()));
-        if (UserIdentityEnum.isChannel(loginUser.getIdentity())) {
+        if (!loginUser.getUsername().equals("admin") && UserIdentityEnum.isChannel(loginUser.getIdentity())) {
             fillChannelInfo(loginUser);
         }
 /*

+ 17 - 1
mp-service/src/main/java/com/qs/mp/channel/service/impl/ChannelServiceImpl.java

@@ -11,8 +11,12 @@ import com.qs.mp.channel.service.IChannelCommissionService;
 import com.qs.mp.channel.service.IChannelService;
 import com.qs.mp.channel.service.IChannelUserRelService;
 import com.qs.mp.common.constant.UserConstants;
+import com.qs.mp.common.core.domain.AjaxResult;
+import com.qs.mp.common.enums.RoleTypeEnum;
 import com.qs.mp.common.exception.ServiceException;
+import com.qs.mp.system.domain.SysRole;
 import com.qs.mp.system.domain.SysUser;
+import com.qs.mp.system.service.ISysRoleService;
 import com.qs.mp.system.service.ISysUserService;
 import com.qs.mp.utils.SecurityUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -49,6 +53,9 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 	
     @Autowired
     private ISysUserService userService;
+    
+    @Autowired
+    private ISysRoleService roleService;
 
 	@Override
 	@Transactional
@@ -85,10 +92,16 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 			channel.setLevel(0);
 		}
 		// 3.插入数据
-		channel.setChannelNo(channel.getChannelId()+"");
+		channel.setChannelNo(parentChannel.getChannelNo()+".");
 		boolean res = channelService.save(channel);
 		if(res && null != channel.getChannelId()) {
 			channel.setChannelNo(parentChannel.getChannelNo()+"."+channel.getChannelId());
+		    // 获取默认的角色
+		    SysRole sysRole = roleService.selectDefaultRoleByType(channelType.equals("channel")?RoleTypeEnum.CHANNEL_ROLE.getValue():RoleTypeEnum.SALESITE_ROLE.getValue());
+		    if (null == sysRole || null == sysRole.getRoleId()) {
+		      throw new ServiceException(
+		          "新增'" + title + channel.getName() + "'失败,未设置"+title+"默认角色,请联系管理员");
+		    }
 			// 生成用户
 			SysUser sysUser = new SysUser();
 			sysUser.setUserName(channel.getMobile());
@@ -96,6 +109,9 @@ public class ChannelServiceImpl extends ServiceImpl<ChannelMapper, Channel> impl
 		    sysUser.setNickName(channel.getName());
 		    sysUser.setDeptId(SecurityUtils.getDeptId());
 			sysUser.setCreateBy(SecurityUtils.getUsername());
+			Long[] roleIds = new Long[1];
+			roleIds[0] = sysRole.getRoleId();
+		    sysUser.setRoleIds(roleIds);
 			int userNum = userService.insertUser(sysUser);
 		    if (userNum == 0 || null == sysUser.getUserId()) {
 		        throw new ServiceException("新增'" + title + channel.getName() + "'失败,请联系管理员");

+ 1 - 1
mp-service/src/main/java/com/qs/mp/system/domain/SysRole.java

@@ -35,7 +35,7 @@ public class SysRole extends BaseEntity
     private String roleSort;
     
     /** 角色类型 */
-    @Excel(name = "角色类型", readConverterExp = "1=系统角色,2=门店角色,3=商户端角色")
+    @Excel(name = "角色类型", readConverterExp = "1=系统角色,2=渠道商角色,3=经销商角色")
     private String roleType;
     
     /** 是否为该角色类型中的默认角色 */

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

@@ -22,15 +22,13 @@
         id, channel_id, order_id, ticket_id, sale_amt, sale_comm_rate, sale_comm_amt, comm_rate, comm_amt, created_time, updated_time
     </sql>
     
-    
-      <!-- 查询子渠道信息 -->
+    <!-- 查询子渠道信息 -->
     <select id="getChannelCommissionCnt" resultMap="BaseResultMap">
 		select IFNULL(SUM(t1.sale_amt),0) sale_amt, IFNULL(SUM(t1.comm_amt),0) comm_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},'.%')
-		and date_format(t1.created_time,'%Y-%m-%d') between date_format(DATE_ADD(CURDATE(),INTERVAL #{days} DAY),'%Y-%m-%d') 
-		and date_format(CURDATE(),'%Y-%m-%d')
+		AND t1.created_time between DATE_ADD(CURDATE(),INTERVAL #{days} DAY) and NOW()
 	</select>
     
 

+ 2 - 1
mp-service/src/main/resources/mapper/channel/ChannelUserRelMapper.xml

@@ -23,7 +23,8 @@
 		left join mp_channel t2 on t1.channel_id = t2.channel_id
 		where t2.channel_no like concat(#{channelNo}, '.%')
 		<if test="days != null and days != ''">
-			AND date_format(t1.created_time,'%Y-%m-%d') between date_format(DATE_ADD(CURDATE(),INTERVAL #{days} DAY),'%Y-%m-%d') and date_format(CURDATE(),'%Y-%m-%d')
+			<!-- AND date_format(t1.created_time,'%Y-%m-%d') between date_format(DATE_ADD(CURDATE(),INTERVAL #{days} DAY),'%Y-%m-%d') and date_format(CURDATE(),'%Y-%m-%d') -->
+			AND t1.created_time between DATE_ADD(CURDATE(),INTERVAL #{days} DAY) and NOW()
 		 </if>
     </select>