소스 검색

双十一活动

zouxuan 2 년 전
부모
커밋
7433f9985e

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TempBuyDoubleElevenUserLogDao.java

@@ -5,5 +5,5 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface TempBuyDoubleElevenUserLogDao extends BaseDAO<Integer, TempBuyDoubleElevenUserLog> {
 
-
+    Integer countGiveNum();
 }

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupActivityDao.java

@@ -74,6 +74,7 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
 	* @date 2021/10/25 13:46
 	*/
     List<DoubleEleven2021ActivityDto> countActivityStatis();
+    List<DoubleEleven2021ActivityDto> count2022ActivityStatis();
 
 	/**
 	* @description: 双十一活动统计
@@ -92,6 +93,7 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
     * @date 2021/10/25 15:44
     */
 	DoubleEleven2021Dto countDoubleEleven2021Statis();
+	DoubleEleven2021Dto countDoubleEleven2022Statis();
 
     /**
     * @description: 双十一活动统计
@@ -102,6 +104,8 @@ public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity>
     */
 	List<DoubleEleven2021Dto> countOrganDoubleEleven2021Statis(@Param("organId") Integer organId);
 
+	List<DoubleEleven2021Dto> countOrganDoubleEleven2022Statis(@Param("organId") Integer organId);
+
 	/**
 	* @description: 双十一活动统计
 	 * @param

+ 19 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupActivityService.java

@@ -88,6 +88,24 @@ public interface VipGroupActivityService extends BaseService<Integer, VipGroupAc
     * @author zx
     * @date 2021/10/25 12:07
     */
+    List<DoubleEleven2021Dto> organDoubleEleven2022Statis(OrganDoubleEleven2021StatisDto queryInfo);
+
+    /**
+    * @description: 双11活动统计
+     * @param
+    * @return java.lang.Object
+    * @author zx
+    * @date 2021/10/25 12:07
+    */
+    DoubleEleven2021Dto doubleEleven2022Statis();
+
+    /**
+    * @description: 分部双11活动统计
+     * @param
+    * @return java.lang.Object
+    * @author zx
+    * @date 2021/10/25 12:07
+    */
     List<DoubleEleven2021Dto> organDoubleEleven2021Statis(OrganDoubleEleven2021StatisDto queryInfo);
 
     /**
@@ -97,7 +115,7 @@ public interface VipGroupActivityService extends BaseService<Integer, VipGroupAc
     * @author zx
     * @date 2021/10/25 12:07
     */
-    Object doubleEleven2021Statis();
+    DoubleEleven2021Dto doubleEleven2021Statis();
 
     /**
     * @description: 2021双十一学员购买详情

+ 40 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java

@@ -289,12 +289,37 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 		return pageInfo;
 	}
 
-    @Override
+	@Override
+	public List<DoubleEleven2021Dto> organDoubleEleven2022Statis(OrganDoubleEleven2021StatisDto queryInfo) {
+		List<DoubleEleven2021Dto> doubleEleven2022Dtos = vipGroupActivityDao.countOrganDoubleEleven2022Statis(queryInfo.getOrganId());
+		return this.sumDoubleEleven(doubleEleven2022Dtos,queryInfo);
+	}
+
+	@Override
+	public DoubleEleven2021Dto doubleEleven2022Statis() {
+		DoubleEleven2021Dto doubleEleven2022Dto = vipGroupActivityDao.countDoubleEleven2022Statis();
+		if(doubleEleven2022Dto.getTotalBuyAmount().compareTo(ZERO) > 0){
+			doubleEleven2022Dto.setAvgBuyAmount(
+					doubleEleven2022Dto.getTotalBuyAmount().divide(new BigDecimal(doubleEleven2022Dto.getTotalBuyNum()),2,BigDecimal.ROUND_CEILING));
+		}
+		//获取活动成交数据
+		this.groupTypeConvert(vipGroupActivityDao.count2022ActivityStatis(),doubleEleven2022Dto);
+		//获取赠送会员数
+		Integer giveMemberNum = tempBuyDoubleElevenUserLogDao.countGiveNum();
+		doubleEleven2022Dto.setGiveMemberNum(giveMemberNum==null?0l:giveMemberNum.longValue());
+		return doubleEleven2022Dto;
+	}
+
+	@Override
     public List<DoubleEleven2021Dto> organDoubleEleven2021Statis(OrganDoubleEleven2021StatisDto statisDto) {
-		String order = statisDto.getOrder();
-		String sort = statisDto.getSort();
 		List<DoubleEleven2021Dto> doubleEleven2021Dtos = vipGroupActivityDao.countOrganDoubleEleven2021Statis(statisDto.getOrganId());
-		if(doubleEleven2021Dtos != null && doubleEleven2021Dtos.size() > 0){
+		return this.sumDoubleEleven(doubleEleven2021Dtos,statisDto);
+    }
+
+	private List<DoubleEleven2021Dto> sumDoubleEleven(List<DoubleEleven2021Dto> doubleEleven2021Dtos,OrganDoubleEleven2021StatisDto statisDto){
+		if(!CollectionUtils.isEmpty(doubleEleven2021Dtos)){
+			String order = statisDto.getOrder();
+			String sort = statisDto.getSort();
 			List<Integer> organIdList = doubleEleven2021Dtos.stream().map(e -> e.getOrganId()).collect(Collectors.toList());
 			List<DoubleEleven2021ActivityDto> activityDtoList = vipGroupActivityDao.countOrganActivityStatis(organIdList);
 			Map<Integer, List<DoubleEleven2021ActivityDto>> collect = new HashMap<>();
@@ -418,10 +443,10 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 			}
 		}
 		return doubleEleven2021Dtos;
-    }
+	}
 
 	@Override
-	public Object doubleEleven2021Statis() {
+	public DoubleEleven2021Dto doubleEleven2021Statis() {
 		//获取总成交数据
 		DoubleEleven2021Dto doubleEleven2021Dto = vipGroupActivityDao.countDoubleEleven2021Statis();
 		if(doubleEleven2021Dto.getTotalBuyAmount().compareTo(ZERO) > 0){
@@ -429,8 +454,15 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 					doubleEleven2021Dto.getTotalBuyAmount().divide(new BigDecimal(doubleEleven2021Dto.getTotalBuyNum()),2,BigDecimal.ROUND_CEILING));
 		}
 		//获取活动成交数据
-		List<DoubleEleven2021ActivityDto> activityDtos = vipGroupActivityDao.countActivityStatis();
-		if(activityDtos != null && activityDtos.size() > 0){
+		this.groupTypeConvert(vipGroupActivityDao.countActivityStatis(),doubleEleven2021Dto);
+		//获取赠送会员数
+		Integer giveMemberNum = vipGroupActivityDao.countGiveMemberNum();
+		doubleEleven2021Dto.setGiveMemberNum(giveMemberNum==null?0l:giveMemberNum.longValue());
+		return doubleEleven2021Dto;
+	}
+
+	private void groupTypeConvert(List<DoubleEleven2021ActivityDto> activityDtos,DoubleEleven2021Dto doubleEleven2021Dto){
+		if(!CollectionUtils.isEmpty(activityDtos)){
 			for (DoubleEleven2021ActivityDto activityDto : activityDtos) {
 				if(activityDto.getType() == 1){
 					doubleEleven2021Dto.setVip1V120Amount(activityDto.getBuyAmount());
@@ -450,10 +482,6 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 				}
 			}
 		}
-		//获取赠送会员数
-		Integer giveMemberNum = vipGroupActivityDao.countGiveMemberNum();
-		doubleEleven2021Dto.setGiveMemberNum(giveMemberNum==null?0l:giveMemberNum.longValue());
-		return doubleEleven2021Dto;
 	}
 
 	@Override

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/TempBuyDoubleElevenUserLog.xml

@@ -27,6 +27,9 @@
         FROM temp_buy_double_eleven_user_log
         ORDER BY id_
     </select>
+    <select id="countGiveNum" resultType="java.lang.Integer">
+        select count(distinct user_id_) from temp_buy_double_eleven_user_log where give_flag_ = 1;
+    </select>
 
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse" useGeneratedKeys="true"

+ 26 - 0
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -406,6 +406,16 @@
 		  AND spo.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24)
 		GROUP BY aum.activity_id_,aum.user_id_) c GROUP BY c.type_
 	</select>
+	<select id="count2022ActivityStatis" resultMap="DoubleEleven2021ActivityDto">
+		SELECT SUM(c.buy_amount_) buy_amount_,SUM(c.buy_num_) buy_num_,c.type_ FROM (
+		SELECT SUM(aum.actual_price_) buy_amount_,COUNT(DISTINCT aum.user_id_) buy_num_,vga.code_ type_
+		FROM student_payment_order spo
+				 LEFT JOIN activity_user_mapper aum ON spo.id_ = aum.payment_order_id_ AND spo.user_id_ = aum.user_id_
+				 LEFT JOIN vip_group_activity vga ON vga.id_ = aum.activity_id_
+		WHERE spo.group_type_ = 'ACTIVITY' AND spo.type_ = 'SMALL_CLASS_TO_BUY' AND spo.status_ = 'SUCCESS' AND spo.memo_ = '2022双十一活动购买'
+		  AND spo.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24)
+		GROUP BY aum.activity_id_,aum.user_id_) c GROUP BY c.type_
+	</select>
 	<resultMap id="DoubleEleven2021Dto" type="com.ym.mec.biz.dal.dto.DoubleEleven2021Dto">
 		<result property="totalBuyAmount" column="total_buy_amount_"/>
 		<result property="totalBuyNum" column="total_buy_num_"/>
@@ -417,6 +427,11 @@
 		WHERE type_ = 'DOUBLE_ELEVEN2021' AND status_ = 'SUCCESS'
 		AND organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24)
 	</select>
+	<select id="countDoubleEleven2022Statis" resultMap="DoubleEleven2021Dto">
+		SELECT SUM(spo.expect_amount_) total_buy_amount_,COUNT(DISTINCT spo.user_id_) total_buy_num_ FROM student_payment_order spo
+		WHERE spo.group_type_ = 'ACTIVITY' AND spo.type_ = 'SMALL_CLASS_TO_BUY' AND spo.status_ = 'SUCCESS' AND spo.memo_ = '2022双十一活动购买'
+		AND spo.organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24)
+	</select>
 	<select id="countGiveMemberNum" resultType="java.lang.Integer">
 		SELECT COUNT(DISTINCT student_id_) FROM cloud_teacher_order WHERE remark_ = '双十一活动赠送会员'
 		AND organ_id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24)
@@ -453,6 +468,17 @@
 		</if>
 		GROUP BY o.id_
 	</select>
+	<select id="countOrganDoubleEleven2022Statis" resultMap="DoubleEleven2021Dto">
+		SELECT SUM(spo.expect_amount_) total_buy_amount_,COUNT(DISTINCT spo.user_id_) total_buy_num_,o.name_ organ_name_,o.id_ organ_id_
+		FROM organization o
+		LEFT JOIN student_payment_order spo ON o.id_ = spo.organ_id_
+		AND spo.group_type_ = 'ACTIVITY' AND spo.type_ = 'SMALL_CLASS_TO_BUY' AND spo.status_ = 'SUCCESS' AND spo.memo_ = '2022双十一活动购买'
+		WHERE o.id_ NOT IN (36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24)
+		<if test="organId != null">
+			AND o.id_ = #{organId}
+		</if>
+		GROUP BY o.id_
+	</select>
 	<resultMap id="DoubleEleven2021OrderDetailDto" type="com.ym.mec.biz.dal.dto.DoubleEleven2021OrderDetailDto">
 		<result property="userId" column="user_id_"/>
 		<result property="username" column="username_"/>

+ 2 - 1
mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java

@@ -37,7 +37,8 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                         "/replacementInstrumentActivity/queryReplacementsStat", "/eduStudentRegistration/queryPreApplyList",
                         "/eduSubject/findSubSubjects", "/eduFinancialExpenditure/batchAdd", "/eduSendNotice/*",
                         "/oaContracts/*", "/eduStudent/organStudentOverView", "/activity/countCloudTeacherActive",
-                        "/activity/organDoubleEleven2021Statis", "/activity/doubleEleven2021Statis", "/questionnaireTopic/getDetail", "/questionnaireUserResult/add",
+                        "/activity/organDoubleEleven2021Statis", "/activity/doubleEleven2021Statis", "/activity/organDoubleEleven2022Statis", "/activity/doubleEleven2022Statis",
+                        "/questionnaireTopic/getDetail", "/questionnaireUserResult/add",
                         "/tenantInfo/info/*", "/tenantInfo/checkInfo/*", "/tenantInfo/pay/*","/tenantInfo/testCheck", "/tenantInfo/getContract/*",
                         "/tenantPreJoin/add","/imLiveBroadcastRoom/queryRoomInfo","/imLiveBroadcastRoom/test",
                         "/eduOrganization/queryAllOrgan","/eduOrganization/getOrganCooperation","/import/oaUploadFile",

+ 7 - 5
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupActivityController.java

@@ -1,6 +1,5 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
@@ -19,7 +18,6 @@ import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
@@ -28,8 +26,6 @@ import org.springframework.web.bind.annotation.*;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -64,7 +60,7 @@ public class VipGroupActivityController extends BaseController {
     @GetMapping("/organDoubleEleven2022Statis")
     @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/organDoubleEleven2022Statis')")
     public HttpResponseResult organDoubleEleven2022Statis(OrganDoubleEleven2021StatisDto queryInfo){
-        return succeed(vipGroupActivityService.organDoubleEleven2021Statis(queryInfo));
+        return succeed(vipGroupActivityService.organDoubleEleven2022Statis(queryInfo));
     }
 
     @ApiOperation(value = "分部2021双11活动学员列表")
@@ -80,6 +76,12 @@ public class VipGroupActivityController extends BaseController {
     public HttpResponseResult doubleEleven2021Statis(){
         return succeed(vipGroupActivityService.doubleEleven2021Statis());
     }
+    @ApiOperation(value = "双11活动统计")
+    @GetMapping("/doubleEleven2022Statis")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/doubleEleven2022Statis')")
+    public HttpResponseResult doubleEleven2022Statis(){
+        return succeed(vipGroupActivityService.doubleEleven2022Statis());
+    }
 
     @ApiOperation(value = "新增vip课活动方案")
     @PostMapping("/addVipGroupActivity")

+ 29 - 38
mec-web/src/main/java/com/ym/mec/web/controller/education/ActivityController.java

@@ -3,22 +3,31 @@ package com.ym.mec.web.controller.education;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.VipGroupActivity;
 import com.ym.mec.biz.dal.page.ActivityStudentQueryInfo;
 import com.ym.mec.biz.dal.page.CloudTeacherActiveQueryInfo;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.StudentService;
+import com.ym.mec.biz.service.SysUserService;
+import com.ym.mec.biz.service.VipGroupActivityService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
@@ -42,49 +51,23 @@ public class ActivityController extends BaseController {
     @Autowired
     private VipGroupActivityService vipGroupActivityService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
+    private SysUserService sysUserService;
     @Autowired
     private EmployeeDao employeeDao;
-    @Autowired
-    private TeacherDao teacherDao;
-    @Autowired
-    private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
-    @Autowired
-    private VipGroupService vipGroupService;
-    @Autowired
-    private PracticeGroupService practiceGroupService;
 
     @ApiOperation(value = "获取待排课的活动方案列表")
     @RequestMapping("/queryWaitCourseActivity")
     public Object queryWaitCourseActivity(String organId){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (sysUser == null) {
-            return failed("用户信息获取失败");
-        }
-        Employee employee = employeeDao.get(sysUser.getId());
-        if (organId == null) {
-            organId = employee.getOrganIdList();
-        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
-            return failed("用户所在分部异常");
-        }else {
-            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
-            if(!list.containsAll(Arrays.asList(organId.split(",")))){
-                return failed("非法请求");
-            }
-        }
+        organId = organizationService.getEmployeeOrgan(organId);
         return succeed(vipGroupActivityService.queryWaitCourseActivity(null,organId));
     }
 
     @ApiOperation(value = "获取活动待排课学员数量")
     @RequestMapping("/getActivityWaitCourseStudentNum")
     public Object getActivityWaitCourseStudentNum(Integer activityId){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("用户信息获取失败");
-        }
         ActivityWaitCourseStudentNumDto courseStudentNum = vipGroupActivityService.getActivityWaitCourseStudentNum(null, activityId);
         VipGroupActivity vipGroupActivity = courseStudentNum.getVipGroupActivity();
-        Employee employee = employeeDao.get(sysUser.getId());
+        Employee employee = employeeDao.get(sysUserService.getUserId());
         List<Integer> activityOrgans = Arrays.stream(vipGroupActivity.getOrganId().split(",")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList());
         if(StringUtils.isEmpty(employee.getOrganIdList())){
             courseStudentNum.setEmployeeAndActivityOrganIds(StringUtils.join(activityOrgans,","));
@@ -99,14 +82,22 @@ public class ActivityController extends BaseController {
     @ApiOperation(value = "获取活动学员课排课次数")
     @RequestMapping("/getActivityStudentCanCourseNum")
     public Object getActivityStudentCanCourseNum(ActivityStudentQueryInfo queryInfo){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("用户信息获取失败");
-        }
         return succeed(vipGroupActivityService.getActivityStudentCanCourseNum(queryInfo));
     }
 
     @ApiOperation(value = "分部双11活动统计")
+    @GetMapping("/organDoubleEleven2022Statis")
+    public HttpResponseResult organDoubleEleven2022Statis(OrganDoubleEleven2021StatisDto queryInfo){
+        return succeed(vipGroupActivityService.organDoubleEleven2022Statis(queryInfo));
+    }
+
+    @ApiOperation(value = "双11活动统计")
+    @GetMapping("/doubleEleven2022Statis")
+    public HttpResponseResult doubleEleven2022Statis(){
+        return succeed(vipGroupActivityService.doubleEleven2022Statis());
+    }
+
+    @ApiOperation(value = "分部双11活动统计")
     @GetMapping("/organDoubleEleven2021Statis")
     public HttpResponseResult organDoubleEleven2021Statis(OrganDoubleEleven2021StatisDto queryInfo){
         return succeed(vipGroupActivityService.organDoubleEleven2021Statis(queryInfo));