Joburgess 5 年之前
父节点
当前提交
5e463208f5

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -132,4 +132,13 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
      */
      */
     List<CourseScheduleTeacherSalary> findByCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
     List<CourseScheduleTeacherSalary> findByCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
+	/**
+	 * @describe 统计班级上老师的先上课,线下课课酬
+	 * @author Joburgess
+	 * @date 2019/11/5
+	 * @param classGroupId: 班级编号
+	 * @return java.util.List<java.util.Map<java.lang.String,java.math.BigDecimal>>
+	 */
+	List<Map<String, BigDecimal>> countTeacherOnlineOfflineSalaryByClass(@Param("classGroupId") Integer classGroupId);
 }
 }

+ 7 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -5,6 +5,7 @@ import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.List;
@@ -118,13 +119,13 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	VipGroupManageDetailDto getVipGroupBaseInfo(Long vipGroupId);
 	VipGroupManageDetailDto getVipGroupBaseInfo(Long vipGroupId);
 
 
 	/**
 	/**
-	 * @Author: Joburgess
-	 * @Date: 2019/10/11
-	 * @params [vipGroupId]
-	 * @return com.ym.mec.biz.dal.dto.VipGroupSalaryBaseInfo
 	 * @describe 获取vip课财务基本信息
 	 * @describe 获取vip课财务基本信息
+	 * @author Joburgess
+	 * @date 2019/11/5
+	 * @param vipGroupId: vip课编号
+	 * @return com.ym.mec.biz.dal.dto.VipGroupSalaryBaseInfo
 	 */
 	 */
-	VipGroupSalaryBaseInfo getVipGroupSalaryInfo(Long vipGroupId);
+	VipGroupSalaryBaseInfo getVipGroupSalaryInfo(@Param("vipGroupId") Long vipGroupId);
 
 
 	/**
 	/**
 	 * @Author: Joburgess
 	 * @Author: Joburgess
@@ -241,4 +242,4 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	 * @return
 	 * @return
 	 */
 	 */
 	Integer queryCurrentMonthCoursesNum(Integer organId);
 	Integer queryCurrentMonthCoursesNum(Integer organId);
-}
+}

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalaryBaseInfo.java

@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty;
 import org.codehaus.jackson.annotate.JsonIgnore;
 import org.codehaus.jackson.annotate.JsonIgnore;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.Objects;
 
 
 /**
 /**
  * @Author Joburgess
  * @Author Joburgess
@@ -24,6 +25,39 @@ public class VipGroupSalaryBaseInfo {
     @ApiModelProperty(value = "课酬总额")
     @ApiModelProperty(value = "课酬总额")
     private BigDecimal totalSalary;
     private BigDecimal totalSalary;
 
 
+    @ApiModelProperty(value = "课程总价")
+    private BigDecimal totalCoursePrice;
+
+    @ApiModelProperty(value = "教师线上课总课酬")
+    private BigDecimal totalOnlineTeacherSalary;
+
+    @ApiModelProperty(value = "教师线下课总课酬")
+    private BigDecimal totalOfflineTeacherSalary;
+
+    public BigDecimal getTotalCoursePrice() {
+        return totalCoursePrice;
+    }
+
+    public void setTotalCoursePrice(BigDecimal totalCoursePrice) {
+        this.totalCoursePrice = totalCoursePrice;
+    }
+
+    public BigDecimal getTotalOnlineTeacherSalary() {
+        return totalOnlineTeacherSalary;
+    }
+
+    public void setTotalOnlineTeacherSalary(BigDecimal totalOnlineTeacherSalary) {
+        this.totalOnlineTeacherSalary = Objects.isNull(totalOnlineTeacherSalary)?new BigDecimal(0):totalOnlineTeacherSalary;
+    }
+
+    public BigDecimal getTotalOfflineTeacherSalary() {
+        return totalOfflineTeacherSalary;
+    }
+
+    public void setTotalOfflineTeacherSalary(BigDecimal totalOfflineTeacherSalary) {
+        this.totalOfflineTeacherSalary = Objects.isNull(totalOfflineTeacherSalary)?new BigDecimal(0):totalOfflineTeacherSalary;
+    }
+
     public BigDecimal getExpectTotalSalary() {
     public BigDecimal getExpectTotalSalary() {
         return expectTotalSalary;
         return expectTotalSalary;
     }
     }

+ 7 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/PlatformCashAccountDetailTypeEnum.java

@@ -6,8 +6,13 @@ import com.ym.mec.common.enums.BaseEnum;
  * 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账)
  * 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账)
  */
  */
 public enum PlatformCashAccountDetailTypeEnum implements BaseEnum<String, PlatformCashAccountDetailTypeEnum> {
 public enum PlatformCashAccountDetailTypeEnum implements BaseEnum<String, PlatformCashAccountDetailTypeEnum> {
-	RECHARGE("RECHARGE", "充值"), WITHDRAW("WITHDRAW", "提现"), PAY_FEE("PAY_FEE", "缴费"), FILL_ACCOUNT("FILL_ACCOUNT", "人工补账"), REFUNDS("REFUNDS", "退费"), REWARDS(
-			"REWARDS", "奖励"), WAGE("WAGE", "工资");
+	RECHARGE("RECHARGE", "充值"),
+	WITHDRAW("WITHDRAW", "提现"),
+	PAY_FEE("PAY_FEE", "缴费"),
+	FILL_ACCOUNT("FILL_ACCOUNT", "人工补账"),
+	REFUNDS("REFUNDS", "退费"),
+	REWARDS("REWARDS", "奖励"),
+	WAGE("WAGE", "工资");
 
 
 	private String code;
 	private String code;
 
 

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherSalaryService.java

@@ -3,7 +3,9 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.common.service.BaseService;
 
 
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 
 
 public interface ClassGroupTeacherSalaryService extends BaseService<Long, ClassGroupTeacherSalary> {
 public interface ClassGroupTeacherSalaryService extends BaseService<Long, ClassGroupTeacherSalary> {
     /**
     /**
@@ -14,4 +16,4 @@ public interface ClassGroupTeacherSalaryService extends BaseService<Long, ClassG
      */
      */
     List<ClassGroupTeacherSalary> findByMusicGroupId(String musicGroupId);
     List<ClassGroupTeacherSalary> findByMusicGroupId(String musicGroupId);
 
 
-}
+}

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -190,7 +190,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             SysUserCashAccount teacherCashAccount = sysUserCashAccountService.get(courseScheduleTeacherSalary.getUserId().intValue());
             SysUserCashAccount teacherCashAccount = sysUserCashAccountService.get(courseScheduleTeacherSalary.getUserId().intValue());
             SysUserCashAccountDetail teacherCashAccountDetail = new SysUserCashAccountDetail();
             SysUserCashAccountDetail teacherCashAccountDetail = new SysUserCashAccountDetail();
             teacherCashAccountDetail.setUserId(courseScheduleTeacherSalary.getUserId());
             teacherCashAccountDetail.setUserId(courseScheduleTeacherSalary.getUserId());
-            teacherCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
+            teacherCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.WAGE);
             teacherCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
             teacherCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
             teacherCashAccountDetail.setAmount(actualSalary);
             teacherCashAccountDetail.setAmount(actualSalary);
             teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
             teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
@@ -371,7 +371,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             SysUserCashAccount teacherCashAccount = sysUserCashAccountService.get(courseScheduleTeacherSalary.getUserId().intValue());
             SysUserCashAccount teacherCashAccount = sysUserCashAccountService.get(courseScheduleTeacherSalary.getUserId().intValue());
             SysUserCashAccountDetail teacherCashAccountDetail = new SysUserCashAccountDetail();
             SysUserCashAccountDetail teacherCashAccountDetail = new SysUserCashAccountDetail();
             teacherCashAccountDetail.setUserId(courseScheduleTeacherSalary.getUserId());
             teacherCashAccountDetail.setUserId(courseScheduleTeacherSalary.getUserId());
-            teacherCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.REFUNDS);
+            teacherCashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.WAGE);
             teacherCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
             teacherCashAccountDetail.setStatus(DealStatusEnum.SUCCESS);
             teacherCashAccountDetail.setAmount(teacherSalary);
             teacherCashAccountDetail.setAmount(teacherSalary);
             teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());
             teacherCashAccountDetail.setBalance(teacherCashAccount.getBalance());

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -957,6 +957,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     		throw new BizException("请指定vip课程!");
     		throw new BizException("请指定vip课程!");
 		}
 		}
 
 
+		VipGroup vipGroup = vipGroupDao.get(queryInfo.getVipGroupId());
+
+    	if(Objects.isNull(vipGroup)){
+    		throw new BizException("未找到指定vip课");
+		}
+
 		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
 		MapUtil.populateMap(params, queryInfo);
@@ -989,15 +995,29 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroupSalaryBaseInfo)){
 		if(Objects.isNull(vipGroupSalaryBaseInfo)){
 			vipGroupSalaryBaseInfo=new VipGroupSalaryBaseInfo();
 			vipGroupSalaryBaseInfo=new VipGroupSalaryBaseInfo();
 		}
 		}
+		//预计总课酬
 		if(Objects.isNull(vipGroupSalaryBaseInfo.getExpectTotalSalary())){
 		if(Objects.isNull(vipGroupSalaryBaseInfo.getExpectTotalSalary())){
 			vipGroupSalaryBaseInfo.setExpectTotalSalary(new BigDecimal(0));
 			vipGroupSalaryBaseInfo.setExpectTotalSalary(new BigDecimal(0));
 		}
 		}
+		//实际总课酬
 		if(Objects.isNull(vipGroupSalaryBaseInfo.getTotalSalary())){
 		if(Objects.isNull(vipGroupSalaryBaseInfo.getTotalSalary())){
 			vipGroupSalaryBaseInfo.setTotalSalary(new BigDecimal(0));
 			vipGroupSalaryBaseInfo.setTotalSalary(new BigDecimal(0));
 		}
 		}
+		//扣费总额
 		vipGroupSalaryBaseInfo.setTotalFeeDeduction(vipGroupSalaryBaseInfo.getExpectTotalSalary().subtract(vipGroupSalaryBaseInfo.getTotalSalary()));
 		vipGroupSalaryBaseInfo.setTotalFeeDeduction(vipGroupSalaryBaseInfo.getExpectTotalSalary().subtract(vipGroupSalaryBaseInfo.getTotalSalary()));
+		//扣费笔数
 		vipGroupSalaryBaseInfo.setFeeDeductionNum(vipGroupDao.countVipGroupDeductionNum(queryInfo.getVipGroupId()));
 		vipGroupSalaryBaseInfo.setFeeDeductionNum(vipGroupDao.countVipGroupDeductionNum(queryInfo.getVipGroupId()));
 
 
+		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId());
+		BigDecimal studentNum=new BigDecimal(classGroup.getStudentNum());
+		//课程总价
+		vipGroupSalaryBaseInfo.setTotalCoursePrice(vipGroup.getTotalPrice().multiply(studentNum));
+
+		List<Map<String, BigDecimal>> teacherSalaryCount = courseScheduleTeacherSalaryDao.countTeacherOnlineOfflineSalaryByClass(classGroup.getId());
+		Map<String,BigDecimal> teacherTeachModeSalaryMap = MapUtil.convertMybatisMap(teacherSalaryCount);
+		vipGroupSalaryBaseInfo.setTotalOfflineTeacherSalary(teacherTeachModeSalaryMap.get(TeachModeEnum.OFFLINE.getCode()));
+		vipGroupSalaryBaseInfo.setTotalOnlineTeacherSalary(teacherTeachModeSalaryMap.get(TeachModeEnum.ONLINE.getCode()));
+
 		Map<String,Object> result=new HashMap<>();
 		Map<String,Object> result=new HashMap<>();
 		result.put("pageInfo",pageInfo);
 		result.put("pageInfo",pageInfo);
 		result.put("baseInfo",vipGroupSalaryBaseInfo);
 		result.put("baseInfo",vipGroupSalaryBaseInfo);

+ 12 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -239,7 +239,18 @@
 		</foreach>
 		</foreach>
 	</select>
 	</select>
 
 
-	<update id="batchUpdateWages" parameterType="map">
+    <select id="countTeacherOnlineOfflineSalaryByClass" resultType="map">
+		SELECT
+			cs.teach_mode_ AS 'key',
+			SUM( csts.actual_salary_ ) AS 'value'
+		FROM
+			course_schedule cs
+			LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
+		WHERE cs.class_group_id_=#{classGroupId} AND cs.id_ IS NOT NULL AND cs.status_='OVER'
+		GROUP BY cs.teach_mode_
+    </select>
+
+    <update id="batchUpdateWages" parameterType="map">
 		UPDATE course_schedule_teacher_salary set
 		UPDATE course_schedule_teacher_salary set
 			subsidy_ = #{subsidy},
 			subsidy_ = #{subsidy},
 			expect_salary_ = #{salary},
 			expect_salary_ = #{salary},

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -560,7 +560,7 @@
             LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_=vgcgm.vip_group_id_
             LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_=vgcgm.vip_group_id_
             LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
             LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
             LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
             LEFT JOIN course_schedule_teacher_salary csts ON cs.id_=csts.course_schedule_id_
-        WHERE vg.id_=#{vipGroupId} AND cs.id_!=NULL AND csts.settlement_time_!=NULL
+        WHERE vg.id_=#{vipGroupId} AND cs.id_ IS NOT NULL
     </select>
     </select>
     <select id="countVipGroupDeductionNum" resultType="int">
     <select id="countVipGroupDeductionNum" resultType="int">
         SELECT
         SELECT