Browse Source

活动排课

zouxuan 3 năm trước cách đây
mục cha
commit
a77a6f9d26

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ActivityUserMapperDao.java

@@ -56,4 +56,14 @@ public interface ActivityUserMapperDao extends BaseDAO<Integer, ActivityUserMapp
             @Param("studentIds") String studentIds,
             @Param("type") String type,
             @Param("groupId") Long groupId);
+
+    /**
+    * @description:
+     * @param groupId
+ * @param groupType
+    * @return com.ym.mec.biz.dal.entity.ActivityUserMapper
+    * @author zx
+    * @date 2021/10/22 17:36
+    */
+    ActivityUserMapper findVipUserMapper(@Param("groupId") Long groupId, @Param("groupType") String groupType);
 }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.ActivityUserMapper;
 import com.ym.mec.common.service.BaseService;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -48,4 +49,14 @@ public interface ActivityUserMapperService extends BaseService<Integer, Activity
     * @date 2021/10/15 16:18
     */
     int countActivityBuyNum(Integer activityId, Integer userId);
+
+    /**
+    * @description:
+     * @param groupId
+     * @param groupType
+    * @return com.ym.mec.biz.dal.entity.ActivityUserMapper
+    * @author zx
+    * @date 2021/10/22 17:35
+    */
+    ActivityUserMapper findVipUserMapper(Long groupId,String groupType);
 }

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ActivityUserMapperServiceImpl.java

@@ -40,4 +40,9 @@ public class ActivityUserMapperServiceImpl extends BaseServiceImpl<Integer, Acti
 	public int countActivityBuyNum(Integer activityId, Integer userId) {
 		return activityUserMapperDao.countActivityBuyNum(activityId,userId);
 	}
+
+	@Override
+	public ActivityUserMapper findVipUserMapper(Long groupId, String groupType) {
+		return activityUserMapperDao.findVipUserMapper(groupId,groupType);
+	}
 }

+ 18 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -2233,7 +2233,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请设置教师VIP课课酬");
 		}
 
-		Map<String,BigDecimal> results=new HashMap<>(2);
+		Map<String,BigDecimal> results = new HashMap<>(2);
 
 		VipGroupSalarySettlementTypeDto vipOfflineSalarySettlement = null;
 		VipGroupSalarySettlementTypeDto giveVipOfflineSalarySettlement = null;
@@ -2247,11 +2247,20 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 			vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getVipOfflineSalarySettlement();
 			giveVipOfflineSalarySettlement = vipGroupSalarySettlementDto.getGiveVipOfflineSalarySettlement();
+
+			//是否是赠送课程
+			ActivityUserMapper activityUserMapper = activityUserMapperService.findVipUserMapper(vipGroup.getId(),"VIP");
+			if(activityUserMapper != null){
+				if(vipGroup.getId().equals(activityUserMapper.getGiveVipGroupId())){
+					vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getGiveVipOfflineSalarySettlement();
+				}
+			}
+
 		}
 
-		BigDecimal offlineClassNum=new BigDecimal(vipGroup.getOfflineClassesNum());
-		BigDecimal onlineClassNum=new BigDecimal(vipGroup.getOnlineClassesNum());
-		BigDecimal onlineClassesUnitPrice=vipGroup.getOnlineClassesUnitPrice();
+		BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
+		BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
+		BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
 		if(Objects.isNull(onlineClassesUnitPrice)){
 			throw new BizException("课程单价异常");
 		}
@@ -2314,6 +2323,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(gofts)){
 			gofts = BigDecimal.ZERO;
 		}
+		if(!vipGroupCategory.getMusicTheory()){
+			int normalStudentNum = classGroupStudentMapperDao.countGroupNormalStudentNum(VIP, vipGroup.getId().toString());
+			gofts = gofts.divide(new BigDecimal(vipGroupCategory.getStudentNum()),CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(normalStudentNum)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+			ofts = ofts.divide(new BigDecimal(vipGroupCategory.getStudentNum()),CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).multiply(new BigDecimal(normalStudentNum)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
+		}
 		results.put("offlineTeacherSalary", ofts);
 		results.put("giveOfflineTeacherSalary", gofts);
         return results;

+ 11 - 0
mec-biz/src/main/resources/config/mybatis/ActivityUserMapperMapper.xml

@@ -173,4 +173,15 @@
     <select id="findByStudentId" resultMap="ActivityUserMapper">
 		SELECT * FROM activity_user_mapper WHERE vip_group_id_ = #{groupId} AND user_id_ = #{studentId}
 	</select>
+	<select id="findVipUserMapper" resultMap="ActivityUserMapper">
+		SELECT * FROM activity_user_mapper
+		WHERE 1 == 1
+		<if test="groupType == 'VIP'">
+			AND (vip_group_id_ = #{groupId} OR give_vip_group_id_ = #{groupId})
+		</if>
+		<if test="groupType == 'PRACTICE'">
+			AND (practice_group_id_ = #{groupId} OR give_practice_group_id_ = #{groupId})
+		</if>
+		LIMIT 1
+	</select>
 </mapper>