Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
c9fe85b3ef

+ 4 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java

@@ -1,15 +1,13 @@
 package com.ym.mec.biz.dal.dao;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
 import com.ym.mec.biz.dal.dto.TaskRewardsRulesDto;
-import org.apache.ibatis.annotations.Param;
-
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseScheduleRewardsRules> {
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDetailDao.java

@@ -24,9 +24,9 @@ public interface SysUserCashAccountDetailDao extends BaseDAO<Long, SysUserCashAc
     Map<String, Object> queryStatistics(@Param("organId") String organId);
 
     /**
-     * 查看当前月是否执行过教师奖励
+     * 查看当前月当前老师是否执行过教师奖励
      * @param currentMonth
      * @return
      */
-    Integer countByTypeAndTime(String currentMonth);
+    Integer countByTypeAndTime(@Param("currentMonth") String currentMonth,@Param("teacherId")Integer teacherId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java

@@ -43,6 +43,8 @@ public class StudentManageListDto {
 
     @ApiModelProperty(value = "课程余额")
     private BigDecimal courseBalance;
+    
+    private Boolean isActive = false;
 
     public String getNation() {
         return nation;
@@ -131,4 +133,12 @@ public class StudentManageListDto {
     public void setParentsName(String parentsName) {
         this.parentsName = parentsName;
     }
+
+	public Boolean getIsActive() {
+		return isActive;
+	}
+
+	public void setIsActive(Boolean isActive) {
+		this.isActive = isActive;
+	}
 }

+ 27 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1588,37 +1588,36 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			List<Integer> activeIds = rewardsRulesDtos.stream().map(e -> e.getActiveId()).collect(Collectors.toList());
 			List<CourseScheduleRewardsRules> rewardsRules = courseScheduleRewardsRulesService.findByIds(activeIds);
 			Map<Integer, List<CourseScheduleRewardsRules>> integerListMap = rewardsRules.stream().collect(Collectors.groupingBy(CourseScheduleRewardsRules::getId));
+			String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
 			rewardsRulesDtos.forEach(e->{
-				CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
-				String rewardsRulesJson = rewardsRule.getRewardsRulesJson();
-				List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRulesJson, RewardsRulesJsonDto.class);
-				BigDecimal money = BigDecimal.ZERO;
-				//STAIR 阶梯, PER 累计, TOTAL
-				switch (rewardsRule.getRewardMode()){
-					case STAIR:
-						rulesJsonDtos.forEach(rule->{
-							if(e.getTimes() >= rule.getMin()){
-								money.add(rule.getMoney());
+				//当前用户是否已经发放过上月奖励
+				Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth,e.getTeacherId());
+				if(num == null || num == 0) {
+					CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
+					List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
+					BigDecimal money = BigDecimal.ZERO;
+					//STAIR 阶梯, PER 累计, TOTAL
+					switch (rewardsRule.getRewardMode()) {
+						case STAIR:
+							for (RewardsRulesJsonDto rule : rulesJsonDtos) {
+								if (e.getTimes() >= rule.getMin()) {
+									money = money.add(rule.getMoney());
+								}
 							}
-						});
-						break;
-					case PER:
-						int count = 0;
-						for (RewardsRulesJsonDto rule:rulesJsonDtos) {
-							if(e.getTimes() >= rule.getMin()){
-								count++;
-								rule.getMoney().multiply(new BigDecimal(count));
+							break;
+						case PER:
+							int count = 0;
+							for (RewardsRulesJsonDto rule : rulesJsonDtos) {
+								if (e.getTimes() >= rule.getMin()) {
+									count++;
+									money = rule.getMoney().multiply(new BigDecimal(count));
+								}
 							}
-						}
-						break;
-					case TOTAL:
-						break;
-				}
-				if (money.doubleValue() > 0) {
-					//当前用户是否已经发放过上月奖励
-					String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
-					Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth);
-					if(num == null || num == 0){
+							break;
+						case TOTAL:
+							break;
+					}
+					if (money.doubleValue() > 0) {
 						sysUserCashAccountDetailService.addCashAccountDetail(e.getTeacherId(), money, "", SysUserCashAccountDetailService.ORGAN,
 								PlatformCashAccountDetailTypeEnum.REWARDS, null, DealStatusEnum.SUCCESS, "分部奖励");
 					}

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

@@ -148,7 +148,8 @@
 		LEFT JOIN vip_group vg ON FIND_IN_SET(vg.vip_group_category_id_,csrr.vip_group_category_id_list_)
 		LEFT JOIN course_schedule cs ON vg.id_ = cs.music_group_id_ AND FIND_IN_SET(cs.actual_teacher_id_,csrr.teacher_id_)
 		LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_ AND csts.user_id_ = cs.actual_teacher_id_
-		WHERE cs.group_type_ = 'VIP' AND csts.settlement_time_ IS NULL AND cs.class_date_ &gt;= #{firstDayOfMonth} AND cs.class_date_ &lt;= #{lastDayOfMonth}
+		WHERE cs.group_type_ = 'VIP' AND csts.settlement_time_ IS NOT NULL
+		AND cs.class_date_ &gt;= #{firstDayOfMonth} AND cs.class_date_ &lt;= #{lastDayOfMonth}
 		GROUP BY cs.actual_teacher_id_,csrr.id_
 	</select>
 	<select id="findByIds" resultMap="CourseScheduleRewardsRules">

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

@@ -13,6 +13,7 @@
         <result property="birthdate" column="birthdate_"/>
         <result property="currentGrade" column="current_grade_"/>
         <result property="currentClass" column="current_class_"/>
+        <result property="isActive" column="isActive_"/>
         <!--<collection property="musicGroups" resultMap="musicGroup" javaType="list"/>-->
     </resultMap>
 
@@ -120,7 +121,7 @@
     </update>
 
     <select id="findStudentsByOrganId" resultMap="studentManageListDto">
-        SELECT su.id_ user_id_,su.username_,su.gender_,su.phone_ parents_phone_,su.real_name_,su.birthdate_,su.nation_
+        SELECT su.id_ user_id_,su.username_,su.gender_,su.phone_ parents_phone_,su.real_name_,su.birthdate_,su.nation_, case when su.password_ is null then 0 else 1 end isActive_
         FROM sys_user su
         <include refid="findStudentsByOrganIdSql"/>
         ORDER BY su.create_time_ DESC

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

@@ -192,5 +192,6 @@
     <select id="countByTypeAndTime" resultType="java.lang.Integer">
       SELECT COUNT(s.id_) FROM sys_user_cash_account_detail s
       WHERE s.type_ = 'REWARDS' AND DATE_FORMAT(s.create_time_,'%Y-%m') = #{currentMonth}
+      AND s.user_id_ = #{teacherId}
     </select>
 </mapper>

+ 24 - 15
mec-web/src/main/java/com/ym/mec/web/controller/StudentManageController.java

@@ -1,17 +1,15 @@
 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.EmployeeDao;
-import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.VipGroup;
-import com.ym.mec.biz.dal.page.*;
-import com.ym.mec.biz.service.StudentManageService;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.common.controller.BaseController;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -20,9 +18,20 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.page.MusicGroupStudentQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageAttendanceQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageCourseQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
+import com.ym.mec.biz.dal.page.StudentManageVipClassQueryInfo;
+import com.ym.mec.biz.dal.page.StudentSignQueryInfo;
+import com.ym.mec.biz.dal.page.TeacherPaymentRecordInfo;
+import com.ym.mec.biz.service.StudentManageService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.common.controller.BaseController;
 
 @Api(tags = "学生管理")
 @RequestMapping("studentManage")