zouxuan 2 роки тому
батько
коміт
918384f9bc

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ActivityUserMapperService.java

@@ -210,4 +210,6 @@ public interface ActivityUserMapperService extends BaseService<Integer, Activity
     PageInfo<ActivityUserMapperDetailDto> queryDetailPage(ActivityUserMapperDetailQueryInfo queryInfo);
 
     PageInfo<ActivityUserMapperSumDto> querySumPage(ActivityUserMapperDetailQueryInfo queryInfo);
+
+    void saveToOrder(StudentPaymentOrder studentPaymentOrder,Integer teacherId);
 }

+ 62 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java

@@ -103,7 +103,9 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 	@Autowired
 	private MusicGroupPaymentCalenderActivityDao musicGroupPaymentCalenderActivityDao;
 	@Autowired
-	private CloudTeacherFreeCourseService cloudTeacherFreeCourseService;
+	private CloudTeacherOrderService cloudTeacherOrderService;
+	@Autowired
+	private TenantConfigService tenantConfigService;
 
 	@Override
 	public BaseDAO<Integer, ActivityUserMapper> getDAO() {
@@ -1205,4 +1207,63 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+    @Override
+	@Transactional(rollbackFor = Exception.class)
+    public void saveToOrder(StudentPaymentOrder studentPaymentOrder,Integer teacherId) {
+		String activityIds = studentPaymentOrder.getActivityId();
+		List<VipGroupActivity> activities = vipGroupActivityDao.queryByIds(activityIds);
+		BigDecimal reduce = activities.stream().map(e -> e.getMarketPrice()).reduce(ZERO, BigDecimal::add);
+		BigDecimal totalActual = studentPaymentOrder.getExpectAmount();
+		BigDecimal subActual = totalActual;
+		for (int i = 0; i < activities.size(); i++) {
+			VipGroupActivity activity = activities.get(i);
+			ActivityUserMapper activityUserMapper = new ActivityUserMapper();
+			activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
+			activityUserMapper.setUserId(studentPaymentOrder.getUserId());
+			activityUserMapper.setActivityId(activity.getId());
+			activityUserMapper.setTeacherId(teacherId);
+			activityUserMapper.setAddMemo(activity.getName());
+			activityUserMapper.setOrganId(studentPaymentOrder.getOrganId());
+			if (i == activities.size() - 1) {
+				activityUserMapper.setActualPrice(subActual);
+			} else {
+				//获取比例
+				BigDecimal ratioAmount = activity.getMarketPrice().divide(reduce, 6, BigDecimal.ROUND_HALF_UP);
+				//获取分配的减免金额
+				BigDecimal multiply = ratioAmount.multiply(totalActual).setScale(2, BigDecimal.ROUND_HALF_UP);
+				subActual = subActual.subtract(multiply);
+				activityUserMapper.setActualPrice(multiply);
+			}
+			if(activity.getActivityType().equals(0)){
+				activityUserMapper.setSubNoCoursePrice(activityUserMapper.getActualPrice());
+				activityUserMapper.setTotalCourseNum(activity.getMinCourseNum());
+				activityUserMapper.setSubCourseNum(activity.getMinCourseNum());
+				activityUserMapper.setSingleCourseTime(activity.getSingleCourseTime());
+				//vip课
+				if(StringUtils.isNotEmpty(activity.getVipGroupCategoryIdList())){
+					activityUserMapper.setVipFlag(1);
+					activityUserMapper.setCategoryId(Integer.parseInt(activity.getVipGroupCategoryIdList()));
+				}else {
+					//网管课
+					activityUserMapper.setPracticeFlag(1);
+				}
+			}else {
+				CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
+				cloudTeacherOrder.setStatus(1);
+				cloudTeacherOrder.setAmount(activityUserMapper.getActualPrice());
+				cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
+				cloudTeacherOrder.setRemark(studentPaymentOrder.getMemo());
+				cloudTeacherOrder.setLevel(activity.getMemberRankId());
+				cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId());
+				cloudTeacherOrder.setType(activity.getPeriodEnum());
+				cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
+				cloudTeacherOrder.setTime(studentPaymentOrder.getActivityBuyNum());
+				cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId()));
+				activityUserMapper.setMemberFlag(1);
+				activityUserMapper.setMemberOrderId(cloudTeacherOrder.getId());
+			}
+			activityUserMapperDao.insert(activityUserMapper);
+		}
+    }
 }

+ 50 - 46
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java

@@ -11,7 +11,6 @@ import com.ym.mec.biz.dal.page.ActivityStudentQueryInfo;
 import com.ym.mec.biz.dal.page.DoubleEleven2021QueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
 import com.ym.mec.biz.service.*;
-import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -35,7 +34,8 @@ import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.ORGAN_MANAGER;
-import static java.math.BigDecimal.*;
+import static java.math.BigDecimal.ROUND_UP;
+import static java.math.BigDecimal.ZERO;
 
 @Service
 public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGroupActivity>  implements VipGroupActivityService {
@@ -632,9 +632,10 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 			//处理双十一活动特殊赠送
 			this.doubleElevenGive(studentPaymentOrder);
 			//处理活动赠送
-			String[] activityIds = studentPaymentOrder.getActivityId().split(",");
-			for (String activityId : activityIds) {
-				studentPaymentOrderService.activityGive(Integer.parseInt(activityId), studentPaymentOrder,
+			if(StringUtils.contains(studentPaymentOrder.getActivityId(),",")){
+				activityUserMapperService.saveToOrder(studentPaymentOrder,student.getTeacherId());
+			}else {
+				studentPaymentOrderService.activityGive(Integer.parseInt(studentPaymentOrder.getActivityId()), studentPaymentOrder,
 						null, null, student.getTeacherId());
 			}
 			//保存账户信息
@@ -675,7 +676,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 				}
 				tempBuyDoubleElevenUserLogDao.insert(doubleElevenUserLog);
 				//赠送抽奖机会
-				luckDrawCountService.freeGive(studentPaymentOrder.getUserId().longValue(),Integer.parseInt(jsonDto.getValue()),3);
+				luckDrawCountService.freeGive(studentPaymentOrder.getUserId().longValue(),Integer.parseInt(jsonDto.getValue()),5);
 			}
 		}
 	}
@@ -804,45 +805,17 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 
     private void sendSuccessMsg(StudentPaymentOrder studentPaymentOrder){
 		Integer userId = studentPaymentOrder.getUserId();
-		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(Integer.parseInt(studentPaymentOrder.getActivityId()));
-		String activityName = vipGroupActivity.getName();
-		if(vipGroupActivity.getActivityType().equals(0)) {
-			SysUser user = teacherDao.getUser(userId);
-			String username = StringUtils.isEmpty(user.getUsername()) ? user.getRealName() : user.getUsername();
-			Map<Integer, String> map = new HashMap<>(1);
-			map.put(userId, userId.toString());
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_STUDENT_BUY_ACTIVITY, map, null, 0, null, "STUDENT",
-					activityName);
-			//获取乐团主管
-			Map<Integer, String> eduMap = MapUtil.convertMybatisMap(studentRegistrationDao.queryStudentEduMap(userId));
-			if (CollectionUtils.isEmpty(eduMap)) {
-				Set<Integer> integers = employeePositionService.queryUserIdByRoleId(new SysUserRoleEnum[]{ORGAN_MANAGER}, studentPaymentOrder.getOrganId());
-				eduMap = new HashMap<>(integers.size());
-				if (!CollectionUtils.isEmpty(integers)) {
-					for (Integer integer : integers) {
-						eduMap.put(integer, integer.toString());
-					}
-				}
-			}
-			if (!CollectionUtils.isEmpty(eduMap)) {
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_SYSTEM_ACTIVITY_COURSE,
-						eduMap, null, 0, null, "SYSTEM", username, activityName);
-			}
-			Student student = studentDao.get(userId);
-			if (Objects.nonNull(student) && student.getTeacherId() != null) {
-				Map<Integer, String> teacherMap = new HashMap<>(1);
-				teacherMap.put(student.getTeacherId(), student.getTeacherId().toString());
-				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_TEACHER_ACTIVITY_COURSE,
-						teacherMap, null, 0, null, "TEACHER", username, activityName);
-			}
-		}else {
-			SysUser user = teacherDao.getUser(userId);
-			String username = StringUtils.isEmpty(user.getUsername()) ? user.getRealName() : user.getUsername();
-			Map<Integer, String> map = new HashMap<>(1);
-			map.put(userId, userId.toString());
-			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_STUDENT_BUY_MEMBER_ACTIVITY, map, null, 0, null, "STUDENT",
-					activityName);
-			if(!tenantConfigService.autoActivationFlag(user.getTenantId())){
+		String[] split = studentPaymentOrder.getActivityId().split(",");
+		for (String activityId : split) {
+			VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(Integer.parseInt(activityId));
+			String activityName = vipGroupActivity.getName();
+			if(vipGroupActivity.getActivityType().equals(0)) {
+				SysUser user = teacherDao.getUser(userId);
+				String username = StringUtils.isEmpty(user.getUsername()) ? user.getRealName() : user.getUsername();
+				Map<Integer, String> map = new HashMap<>(1);
+				map.put(userId, userId.toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_STUDENT_BUY_ACTIVITY, map, null, 0, null, "STUDENT",
+						activityName);
 				//获取乐团主管
 				Map<Integer, String> eduMap = MapUtil.convertMybatisMap(studentRegistrationDao.queryStudentEduMap(userId));
 				if (CollectionUtils.isEmpty(eduMap)) {
@@ -855,9 +828,40 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 					}
 				}
 				if (!CollectionUtils.isEmpty(eduMap)) {
-					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_SYSTEM_ACTIVITY_MEMBER,
+					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_SYSTEM_ACTIVITY_COURSE,
 							eduMap, null, 0, null, "SYSTEM", username, activityName);
 				}
+				Student student = studentDao.get(userId);
+				if (Objects.nonNull(student) && student.getTeacherId() != null) {
+					Map<Integer, String> teacherMap = new HashMap<>(1);
+					teacherMap.put(student.getTeacherId(), student.getTeacherId().toString());
+					sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_TEACHER_ACTIVITY_COURSE,
+							teacherMap, null, 0, null, "TEACHER", username, activityName);
+				}
+			}else {
+				SysUser user = teacherDao.getUser(userId);
+				String username = StringUtils.isEmpty(user.getUsername()) ? user.getRealName() : user.getUsername();
+				Map<Integer, String> map = new HashMap<>(1);
+				map.put(userId, userId.toString());
+				sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_STUDENT_BUY_MEMBER_ACTIVITY, map, null, 0, null, "STUDENT",
+						activityName);
+				if(!tenantConfigService.autoActivationFlag(user.getTenantId())){
+					//获取乐团主管
+					Map<Integer, String> eduMap = MapUtil.convertMybatisMap(studentRegistrationDao.queryStudentEduMap(userId));
+					if (CollectionUtils.isEmpty(eduMap)) {
+						Set<Integer> integers = employeePositionService.queryUserIdByRoleId(new SysUserRoleEnum[]{ORGAN_MANAGER}, studentPaymentOrder.getOrganId());
+						eduMap = new HashMap<>(integers.size());
+						if (!CollectionUtils.isEmpty(integers)) {
+							for (Integer integer : integers) {
+								eduMap.put(integer, integer.toString());
+							}
+						}
+					}
+					if (!CollectionUtils.isEmpty(eduMap)) {
+						sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.PUSH_SYSTEM_ACTIVITY_MEMBER,
+								eduMap, null, 0, null, "SYSTEM", username, activityName);
+					}
+				}
 			}
 		}
 	}

+ 6 - 20
mec-student/src/main/java/com/ym/mec/student/controller/LuckDrawController.java

@@ -1,12 +1,11 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.LuckDrawLog;
 import com.ym.mec.biz.dal.page.LuckDrawQueryInfo;
 import com.ym.mec.biz.service.LuckDrawCountService;
 import com.ym.mec.biz.service.LuckDrawLogService;
 import com.ym.mec.biz.service.LuckDrawPrizeService;
+import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.util.string.ValueUtil;
@@ -33,14 +32,13 @@ public class LuckDrawController extends BaseController {
 	private LuckDrawCountService luckDrawCountService;
 
 	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	private SysUserService sysUserService;
 
 	@ApiOperation(value = "查询抽奖记录")
 	@GetMapping(value = "/list")
 	public Object list(LuckDrawQueryInfo queryInfo) {
 		if(!queryInfo.getAllFlag()){
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			queryInfo.setUserId(sysUser.getId());
+			queryInfo.setUserId(sysUserService.getUserId());
 		}
 		PageInfo<LuckDrawLog> pageInfo = luckDrawLogService.queryPage(queryInfo);
 		for (LuckDrawLog log : pageInfo.getRows()) {
@@ -52,32 +50,20 @@ public class LuckDrawController extends BaseController {
 	@ApiOperation(value = "查询我的抽奖记录")
 	@GetMapping(value = "/myList")
 	public Object myList(LuckDrawQueryInfo queryInfo) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("用户信息获取失败");
-		}
-		queryInfo.setUserId(sysUser.getId());
+		queryInfo.setUserId(sysUserService.getUserId());
 		return succeed(luckDrawLogService.queryPage(queryInfo));
 	}
 
 	@ApiOperation(value = "抽奖")
 	@PostMapping(value = "/draw")
 	public Object draw(Integer groupId) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("用户信息获取失败");
-		}
-		return succeed(luckDrawPrizeService.draw((long) sysUser.getId(), groupId));
+		return succeed(luckDrawPrizeService.draw((long) sysUserService.getUserId(), groupId));
 	}
 
 	@ApiOperation(value = "查询个人抽奖机会")
 	@GetMapping(value = "/queryCount")
 	public Object queryCount(Integer groupId) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("用户信息获取失败");
-		}
-		return succeed(luckDrawCountService.findByIdAndGroupId(sysUser.getId(),groupId));
+		return succeed(luckDrawCountService.findByIdAndGroupId(sysUserService.getUserId(),groupId));
 	}
 
 }

+ 2 - 2
mec-student/src/main/resources/logback-spring.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <configuration scan="true" scanPeriod="10 seconds">
 
-	<property name="LOG_HOME" value="/mdata/logs/student-%d{yyyy-MM-dd_HH}-%i.log" />
+	<property name="LOG_HOME" value="/Users/chenxiaoyu/Documents/logs/student-%d{yyyy-MM-dd_HH}-%i.log" />
 	<property name="CONSOLE_LOG_PATTERN"
 			  value="[%X{username} %X{reqId} %X{ip} %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}] : %msg%n" />
 
@@ -30,7 +30,7 @@
 	<appender name="messagefile"
 			  class="ch.qos.logback.core.rolling.RollingFileAppender">
 		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
-			<FileNamePattern>/mdata/logs/student-message-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
+			<FileNamePattern>/Users/chenxiaoyu/Documents/logs/student-message-%d{yyyy-MM-dd_HH}-%i.log</FileNamePattern>
 			<MaxHistory>90</MaxHistory>
 			<TimeBasedFileNamingAndTriggeringPolicy
 					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">