Browse Source

Merge branch 'master' into test

周箭河 4 years ago
parent
commit
838dc058a3

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPreRegistrationDao.java

@@ -8,6 +8,7 @@ import org.apache.ibatis.annotations.Param;
 import com.ym.mec.biz.dal.dto.StudentPreRegistrationDto;
 import com.ym.mec.biz.dal.entity.StudentPreRegistration;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.Mapper;
 
 public interface StudentPreRegistrationDao extends BaseDAO<Long, StudentPreRegistration> {
 
@@ -18,4 +19,9 @@ public interface StudentPreRegistrationDao extends BaseDAO<Long, StudentPreRegis
 	List<StudentPreRegistration> queryByMusicGroupId(String musicGroupId);
 	
 	List<StudentPreRegistrationDto> queryListForPage(Map<String,Object> params);
+	
+	//统计第一专业
+	List<Mapper> queryFirstSubjectNum(String musicGroupId);
+	
+	List<Mapper> querySecondSubjectNum(String musicGroupId);
 }

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

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.dto;
+
+public class PreRegisterSubjectDto {
+
+	private String subjectName;
+	
+	private int firstSubjectNum;
+	
+	private int secondSubjectNum;
+
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
+	public int getFirstSubjectNum() {
+		return firstSubjectNum;
+	}
+
+	public void setFirstSubjectNum(int firstSubjectNum) {
+		this.firstSubjectNum = firstSubjectNum;
+	}
+
+	public int getSecondSubjectNum() {
+		return secondSubjectNum;
+	}
+
+	public void setSecondSubjectNum(int secondSubjectNum) {
+		this.secondSubjectNum = secondSubjectNum;
+	}
+}

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

@@ -1,5 +1,8 @@
 package com.ym.mec.biz.service;
 
+import java.util.List;
+
+import com.ym.mec.biz.dal.dto.PreRegisterSubjectDto;
 import com.ym.mec.biz.dal.dto.StudentPreRegistrationDto;
 import com.ym.mec.biz.dal.entity.StudentPreRegistration;
 import com.ym.mec.common.page.PageInfo;
@@ -9,4 +12,6 @@ import com.ym.mec.common.service.BaseService;
 public interface StudentPreRegistrationService extends BaseService<Long, StudentPreRegistration> {
 	
 	public PageInfo<StudentPreRegistrationDto> queryListForPage(QueryInfo queryInfo);
+	
+	public List<PreRegisterSubjectDto> querySubjectNum(String musicGroupId);
 }

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPreRegistrationServiceImpl.java

@@ -2,17 +2,21 @@ package com.ym.mec.biz.service.impl;
 
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.StudentPreRegistrationDao;
+import com.ym.mec.biz.dal.dto.PreRegisterSubjectDto;
 import com.ym.mec.biz.dal.dto.StudentPreRegistrationDto;
 import com.ym.mec.biz.dal.entity.StudentPreRegistration;
 import com.ym.mec.biz.service.StudentPreRegistrationService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.Mapper;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -48,5 +52,36 @@ public class StudentPreRegistrationServiceImpl extends BaseServiceImpl<Long, Stu
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+	@Override
+	public List<PreRegisterSubjectDto> querySubjectNum(String musicGroupId) {
+		Set<String> subjectNames = new HashSet<String>();
+		Map<String, Integer> firstMap = new HashMap<String, Integer>();
+		Map<String, Integer> secondMap = new HashMap<String, Integer>();
+
+		List<Mapper> firstMapperList = studentPreRegistrationDao.queryFirstSubjectNum(musicGroupId);
+		for (Mapper mapper : firstMapperList) {
+			firstMap.put(String.valueOf(mapper.getKey()), Integer.parseInt(mapper.getValue().toString()));
+			subjectNames.add(String.valueOf(mapper.getKey()));
+		}
+
+		List<Mapper> secondMapperList = studentPreRegistrationDao.querySecondSubjectNum(musicGroupId);
+		for (Mapper mapper : secondMapperList) {
+			secondMap.put(String.valueOf(mapper.getKey()), Integer.parseInt(mapper.getValue().toString()));
+			subjectNames.add(String.valueOf(mapper.getKey()));
+		}
+
+		List<PreRegisterSubjectDto> list = new ArrayList<PreRegisterSubjectDto>();
+		for (String subjectName : subjectNames) {
+			PreRegisterSubjectDto dto = new PreRegisterSubjectDto();
+			dto.setSubjectName(subjectName);
+			dto.setFirstSubjectNum(firstMap.get(subjectName) == null ? 0 : firstMap.get(subjectName));
+			dto.setSecondSubjectNum(secondMap.get(subjectName) == null ? 0 : secondMap.get(subjectName));
+
+			list.add(dto);
+		}
+
+		return list;
+	}
 	
 }

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -15,6 +15,7 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.redis.service.RedisCache;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
@@ -298,12 +299,30 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 //						}
 //					}
 					courseHomework.setExpectNum(studentCourseHomeworks.size());
+
+					Teacher teacher = teacherDao.get(courseSchedule.getActualTeacherId());
+					String dateStr = DateUtil.dateToString(DateUtil.addDays(date, 3), "MM月dd日");
+
 					if(!CollectionUtils.isEmpty(studentCourseHomeworks)){
 						courseHomeworkService.update(courseHomework);
 
 						studentCourseHomeworkDao.batchInsertStudentCourseHomeworkRecord(studentCourseHomeworks);
 						List<Integer> studentIds = studentCourseHomeworks.stream().map(StudentCourseHomework::getUserId).collect(Collectors.toList());
 						studentServeService.updateExercisesSituation(courseSchedule.getClassDate(), studentIds, teacherAttendance.getTeacherId());
+
+						for (StudentCourseHomework studentCourseHomework : studentCourseHomeworks) {
+							Map<Integer, String> userMap = new HashMap<>();
+							userMap.put(studentCourseHomework.getUserId(), studentCourseHomework.getUserId().toString());
+							String notifyUrl = "?courseScheduleID=" + courseSchedule.getId() + "&studentCourseHomeworkId=" + studentCourseHomework.getId() + "&extra=0";
+							String extra = "dayaedu" + notifyUrl + "&userId=" + studentCourseHomework.getUserId();
+
+							sysMessageService.batchSendImMessage(MessageTypeEnum.IM_HOMEWORK_REMIND, courseSchedule.getActualTeacherId().toString(), extra,
+									new String[]{studentCourseHomework.getUserId().toString()},
+									null, courseSchedule.getName(), dateStr, courseHomework.getContent());
+
+							sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.HOMEWORK_REMIND,
+									userMap, null, 0, 3 + notifyUrl, "STUDENT", teacher.getRealName(), courseSchedule.getName(), dateStr);
+						}
 					}
 				}else{
 					courseHomework.setContent(teacherSignOutDto.getCourseHomeworkInfo().getContent());

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -48,6 +48,7 @@ import java.time.temporal.ChronoUnit;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 @Service
 public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
@@ -259,7 +260,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 		}
 
-		if(Objects.nonNull(vipGroupActivity.getAttribute3())&&StringUtils.isNotBlank(vipGroupActivity.getAttribute3())){
+		if(Objects.nonNull(vipGroupActivity)&&Objects.nonNull(vipGroupActivity.getAttribute3())&&StringUtils.isNotBlank(vipGroupActivity.getAttribute3())){
 			Integer maxCourseNum = Integer.parseInt(vipGroupActivity.getAttribute3());
 			Integer requestCourseNum = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
 			if(requestCourseNum.compareTo(maxCourseNum)!=0){
@@ -804,6 +805,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
 
+		List<String> organIds = new ArrayList<>();
+		if(StringUtils.isNotBlank(queryInfo.getOrganId())){
+			organIds = Arrays.stream(queryInfo.getOrganId().split(",")).collect(Collectors.toList());
+		}
+		params.put("organIds", organIds);
+
 		List<VipGroupStudentDto> dataList = null;
 		int count = vipGroupDao.countHaveCourseBalanceStudentNum(params);
 		if (count > 0) {

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

@@ -76,7 +76,7 @@
     </insert>
 
     <insert id="batchInsertStudentCourseHomeworkRecord" parameterType="java.util.List" useGeneratedKeys="true"
-            keyColumn="id_">
+            keyColumn="id" keyProperty="id">
         INSERT INTO student_course_homework
         (user_id_,course_schedule_id_,course_homework_id_,attachments_,score_,create_time_,update_time_,remark_,status_,is_replied_,is_view_,is_replied_timely_)
         VALUE

+ 19 - 0
mec-biz/src/main/resources/config/mybatis/StudentPreRegistrationMapper.xml

@@ -30,6 +30,11 @@
 		<result column="is_registered_" property="isRegistered" />
 	</resultMap>
 	
+	<resultMap type="com.ym.mec.common.entity.Mapper" id="Mapper">
+		<result column="key_" property="key" />
+		<result column="value_" property="value" />
+	</resultMap>
+	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="StudentPreRegistration" >
 		SELECT * FROM student_pre_registration WHERE id_ = #{id} 
@@ -151,6 +156,20 @@
 		</where>
 	</select>
 	
+	<select id="queryFirstSubjectNum" resultMap="Mapper">
+		SELECT ifnull(s.name_,'听从老师安排') key_,COUNT(spr.id_) value_ FROM student_pre_registration spr 
+		left join subject s on s.id_ = spr.subject_first_
+		where spr.music_group_id_ = #{musicGroupId}
+		group by spr.subject_first_
+	</select>
+	
+	<select id="querySecondSubjectNum" resultMap="Mapper">
+		SELECT ifnull(s.name_,'听从老师安排') key_,COUNT(spr.id_) value_ FROM student_pre_registration spr  
+		left join subject s on s.id_ = spr.subject_second_
+		where spr.music_group_id_ = #{musicGroupId}
+		group by spr.subject_second_
+	</select>
+	
 	<select id="queryByMusicGroupIdAndUserId" resultMap="StudentPreRegistration" parameterType="map">
 		SELECT * FROM student_pre_registration WHERE user_id_ = #{userId} and music_group_id_ = #{musicGroupId}
 	</select>

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

@@ -572,6 +572,12 @@
         <if test="search!=null and search!=''">
             AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
+        <if test="organIds!=null and organIds.size()>0">
+            AND su.organ_id_ IN
+            <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+                #{organId}
+            </foreach>
+        </if>
         ORDER BY suca.course_balance_ DESC
         <include refid="global.limit"/>
     </select>
@@ -588,6 +594,12 @@
         <if test="search!=null and search!=''">
             AND (su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
+        <if test="organIds!=null and organIds.size()>0">
+            AND su.organ_id_ IN
+            <foreach collection="organIds" item="organId" open="(" close=")" separator=",">
+                #{organId}
+            </foreach>
+        </if>
     </select>
 
     <select id="countVipGroupStudents" resultType="int">

+ 24 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/Mapper.java

@@ -0,0 +1,24 @@
+package com.ym.mec.common.entity;
+
+public class Mapper {
+
+	private Object key;
+
+	private Object value;
+
+	public Object getKey() {
+		return key;
+	}
+
+	public void setKey(Object key) {
+		this.key = key;
+	}
+
+	public Object getValue() {
+		return value;
+	}
+
+	public void setValue(Object value) {
+		this.value = value;
+	}
+}

+ 19 - 9
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -1,22 +1,17 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dto.StudentPreRegistrationDto;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.util.date.DateUtil;
-import com.ym.mec.util.excel.POIUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
-import java.io.EOFException;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Date;
 import java.util.List;
 
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,11 +22,18 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dto.DelRegisterDto;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 import com.ym.mec.biz.dal.dto.StudentAddDto;
+import com.ym.mec.biz.dal.dto.StudentPreRegistrationDto;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.page.StudentPreRegistrationQueryInfo;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
@@ -40,8 +42,9 @@ import com.ym.mec.biz.service.StudentPreRegistrationService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-
-import javax.servlet.http.HttpServletResponse;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
 
 @RequestMapping("studentRegistration")
 @Api(tags = "学生报名信息服务")
@@ -68,6 +71,13 @@ public class StudentRegistrationController extends BaseController {
         return succeed(studentPreRegistrationService.queryListForPage(queryInfo));
     }
 
+    @ApiOperation(value = "乐团预报名声部列表查询")
+    @GetMapping("/queryPreApplySubjectList")
+    @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryPreApplySubjectList')")
+    public Object queryPreApplySubjectList(String musicGroupId) {
+        return succeed(studentPreRegistrationService.querySubjectNum(musicGroupId));
+    }
+
     @ApiOperation(value = "乐团添加学员")
     @PostMapping("/insertStudent")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/insertStudent')")

+ 15 - 0
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -216,6 +216,21 @@ public class VipGroupManageController extends BaseController {
     @GetMapping(value = "/findHaveCourseBalanceStudents")
     @PreAuthorize("@pcs.hasPermissions('vipGroupManage/findHaveCourseBalanceStudents')")
     public Object findHaveCourseBalanceStudents(VipGroupQueryInfo queryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
+            }
+        }
         return succeed(vipGroupService.findHaveCourseBalanceStudents(queryInfo));
     }