소스 검색

查询经销商线上线下销量、库存接口逻辑代码调整

Liugl 3 년 전
부모
커밋
90d1039648

+ 38 - 15
mp-admin/src/main/java/com/qs/mp/web/controller/api/admin/SaleSiteMgrController.java

@@ -113,11 +113,17 @@ public class SaleSiteMgrController extends BaseApiController {
  				}
 			}
 		}
-		List<TicketCntVO>  cntList = new ArrayList<TicketCntVO>();
+		List<TicketCntVO>  qtyCntList = new ArrayList<TicketCntVO>();
+		List<TicketCntVO>  saleCntList = new ArrayList<TicketCntVO>();
 		if(null != channelIds && channelIds.size() > 0) {
-			QueryWrapper<ChannelOrderDetail> ticketCntQueryWrapper = new QueryWrapper<ChannelOrderDetail>();
-			ticketCntQueryWrapper.in("t1.channel_id", channelIds);
-			cntList = ticketService.listTicketCnt(ticketCntQueryWrapper);
+			QueryWrapper<ChannelOrderDetail> ticketQtyCntQueryWrapper = new QueryWrapper<ChannelOrderDetail>();
+			ticketQtyCntQueryWrapper.in("t1.channel_id", channelIds);
+			qtyCntList = ticketService.listTicketQtyCnt(ticketQtyCntQueryWrapper);
+			
+	    	QueryWrapper<UserTicketOrder> ticketSaleCntQueryWrapper = new QueryWrapper<UserTicketOrder>();
+	    	ticketSaleCntQueryWrapper.in("t1.channel_id", channelIds);
+	    	ticketSaleCntQueryWrapper.eq("t1.`status`", 1);
+	    	saleCntList = userTicketOrderService.listTicketSaleCnt(ticketSaleCntQueryWrapper);
 		}
 		
 		if(null != list && list.size() > 0) {
@@ -134,14 +140,21 @@ public class SaleSiteMgrController extends BaseApiController {
 					// channelVO.setSysUser(sysUser);
 					channelVO.setParentsName(getParentsName(channelVO.getChannelNo()));
 					// 统计盲票库存, 销量
-					if(null != cntList && cntList.size() > 0) {
-						List<TicketCntVO> voList =  cntList.stream().filter(item  -> item.getChannelId().equals(channelVO.getChannelId()))
+					if(null != qtyCntList && qtyCntList.size() > 0) {
+						List<TicketCntVO> voList =  qtyCntList.stream().filter(item  -> item.getChannelId().equals(channelVO.getChannelId()))
 				                .collect(Collectors.toList());
 						if(null != voList && voList.size() > 0) {
-							TicketCntVO ticketCnt =  voList.get(0);
-							channelVO.setOffLineQtyCnt(null != ticketCnt?ticketCnt.getOffLineQtyCnt():0);
-							channelVO.setOffLineSaleCnt(null != ticketCnt?ticketCnt.getOffLineSaleCnt():0);
-							channelVO.setOnLineSaleCnt(null != ticketCnt?ticketCnt.getOnLineSaleCnt():0);
+							TicketCntVO ticketQtyCnt =  voList.get(0);
+							channelVO.setOffLineQtyCnt(null != ticketQtyCnt?ticketQtyCnt.getOffLineQtyCnt():0);
+						}
+					}
+					if(null != saleCntList && saleCntList.size() > 0) {
+						List<TicketCntVO> voList =  saleCntList.stream().filter(item  -> item.getChannelId().equals(channelVO.getChannelId()))
+				                .collect(Collectors.toList());
+						if(null != voList && voList.size() > 0) {
+							TicketCntVO ticketSaleCnt =  voList.get(0);
+							channelVO.setOffLineSaleCnt(null != ticketSaleCnt?ticketSaleCnt.getOffLineSaleCnt():0);
+							channelVO.setOnLineSaleCnt(null != ticketSaleCnt?ticketSaleCnt.getOnLineSaleCnt():0);
 						}
 					}
  				}
@@ -375,16 +388,26 @@ public class SaleSiteMgrController extends BaseApiController {
 		}
 	    // 查询经销商销售额、佣金收入、订单数等
 	    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);
 		
 		// 盲票销售张数
 		int ticketSaleCnt = userTicketOrderService.getSaleSiteTotalTicketNumCnt(channelVO.getChannelId());
 		channelOperDataVO.setTicketSaleCnt(ticketSaleCnt);
-		
 	    channelVO.setOperData(channelOperDataVO);
+	    
+        if(null != channelVO && null != channelVO.getChannelId()) {
+	    	LambdaQueryWrapper<ChannelUserRel> userCntQueryWrapper = new LambdaQueryWrapper<ChannelUserRel>();
+			userCntQueryWrapper.eq(ChannelUserRel::getChannelId, channelVO.getChannelId());
+			int userCnt = channelUserRelService.count(userCntQueryWrapper);
+			channelVO.setUserCnt(userCnt);
+	    	
+	    	int ticketQtyCnt = ticketService.getTicketQtyCnt(channelVO.getChannelId());
+	    	channelVO.setOffLineQtyCnt(ticketQtyCnt);
+	    	
+	    	TicketCntVO ticketCnt = userTicketOrderService.getTicketSaleCnt(channelVO.getChannelId());
+			channelVO.setOffLineSaleCnt(null != ticketCnt?ticketCnt.getOffLineSaleCnt():0);
+			channelVO.setOnLineSaleCnt(null != ticketCnt?ticketCnt.getOnLineSaleCnt():0);
+	    }
+	    
 		return AjaxResult.success(channelVO);
 	}
 

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

@@ -27,6 +27,8 @@ 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.system.service.ISysUserService;
+import com.qs.mp.user.domain.UserTicketOrder;
+import com.qs.mp.user.service.IUserTicketOrderService;
 import com.qs.mp.utils.SecurityUtils;
 import com.qs.mp.web.controller.common.BaseApiController;
 import io.swagger.annotations.Api;
@@ -76,6 +78,9 @@ public class ChannelController extends BaseApiController {
     @Autowired
     private ISysUserService userService;
     
+	@Autowired
+	private IUserTicketOrderService userTicketOrderService;
+    
 	@Autowired
 	private ITicketService ticketService;
 
@@ -359,11 +364,17 @@ public class ChannelController extends BaseApiController {
 	 				}
 				}
 			}
-			List<TicketCntVO>  cntList = new ArrayList<TicketCntVO>();
+			List<TicketCntVO>  qtyCntList = new ArrayList<TicketCntVO>();
+			List<TicketCntVO>  saleCntList = new ArrayList<TicketCntVO>();
 			if(null != channelIds && channelIds.size() > 0) {
-				QueryWrapper<ChannelOrderDetail> ticketCntQueryWrapper = new QueryWrapper<ChannelOrderDetail>();
-				ticketCntQueryWrapper.in("t1.channel_id", channelIds);
-				cntList = ticketService.listTicketCnt(ticketCntQueryWrapper);
+				QueryWrapper<ChannelOrderDetail> ticketQtyCntQueryWrapper = new QueryWrapper<ChannelOrderDetail>();
+				ticketQtyCntQueryWrapper.in("t1.channel_id", channelIds);
+				qtyCntList = ticketService.listTicketQtyCnt(ticketQtyCntQueryWrapper);
+				
+		    	QueryWrapper<UserTicketOrder> ticketSaleCntQueryWrapper = new QueryWrapper<UserTicketOrder>();
+		    	ticketSaleCntQueryWrapper.in("t1.channel_id", channelIds);
+		    	ticketSaleCntQueryWrapper.eq("t1.`status`", 1);
+		    	saleCntList = userTicketOrderService.listTicketSaleCnt(ticketSaleCntQueryWrapper);
 			}
 			
 			if(null != list && list.size() > 0) {
@@ -376,14 +387,21 @@ public class ChannelController extends BaseApiController {
 						int userCnt = channelUserRelService.count(userCntQueryWrapper);
 						channelVO.setUserCnt(userCnt);
 						// 统计盲票库存, 销量
-						if(null != cntList && cntList.size() > 0) {
-							List<TicketCntVO> voList =  cntList.stream().filter(item  -> item.getChannelId().equals(channelVO.getChannelId()))
+						if(null != qtyCntList && qtyCntList.size() > 0) {
+							List<TicketCntVO> voList =  qtyCntList.stream().filter(item  -> item.getChannelId().equals(channelVO.getChannelId()))
 					                .collect(Collectors.toList());
 							if(null != voList && voList.size() > 0) {
-								TicketCntVO ticketCnt =  voList.get(0);
-								channelVO.setOffLineQtyCnt(null != ticketCnt?ticketCnt.getOffLineQtyCnt():0);
-								channelVO.setOffLineSaleCnt(null != ticketCnt?ticketCnt.getOffLineSaleCnt():0);
-								channelVO.setOnLineSaleCnt(null != ticketCnt?ticketCnt.getOnLineSaleCnt():0);
+								TicketCntVO ticketQtyCnt =  voList.get(0);
+								channelVO.setOffLineQtyCnt(null != ticketQtyCnt?ticketQtyCnt.getOffLineQtyCnt():0);
+							}
+						}
+						if(null != saleCntList && saleCntList.size() > 0) {
+							List<TicketCntVO> voList =  saleCntList.stream().filter(item  -> item.getChannelId().equals(channelVO.getChannelId()))
+					                .collect(Collectors.toList());
+							if(null != voList && voList.size() > 0) {
+								TicketCntVO ticketSaleCnt =  voList.get(0);
+								channelVO.setOffLineSaleCnt(null != ticketSaleCnt?ticketSaleCnt.getOffLineSaleCnt():0);
+								channelVO.setOnLineSaleCnt(null != ticketSaleCnt?ticketSaleCnt.getOnLineSaleCnt():0);
 							}
 						}
 	 				}
@@ -425,10 +443,12 @@ public class ChannelController extends BaseApiController {
 			int userCnt = channelUserRelService.count(userCntQueryWrapper);
 			channelVO.setUserCnt(userCnt);
 	    	
-	    	TicketCntVO ticketCnt = ticketService.getTicketCnt(channelVO.getChannelId());
-	    	channelVO.setOffLineQtyCnt(null != ticketCnt?ticketCnt.getOffLineQtyCnt():0);
-			channelVO.setOffLineSaleCnt(null != ticketCnt?ticketCnt.getOffLineSaleCnt():0);
-			channelVO.setOnLineSaleCnt(null != ticketCnt?ticketCnt.getOnLineSaleCnt():0);
+	    	int ticketQtyCnt = ticketService.getTicketQtyCnt(channelVO.getChannelId());
+	    	channelVO.setOffLineQtyCnt(ticketQtyCnt);
+	    	
+	    	TicketCntVO ticketSaleCnt = userTicketOrderService.getTicketSaleCnt(channelVO.getChannelId());
+			channelVO.setOffLineSaleCnt(null != ticketSaleCnt?ticketSaleCnt.getOffLineSaleCnt():0);
+			channelVO.setOnLineSaleCnt(null != ticketSaleCnt?ticketSaleCnt.getOnLineSaleCnt():0);
 	    }
 	   
 		return AjaxResult.success(channelVO);

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/mapper/TicketMapper.java

@@ -25,12 +25,12 @@ public interface TicketMapper extends BaseMapper<Ticket> {
    * @param channelId
    * @return
    */
-  TicketCntVO getTicketCnt(@Param("channelId") Long channelId);
+  int getTicketQtyCnt(@Param("channelId") Long channelId);
   
   /**
    * 查询统计数据
    * @param queryWrapper
    * @return
    */
-  List<TicketCntVO> listTicketCnt(@Param(Constants.WRAPPER) Wrapper<ChannelOrderDetail> queryWrapper);
+  List<TicketCntVO> listTicketQtyCnt(@Param(Constants.WRAPPER) Wrapper<ChannelOrderDetail> queryWrapper);
 }

+ 2 - 2
mp-service/src/main/java/com/qs/mp/admin/service/ITicketService.java

@@ -49,12 +49,12 @@ public interface ITicketService extends IService<Ticket> {
    * @param channelId
    * @return
    */
-  TicketCntVO getTicketCnt(Long channelId);
+  int getTicketQtyCnt(Long channelId);
   
   /**
    * 查询统计数据
    * @param queryWrapper
    * @return
    */
-  List<TicketCntVO> listTicketCnt(Wrapper<ChannelOrderDetail> queryWrapper);
+  List<TicketCntVO> listTicketQtyCnt(Wrapper<ChannelOrderDetail> queryWrapper);
 }

+ 4 - 4
mp-service/src/main/java/com/qs/mp/admin/service/impl/TicketServiceImpl.java

@@ -80,13 +80,13 @@ public class TicketServiceImpl extends ServiceImpl<TicketMapper, Ticket> impleme
 	}
 
 	@Override
-	public TicketCntVO getTicketCnt(Long channelId) {
-		return getBaseMapper().getTicketCnt(channelId);
+	public int getTicketQtyCnt(Long channelId) {
+		return getBaseMapper().getTicketQtyCnt(channelId);
 	}
 
 	@Override
-	public List<TicketCntVO> listTicketCnt(Wrapper<ChannelOrderDetail> queryWrapper) {
-		return getBaseMapper().listTicketCnt(queryWrapper);
+	public List<TicketCntVO> listTicketQtyCnt(Wrapper<ChannelOrderDetail> queryWrapper) {
+		return getBaseMapper().listTicketQtyCnt(queryWrapper);
 	}
 	
 }

+ 15 - 0
mp-service/src/main/java/com/qs/mp/user/mapper/UserTicketOrderMapper.java

@@ -1,6 +1,7 @@
 package com.qs.mp.user.mapper;
 
 import com.qs.mp.admin.domain.vo.IndexVO;
+import com.qs.mp.admin.domain.vo.TicketCntVO;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserTicketOrder;
 
@@ -68,4 +69,18 @@ public interface UserTicketOrderMapper extends BaseMapper<UserTicketOrder> {
 	   */
 	  int getSaleSiteTotalTicketNumCnt(@Param("channelId") Long channelId);
 	  
+	  /**
+	    * 统计经销商盲票销量,线下和线上
+	    * @param channelId
+	    * @return
+	    */
+	   TicketCntVO getTicketSaleCnt(@Param("channelId") Long channelId);
+	   
+	   /**
+	    * 查询统计经销商盲票销量数据,线下和线上
+	    * @param queryWrapper
+	    * @return
+	    */
+	   List<TicketCntVO> listTicketSaleCnt(@Param(Constants.WRAPPER) Wrapper<UserTicketOrder> queryWrapper);
+	  
 }

+ 16 - 0
mp-service/src/main/java/com/qs/mp/user/service/IUserTicketOrderService.java

@@ -1,6 +1,8 @@
 package com.qs.mp.user.service;
 
 import com.qs.mp.admin.domain.vo.IndexVO;
+import com.qs.mp.admin.domain.vo.TicketCntVO;
+import com.qs.mp.channel.domain.ChannelOrderDetail;
 import com.qs.mp.pay.domain.PayOrder;
 import com.qs.mp.user.domain.UserDeliverOrder;
 import com.qs.mp.user.domain.UserTicketOrder;
@@ -112,5 +114,19 @@ public interface IUserTicketOrderService extends IService<UserTicketOrder> {
   * @return
    */
    int getSaleSiteTotalTicketNumCnt(Long channelId);
+   
+   /**
+    * 统计经销商盲票销量线下和线上
+    * @param channelId
+    * @return
+    */
+   TicketCntVO getTicketSaleCnt(Long channelId);
+   
+   /**
+    * 查询统计经销商盲票销量数据线下和线上
+    * @param queryWrapper
+    * @return
+    */
+   List<TicketCntVO> listTicketSaleCnt(Wrapper<UserTicketOrder> queryWrapper);
   
 }

+ 13 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketBox;
 import com.qs.mp.admin.domain.vo.IndexVO;
+import com.qs.mp.admin.domain.vo.TicketCntVO;
 import com.qs.mp.admin.service.ITicketBoxService;
 import com.qs.mp.admin.service.ITicketService;
 import com.qs.mp.channel.domain.Channel;
@@ -506,4 +507,16 @@ public class UserTicketOrderServiceImpl extends
 	public int getSaleSiteTotalTicketNumCnt(Long channelId) {
 		return getBaseMapper().getSaleSiteTotalTicketNumCnt(channelId);
 	}
+
+	@Override
+	public TicketCntVO getTicketSaleCnt(Long channelId) {
+		return getBaseMapper().getTicketSaleCnt(channelId);
+	}
+
+	@Override
+	public List<TicketCntVO> listTicketSaleCnt(Wrapper<UserTicketOrder> queryWrapper) {
+		return getBaseMapper().listTicketSaleCnt(queryWrapper);
+	}
+	
+	
 }

+ 2 - 6
mp-service/src/main/resources/mapper/admin/TicketMapper.xml

@@ -44,10 +44,8 @@
 
     </select>
     
-    <select id="getTicketCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
+    <select id="getTicketQtyCnt" resultType="integer">
        select
-		 SUM( CASE WHEN (t2.`status` != 1 and t3.type = 'online') THEN 1 ELSE 0 END ) AS onLineSaleCnt,
-		 SUM( CASE WHEN (t2.`status` != 1 and t3.type = 'offline') THEN 1 ELSE 0 END ) AS offLineSaleCnt,
 		 SUM( CASE WHEN (t2.`status` = 1 and t3.type = 'offline') THEN 1 ELSE 0 END ) AS offLineQtyCnt
 		from mp_channel_order_detail t1
 		left join mp_ticket t2 on t1.pkg_id = t2.pkg_id
@@ -55,11 +53,9 @@
 		where t1.channel_id = #{channelId};
     </select>
     
-     <select id="listTicketCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
+     <select id="listTicketQtyCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
        select
          t1.channel_id channelId,
-		 SUM( CASE WHEN (t2.`status` != 1 and t3.type = 'online') THEN 1 ELSE 0 END ) AS onLineSaleCnt,
-		 SUM( CASE WHEN (t2.`status` != 1 and t3.type = 'offline') THEN 1 ELSE 0 END ) AS offLineSaleCnt,
 		 SUM( CASE WHEN (t2.`status` = 1 and t3.type = 'offline') THEN 1 ELSE 0 END ) AS offLineQtyCnt
 		from mp_channel_order_detail t1
 		left join mp_ticket t2 on t1.pkg_id = t2.pkg_id

+ 26 - 0
mp-service/src/main/resources/mapper/user/UserTicketOrderMapper.xml

@@ -74,6 +74,7 @@
 		GROUP BY t1.box_id
 		ORDER BY pay_amt DESC limit 10 ) a
 		left join mp_ticket_box b on a.box_id = b.box_id
+		ORDER BY payAmt DESC 
 	</select>
 	
 	<!-- 统计经销商交易额TOP10 -->
@@ -88,6 +89,7 @@
 		GROUP BY t1.channel_id
 		ORDER BY pay_amt DESC limit 10 ) a
 		left join mp_channel b on a.channel_id = b.channel_id
+		ORDER BY payAmt DESC 
 	</select>
 	
 	 <!-- 查询子渠道全部的盲票销量 -->
@@ -105,5 +107,29 @@
 		from mp_user_ticket_order t1
 		where t1.`status` = 1 and t1.channel_id = #{channelId}
 	</select>
+	
+	
+	<!-- 查询经销商的线下、线上盲票销量 -->
+    <select id="getTicketSaleCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
+		 select
+		 SUM( CASE WHEN (t2.type = 'online') THEN 1 ELSE 0 END ) AS onLineSaleCnt,
+		 SUM( CASE WHEN (t2.type = 'offline') THEN 1 ELSE 0 END ) AS offLineSaleCnt
+		from mp_user_ticket_order t1
+		left join mp_ticket_box t2 on t1.box_id = t2.box_id
+		where t1.channel_id = #{channelId} and t1.`status` = 1
+	</select>
+	
+	
+	<!-- 查询经销商的线下、线上盲票销量 -->
+    <select id="listTicketSaleCnt" resultType="com.qs.mp.admin.domain.vo.TicketCntVO">
+		 select
+		 t1.channel_id,
+		 SUM( CASE WHEN (t2.type = 'online') THEN 1 ELSE 0 END ) AS onLineSaleCnt,
+		 SUM( CASE WHEN (t2.type = 'offline') THEN 1 ELSE 0 END ) AS offLineSaleCnt
+		from mp_user_ticket_order t1
+		left join mp_ticket_box t2 on t1.box_id = t2.box_id
+		${ew.customSqlSegment}
+		GROUP BY t1.channel_id
+	</select>
     
 </mapper>