Browse Source

Merge branch 'online1' of http://git.dayaedu.com/yonge/mec into 2021-04-28

zouxuan 4 years ago
parent
commit
4b9bdcdf60
21 changed files with 130 additions and 54 deletions
  1. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java
  2. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherIncomeDto.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherIncomeReviewDto.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  6. 36 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  7. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  8. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  9. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  10. 1 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  11. 1 2
      mec-biz/src/main/resources/config/mybatis/ReplacementInstrumentActivityMapper.xml
  12. 10 2
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  13. 6 6
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  14. 16 0
      mec-student/src/main/java/com/ym/mec/student/controller/ReplacementInstrumentActivityController.java
  15. 2 2
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/MessageSenderPlugin.java
  16. 4 4
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/MessageSenderPluginContext.java
  17. 2 2
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/AwSmsPlugin.java
  18. 18 8
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/JiguangPushPlugin.java
  19. 2 2
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/MOxintongSMSPlugin.java
  20. 2 2
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/ShiyuanSMSPlugin.java
  21. 2 2
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/YimeiSmsPlugin.java

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentManageDao.java

@@ -236,6 +236,7 @@ public interface StudentManageDao {
      * @param userIds
      * @return
      */
+    @Deprecated
     List<Map<Integer, Integer>> getIsActive(@Param("userIds") Set<Integer> userIds);
 
     /**

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -299,6 +299,7 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @author Joburgess
      * @date 2020/1/7
      */
+    @Deprecated
     List<TeacherBasicDto> searchTeachers(Map<String, Object> params);
 
     /**

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

@@ -24,8 +24,18 @@ public class TeacherIncomeDto extends CourseSchedule {
 
     private Boolean belongToDaya;
 
+    private long sortNum;
+
     private List<TeacherSalaryDeductReasonDto> deductReasons;
 
+    public long getSortNum() {
+        return sortNum;
+    }
+
+    public void setSortNum(long sortNum) {
+        this.sortNum = sortNum;
+    }
+
     public BigDecimal getExpectIncome() {
         return expectIncome;
     }

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

@@ -30,6 +30,8 @@ public class TeacherIncomeReviewDto {
 
     private Double attendanceRange;
 
+    private Double vipAttendanceRange;
+
     public Double getAttendanceRange() {
         return attendanceRange;
     }
@@ -38,6 +40,14 @@ public class TeacherIncomeReviewDto {
         this.attendanceRange = attendanceRange;
     }
 
+    public Double getVipAttendanceRange() {
+        return vipAttendanceRange;
+    }
+
+    public void setVipAttendanceRange(Double vipAttendanceRange) {
+        this.vipAttendanceRange = vipAttendanceRange;
+    }
+
     public int getComplaintsDaysRange() {
         return complaintsDaysRange;
     }

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

@@ -75,7 +75,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @return
 	 */
 	public void batchPushMessage(MessageTypeEnum messageType, Map<Integer, String> receivers, Date triggerTime,
-			Integer readStatus, String url,String jpushType,String sound, Object... args);
+			Integer readStatus, String url,String jpushType,String sound,String channelId, Object... args);
 
 	/**
 	 * 发送消息

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

@@ -511,7 +511,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             return;
         }
 
-        SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
+        SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
         double attendanceRange = 0;
         if(Objects.nonNull(sysConfig)){
             attendanceRange = Double.valueOf(sysConfig.getParanValue());
@@ -782,7 +782,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     //早退
                     deductCost = deductCost.add(teacherSalary.abs());
                     deductReasons.add("早退扣除全部课酬");
-                }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
+                }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween>=3600){
                     //异常签退,扣除50元
                     deductCost = deductCost.add(new BigDecimal(50));
                     deductReasons.add("异常签退,扣除50元");
@@ -1749,7 +1749,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     deductCost = deductCost.add(teacherSalary.abs());
 //                    deductReasons.add("早退扣除全部课酬");
                     deductReasons.add(new TeacherSalaryDeductReasonDto(DeductReasonEnum.SIGN_OUT_TIME_ERR, teacherSalary.abs()));
-                }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween<=3600){
+                }else if((signOutCourseTimeBetween<=3&&signOutCourseTimeBetween>0)||signOutCourseTimeBetween>=3600){
                     //异常签退,扣除50元
                     deductCost = deductCost.add(new BigDecimal(50));
 //                    deductReasons.add("异常签退,扣除50元");
@@ -2018,13 +2018,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             idSchoolMap = schools.stream().collect(Collectors.toMap(School::getId, s->s, (s1, s2)->s1));
         }
 
-        //签到时间范围
-        SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
+        //签到GPS范围
+        SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
         double attendanceRange = 0;
         if(Objects.nonNull(sysConfig)){
             attendanceRange = Double.valueOf(sysConfig.getParanValue());
         }
 
+        //签到GPS范围VIP
+        SysConfig vipSysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
+        double vipAttendanceRange = 0;
+        if(Objects.nonNull(vipSysConfig)){
+            vipAttendanceRange = Double.valueOf(vipSysConfig.getParanValue());
+        }
+
         //教师签到记录
         List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(courseIds);
         Map<Long, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().filter(c->teacherId.equals(c.getTeacherId())).collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
@@ -2049,9 +2056,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
                     break;
                 case VIP:
-                    calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
+                    calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange);
                     break;
-
                 case PRACTICE:
                     calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher);
                     break;
@@ -2075,6 +2081,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         }
 
         teacherSalaryOverview.setAttendanceRange(attendanceRange);
+        teacherSalaryOverview.setVipAttendanceRange(vipAttendanceRange);
 
         return teacherSalaryOverview;
     }
@@ -2108,13 +2115,20 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 idSchoolMap = schools.stream().collect(Collectors.toMap(School::getId, s->s, (s1, s2)->s1));
             }
 
-            //签到时间范围
-            SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
+            //签到GPS范围
+            SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE);
             double attendanceRange = 0;
             if(Objects.nonNull(sysConfig)){
                 attendanceRange = Double.valueOf(sysConfig.getParanValue());
             }
 
+            //签到GPS范围VIP
+            SysConfig vipSysConfig = sysConfigService.findByParamName(SysConfigService.ATTENDANCE_RANGE_VIP);
+            double vipAttendanceRange = 0;
+            if(Objects.nonNull(vipSysConfig)){
+                vipAttendanceRange = Double.valueOf(vipSysConfig.getParanValue());
+            }
+
             //教师签到记录
             List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(courseIds);
             Map<Long, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().filter(c->queryInfo.getTeacherId().equals(c.getTeacherId())).collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
@@ -2146,7 +2160,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                         calMusicCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
                         break;
                     case VIP:
-                        calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, attendanceRange);
+                        calVipCourseTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher, vipAttendanceRange);
                         break;
                     case PRACTICE:
                         calPracticeTeacherActualSalary(courseSchedule, teacherSalary, teacherAttendances, school, teacher);
@@ -2183,10 +2197,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     teacherIncomeInfo.getTeacherAttendance().setSchoolLongitudeLatitude(school.getLongitudeLatitude());
                 }
                 teacherIncomeInfo.setBelongToDaya(teacherSalary.getBelongToDaya());
+                teacherIncomeInfo.setSortNum(courseSchedule.getStartClassTime().getTime()+courseSchedule.getId());
                 dataList.add(teacherIncomeInfo);
             }
         }
-        dataList.sort(Comparator.comparing(TeacherIncomeDto::getId).reversed());
+        dataList.sort(Comparator.comparing(TeacherIncomeDto::getSortNum).reversed());
         pageInfo.setRows(dataList);
         return pageInfo;
     }
@@ -2208,19 +2223,25 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             startDate = startDate.withMonth(3);
         }
 
+        result.put("total", BigDecimal.ZERO);
+        result.put("salary", BigDecimal.ZERO);
+        result.put("data", Collections.emptyList());
+
         if(startDate.compareTo(minDate)<0){
-            result.put("total", BigDecimal.ZERO);
-            result.put("salary", BigDecimal.ZERO);
-            result.put("data", Collections.emptyList());
             return result;
         }
 
         List<LocalDateBigDecimalMapDto> monthIncomeMapList = courseScheduleTeacherSalaryDao.teacherIncomeStat(teacherId, year, month);
 
+        if(CollectionUtils.isEmpty(monthIncomeMapList)){
+            return result;
+        }
+
         if(Objects.isNull(month)){
             Set<String> months = monthIncomeMapList.stream().map(e -> DateUtil.dateToString(e.getDate(), "yyyy-MM")).collect(Collectors.toSet());
 
             LocalDate now = LocalDate.now();
+            now = now.plusMonths(-1);
             DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM");
             while (startDate.compareTo(now)<=0&&year.equals(startDate.get(ChronoField.YEAR))){
                 String dateStr = dateFormatter.format(startDate);
@@ -2264,6 +2285,6 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             userMap.put(teacherId, teacherId.toString());
         }
         sysMessageService.batchPushMessage(MessageTypeEnum.TEACHER_INCOME_REMIND,
-                userMap, null, 0, "12", "TEACHER","income_remind.mp3");
+                userMap, null, 0, "12", "TEACHER","income_remind.mp3","income_remind_channel");
     }
 }

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

@@ -342,7 +342,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			try {
 				if (debugMode == true
 						|| messageSenderPluginContext.batchSend(messageSender, messageConfig.getDescription(),
-								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default")) {
+								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,"default",null)) {
 					status = SendStatusEnum.SUCCESSED;
 				} else {
 					status = SendStatusEnum.FAILED;
@@ -366,7 +366,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	@Override
 	@Async
 	public void batchPushMessage(MessageTypeEnum type, Map<Integer, String> receivers, Date triggerTime, Integer readStatus,
-			String url,String jpushType,String sound, Object... args) {
+			String url,String jpushType,String sound,String channelId, Object... args) {
 		if (receivers == null || receivers.size() == 0) {
 			throw new BizException("接收地址不能为空");
 		}
@@ -411,7 +411,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 			try {
 				if (debugMode == true
 						|| messageSenderPluginContext.batchSend(MessageSender.JIGUANG, messageConfig.getDescription(),
-								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,sound)) {
+								MessageFormatter.arrayFormat(messageConfig.getContent(), args), tos, url,jpushType,sound,channelId)) {
 					status = SendStatusEnum.SUCCESSED;
 				} else {
 					status = SendStatusEnum.FAILED;
@@ -440,7 +440,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		if (triggerTime == null || date.after(triggerTime)) {
 			status = SendStatusEnum.SENDING;
 			try {
-				if (debugMode == true || messageSenderPluginContext.send(messageSender, receiver, title, content, url,jpushType,"default")) {
+				if (debugMode == true || messageSenderPluginContext.send(messageSender, receiver, title, content, url,jpushType,"default",null)) {
 					status = SendStatusEnum.SUCCESSED;
 				} else {
 					status = SendStatusEnum.FAILED;

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

@@ -791,7 +791,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		}
 		if(teacherAttendance.getComplaintsStatus() == ComplaintsStatusEnum.WAIT){
 			teacherAttendance.setComplaintsStatus(REPEAL);
-			teacherAttendance.setIsComplaints(0);
 			teacherAttendanceDao.update(teacherAttendance);
 		}else {
 			throw new BizException("操作失败: 当前申述状态不允许撤销");

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

@@ -3797,7 +3797,7 @@
             course_schedule cs
             LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
         <include refid="queryTeacherCourseCondition"></include>
-        ORDER BY cs.id_ DESC
+        ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC,cs.id_ DESC
         <include refid="global.limit" />
     </select>
 

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

@@ -1128,6 +1128,7 @@
 			<if test="year!=null">
 				AND YEAR ( cs.class_date_ ) = #{year}
 			</if>
+		  	AND csts.actual_salary_ &gt; 0
 			<if test="month!=null">
 				AND MONTH(cs.class_date_) = #{month}
 			</if>

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

@@ -37,7 +37,6 @@
         <result property="discountPrice" column="discount_price_"/>
         <result property="depreciationPrice" column="depreciation_price_"/>
         <result property="salePrice" column="sale_price_"/>
-        <result property="mobileNo" column="phone_"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -261,7 +260,7 @@
 
     <!-- 获取问卷分页数据 -->
     <select id="getPageList" resultMap="ReplacementInstrumentActivityStatDto" parameterType="map">
-        SELECT ria.*,su.phone_,o.name_ organ_name_,ri.brand_,ri.specification_,ri.param_,ri.market_price_,ri.discount_price_,ri.depreciation_price_,
+        SELECT ria.*,su.phone_ mobile_no_,o.name_ organ_name_,ri.brand_,ri.specification_,ri.param_,ri.market_price_,ri.discount_price_,ri.depreciation_price_,
         ri.sale_price_,s.name_ subject_name_,co.name_ cooperationOrganName FROM replacement_instrument_activity ria
         LEFT JOIN replacement_instrument ri ON ri.id_ = ria.instruments_id_
         LEFT JOIN subject s ON s.id_ = ria.subject_id_

+ 10 - 2
mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml

@@ -655,7 +655,11 @@
     </update>
     <update id="clearAttendanceComplaints">
         UPDATE teacher_attendance
-        SET is_complaints_ = 0,complaints_status_ = NULL,complaints_content_ = NULL,dispose_content_ = NULL,operator_ = NULL,complaints_time_ = NULL
+        SET is_complaints_ = 0,complaints_status_ = NULL,complaints_content_ = NULL,
+            dispose_content_ = NULL,operator_ = NULL,complaints_time_ = NULL,complaints_type_ = NULL,
+        sign_out_device_no_ = NULL,sign_in_device_no_ = NULL,url_ = NULL,update_attendance_type_ = NULL,
+            sign_out_remark_ = NULL,sign_out_attachments_ = NULL,current_schedule_id_ = NULL,remark_ = NULL
+        ,sign_in_longitude_latitude_ = NULL,sign_out_longitude_latitude_ = NULL
         WHERE course_schedule_id_ IN
         <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
             #{courseScheduleId}
@@ -663,7 +667,11 @@
     </update>
     <update id="clearAttendanceComplaint">
         UPDATE teacher_attendance
-        SET is_complaints_ = 0,complaints_status_ = NULL,complaints_content_ = NULL,dispose_content_ = NULL,operator_ = NULL,complaints_time_ = NULL
+        SET is_complaints_ = 0,complaints_status_ = NULL,complaints_content_ = NULL,
+            dispose_content_ = NULL,operator_ = NULL,complaints_time_ = NULL,complaints_type_ = NULL,
+            sign_out_device_no_ = NULL,sign_in_device_no_ = NULL,url_ = NULL,update_attendance_type_ = NULL,
+            sign_out_remark_ = NULL,sign_out_attachments_ = NULL,current_schedule_id_ = NULL,remark_ = NULL
+                ,sign_in_longitude_latitude_ = NULL,sign_out_longitude_latitude_ = NULL
         WHERE course_schedule_id_ = #{courseScheduleId}
     </update>
 

+ 6 - 6
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -812,7 +812,7 @@
     <select id="findByFlowOrganRangeTeachers" resultMap="TeacherBasicDto">
         SELECT su.id_,su.username_,su.real_name_,t.organ_id_ FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
-        WHERE su.del_flag_ = 0
+        WHERE su.del_flag_ = 0 AND su.lock_flag_=0
         <if test="organId != null and organId != ''">
             AND (INTE_ARRAY(#{organId},t.flow_organ_range_) OR FIND_IN_SET(t.organ_id_,#{organId}))
         </if>
@@ -829,7 +829,7 @@
     <select id="findTeacherByOrganId" resultMap="TeacherBasicDto">
         SELECT su.id_,su.username_,su.real_name_ FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
-        WHERE su.del_flag_ != 1
+        WHERE su.del_flag_ != 1 AND su.lock_flag_!=1
         <if test="organId != null">
             AND (FIND_IN_SET(t.organ_id_,#{organId}) OR INTE_ARRAY(t.flow_organ_range_,#{organId}))
         </if>
@@ -850,7 +850,7 @@
     <select id="searchTeachers" resultMap="TeacherBasicDto">
         SELECT su.id_,su.username_,su.real_name_ FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
-        WHERE su.del_flag_ != 1
+        WHERE su.del_flag_ != 1 AND su.lock_flag_!=1
         <if test="organId != null">
             AND FIND_IN_SET(t.organ_id_,#{organId})
         </if>
@@ -861,7 +861,7 @@
     <select id="countTeacherName" resultType="java.lang.Integer">
         SELECT COUNT(su.id_) FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
-        WHERE su.del_flag_ != 1
+        WHERE su.del_flag_ != 1 AND su.lock_flag_!=1
         <include refid="queryPageNameSql"/>
     </select>
     <sql id="queryPageNameSql">
@@ -885,7 +885,7 @@
         SELECT su.id_,su.real_name_,su.avatar_,GROUP_CONCAT(s.name_) subject_name_ FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN subject s ON FIND_IN_SET(s.id_, t.subject_id_)
-        WHERE su.del_flag_ != 1
+        WHERE su.del_flag_ != 1 AND su.lock_flag_!=1
         <include refid="queryPageNameSql"/>
         GROUP BY su.id_
         <include refid="global.limit"/>
@@ -951,7 +951,7 @@
         <if test="search != null and search != ''">
             AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%'))
         </if>
-        AND su.del_flag_ = 0
+        AND su.del_flag_ = 0 AND su.lock_flag_=0
         GROUP BY su.id_
     </select>
     <select id="queryTeacherImModel" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">

+ 16 - 0
mec-student/src/main/java/com/ym/mec/student/controller/ReplacementInstrumentActivityController.java

@@ -115,6 +115,22 @@ public class ReplacementInstrumentActivityController extends BaseController {
         return succeed(replacementInstrumentActivityService.getInfo(id));
     }
 
+    @ApiOperation(value = "获取置换的详情")
+    @GetMapping("/getInfoByCooperationOrganId")
+    @ApiImplicitParams({@ApiImplicitParam(name = "cooperationOrganId", value = "合作单位id", required = true, dataType = "int")})
+    public HttpResponseResult<ReplacementInstrumentActivityStatDto> getInfoByCooperationOrganId(Integer cooperationOrganId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请重新登陆");
+        }
+        ReplacementInstrumentActivity replacementInstrumentActivity = replacementInstrumentActivityService.findByUserId(cooperationOrganId, sysUser.getId());
+        if(replacementInstrumentActivity == null){
+        	return failed("未查询到您参与调查的记录");
+        }
+        Integer activityId = replacementInstrumentActivity.getId();
+        return succeed(replacementInstrumentActivityService.getInfo(activityId));
+    }
+
     @ApiOperation(value = "置换支付")
     @PostMapping("/pay")
     @ApiImplicitParams({@ApiImplicitParam(name = "replacementPayDto", value = "支付参数", required = true, dataType = "ReplacementPayDto")})

+ 2 - 2
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/MessageSenderPlugin.java

@@ -14,7 +14,7 @@ public interface MessageSenderPlugin {
 	 * @return 是否发送成功
 	 * @throws IOException
 	 */
-	public boolean send(String subject, String content, String receiver, String url, String jpushType,String sound) throws Exception;
+	public boolean send(String subject, String content, String receiver, String url, String jpushType,String sound,String channelId) throws Exception;
 
 	/**
 	 * 批量发送消息至目的地
@@ -26,5 +26,5 @@ public interface MessageSenderPlugin {
 	 * @return 是否发送成功
 	 * @throws IOException
 	 */
-	public boolean batchSend(String subject, String content, String[] receivers, String url, String jpushType,String sound) throws Exception;
+	public boolean batchSend(String subject, String content, String[] receivers, String url, String jpushType,String sound,String channelId) throws Exception;
 }

+ 4 - 4
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/MessageSenderPluginContext.java

@@ -69,11 +69,11 @@ public class MessageSenderPluginContext implements ApplicationContextAware {
 	 * @return 是否发送成功
 	 * @throws IOException
 	 */
-	public boolean send(MessageSender messageSender, String subject, String content, String receiver, String url, String jpushType,String sound) throws Exception {
+	public boolean send(MessageSender messageSender, String subject, String content, String receiver, String url, String jpushType,String sound,String channelId) throws Exception {
 
 		messageSenderPlugin = getMessageSenderPlugin(messageSender);
 
-		return messageSenderPlugin.send(subject, content, receiver, url, jpushType,sound);
+		return messageSenderPlugin.send(subject, content, receiver, url, jpushType,sound,channelId);
 	}
 
 	/**
@@ -86,11 +86,11 @@ public class MessageSenderPluginContext implements ApplicationContextAware {
 	 * @return 是否发送成功
 	 * @throws IOException
 	 */
-	public boolean batchSend(MessageSender messageSender, String subject, String content, String[] receivers, String url, String jpushType,String sound) throws Exception {
+	public boolean batchSend(MessageSender messageSender, String subject, String content, String[] receivers, String url, String jpushType,String sound,String channelId) throws Exception {
 
 		messageSenderPlugin = getMessageSenderPlugin(messageSender);
 
-		return messageSenderPlugin.batchSend(subject, content, receivers, url, jpushType,sound);
+		return messageSenderPlugin.batchSend(subject, content, receivers, url, jpushType,sound,channelId);
 	}
 
 	@Override

+ 2 - 2
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/AwSmsPlugin.java

@@ -68,7 +68,7 @@ public class AwSmsPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	@Override
-	public boolean send(String subject, String content, String receiver, String url, String jpushType,String sound) throws IOException {
+	public boolean send(String subject, String content, String receiver, String url, String jpushType,String sound,String channelId) throws IOException {
 		try {
 			Map<String, Object> reqParams = new HashMap<String, Object>();
 			reqParams.put("SpCode", appId);
@@ -92,7 +92,7 @@ public class AwSmsPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	@Override
-	public boolean batchSend(String subject, String content, String[] receivers, String url, String jpushType,String sound) throws IOException {
+	public boolean batchSend(String subject, String content, String[] receivers, String url, String jpushType,String sound,String channelId) throws IOException {
 		StringBuilder stringBuilder = new StringBuilder("");
 		for (int i = 0; i < receivers.length - 1; i++) {
 			stringBuilder.append(receivers[i]).append(",");

+ 18 - 8
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/JiguangPushPlugin.java

@@ -7,6 +7,7 @@ import com.ym.mec.thirdparty.message.MessageSenderPlugin;
 import com.ym.mec.util.http.HttpUtil;
 
 import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -14,6 +15,7 @@ import org.springframework.stereotype.Service;
 import java.io.IOException;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -58,7 +60,7 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 	 * @param content 消息内容
 	 * @return json对象
 	 */
-	private JSONObject generateJson(String[] alias, String alert, String content, String url,String sound) {
+	private JSONObject generateJson(String[] alias, String alert, String content, String url,String sound,String channelId) {
 		JSONObject json = new JSONObject();
 		JSONArray platform = new JSONArray();// 平台
 		platform.add("android");
@@ -75,6 +77,15 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 		JSONObject android = new JSONObject();// android通知内容
 		android.put("alert", alert);
 		android.put("sound", sound.split("\\.")[0]);
+		JSONObject options = new JSONObject();// 设置参数
+		if(StringUtils.isNotEmpty(channelId)){
+			JSONObject thirdParty = new JSONObject();
+			JSONObject xiaomi = new JSONObject();
+			xiaomi.put("distribution","secondary_push");
+			xiaomi.put("channel_id",channelId);
+			thirdParty.put("xiaomi",xiaomi);
+			options.put("third_party_channel",thirdParty);
+		}
 		android.put("builder_id", 1);
 		JSONObject android_extras = new JSONObject();// android额外参数
 		android_extras.put("type", "infomation");
@@ -99,7 +110,6 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 		message.put("msg_content", content);
 		message.put("content_type","text");
 
-		JSONObject options = new JSONObject();// 设置参数
 		options.put("time_to_live", this.time_to_live);
 		options.put("apns_production", this.apns_production);
 
@@ -118,7 +128,7 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 	 * @param alert 推送消息
 	 * @param content 推送内容
 	 */
-	private String push(String[] alias, String alert, String content, String url,String type,String sound) {
+	private String push(String[] alias, String alert, String content, String url,String type,String sound,String channelId) {
 		String base64_auth_string = "";
 		switch (type){
 			case "STUDENT":
@@ -132,7 +142,7 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 				break;
 		}
 		String authorization = "Basic " + base64_auth_string;
-		return sendPostRequest(generateJson(alias, alert, content, url,sound).toString(), authorization);
+		return sendPostRequest(generateJson(alias, alert, content, url,sound,channelId).toString(), authorization);
 	}
 
 	/**
@@ -178,9 +188,9 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 	}
 
 	@Override
-	public boolean send(String subject, String content, String receiver, String url, String type,String sound) throws IOException {
+	public boolean send(String subject, String content, String receiver, String url, String type,String sound,String channelId) throws IOException {
 		String[] alias = { receiver };
-		String result = this.push(alias, subject, content, url,type,sound);
+		String result = this.push(alias, subject, content, url,type,sound,channelId);
 		JSONObject json = JSONObject.parseObject(result);
 		if (json.containsKey("error")) {
 			JSONObject jsonObject = json.getJSONObject("error");
@@ -190,8 +200,8 @@ public class JiguangPushPlugin implements MessageSenderPlugin, InitializingBean
 	}
 
 	@Override
-	public boolean batchSend(String subject, String content, String[] receivers, String url, String type,String sound) throws IOException {
-		String result = this.push(receivers, subject, content, url,type,sound);
+	public boolean batchSend(String subject, String content, String[] receivers, String url, String type,String sound,String channelId) throws IOException {
+		String result = this.push(receivers, subject, content, url,type,sound,channelId);
 		JSONObject json = JSONObject.parseObject(result);
 		if (json.containsKey("error")) {
 			JSONObject jsonObject = json.getJSONObject("error");

+ 2 - 2
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/MOxintongSMSPlugin.java

@@ -36,7 +36,7 @@ public class MOxintongSMSPlugin implements MessageSenderPlugin, InitializingBean
 	}
 
 	@Override
-	public boolean send(String subject, String content, String receiver, String url, String jpushType,String sound) throws IOException {
+	public boolean send(String subject, String content, String receiver, String url, String jpushType,String sound,String channelId) throws IOException {
 		Map<String, Object> reqParams = new HashMap<String, Object>();
 		reqParams.put("username", username);
 		reqParams.put("pwd", pwd);
@@ -58,7 +58,7 @@ public class MOxintongSMSPlugin implements MessageSenderPlugin, InitializingBean
 	}
 
 	@Override
-	public boolean batchSend(String subject, String content, String[] receivers, String url, String jpushType,String sound) throws IOException {
+	public boolean batchSend(String subject, String content, String[] receivers, String url, String jpushType,String sound,String channelId) throws IOException {
 		StringBuilder stringBuilder = new StringBuilder();
 		for (int i = 0; i < receivers.length - 1; i++) {
 			stringBuilder.append(receivers[i]).append(",");

+ 2 - 2
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/ShiyuanSMSPlugin.java

@@ -70,7 +70,7 @@ public class ShiyuanSMSPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	@Override
-	public boolean send(String subject, String content, String receiver, String url,String jpushType,String sound) throws IOException {
+	public boolean send(String subject, String content, String receiver, String url,String jpushType,String sound,String channelId) throws IOException {
 		try {
 			Map<String, Object> reqParams = new HashMap<String, Object>();
 			reqParams.put("account", account);
@@ -93,7 +93,7 @@ public class ShiyuanSMSPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	@Override
-	public boolean batchSend(String subject, String content, String[] receivers, String url,String jpushType,String sound) throws IOException {
+	public boolean batchSend(String subject, String content, String[] receivers, String url,String jpushType,String sound,String channelId) throws IOException {
 		StringBuilder stringBuilder = new StringBuilder("");
 		for (int i = 0; i < receivers.length - 1; i++) {
 			stringBuilder.append(receivers[i]).append(",");

+ 2 - 2
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/message/provider/YimeiSmsPlugin.java

@@ -58,7 +58,7 @@ public class YimeiSmsPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	@Override
-	public boolean send(String subject, String content, String receiver, String url,String jpushType,String sound) throws Exception {
+	public boolean send(String subject, String content, String receiver, String url,String jpushType,String sound,String channelId) throws Exception {
 		String result = getParam(subject, content, receiver, host + "/simpleinter/sendSMS");
 		JSONObject json = JSONObject.parseObject(result);
 		if ("SUCCESS".equals(json.get("code"))) {
@@ -70,7 +70,7 @@ public class YimeiSmsPlugin implements MessageSenderPlugin, InitializingBean {
 	}
 
 	@Override
-	public boolean batchSend(String subject, String content, String[] receivers, String url,String jpushType,String sound) throws Exception {
+	public boolean batchSend(String subject, String content, String[] receivers, String url,String jpushType,String sound,String channelId) throws Exception {
 		String join = StringUtils.join(receivers, ",");
 		String result = getParam(subject, content, join, host + "/simpleinter/sendSMS");
 		logger.info("调用短信接口返回:{}", result);