瀏覽代碼

Merge remote-tracking branch 'origin/master'

Joburgess 3 年之前
父節點
當前提交
411a3b3bd5
共有 51 個文件被更改,包括 770 次插入322 次删除
  1. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayDegreeInfoDao.java
  2. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayReserveDao.java
  3. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java
  4. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ReplacementInstrumentActivityDao.java
  6. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenStatisticsDto.java
  7. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ReplacementInstrumentActivityStatDto.java
  8. 46 31
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayReserve.java
  9. 62 18
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/OrganizationDegreeCourseFee.java
  10. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/School.java
  11. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/SchoolQueryInfo.java
  12. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ChildrenDayDegreeInfoService.java
  13. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CooperationOrganService.java
  14. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupMemberService.java
  15. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayDegreeInfoServiceImpl.java
  16. 24 11
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayReserveServiceImpl.java
  17. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java
  19. 67 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java
  20. 0 52
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  21. 43 10
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java
  22. 45 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java
  23. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java
  24. 40 25
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  25. 26 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ReplacementInstrumentActivityServiceImpl.java
  26. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  27. 18 7
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  28. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java
  29. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  30. 7 0
      mec-biz/src/main/resources/config/mybatis/ChildrenDayDegreeInfoDao.xml
  31. 62 19
      mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml
  32. 27 5
      mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml
  33. 0 3
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  34. 2 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderDetailMapper.xml
  35. 13 2
      mec-biz/src/main/resources/config/mybatis/OrganizationDegreeCourseFeeMapper.xml
  36. 8 0
      mec-biz/src/main/resources/config/mybatis/ReplacementInstrumentActivityMapper.xml
  37. 25 18
      mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml
  38. 9 8
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  39. 11 6
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  40. 2 14
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml
  41. 0 4
      mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml
  42. 1 1
      mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml
  43. 11 0
      mec-student/src/main/java/com/ym/mec/student/controller/ChildrenDayController.java
  44. 5 2
      mec-student/src/main/java/com/ym/mec/student/controller/ChildrenDayDegreeDetailController.java
  45. 0 14
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java
  46. 37 1
      mec-util/src/main/java/com/ym/mec/util/http/HttpUtil.java
  47. 7 0
      mec-web/src/main/java/com/ym/mec/web/controller/CooperationOrganController.java
  48. 0 5
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  49. 10 16
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderDetailController.java
  50. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/ReplacementInstrumentActivityController.java
  51. 11 11
      mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayDegreeInfoDao.java

@@ -2,7 +2,17 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.ChildrenDayDegreeInfo;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
-public interface ChildrenDayDegreeInfoDao extends BaseDAO<Integer,ChildrenDayDegreeInfo> {
+import java.util.List;
 
+public interface ChildrenDayDegreeInfoDao extends BaseDAO<Integer, ChildrenDayDegreeInfo> {
+
+    /**
+     * 获取已缴费的用户
+     *
+     * @param userIds
+     * @return
+     */
+    List<Integer> getPayedUser(@Param("userIds") List<Integer> userIds);
 }

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

@@ -64,6 +64,7 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
 
     /**
      * 导出详情
+     *
      * @param queryInfo
      * @return
      */
@@ -76,4 +77,12 @@ public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReser
      * @return
      */
     List<ChildrenStatisticsDetailDto> getSendMsgList(@Param("msgDtos") List<ChildrenDayMsgDto> msgDtos);
+
+
+    /**
+     * 修改发送短信的状态
+     *
+     * @param userIds
+     */
+    Integer updateSendMasStatus(@Param("userIds") List<Integer> userIds);
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/IndexBaseMonthDataDao.java

@@ -10,6 +10,7 @@ import com.ym.mec.common.dal.BaseDAO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.poi.ss.formula.functions.Index;
 
+import java.math.BigDecimal;
 import java.util.*;
 
 public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData> {
@@ -297,4 +298,6 @@ public interface IndexBaseMonthDataDao extends BaseDAO<Long, IndexBaseMonthData>
     int countStudentLeaveCourseList(Map<String, Object> params);
 
     List<StudentLeaveCourseDto> queryStudentLeaveCourseList(Map<String, Object> params);
+
+    List<Map<Integer, BigDecimal>> getStudentErrorLeaveNumMap(Map<String, Object> params);
 }

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -406,6 +406,13 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
     List<MusicGroup> findByCooperationIdAndStatus(Integer cooperationOrganId);
 
     /**
+     * 根据合作单位获取乐团列表
+     * @param cooperationOrganId
+     * @return
+     */
+    List<MusicGroup> findByCooperationId(@Param("cooperationId") Integer cooperationOrganId);
+
+    /**
      * 批量修改乐团主管
      * @param cooperationOrganId
      * @param educationUserId
@@ -420,5 +427,4 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      */
     MusicGroup getStudentLastMusicGroup(@Param("userId") Integer userId);
 
-    List<MusicGroup> findByCooperationId(@Param("cooperationId") Integer cooperationOrganId, @Param("musicStatus") String musicStatus);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ReplacementInstrumentActivityDao.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.dao;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import org.apache.ibatis.annotations.Param;
 
 import com.ym.mec.biz.dal.dto.ReplacementInstrumentActivityStatDto;
@@ -44,6 +45,7 @@ public interface ReplacementInstrumentActivityDao extends BaseDAO<Integer, Repla
 
     /**
      * 获取问卷分页数据
+     *
      * @param params
      * @return
      */
@@ -51,8 +53,17 @@ public interface ReplacementInstrumentActivityDao extends BaseDAO<Integer, Repla
 
     /**
      * 获取问卷总条数
+     *
      * @param params
      * @return
      */
     Integer getCount(Map<String, Object> params);
+
+    /**
+     * 置换活动的订单
+     *
+     * @param ids
+     * @return
+     */
+    List<StudentPaymentOrder> getActivityOrder(@Param("ids") List<Integer> ids);
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenStatisticsDto.java

@@ -38,8 +38,28 @@ public class ChildrenStatisticsDto {
 
     private BigDecimal buyMusicTheoryAmount = BigDecimal.ZERO;
 
+    private BigDecimal theoryPrice = BigDecimal.ZERO;
+
+    private BigDecimal gradePrice = BigDecimal.ZERO;
+
     private BigDecimal totalAmount = BigDecimal.ZERO;
 
+    public BigDecimal getTheoryPrice() {
+        return theoryPrice;
+    }
+
+    public void setTheoryPrice(BigDecimal theoryPrice) {
+        this.theoryPrice = theoryPrice;
+    }
+
+    public BigDecimal getGradePrice() {
+        return gradePrice;
+    }
+
+    public void setGradePrice(BigDecimal gradePrice) {
+        this.gradePrice = gradePrice;
+    }
+
     public Integer getOrganId() {
         return organId;
     }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ReplacementInstrumentActivityStatDto.java

@@ -41,6 +41,12 @@ public class ReplacementInstrumentActivityStatDto extends ReplacementInstrumentA
     @ApiModelProperty(value="是否有置换乐器")
     private String hasInstrumentsId;
 
+    @ApiModelProperty(value="现金支付金额")
+    private BigDecimal actualAmount = BigDecimal.ZERO;
+
+    @ApiModelProperty(value="余额支付")
+    private BigDecimal balance = BigDecimal.ZERO;
+
     public String getTitle() {
         return title;
     }
@@ -136,4 +142,20 @@ public class ReplacementInstrumentActivityStatDto extends ReplacementInstrumentA
     public void setHasYesFirstAnswer(String hasYesFirstAnswer) {
         this.hasYesFirstAnswer = hasYesFirstAnswer;
     }
+
+    public BigDecimal getActualAmount() {
+        return actualAmount;
+    }
+
+    public void setActualAmount(BigDecimal actualAmount) {
+        this.actualAmount = actualAmount;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
 }

+ 46 - 31
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayReserve.java

@@ -3,53 +3,60 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
 import java.util.Date;
 
-@ApiModel(value="com-domain-ChildrenDayReserve")
+@ApiModel(value = "com-domain-ChildrenDayReserve")
 public class ChildrenDayReserve {
-    @ApiModelProperty(value="")
+    @ApiModelProperty(value = "")
     private Integer id;
 
     /**
-    * 用户id
-    */
-    @ApiModelProperty(value="用户id")
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
     private Integer userId;
 
     /**
-    * 分部id
-    */
-    @ApiModelProperty(value="分部id")
+     * 分部id
+     */
+    @ApiModelProperty(value = "分部id")
     private Integer organId;
 
     /**
-    * 合作单位id
-    */
-    @ApiModelProperty(value="合作单位id")
+     * 合作单位id
+     */
+    @ApiModelProperty(value = "合作单位id")
     private Integer cooperationOrganId;
 
     /**
-    * 乐团id
-    */
-    @ApiModelProperty(value="乐团id")
+     * 乐团id
+     */
+    @ApiModelProperty(value = "乐团id")
     private String musicGroupId;
 
     /**
-    * 是否预约 0-否 1-是
-    */
-    @ApiModelProperty(value="是否预约 0-否 1-是")
+     * 是否预约 0-否 1-是
+     */
+    @ApiModelProperty(value = "是否预约 0-否 1-是")
     private YesOrNoEnum isReserve;
 
     /**
-    * 创建时间
-    */
-    @ApiModelProperty(value="创建时间")
+     * 是否已发短信 0-否 1-是
+     */
+    @ApiModelProperty(value = "是否已发短信 0-否 1-是")
+    private YesOrNoEnum isSendMsg = YesOrNoEnum.NO;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
     /**
-    * 更新时间
-    */
-    @ApiModelProperty(value="更新时间")
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
     private Date updateTime;
 
     @ApiModelProperty(value = "当前的缴费状态 0-正常 1-缴费中")
@@ -103,6 +110,22 @@ public class ChildrenDayReserve {
         this.isReserve = isReserve;
     }
 
+    public Integer getPayStatus() {
+        return payStatus;
+    }
+
+    public void setPayStatus(Integer payStatus) {
+        this.payStatus = payStatus;
+    }
+
+    public YesOrNoEnum getIsSendMsg() {
+        return isSendMsg;
+    }
+
+    public void setIsSendMsg(YesOrNoEnum isSendMsg) {
+        this.isSendMsg = isSendMsg;
+    }
+
     public Date getCreateTime() {
         return createTime;
     }
@@ -136,12 +159,4 @@ public class ChildrenDayReserve {
         sb.append("]");
         return sb.toString();
     }
-
-    public Integer getPayStatus() {
-        return payStatus;
-    }
-
-    public void setPayStatus(Integer payStatus) {
-        this.payStatus = payStatus;
-    }
 }

+ 62 - 18
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/OrganizationDegreeCourseFee.java

@@ -2,48 +2,67 @@ package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+
 import java.math.BigDecimal;
 import java.util.Date;
 
-@ApiModel(value="com-domain-OrganizationDegreeCourseFee")
+@ApiModel(value = "com-domain-OrganizationDegreeCourseFee")
 public class OrganizationDegreeCourseFee {
-    @ApiModelProperty(value="")
+    @ApiModelProperty(value = "")
     private Integer id;
 
     /**
-    * 分部id
-    */
-    @ApiModelProperty(value="分部id")
+     * 分部id
+     */
+    @ApiModelProperty(value = "分部id")
     private Integer organId;
 
     /**
-    * vip 1v1课价格
-    */
-    @ApiModelProperty(value="vip 1v1课价格")
+     * vip 1v1课原价格
+     */
+    @ApiModelProperty(value = "vip 1v1课原价格")
+    private BigDecimal originalVip1v1;
+
+    /**
+     * vip 1v2课原价格
+     */
+    @ApiModelProperty(value = "vip 1v2课原价格")
+    private BigDecimal originalVip1v2;
+
+    /**
+     * vip 1v1课价格
+     */
+    @ApiModelProperty(value = "vip 1v1课价格")
     private BigDecimal vip1v1;
 
     /**
      * vip 1v2课价格
      */
-    @ApiModelProperty(value="vip 1v2课价格")
+    @ApiModelProperty(value = "vip 1v2课价格")
     private BigDecimal vip1v2;
 
     /**
-    * 乐理课价格
-    */
-    @ApiModelProperty(value="乐理课价格")
+     * 乐理课原价格
+     */
+    @ApiModelProperty(value = "乐理课价格")
+    private BigDecimal originalTheory;
+
+    /**
+     * 乐理课价格
+     */
+    @ApiModelProperty(value = "乐理课价格")
     private BigDecimal theory;
 
     /**
-    * 创建时间
-    */
-    @ApiModelProperty(value="创建时间")
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
     private Date createTime;
 
     /**
-    * 修改时间
-    */
-    @ApiModelProperty(value="修改时间")
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
     private Date updateTime;
 
     public Integer getId() {
@@ -86,6 +105,31 @@ public class OrganizationDegreeCourseFee {
         this.theory = theory;
     }
 
+
+    public BigDecimal getOriginalVip1v1() {
+        return originalVip1v1;
+    }
+
+    public void setOriginalVip1v1(BigDecimal originalVip1v1) {
+        this.originalVip1v1 = originalVip1v1;
+    }
+
+    public BigDecimal getOriginalVip1v2() {
+        return originalVip1v2;
+    }
+
+    public void setOriginalVip1v2(BigDecimal originalVip1v2) {
+        this.originalVip1v2 = originalVip1v2;
+    }
+
+    public BigDecimal getOriginalTheory() {
+        return originalTheory;
+    }
+
+    public void setOriginalTheory(BigDecimal originalTheory) {
+        this.originalTheory = originalTheory;
+    }
+
     public Date getCreateTime() {
         return createTime;
     }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/School.java

@@ -16,6 +16,8 @@ public class School {
 	
 	private Integer userId;
 
+	private String realName;
+
 	/**  */
 	@ApiModelProperty(value = "学校名称", required = false)
 	private String name;
@@ -62,6 +64,14 @@ public class School {
 	@ApiModelProperty(value = "备注", required = false)
 	private String remark;
 
+	public String getRealName() {
+		return realName;
+	}
+
+	public void setRealName(String realName) {
+		this.realName = realName;
+	}
+
 	public String getOrganName() {
 		return organName;
 	}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SchoolQueryInfo.java

@@ -10,6 +10,17 @@ public class SchoolQueryInfo extends QueryInfo {
     
     private String organId;
 
+    //是否公共
+    private Integer publicFlag;
+
+    public Integer getPublicFlag() {
+        return publicFlag;
+    }
+
+    public void setPublicFlag(Integer publicFlag) {
+        this.publicFlag = publicFlag;
+    }
+
     public Integer getCooperationOrganId() {
         return cooperationOrganId;
     }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ChildrenDayDegreeInfoService.java

@@ -5,6 +5,8 @@ import com.ym.mec.biz.dal.entity.ChildrenDayDegreeInfo;
 
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 
 public interface ChildrenDayDegreeInfoService extends BaseService<Integer, ChildrenDayDegreeInfo> {
 
@@ -15,5 +17,11 @@ public interface ChildrenDayDegreeInfoService extends BaseService<Integer, Child
      */
     ChildrenDayDegreeInfo addInfo(Long orderId);
 
+    /**
+     * 获取已付费的用户
+     * @param userIds
+     * @return
+     */
+    List<Integer> getPayedUser(List<Integer> userIds);
 
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CooperationOrganService.java

@@ -26,4 +26,7 @@ public interface CooperationOrganService extends BaseService<Integer, Cooperatio
     List<MusicGroupPaymentCalender> getCooperationOrganCalender4School(Integer id);
 
     void updateCooperation(CooperationOrgan cooperationOrgan);
+
+    void updateCooperationEdu(List<Integer> organIds);
+
 }

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

@@ -4,6 +4,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImGroupMember;
 import com.ym.mec.common.service.BaseService;
 
@@ -20,6 +22,15 @@ public interface ImGroupMemberService extends BaseService<Long, ImGroupMember> {
 	boolean join(Long imGroupId, Integer userId, String roleType, boolean isAdmin);
 
 	/**
+	 * 加入群组
+	 * @param imGroupId 群编号
+	 * @param roleType 角色类型
+	 * @param isAdmin 是否是管理员
+	 * @return
+	 */
+	boolean join(Long imGroupId, String roleType, boolean isAdmin, ImGroup imGroup, SysUser user);
+
+	/**
 	 * 批量加入群组
 	 * @param imGroupId 群组编号
 	 * @param userRoleMap key-用户编号  value-角色类型

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

@@ -67,4 +67,9 @@ public class ChildrenDayDegreeInfoServiceImpl extends BaseServiceImpl<Integer, C
         }
         return childrenDayDegreeInfo;
     }
+
+    @Override
+    public List<Integer> getPayedUser(List<Integer> userIds) {
+       return childrenDayDegreeInfoDao.getPayedUser(userIds);
+    }
 }

+ 24 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayReserveServiceImpl.java

@@ -187,11 +187,15 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
             }
         }
 
+        //获取课程的价格
+        OrganizationDegreeCourseFee courseFee = organizationDegreeCourseFeeDao.getByOrganId(degreePayDto.getOrganId());
+
         //检查已经购买的课程(不能重复)
         details = childrenDayDegreeDetailService.getByUserIdAndStatus(degreePayDto.getUserId(), 2);
         Set<Integer> detailTypes = details.stream().map(ChildrenDayDegreeDetail::getType).collect(Collectors.toSet());
 
-        if (degreePayDto.getTheoryLevel() != null && degreePayDto.getTheoryLevel() > 0 && !degreePayDto.getTheoryCourse() && !detailTypes.contains(5)) {
+        if (degreePayDto.getTheoryLevel() != null && degreePayDto.getTheoryLevel() > 0 &&
+                courseFee != null && !degreePayDto.getTheoryCourse() && !detailTypes.contains(5)) {
             throw new BizException("参加乐理考试,请选乐理考级专项训练课");
         }
 
@@ -214,7 +218,7 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
             List<ChildrenDayDegreeDetail> hasList = details.stream().filter(e -> e.getType().equals(1)).filter(e -> e.getSubjectId().equals(degreePayDto.getSubject()))
                     .filter(e -> e.getLevel().equals(degreePayDto.getMusicGradeLevel())).collect(Collectors.toList());
             if (hasList.size() > 0) {
-                throw new BizException("您已报考同声部同等级,请勿重复报考");
+                throw new BizException("您已报考同声部同等级请勿重复报考");
             }
 
             if (degreePayDto.getNeedVipCourse() && !detailTypes.contains(3) && !detailTypes.contains(4)) {
@@ -227,7 +231,7 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
             List<ChildrenDayDegreeDetail> hasList = details.stream().filter(e -> e.getType().equals(2))
                     .filter(e -> e.getLevel().equals(degreePayDto.getTheoryLevel())).collect(Collectors.toList());
             if (hasList.size() > 0) {
-                throw new BizException("您已报考同等级乐理,请勿重复报考");
+                throw new BizException("您已报考同等级乐理请勿重复报考");
             }
         }
 
@@ -238,13 +242,6 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
         }
         degreePayDto.setReserveId(userReserve.getId());
 
-        //获取课程的价格
-        OrganizationDegreeCourseFee courseFee = organizationDegreeCourseFeeDao.getByOrganId(degreePayDto.getOrganId());
-
-        if (courseFee == null) {
-            throw new BizException("当前分部不参与,谢谢关注");
-        }
-
         List<DegreeLevelFee> degreeLevelFees = degreeLevelFeeDao.getAll();
 
         //订单总金额
@@ -447,15 +444,29 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
     @Override
     public Boolean sendMsg(List<ChildrenDayMsgDto> msgDtos) {
         List<ChildrenStatisticsDetailDto> reserves = childrenDayReserveDao.getSendMsgList(msgDtos);
+        if (reserves.size() <= 0) {
+            return true;
+        }
 
         Map<Integer, String> userMap = new HashMap<>();
         Map<Integer, String> userPhoneMap = new HashMap<>();
 
+        List<Integer> userList = reserves.stream().map(ChildrenStatisticsDetailDto::getUserId).collect(Collectors.toList());
+        List<Integer> payedUserIds = childrenDayDegreeInfoService.getPayedUser(userList);
+
         for (ChildrenStatisticsDetailDto reserve : reserves) {
+            if (payedUserIds.contains(reserve.getUserId())) {
+                userList.remove(reserve.getUserId());
+                continue;
+            }
             userMap.put(reserve.getUserId(), reserve.getUserId().toString());
             userPhoneMap.put(reserve.getUserId(), reserve.getPhone());
         }
 
+        if (userMap.size() <= 0) {
+            return true;
+        }
+
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
         String pushUrl = baseApiUrl + "/#/childrenPayment";
 
@@ -463,7 +474,9 @@ public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, Chil
                 userMap, null, 0, "5?" + pushUrl, "STUDENT");
 
         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CHILDREN_DAY_NOTICE_MSG,
-                userPhoneMap, null, 0, null, null, pushUrl);
+                userPhoneMap, null, 0, null, null, HttpUtil.getSortUrl(pushUrl));
+
+        childrenDayReserveDao.updateSendMasStatus(userList);
         return true;
     }
 }

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -653,6 +653,9 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
         //获取冻结的课程列表
         List<CourseSchedule> classGroupNotStartCourse = courseScheduleDao.findCoursesByClassGroupIdAndCourseIds(classGroupId,allLockCourseIds);
+        if(classGroupNotStartCourse.size() == 0){
+            throw new BizException("操作失败:主班没有未开始的课程");
+        }
 
         Date now = new Date();
         List<ClassGroupStudentMapper> classGroupStudentMappers = new ArrayList<>();

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

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.util.http.HttpUtil;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -321,7 +322,6 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		if(true){
 			return transferProduceContract(userId, musicGroupId);
 		}
-
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
 		if (sysUserTsign == null) {

+ 67 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java

@@ -5,7 +5,10 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.ClassGroupDao;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.ImGroupMemberService;
@@ -32,6 +35,10 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 	private ImGroupMemberService imGroupMemberService;
 	@Autowired
 	private ImGroupService imGroupService;
+	@Autowired
+	private EmployeeDao employeeDao;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public BaseDAO<Integer, CooperationOrgan> getDAO() {
@@ -54,6 +61,7 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 		CooperationOrgan cooperationOrgan1 = cooperationOrganDao.get(cooperationOrgan.getId());
 		//修改了乐团主管后,修改关联乐团的乐团主管
 		if(!cooperationOrgan.getEducationUserId().equals(cooperationOrgan1.getEducationUserId())){
+			SysUser sysUser = sysUserFeignService.queryUserById(cooperationOrgan.getEducationUserId());
 			//获取进行中、暂停、筹备中的乐团列表
 			List<MusicGroup> musicGroups = musicGroupDao.findByCooperationIdAndStatus(cooperationOrgan.getId());
 			if(musicGroups.size() > 0){
@@ -64,22 +72,16 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 						continue;
 					}
 					Integer educationalTeacherId = musicGroup.getEducationalTeacherId();
-					List<Integer> quitUserIdList = new ArrayList<Integer>();
-					if(educationalTeacherId != null){
-						quitUserIdList.add(educationalTeacherId);
-					}
-					Map<Integer, String> userRoleMap = new HashMap<Integer, String>(1);
-					userRoleMap.put(cooperationOrgan.getEducationUserId(), "乐团主管");
 					classGroups.forEach(e -> {
 						if(educationalTeacherId != null){
-							imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);
+							imGroupMemberService.quit(e.getId().longValue(), educationalTeacherId);
 						}
-						imGroupMemberService.join(e.getId().longValue(), userRoleMap);
+						imGroupMemberService.join(e.getId().longValue(),"乐团主管",false,null,sysUser);
 					});
 				}
 			}
 			//更新预报名群信息
-			List<MusicGroup> musicGroupList = musicGroupDao.findByCooperationId(cooperationOrgan.getId(),null);
+			List<MusicGroup> musicGroupList = musicGroupDao.findByCooperationId(cooperationOrgan.getId());
 			if(musicGroupList.size() > 0){
 				for (MusicGroup musicGroup : musicGroupList) {
 					//不是导入的乐团
@@ -88,7 +90,7 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 						ImGroup imGroup = imGroupService.get(Long.parseLong(musicGroup.getId()));
 						if(imGroup != null){
 							imGroupMemberService.quit(Long.parseLong(musicGroup.getId()),musicGroup.getEducationalTeacherId());
-							imGroupMemberService.join(Long.parseLong(musicGroup.getId()),cooperationOrgan.getEducationUserId(),"乐团主管",false);
+							imGroupMemberService.join(Long.parseLong(musicGroup.getId()),"乐团主管",false,imGroup,sysUser);
 						}
 					}
 				}
@@ -98,4 +100,59 @@ public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, Cooper
 		}
 		cooperationOrganDao.update(cooperationOrgan);
 	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateCooperationEdu(List<Integer> organIds) {
+		List<CooperationOrgan> organList = cooperationOrganDao.getCooperationOrganByIds(organIds);
+		for (CooperationOrgan cooperationOrgan : organList) {
+			if(cooperationOrgan.getEducationUserId() != null){
+				Employee employee = employeeDao.get(cooperationOrgan.getEducationUserId());
+				if(employee != null){
+					//获取进行中、暂停、筹备中的乐团列表
+					List<MusicGroup> musicGroups = musicGroupDao.findByCooperationIdAndStatus(cooperationOrgan.getId());
+					if(musicGroups.size() > 0){
+						for (MusicGroup musicGroup : musicGroups) {
+							//获取当前乐团所有班级
+							List<ClassGroup> classGroups = classGroupDao.findClassGroups(musicGroup.getId());
+							if (classGroups == null || classGroups.size() == 0) {
+								continue;
+							}
+							Integer educationalTeacherId = musicGroup.getEducationalTeacherId();
+							List<Integer> quitUserIdList = new ArrayList<Integer>();
+							if(educationalTeacherId != null){
+								quitUserIdList.add(educationalTeacherId);
+							}
+							Map<Integer, String> userRoleMap = new HashMap<Integer, String>(1);
+							userRoleMap.put(cooperationOrgan.getEducationUserId(), "乐团主管");
+							classGroups.forEach(e -> {
+								if(educationalTeacherId != null){
+									imGroupMemberService.quit(e.getId().longValue(), quitUserIdList);
+								}
+								imGroupMemberService.join(e.getId().longValue(), userRoleMap);
+							});
+						}
+					}
+					//更新预报名群信息
+					List<MusicGroup> musicGroupList = musicGroupDao.findByCooperationId(cooperationOrgan.getId());
+					if(musicGroupList.size() > 0){
+						for (MusicGroup musicGroup : musicGroupList) {
+							//不是导入的乐团
+							if(musicGroup.getId().length() > 10){
+								//是否有预报名的群聊
+								ImGroup imGroup = imGroupService.get(Long.parseLong(musicGroup.getId()));
+								if(imGroup != null){
+									imGroupMemberService.quit(Long.parseLong(musicGroup.getId()),musicGroup.getEducationalTeacherId());
+									imGroupMemberService.join(Long.parseLong(musicGroup.getId()),cooperationOrgan.getEducationUserId(),"乐团主管",false);
+								}
+							}
+						}
+					}
+					//修改乐团主管
+					musicGroupDao.batchUpdateEdu(cooperationOrgan.getId(),cooperationOrgan.getEducationUserId());
+					System.out.println(cooperationOrgan.getName() + "  OK");
+				}
+			}
+		}
+	}
 }

+ 0 - 52
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -264,10 +264,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	public void level(List<EmployeeLevelDto> employeeLevelDtos) {
 		Integer levelUserId = employeeLevelDtos.get(0).getLevelUserId();
 		List<ImGroupModel> educationGroupModels = new ArrayList<>();
-//		List<ImGroupModel> teamGroupModels = new ArrayList<>();
-//		List<ImGroupModel> directorGroupModels = new ArrayList<>();
-		//获取用户需要加入的预报名群聊
-//		List<ImGroupModel> applyGroupModels = new ArrayList<>();
 		//获取用户担任教务老师的所有乐团列表
 		List<String> musicGroupIds = employeeDao.queryMusicGroupIdByUserId(levelUserId);
 		//获取用户担任教务老师的所有网管课列表
@@ -311,9 +307,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			}
 		}
 		Date date = new Date();
-//		educationGroupModels.addAll(applyGroupModels);
-//		educationGroupModels.addAll(educationGroupModels);
-//		educationGroupModels.addAll(teamGroupModels);
 		if(educationGroupModels.size() > 0){
 			Map<Integer, String> realNameMap = MapUtil.convertIntegerMap(teacherDao.queryNameByIdList(new ArrayList<>(userIds)));
 			//❤️用户加群
@@ -337,55 +330,10 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			imGroupMemberService.batchInsert(imGroupMemberList);
 			imFeignService.groupBatchJoin(groupModelList);
 		}
-		/*if(educationGroupModels.size() > 0){
-			//❤️用户加群
-			for (ImGroupModel imGroupModel : educationGroupModels) {
-				Map<Integer,String> userRoleMap = new HashMap<>();
-
-				List<ImGroupMember> memberList = imGroupModel.getMemberList();
-				for(ImGroupMember member : memberList){
-					userRoleMap.put(Integer.parseInt(member.getId()), "乐团主管");
-				}
-				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
-			}
-		}
-		if(teamGroupModels.size() > 0){
-			//❤️用户加群
-			for (ImGroupModel imGroupModel : teamGroupModels) {
-				Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
-
-				List<ImGroupMember> memberList = imGroupModel.getMemberList();
-				for(ImGroupMember member : memberList){
-					userRoleMap.put(Integer.parseInt(member.getId()), "运营主管");
-				}
-				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
-			}
-		}
-		if(directorGroupModels.size() > 0){
-			//❤️用户加群
-			for (ImGroupModel imGroupModel : directorGroupModels) {
-				Map<Integer,String> userRoleMap = new HashMap<Integer, String>();
-
-				List<ImGroupMember> memberList = imGroupModel.getMemberList();
-				for(ImGroupMember member : memberList){
-					userRoleMap.put(Integer.parseInt(member.getId()), "乐队指导");
-				}
-				imGroupMemberService.join(Long.parseLong(imGroupModel.getId()), userRoleMap);
-			}
-		}*/
 		//原有员工退群
 		List<ImGroupModel> groupModels = classGroupDao.queryTeacherQuitGroups(levelUserId);
-		/*if(groupModels.size() > 0){
-
-			List<Long> imGroupIdList = new ArrayList<Long>();
-			for (ImGroupModel imGroupModel : groupModels) {
-				imGroupIdList.add(Long.parseLong(imGroupModel.getId()));
-			}
-			imGroupMemberService.quit(imGroupIdList, levelUserId);
-		}*/
 		//原有员工退预报名群
 		groupModels.addAll(classGroupDao.queryQuitApplyGroups(levelUserId));
-//		groupModels.addAll(imGroupModels);
 		if(groupModels.size() > 0){
 			List<com.ym.mec.biz.dal.entity.ImGroupMember> imGroupMemberList = new ArrayList<>();
 			List<GroupModel> groupModelList = new ArrayList<>();

+ 43 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -90,16 +90,7 @@ public class ExportServiceImpl implements ExportService {
             }
             BigDecimal transferFee = BigDecimal.ZERO;
             if (row.getPaymentChannel() != null && row.getPaymentChannel().equals("ADAPAY")) {
-                FeeFlagNumDto countFeeFlagNum = studentPaymentRouteOrderDao.getCountFeeFlagNum(row.getOrderNo());
-                if (countFeeFlagNum.getTotalNum() > countFeeFlagNum.getYesNum()) {
-                    transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
-                }
-                if (countFeeFlagNum.getTotalNum().equals(countFeeFlagNum.getYesNum())) {
-                    List<StudentPaymentRouteOrder> routeOrders = studentPaymentRouteOrderDao.getRouteOrders(row.getOrderNo());
-                    for (StudentPaymentRouteOrder routeOrder : routeOrders) {
-                        transferFee = transferFee.add(routeOrder.getRouteAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
-                    }
-                }
+                transferFee = row.getActualAmount().multiply(new BigDecimal("0.28")).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP);
             }
             row.setTransferFee(transferFee);
 
@@ -154,6 +145,27 @@ public class ExportServiceImpl implements ExportService {
                             }
                             row.setCloudTeacherFee(cloudTeacherFee);
                             break;
+                        case DEGREE_REGISTRATION:
+                            BigDecimal degreeFee = BigDecimal.ZERO;
+                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                degreeFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                            }
+                            row.setDegreeFee(degreeFee);
+                            break;
+                        case VIP:
+                            BigDecimal vipCourseFee = BigDecimal.ZERO;
+                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                vipCourseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                            }
+                            row.setVipCourseFee(vipCourseFee);
+                            break;
+                        case THEORY_COURSE:
+                            BigDecimal theoryCourseFee = BigDecimal.ZERO;
+                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                theoryCourseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                            }
+                            row.setTheoryCourseFee(theoryCourseFee);
+                            break;
                         default:
                             break;
                     }
@@ -424,6 +436,27 @@ public class ExportServiceImpl implements ExportService {
                             }
                             row.setCloudTeacherFee(cloudTeacherFee);
                             break;
+                        case DEGREE_REGISTRATION:
+                            BigDecimal degreeFee = BigDecimal.ZERO;
+                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                degreeFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                            }
+                            row.setDegreeFee(degreeFee);
+                            break;
+                        case VIP:
+                            BigDecimal vipCourseFee = BigDecimal.ZERO;
+                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                vipCourseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                            }
+                            row.setVipCourseFee(vipCourseFee);
+                            break;
+                        case THEORY_COURSE:
+                            BigDecimal theoryCourseFee = BigDecimal.ZERO;
+                            if (row.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
+                                theoryCourseFee = orderDetail.getPrice().multiply(row.getActualAmount()).divide(row.getExpectAmount(), 2, BigDecimal.ROUND_DOWN);
+                            }
+                            row.setTheoryCourseFee(theoryCourseFee);
+                            break;
                         default:
                             break;
                     }

+ 45 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupMemberServiceImpl.java

@@ -174,6 +174,51 @@ public class ImGroupMemberServiceImpl extends BaseServiceImpl<Long, ImGroupMembe
 
 	@Override
 	@Transactional(rollbackFor = Exception.class)
+	public boolean join(Long imGroupId,String roleType, boolean isAdmin,ImGroup imGroup,SysUser user) {
+		if (imGroup == null) {
+			imGroup = imGroupDao.getLocked(imGroupId);
+		}
+		if (imGroup == null) {
+			joinGroup(imGroupId,user.getId(),roleType,isAdmin,new HashMap<>());
+			return true;
+		}
+		//检查用户是否已存在
+		List<ImGroupMember> imGroupMemberList = imGroupMemberDao.queryByImGroupIdAndUserId(imGroupId.toString(), user.getId().toString());
+		if(imGroupMemberList != null && imGroupMemberList.size() > 0){
+			return true;
+		}
+
+		ImGroupMember imGroupMember = new ImGroupMember();
+		Date date = new Date();
+
+		imGroupMember.setCreateTime(date);
+		imGroupMember.setImGroupId(imGroupId);
+		imGroupMember.setIsAdmin(isAdmin);
+		imGroupMember.setRoleType(roleType);
+		imGroupMember.setUpdateTime(date);
+		imGroupMember.setUserId(user.getId());
+		if (StringUtils.isBlank(roleType)) {
+			imGroupMember.setNickname(user.getUsername()==null?user.getRealName():user.getUsername());
+		} else {
+			imGroupMember.setNickname(user.getRealName()==null?user.getUsername():user.getRealName());
+		}
+
+		imGroupMemberDao.insert(imGroupMember);
+
+		imGroup.setMemberNum(imGroup.getMemberNum() + 1);
+		imGroup.setUpdateTime(date);
+		imGroupDao.update(imGroup);
+
+		String groupId = imGroup.getId().toString();
+
+		GroupMember groupMember = new GroupMember(user.getId().toString(), groupId);
+		imFeignService.groupJoin(new GroupModel(groupId, new GroupMember[] { groupMember }, imGroup.getName()));
+
+		return true;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public boolean join(Long imGroupId, Map<Integer, String> userRoleMap) {
 		ImGroup imGroup = imGroupDao.getLocked(imGroupId);
 		if (imGroup == null) {

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/IndexBaseMonthDataServiceImpl.java

@@ -516,8 +516,8 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 			two.setErrorType(IndexErrorType.STUDENT_INFO);
 			two.setDesc(IndexErrorType.STUDENT_INFO.getMsg());
 			List<IndexErrInfoDto> twoChild = new ArrayList<>();
-			//学员请假异常提醒(获取前两个月的)
-			String format1 = DateUtil.format(DateUtil.addMonths(new Date(), -1), DateUtil.ISO_YEAR_MONTH_FORMAT);
+			//学员请假异常提醒(只提醒本月的异常)
+			String format1 = DateUtil.format(new Date(), DateUtil.ISO_YEAR_MONTH_FORMAT);
 			twoChild.add(new IndexErrInfoDto(IndexErrorType.STUDENT_ERROR_LEAVE, IndexErrorType.STUDENT_ERROR_LEAVE.getMsg(), indexBaseMonthDataDao.countStudentErrorLeave(organIds,format1,classGroupIds), null));
 
 			//未缴费学员数
@@ -934,7 +934,7 @@ public class IndexBaseMonthDataServiceImpl extends BaseServiceImpl<Long, IndexBa
 		boolean flag2 = false;
 		if(!flag2){
 			//学员请假异常提醒(获取前两个月的)
-			String format1 = DateUtil.format(DateUtil.addMonths(date, -1), DateUtil.ISO_YEAR_MONTH_FORMAT);
+			String format1 = DateUtil.format(date, DateUtil.ISO_YEAR_MONTH_FORMAT);
 			int studentErrorLeaveNum = indexBaseMonthDataDao.countStudentErrorLeave(organIds,format1,classGroupIds);
 			if(studentErrorLeaveNum > 0){
 				flag2 = true;

+ 40 - 25
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -239,8 +239,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         musicGroup.setDelFlag(false);
         CooperationOrgan cooperationOrgan = cooperationOrganDao.get(musicGroup.getCooperationOrganId());
-        if(cooperationOrgan.getEducationUserId() == null){
-            throw new BizException("操作失败:请先配置合作单位: {} 关联的乐团主管",cooperationOrgan.getName());
+        if (cooperationOrgan.getEducationUserId() == null) {
+            throw new BizException("操作失败:请先配置合作单位: {} 关联的乐团主管", cooperationOrgan.getName());
         }
         musicGroup.setEducationalTeacherId(cooperationOrgan.getEducationUserId());
         // 保存乐团基本信息
@@ -388,6 +388,13 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             student.setCurrentClass(studentPreRegistration.getCurrentClass());
             studentDao.insert(student);
             sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
+        } else {
+            user.setUsername(studentPreRegistration.getUserName());
+            if (!user.getUserType().contains("STUDENT")) {
+                user.setUserType(user.getUserType() + ",STUDENT");
+            }
+            user.setUpdateTime(new Date());
+            teacherDao.updateUser(user);
         }
 
         studentPreRegistration.setCreateTime(date);
@@ -721,6 +728,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setUpdateTime(date);
+
+        if ("205".equals(studentPaymentOrder.getPaymentAccountNo())) {
+            studentPaymentOrder.setPaymentChannel("ADAPAY");
+        }
         studentPaymentOrderService.update(studentPaymentOrder);
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
@@ -892,6 +903,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPaymentOrder.setOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
         studentPaymentOrder.setUpdateTime(date);
+
+        if ("205".equals(studentPaymentOrder.getPaymentAccountNo())) {
+            studentPaymentOrder.setPaymentChannel("ADAPAY");
+        }
         studentPaymentOrderService.update(studentPaymentOrder);
         studentPaymentOrder.setVersion(studentPaymentOrder.getVersion() + 1);
 
@@ -2568,29 +2583,29 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             return;
         }
         List<Integer> quitUserIdList = new ArrayList<>();
-        if(oldMusicGroup.getTeamTeacherId() != null){
+        if (oldMusicGroup.getTeamTeacherId() != null) {
             quitUserIdList.add(oldMusicGroup.getTeamTeacherId());
         }
-        if(oldMusicGroup.getEducationalTeacherId() != null){
+        if (oldMusicGroup.getEducationalTeacherId() != null) {
             quitUserIdList.add(oldMusicGroup.getEducationalTeacherId());
         }
-        if(oldMusicGroup.getDirectorUserId() != null){
+        if (oldMusicGroup.getDirectorUserId() != null) {
             quitUserIdList.add(oldMusicGroup.getDirectorUserId());
         }
-        if(oldMusicGroup.getTransactionTeacherId() != null){
+        if (oldMusicGroup.getTransactionTeacherId() != null) {
             quitUserIdList.add(oldMusicGroup.getTransactionTeacherId());
         }
         Map<Integer, String> userRoleMap = new HashMap<>(4);
-        if(newMusicGroup.getTeamTeacherId() != null){
+        if (newMusicGroup.getTeamTeacherId() != null) {
             userRoleMap.put(newMusicGroup.getTeamTeacherId(), "运营主管");
         }
-        if(newMusicGroup.getEducationalTeacherId() != null){
+        if (newMusicGroup.getEducationalTeacherId() != null) {
             userRoleMap.put(newMusicGroup.getEducationalTeacherId(), "乐团主管");
         }
-        if(newMusicGroup.getDirectorUserId() != null){
+        if (newMusicGroup.getDirectorUserId() != null) {
             userRoleMap.put(newMusicGroup.getDirectorUserId(), "乐队指导");
         }
-        if(newMusicGroup.getTransactionTeacherId() != null){
+        if (newMusicGroup.getTransactionTeacherId() != null) {
             userRoleMap.put(newMusicGroup.getTransactionTeacherId(), "衔接老师");
         }
         classGroups.forEach(e -> {
@@ -2624,8 +2639,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             courseScheduleDao.updateCourseScheduleSchool("MUSIC", musicGroupId, musicGroup.getSchoolId());
         }
         CooperationOrgan cooperationOrgan = cooperationOrganDao.get(musicGroup.getCooperationOrganId());
-        if(cooperationOrgan.getEducationUserId() == null){
-            throw new BizException("操作失败:请先配置合作单位: {} 关联的乐团主管",cooperationOrgan.getName());
+        if (cooperationOrgan.getEducationUserId() == null) {
+            throw new BizException("操作失败:请先配置合作单位: {} 关联的乐团主管", cooperationOrgan.getName());
         }
         boolean refresh = false;
         musicGroup.setEducationalTeacherId(cooperationOrgan.getEducationUserId());
@@ -2634,39 +2649,39 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             updateTeamTeacher(group, musicGroup);
         }
         //不是导入的乐团
-        if(musicGroupId.length() > 10){
+        if (musicGroupId.length() > 10) {
             //是否有预报名的群聊
             ImGroup imGroup = imGroupService.get(Long.parseLong(musicGroupId));
-            if(imGroup != null){
+            if (imGroup != null) {
                 refresh = true;
                 List<Integer> quitUserIdList = new ArrayList<>();
-                if(group.getTeamTeacherId() != null){
+                if (group.getTeamTeacherId() != null) {
                     quitUserIdList.add(group.getTeamTeacherId());
                 }
-                if(group.getEducationalTeacherId() != null){
+                if (group.getEducationalTeacherId() != null) {
                     quitUserIdList.add(group.getEducationalTeacherId());
                 }
-                if(group.getDirectorUserId() != null){
+                if (group.getDirectorUserId() != null) {
                     quitUserIdList.add(group.getDirectorUserId());
                 }
-                if(group.getTransactionTeacherId() != null){
+                if (group.getTransactionTeacherId() != null) {
                     quitUserIdList.add(group.getTransactionTeacherId());
                 }
                 Map<Integer, String> userRoleMap = new HashMap<>(4);
-                if(musicGroup.getTeamTeacherId() != null){
+                if (musicGroup.getTeamTeacherId() != null) {
                     userRoleMap.put(musicGroup.getTeamTeacherId(), "运营主管");
                 }
-                if(musicGroup.getEducationalTeacherId() != null){
+                if (musicGroup.getEducationalTeacherId() != null) {
                     userRoleMap.put(musicGroup.getEducationalTeacherId(), "乐团主管");
                 }
-                if(musicGroup.getDirectorUserId() != null){
+                if (musicGroup.getDirectorUserId() != null) {
                     userRoleMap.put(musicGroup.getDirectorUserId(), "乐队指导");
                 }
-                if(musicGroup.getTransactionTeacherId() != null){
+                if (musicGroup.getTransactionTeacherId() != null) {
                     userRoleMap.put(musicGroup.getTransactionTeacherId(), "衔接老师");
                 }
-                imGroupMemberService.quit(Long.parseLong(musicGroupId),quitUserIdList);
-                imGroupMemberService.join(Long.parseLong(musicGroupId),userRoleMap);
+                imGroupMemberService.quit(Long.parseLong(musicGroupId), quitUserIdList);
+                imGroupMemberService.join(Long.parseLong(musicGroupId), userRoleMap);
             }
         }
 
@@ -3067,7 +3082,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
     @Override
     public List<MusicGroup> findByCooperationId(Integer cooperationId) {
-        return musicGroupDao.findByCooperationId(cooperationId,"PROGRESS");
+        return musicGroupDao.findByCooperationId(cooperationId);
     }
 
 }

+ 26 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ReplacementInstrumentActivityServiceImpl.java

@@ -31,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
+
 import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -112,7 +113,7 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
         }
         ReplacementInstrumentCooperation replacementInstrumentCooperation = replacementInstrumentCooperationDao.get(replacementInstrumentActivity.getReplacementInstrumentCooperationId());
         //如果提交过调查问卷,那么覆盖之前的记录
-        ReplacementInstrumentActivity activity = replacementInstrumentActivityDao.findByUserId(replacementInstrumentActivity.getCooperationOrganId(), sysUser.getId(),replacementInstrumentCooperation.getId());
+        ReplacementInstrumentActivity activity = replacementInstrumentActivityDao.findByUserId(replacementInstrumentActivity.getCooperationOrganId(), sysUser.getId(), replacementInstrumentCooperation.getId());
         if (replacementInstrumentCooperation != null && replacementInstrumentCooperation.getOpenPay().equals(YesOrNoEnum.YES)) {
             replacementInstrumentActivity.setOpenFlag(1);
         }
@@ -188,9 +189,9 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
             replacementInstrumentActivity.setId(activity.getId());
             replacementInstrumentActivityDao.update(replacementInstrumentActivity);
 
-            if(questionnaireUserResultList != null && questionnaireUserResultList.size() > 0){
+            if (questionnaireUserResultList != null && questionnaireUserResultList.size() > 0) {
                 //删除原来的问卷结果
-                questionnaireUserResultDao.delByActiveIdAndUserId(activity.getReplacementInstrumentCooperationId(),sysUser.getId());
+                questionnaireUserResultDao.delByActiveIdAndUserId(activity.getReplacementInstrumentCooperationId(), sysUser.getId());
             }
             if (replacementInstrumentActivity.getInstrumentsId() != null && (activity.getInstrumentsId() == null || activity.getInstrumentsId() == 0)) {
                 sendPush = true;
@@ -199,7 +200,7 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
             replacementInstrumentActivityDao.insert(replacementInstrumentActivity);
             sendPush = true;
         }
-        if(questionnaireUserResultList != null && questionnaireUserResultList.size() > 0){
+        if (questionnaireUserResultList != null && questionnaireUserResultList.size() > 0) {
             for (QuestionnaireUserResult result : questionnaireUserResultList) {
                 result.setUserId(sysUser.getId());
                 result.setQuestionnaireTopicId(topicId);
@@ -231,8 +232,8 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
 
 
     @Override
-    public ReplacementInstrumentActivity findByUserId(Integer cooperationOrganId, Integer userId,Integer cooperationId) {
-        return replacementInstrumentActivityDao.findByUserId(cooperationOrganId, userId,cooperationId);
+    public ReplacementInstrumentActivity findByUserId(Integer cooperationOrganId, Integer userId, Integer cooperationId) {
+        return replacementInstrumentActivityDao.findByUserId(cooperationOrganId, userId, cooperationId);
     }
 
     @Override
@@ -248,7 +249,7 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
             ReplacementInstrumentCooperation cooperation = replacementInstrumentCooperationDao.get(queryInfo.getCooperationId());
             CooperationOrgan cooperationOrgan = cooperationOrganDao.get(cooperation.getCooperationOrganId());
             QuestionnaireTopic questionnaireTopic = questionnaireTopicDao.get(cooperation.getTopicId());
-            if(questionnaireTopic != null){
+            if (questionnaireTopic != null) {
                 head.setTopicName(questionnaireTopic.getTitle());
             }
             head.setCooperationOrganName(cooperationOrgan.getName());
@@ -480,11 +481,22 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
 
         List<ReplacementInstrumentActivityStatDto> dataList = new ArrayList<>();
         int count = replacementInstrumentActivityDao.getCount(params);
+        pageInfo.setTotal(count);
 
-        if (count > 0) {
-            pageInfo.setTotal(count);
+        if (queryInfo.getPage() <= pageInfo.getTotalPage()) {
             params.put("offset", pageInfo.getOffset());
             dataList = replacementInstrumentActivityDao.getPageList(params);
+            List<Integer> ids = dataList.stream().map(ReplacementInstrumentActivity::getId).collect(Collectors.toList());
+            if (ids.size() > 0) {
+                List<StudentPaymentOrder> activityPageOrders = replacementInstrumentActivityDao.getActivityOrder(ids);
+                Map<Integer, List<StudentPaymentOrder>> activityOrderMap = activityPageOrders.stream().collect(Collectors.groupingBy(e -> Integer.parseInt(e.getMusicGroupId())));
+                for (ReplacementInstrumentActivityStatDto replacementInstrumentActivityStatDto : dataList) {
+                    if (!activityOrderMap.containsKey(replacementInstrumentActivityStatDto.getId())) continue;
+                    List<StudentPaymentOrder> activityOrders = activityOrderMap.get(replacementInstrumentActivityStatDto.getId());
+                    replacementInstrumentActivityStatDto.setActualAmount(activityOrders.get(0).getActualAmount());
+                    replacementInstrumentActivityStatDto.setBalance(activityOrders.get(0).getBalancePaymentAmount());
+                }
+            }
         }
         pageInfo.setRows(dataList);
         return pageInfo;
@@ -552,13 +564,13 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
     }
 
     @Transactional(rollbackFor = Exception.class)
-    public void resultSync(){
+    public void resultSync() {
         //获取所有问卷结果
         List<ReplacementInstrumentActivity> activities = replacementInstrumentActivityDao.findAll(new HashMap<>());
         List<QuestionnaireUserResult> questionnaireUserResultList = new ArrayList<>();
         for (ReplacementInstrumentActivity activity : activities) {
             String questionResult = activity.getQuestionResult();
-            if(StringUtils.isEmpty(questionResult)){
+            if (StringUtils.isEmpty(questionResult)) {
                 continue;
             }
             String[] split = questionResult.split("");
@@ -573,7 +585,7 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
                 result.setActiveId(activity.getReplacementInstrumentCooperationId());
                 result.setActiveType(QuestionnaireActiveTypeEnum.REPLACEMENT);
                 result.setQuestionnaireQuestionId(question.getId());
-                result.setQuestionnaireQuestionItemIdList(item.getId() + (Integer.parseInt(split[i]) == 0?1:0) + "");
+                result.setQuestionnaireQuestionItemIdList(item.getId() + (Integer.parseInt(split[i]) == 0 ? 1 : 0) + "");
                 result.setQuestionnaireTopicId(question.getQuestionnaireTopicId());
                 questionnaireUserResultList.add(result);
             }
@@ -582,8 +594,8 @@ public class ReplacementInstrumentActivityServiceImpl extends BaseServiceImpl<In
     }
 
     @Override
-    public ReplacementInstrumentActivity queryUserInfo(Integer cooperationOrganId,SysUser user,Integer cooperationId) {
-        ReplacementInstrumentActivity replacementInstrumentActivity = findByUserId(cooperationOrganId, user.getId(),cooperationId);
+    public ReplacementInstrumentActivity queryUserInfo(Integer cooperationOrganId, SysUser user, Integer cooperationId) {
+        ReplacementInstrumentActivity replacementInstrumentActivity = findByUserId(cooperationOrganId, user.getId(), cooperationId);
         ReplacementInstrumentCooperation cooperation = replacementInstrumentCooperationDao.get(cooperationId);
         if (replacementInstrumentActivity == null) {
             Student student = studentService.get(user.getId());

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -136,7 +136,7 @@ public class StudentManageServiceImpl implements StudentManageService {
             dataList = studentManageDao.findStudentsByOrganId(params);
         }
         if (dataList == null) {
-            dataList = new ArrayList<StudentManageListDto>();
+            dataList = new ArrayList<>();
         }
         pageInfo.setRows(dataList);
 
@@ -875,8 +875,13 @@ public class StudentManageServiceImpl implements StudentManageService {
         int count = indexBaseMonthDataDao.countStudentErrorLeave1(params);
         List<StudentErrorLeaveDto> dataList = new ArrayList<>();
         if (count > 0) {
+            //获取近两个月异常请假次数
+            Map<Integer,BigDecimal> leaveNumMap = MapUtil.convertIntegerMap(indexBaseMonthDataDao.getStudentErrorLeaveNumMap(params));
             pageInfo.setTotal(count);
             dataList = indexBaseMonthDataDao.queryStudentErrorLeave(params);
+            for (StudentErrorLeaveDto studentErrorLeaveDto : dataList) {
+                studentErrorLeaveDto.setTotalNum(leaveNumMap.get(studentErrorLeaveDto.getUserId()).intValue());
+            }
         }
         pageInfo.setRows(dataList);
         return pageInfo;

+ 18 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -331,9 +331,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         }
         sysUser.setPhone(studentRegistration.getParentsPhone());
         sysUser.setOrganId(studentRegistration.getOrganId());
-        sysUser.setRealName(studentRegistration.getParentsName());
 
-        sysUser.setUsername(studentRegistration.getName());
+        Boolean updateNameFlag = false;
+//        if (sysUser.getRealName() == null) {
+//            sysUser.setRealName(studentRegistration.getParentsName());
+//        }
+
+        if (StringUtils.isEmpty(sysUser.getUsername())) {
+            sysUser.setUsername(studentRegistration.getName());
+            updateNameFlag = true;
+        }
         sysUser.setGender(studentRegistration.getGender());
         sysUser.setBirthdate(studentRegistration.getBirthdate());
         sysUser.setCreateTime(date);
@@ -362,8 +369,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         student.setCurrentGradeNum(studentRegistration.getCurrentGradeNum());
         student.setCurrentClass(studentRegistration.getCurrentClass());
         studentDao.update(student);
-        imGroupDao.updateNickname(userId, studentRegistration.getName());
-        imGroupDao.updateUserFriendNickname(userId, studentRegistration.getName());
+
+        if (updateNameFlag) {
+            imGroupDao.updateNickname(userId, studentRegistration.getName());
+            imGroupDao.updateUserFriendNickname(userId, studentRegistration.getName());
+        }
+
         imFeignService.update(new ImUserModel(userId.toString(), studentRegistration.getName(), sysUser.getAvatar()));
         // 增加报名学生数
         musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(), 1);
@@ -691,11 +702,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 //新增user
                 sysUser = new SysUser();
                 sysUser.setPhone(studentRegistration.getParentsPhone());
-                sysUser.setRealName(studentRegistration.getParentsName());
+//                sysUser.setRealName(studentRegistration.getParentsName());
                 sysUser.setUsername(studentRegistration.getName());
                 sysUser.setGender(studentRegistration.getGender());
                 sysUser.setUserType("STUDENT");
-                sysUser.setIdCardNo(studentRegistration.getIdCardNo());
+//                sysUser.setIdCardNo(studentRegistration.getIdCardNo());
                 sysUser.setOrganId(musicGroup.getOrganId());
                 sysUser.setBirthdate(studentRegistration.getBirthdate());
                 teacherDao.addSysUser(sysUser);
@@ -723,7 +734,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                     sysUser.setUserType(sysUser.getUserType() + ",STUDENT");
                 }
                 sysUser.setPhone(studentRegistration.getParentsPhone());
-                sysUser.setRealName(studentRegistration.getParentsName());
+//                sysUser.setRealName(studentRegistration.getParentsName());
                 sysUser.setUsername(studentRegistration.getName());
                 sysUser.setGender(studentRegistration.getGender());
                 sysUser.setOrganId(musicGroup.getOrganId());

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

@@ -919,7 +919,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             //获取比例
             BigDecimal ratioAmount = multiply2.divide(totalAmount, 6, BigDecimal.ROUND_HALF_UP);
             //实际支付价格
-            BigDecimal actualAmount = goodsSellDto.getGoodsPrice();
+            BigDecimal actualAmount = multiply2;
             //如果有减免金额
             if (marketAmount.doubleValue() > 0l) {
                 //如果是最后一件商品

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

@@ -687,10 +687,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 		Date date = new Date();
 
-		user.setRealName(realName);
-		user.setIdCardNo(idcardNo);
-		user.setUpdateTime(date);
-		sysUserFeignService.updateSysUser(user);
+//		user.setRealName(realName);
+//		user.setIdCardNo(idcardNo);
+//		user.setUpdateTime(date);
+//		sysUserFeignService.updateSysUser(user);
 
 		teacher.setIdcardBackImg(idcardBackImg);
 		teacher.setIdcardFrontImg(idcardFrontImg);

+ 7 - 0
mec-biz/src/main/resources/config/mybatis/ChildrenDayDegreeInfoDao.xml

@@ -106,4 +106,11 @@
         SELECT COUNT(*)
         FROM children_day_degree_info
     </select>
+
+    <select id="getPayedUser" resultType="java.lang.Integer">
+        SELECT * FROM children_day_degree_info WHERE user_id_ IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+    </select>
 </mapper>

+ 62 - 19
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -9,6 +9,7 @@
         <result column="cooperation_organ_id_" property="cooperationOrganId"/>
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="is_reserve_" property="isReserve" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_send_msg_" property="isSendMsg" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
@@ -51,6 +52,9 @@
             <if test="isReserve != null">
                 is_reserve_ = #{isReserve,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
+            <if test="isSendMsg != null">
+                is_send_msg_ = #{isSendMsg,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
             <if test="createTime != null">
                 create_time_ = #{createTime},
             </if>
@@ -79,6 +83,8 @@
         <result property="buyVip1Num" column="buy_vip1_num_"/>
         <result property="buyVip2Amount" column="buy_vip2_amount_"/>
         <result property="buyVip2Num" column="buy_vip2_num_"/>
+        <result property="gradePrice" column="grade_price_"/>
+        <result property="theoryPrice" column="theory_price_"/>
         <result property="totalAmount" column="total_amount_"/>
         <result property="cooperationOrganName" column="cooperation_organ_name_"/>
         <result property="instrumentalMusicNum" column="instrumental_music_num_"/>
@@ -95,8 +101,8 @@
     <select id="queryChildrenStatistics" resultMap="ChildrenStatisticsDtoMap">
         SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,cdr.organ_id_,
         cdr.cooperation_organ_id_,cdr.music_group_id_,
-        COUNT(CASE WHEN cdr.is_reserve_ = 1 THEN 1 ELSE NULL END) 'reserve_num_',
-        COUNT(CASE WHEN cdr.is_reserve_ = 0 THEN 1 ELSE NULL END) 'no_reserve_num_',
+        COUNT(DISTINCT cdrr.user_id_) 'reserve_num_',
+        COUNT(DISTINCT cdrn.user_id_) 'no_reserve_num_',
         COUNT(CASE WHEN cdd.grade_price_ > 0 THEN 1 ELSE NULL END) 'instrumental_music_num_',
         COUNT(CASE WHEN cdd.theory_price_ > 0 THEN 1 ELSE NULL END) 'music_theory_num_',
         COUNT(CASE WHEN cdd.vip_1v1_price_ > 0 THEN 1 ELSE NULL END) 'buy_vip1_num_',
@@ -105,14 +111,20 @@
         SUM(cdd.vip_1v2_price_) 'buy_vip2_amount_',
         COUNT(CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE NULL END) 'buy_music_theory_num_',
         SUM(cdd.theory_course_price_) 'buy_music_theory_amount_',
+        SUM(cdd.grade_price_) 'grade_price_',
+        SUM(cdd.theory_price_) 'theory_price_',
         SUM(cdd.total_amount_) 'total_amount_'
         FROM children_day_reserve cdr
         LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
         LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
         LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
         LEFT JOIN organization o ON o.id_ = cdr.organ_id_
+        LEFT JOIN (SELECT * FROM children_day_reserve cdr WHERE cdr.is_reserve_ = 1
+            <include refid="queryChildrenStatisticsSql1"/>) cdrr ON cdrr.id_ = cdr.id_
+        LEFT JOIN (SELECT * FROM children_day_reserve cdr WHERE cdr.is_reserve_ = 0
+        <include refid="queryChildrenStatisticsSql1"/>) cdrn ON cdrn.id_ = cdr.id_
         <include refid="queryChildrenStatisticsSql"/>
-        GROUP BY cdr.music_group_id_
+        GROUP BY cdr.music_group_id_,cdr.cooperation_organ_id_,cdr.organ_id_
         ORDER BY cdr.id_ DESC
         <include refid="global.limit"/>
     </select>
@@ -120,7 +132,7 @@
         SELECT COUNT(c.id_) FROM (SELECT COUNT(cdr.id_) id_
         FROM children_day_reserve cdr
         <include refid="queryChildrenStatisticsSql"/>
-        GROUP BY cdr.music_group_id_) c
+        GROUP BY cdr.music_group_id_,cdr.cooperation_organ_id_,cdr.organ_id_) c
     </select>
 
     <select id="childrenStatistics" resultMap="ChildrenStatisticsDtoMap">
@@ -132,6 +144,8 @@
         SUM(cdd.vip_1v2_price_) 'buy_vip2_amount_',
         SUM(CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE NULL END) 'buy_music_theory_num_',
         SUM(cdd.theory_course_price_) 'buy_music_theory_amount_',
+        SUM(cdd.grade_price_) 'grade_price_',
+        SUM(cdd.theory_price_) 'theory_price_',
         SUM(cdd.total_amount_) 'total_amount_'
         FROM children_day_reserve cdr
         LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
@@ -153,6 +167,17 @@
             </if>
         </where>
     </sql>
+    <sql id="queryChildrenStatisticsSql1">
+        <if test="cooperationId != null">
+            AND cdr.cooperation_organ_id_ = #{cooperationId}
+        </if>
+        <if test="musicGroupId != null and musicGroupId != ''">
+            AND cdr.music_group_id_ = #{musicGroupId}
+        </if>
+        <if test="organId != null">
+            AND FIND_IN_SET(cdr.organ_id_,#{organId})
+        </if>
+    </sql>
 
     <select id="getByUserId" resultMap="ChildrenDayReserve">
         SELECT *
@@ -198,18 +223,19 @@
     </select>
     <select id="exportStatisticsDetail" resultMap="ChildrenStatisticsDetailDtoMap">
         SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,cdr.user_id_,
-               su.username_,su.phone_,s.name_ subject_name_,st.current_class_,sut.real_name_,cdr.is_reserve_,cdd.grade_level_,cdd.theory_level_,
-               CASE WHEN cdd.vip_1v1_price_ > 0 OR cdd.vip_1v2_price_ > 0 THEN 1 ELSE 0 END buy_vip_flag_,
-               CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE 0 END buy_theory_course_flag_,cdd.total_amount_
+        su.username_,su.phone_,s.name_
+        subject_name_,st.current_class_,sut.real_name_,cdr.is_reserve_,cdd.grade_level_,cdd.theory_level_,
+        CASE WHEN cdd.vip_1v1_price_ > 0 OR cdd.vip_1v2_price_ > 0 THEN 1 ELSE 0 END buy_vip_flag_,
+        CASE WHEN cdd.theory_course_price_ > 0 THEN 1 ELSE 0 END buy_theory_course_flag_,cdd.total_amount_
         FROM children_day_reserve cdr
-                 LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
-                 LEFT JOIN organization o ON o.id_ = cdr.organ_id_
-                 LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
-                 LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
-                 LEFT JOIN student st ON st.user_id_ = cdr.user_id_
-                 LEFT JOIN sys_user sut ON sut.id_ = st.teacher_id_
-                 LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
-                 LEFT JOIN `subject` s ON s.id_ = cdd.subject_id_
+        LEFT JOIN children_day_degree_info cdd ON cdr.id_ = cdd.reserve_id_
+        LEFT JOIN organization o ON o.id_ = cdr.organ_id_
+        LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
+        LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
+        LEFT JOIN student st ON st.user_id_ = cdr.user_id_
+        LEFT JOIN sys_user sut ON sut.id_ = st.teacher_id_
+        LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
+        LEFT JOIN `subject` s ON s.id_ = cdd.subject_id_
         <where>
             <if test="cooperationId != null">
                 AND cdr.cooperation_organ_id_ = #{cooperationId}
@@ -232,6 +258,15 @@
             <if test="isReserve != null">
                 AND cdr.is_reserve_ = #{isReserve}
             </if>
+            <if test="organId != null and organId != ''">
+                AND cdr.organ_id_ = #{organId}
+            </if>
+            <if test="cooperationId != null">
+                AND cdr.cooperation_organ_id_ = #{cooperationId}
+            </if>
+            <if test="cooperationId == null">
+                AND cdr.cooperation_organ_id_ IS NULL
+            </if>
             <if test="musicGroupId != null and musicGroupId != ''">
                 AND cdr.music_group_id_ = #{musicGroupId}
             </if>
@@ -262,7 +297,7 @@
                     AND (cdd.vip_1v1_price_ > 0 OR cdd.vip_1v2_price_ > 0)
                 </if>
                 <if test="vipFlag == 0">
-                    AND (cdd.vip_1v1_price_ &lt;= 0 OR cdd.vip_1v2_price_ &lt;= 0)
+                    AND cdd.vip_1v1_price_ &lt;= 0 AND cdd.vip_1v2_price_ &lt;= 0
                 </if>
             </if>
             <if test="theoryPriceFlag != null">
@@ -280,14 +315,22 @@
         SELECT cdr.*,su.phone_ FROM children_day_reserve cdr
         LEFT JOIN sys_user su ON su.id_ = cdr.user_id_
         <where>
-            <foreach collection="msgDtos" item="msgDto" separator=",">
+            (cdr.is_reserve_ = 1 AND is_send_msg_ = 0) AND
+            <foreach collection="msgDtos" item="msgDto" open="(" close=")" separator="OR">
                 <if test="msgDto.musicGroupId != null">
-                    OR (cdr.organ_id_=#{msgDto.organId} AND cdr.music_group_id_ = #{msgDto.musicGroupId})
+                    (cdr.organ_id_=#{msgDto.organId} AND cdr.music_group_id_ = #{msgDto.musicGroupId})
                 </if>
                 <if test="msgDto.musicGroupId == null">
-                    OR (cdr.organ_id_=#{msgDto.organId} AND cdr.music_group_id_ IS NULL)
+                    (cdr.organ_id_=#{msgDto.organId} AND cdr.music_group_id_ IS NULL)
                 </if>
             </foreach>
         </where>
     </select>
+
+    <update id="updateSendMasStatus">
+        UPDATE children_day_reserve SET is_send_msg_ = 1 WHERE user_id_ IN
+        <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+            #{userId}
+        </foreach>
+    </update>
 </mapper>

+ 27 - 5
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -1412,7 +1412,7 @@
 		SELECT sa.user_id_ FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE'
 		<if test="organId != null">
 			AND FIND_IN_SET(cs.organ_id_,#{organId})
 		</if>
@@ -1438,14 +1438,14 @@
 		<result property="organName" column="organ_name_"/>
 	</resultMap>
 	<select id="queryStudentErrorLeave" resultMap="StudentErrorLeaveDto">
-		SELECT organ_id_,organ_name_,user_id_,username_,phone_,SUM(total_num_) total_num_,current_num_,class_date_
-		FROM (SELECT cs.organ_id_,o.name_ organ_name_,sa.user_id_,su.username_,su.phone_,COUNT(sa.id_) total_num_,
-		COUNT(CASE WHEN DATE_FORMAT(cs.class_date_,'%Y-%m') = #{currentMonth} THEN 1 ELSE NULL END) current_num_,cs.class_date_
+		SELECT organ_id_,organ_name_,user_id_,username_,phone_,current_num_,class_date_
+		FROM (SELECT cs.organ_id_,o.name_ organ_name_,sa.user_id_,su.username_,su.phone_,
+		COUNT(sa.id_) current_num_,cs.class_date_
 		FROM student_attendance sa
 		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
 		LEFT JOIN organization o ON o.id_ = cs.organ_id_
 		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
-		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{currentMonth} AND sa.status_ = 'LEAVE'
 		<if test="organId != null">
 			AND FIND_IN_SET(cs.organ_id_,#{organId})
 		</if>
@@ -1507,4 +1507,26 @@
 		ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
 		<include refid="global.limit"/>
 	</select>
+	<select id="getStudentErrorLeaveNumMap" resultType="java.util.Map">
+		SELECT user_id_ 'key',SUM(total_num_) 'value'
+		FROM (SELECT sa.user_id_,COUNT(sa.id_) total_num_
+		FROM student_attendance sa
+		LEFT JOIN course_schedule cs ON cs.id_ = sa.course_schedule_id_
+		LEFT JOIN sys_user su ON su.id_ = sa.user_id_
+		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') >= #{totalMonth} AND sa.status_ = 'LEAVE'
+		<if test="organId != null">
+			AND FIND_IN_SET(cs.organ_id_,#{organId})
+		</if>
+		<if test="classGroupIds != null and classGroupIds.size() > 0">
+			AND cs.class_group_id_ IN
+			<foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+				#{classGroupId}
+			</foreach>
+		</if>
+		<if test="search != null and search != ''">
+			AND (sa.user_id_ = #{search} OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+		</if>
+		GROUP BY sa.user_id_,DATE_FORMAT(cs.class_date_,'%Y-%m') HAVING COUNT(sa.id_) > 1 AND COUNT(sa.id_) > SUM(sa.leave_visit_flag_) ORDER BY cs.class_date_ DESC)c
+		GROUP BY c.user_id_
+	</select>
 </mapper>

+ 0 - 3
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -753,9 +753,6 @@
     </select>
     <select id="findByCooperationId" resultMap="MusicGroup">
         SELECT * FROM music_group WHERE cooperation_organ_id_ = #{cooperationId}
-        <if test="musicStatus != null">
-            AND status_ = #{musicStatus}
-        </if>
     </select>
 
     <select id="getStudentLastMusicGroup" resultMap="MusicGroup">

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

@@ -466,7 +466,7 @@
 			edu.real_name_ edu_teacher_name_,
 			MAX( sub.name_ ) subject_name_,
 			su.gender_ gender_,
-			su.real_name_ parent_name_,
+			sut.name_ parent_name_,
 			su.phone_ phone_
 		FROM
 			music_group_payment_calender_detail mgpcd
@@ -475,6 +475,7 @@
 			LEFT JOIN student_registration sr ON sr.music_group_id_ = mgpc.music_group_id_
 			AND mgpcd.user_id_ = sr.user_id_
 			LEFT JOIN sys_user su ON mgpcd.user_id_ = su.id_
+			LEFT JOIN sys_user_tsign sut ON sut.user_id_ = su.id_
 			LEFT JOIN sys_user edu ON edu.id_ = mg.educational_teacher_id_
 			LEFT JOIN organization organ ON organ.id_ = mg.organ_id_
 			LEFT JOIN `subject` sub ON sr.actual_subject_id_ = sub.id_

+ 13 - 2
mec-biz/src/main/resources/config/mybatis/OrganizationDegreeCourseFeeMapper.xml

@@ -6,8 +6,11 @@
         <!--@Table organization_degree_course_fee-->
         <id column="id_" property="id"/>
         <result column="organ_id_" property="organId"/>
+        <result column="original_vip_1v1_" property="originalVip1v1"/>
+        <result column="original_vip_1v2_" property="originalVip1v2"/>
         <result column="vip_1v1_" property="vip1v1"/>
         <result column="vip_1v2_" property="vip1v2"/>
+        <result column="original_theory_" property="originalTheory"/>
         <result column="theory_" property="theory"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
@@ -26,8 +29,10 @@
     <insert id="insert" keyColumn="id_" keyProperty="id"
             parameterType="com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee" useGeneratedKeys="true">
         <!--@mbg.generated-->
-        insert into organization_degree_course_fee (organ_id_, vip_1v1_, vip_1v2_,theory_, create_time_, update_time_)
-        values (#{organId}, #{vip1v1},#{vip1v2}, #{theory}, #{createTime}, #{updateTime})
+        insert into organization_degree_course_fee (organ_id_,original_vip_1v1_,original_vip_1v2_, vip_1v1_,
+        vip_1v2_,theory_, create_time_, update_time_)
+        values (#{organId},#{originalVip1v1},#{originalVip1v2}, #{vip1v1},#{vip1v2}, #{theory}, #{createTime},
+        #{updateTime})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee">
         <!--@mbg.generated-->
@@ -36,6 +41,12 @@
             <if test="organId != null">
                 organ_id_ = #{organId},
             </if>
+            <if test="originalVip1v1 != null">
+                original_vip_1v1_ = #{originalVip1v1},
+            </if>
+            <if test="originalVip1v2 != null">
+                original_vip_1v2_ = #{originalVip1v2},
+            </if>
             <if test="vip1v1 != null">
                 vip_1v1_ = #{vip1v1},
             </if>

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ReplacementInstrumentActivityMapper.xml

@@ -305,4 +305,12 @@
         LEFT JOIN organization o on o.id_ = co.organ_id_
         <include refid="queryReplacementsCondition"/>
     </select>
+
+    <select id="getActivityOrder" resultMap="com.ym.mec.biz.dal.dao.StudentPaymentOrderDao.StudentPaymentOrder">
+        SELECT * FROM student_payment_order WHERE group_type_ = 'REPLACEMENT' AND status_ = 'SUCCESS' AND music_group_id_ IN
+        <foreach collection="ids" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        ORDER BY id_ DESC
+    </select>
 </mapper>

+ 25 - 18
mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml

@@ -9,6 +9,7 @@
     <resultMap type="com.ym.mec.biz.dal.entity.School" id="School">
         <result column="id_" property="id"/>
         <result column="user_id_" property="userId"/>
+        <result column="real_name_" property="realName"/>
         <result column="name_" property="name"/>
         <result column="organ_id_" property="organId"/>
         <result column="address_" property="address"/>
@@ -92,32 +93,38 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="School" parameterType="map">
-        SELECT * FROM school where del_flag_ != 1
-        <if test="cooperationOrganId != null">
-            AND cooperation_organ_id_ = #{cooperationOrganId}
-        </if>
-        <if test="organId != null">
-            AND FIND_IN_SET(organ_id_,#{organId})
-        </if>
-        <if test="search != null">
-            AND (name_ LIKE CONCAT('%',#{search},'%') OR id_ LIKE CONCAT('%',#{search},'%'))
-        </if>
-        ORDER BY id_
+        SELECT s.*,su.real_name_ FROM school s
+        LEFT JOIN sys_user su ON su.id_ = s.user_id_
+        WHERE s.del_flag_ != 1
+        <include refid="queryPageSql"/>
+        ORDER BY s.id_
         <include refid="global.limit"/>
     </select>
-
-    <!-- 查询当前表的总记录数 -->
-    <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM school where del_flag_ != 1
+    <sql id="queryPageSql">
         <if test="cooperationOrganId != null">
-            AND cooperation_organ_id_ = #{cooperationOrganId}
+            AND s.cooperation_organ_id_ = #{cooperationOrganId}
         </if>
         <if test="organId != null">
-            AND FIND_IN_SET(organ_id_,#{organId})
+            AND FIND_IN_SET(s.organ_id_,#{organId})
+        </if>
+        <if test="publicFlag != null">
+            <if test="publicFlag == 1">
+                AND s.user_id_ IS NULL
+            </if>
+            <if test="publicFlag == 0">
+                AND s.user_id_ IS NOT NULL
+            </if>
         </if>
         <if test="search != null">
-            AND (name_ LIKE CONCAT('%',#{search},'%') OR id_ LIKE CONCAT('%',#{search},'%'))
+            AND (s.name_ LIKE CONCAT('%',#{search},'%') OR s.id_ LIKE CONCAT('%',#{search},'%'))
         </if>
+    </sql>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(s.id_) FROM school s
+        LEFT JOIN sys_user su ON su.id_ = s.user_id_
+        WHERE s.del_flag_ != 1
+        <include refid="queryPageSql"/>
 	</select>
     <select id="queryByOrganId" resultMap="School">
         SELECT * FROM school

+ 9 - 8
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -157,18 +157,19 @@
     </update>
 
     <select id="findStudentsByOrganId" resultMap="studentManageListDto">
-        SELECT o.`name_` organ_name_,o.grade_type_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,su.`real_name_` ,su.`gender_` , su.organ_id_,
+        SELECT o.`name_` organ_name_,o.grade_type_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,
+        sut.name_ real_name_,su.`gender_` , su.organ_id_,
 		tu.`real_name_` teacher_name_,CASE s.service_tag_ WHEN 2 THEN 0 ELSE s.service_tag_ END service_tag_ ,s.`operating_tag_` ,
         s.care_package_, s.come_on_package_, suca.`course_balance_` ,suca.balance_,
 		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,s.current_grade_num_,s.current_class_,
-        case when su.password_ is null then false else true end isActive_,s.is_new_user_,case when sut.user_id_ is null then 0 else 1 end is_signed_contract_,
+        CASE WHEN su.password_ IS NULL THEN FALSE ELSE TRUE END isActive_,s.is_new_user_,CASE WHEN sut.user_id_ IS NULL THEN 0 ELSE 1 END is_signed_contract_,
         s.cooperation_organ_id_,co.name_ cooperation_organ_name_
-		FROM `student` s LEFT JOIN `sys_user` su on s.`user_id_` = su.`id_`
-		LEFT JOIN `organization` o on o.`id_` = su.`organ_id_`
-		LEFT JOIN `sys_user` tu on tu.`id_` = s.`teacher_id_` 
-		LEFT JOIN `sys_user_cash_account` suca on suca.`user_id_` = s.`user_id_`
-		LEFT JOIN `subject` sub on sub.id_ = s.`subject_id_list_`
-		left join sys_user_tsign sut on sut.user_id_ = s.user_id_
+		FROM `student` s LEFT JOIN `sys_user` su ON s.`user_id_` = su.`id_`
+		LEFT JOIN `organization` o ON o.`id_` = su.`organ_id_`
+		LEFT JOIN `sys_user` tu ON tu.`id_` = s.`teacher_id_`
+		LEFT JOIN `sys_user_cash_account` suca ON suca.`user_id_` = s.`user_id_`
+		LEFT JOIN `subject` sub ON sub.id_ = s.`subject_id_list_`
+		LEFT JOIN sys_user_tsign sut ON sut.user_id_ = s.user_id_
         LEFT JOIN cooperation_organ co ON s.cooperation_organ_id_=co.id_
         <include refid="findStudentsByOrganIdSql"/>
         ORDER BY su.create_time_ DESC

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

@@ -408,11 +408,13 @@
     </update>
 
     <select id="queryStudentInfo" resultMap="StudentInfo">
-        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_,sr.parents_name_,s.name_ subject_name_
-        FROM sys_user u left join
-        student_registration sr on u.id_ = sr.user_id_ left join subject s on sr.actual_subject_id_ = s.id_
-        where u.id_ = #{userId}
-        order by sr.create_time_ desc limit 1
+        SELECT sut.name_ real_name_,sut.card_no_ id_card_no_,u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_,sr.parents_name_,s.name_ subject_name_
+        FROM sys_user u
+        LEFT JOIN student_registration sr ON u.id_ = sr.user_id_
+        LEFT JOIN subject s ON sr.actual_subject_id_ = s.id_
+        LEFT JOIN sys_user_tsign sut ON sut.user_id_ = u.id_
+        WHERE u.id_ = #{userId}
+        ORDER BY sr.create_time_ DESC limit 1
     </select>
 
     <select id="queryByUserIdAndMusicGroupId" resultMap="StudentRegistration">
@@ -483,6 +485,7 @@
         SELECT sr.*,cg.name_ class_group_name_,su.gender_ gender_,su.username_ FROM student_registration sr
         LEFT JOIN class_group cg ON cg.id_ = sr.class_group_id_
         LEFT JOIN sys_user su on sr.user_id_ = su.id_
+        LEFT JOIN sys_user_tsign sut ON sut.user_id_ = su.id_
         WHERE sr.music_group_id_ = #{musicGroupId}
         <if test="actualSubjectId != null">
             AND FIND_IN_SET(sr.actual_subject_id_,#{actualSubjectId})
@@ -610,9 +613,11 @@
         GROUP BY sr.music_group_id_
     </select>
     <select id="queryUserByPhone" resultMap="StudentRegistration">
-        SELECT su.id_,su.real_name_ parents_name_,su.phone_,sr.current_grade_,sr.current_grade_num_,
+        SELECT su.id_,CASE WHEN sut.name_ IS NULL THEN su.real_name_ ELSE sut.name_ END parents_name_,
+        su.phone_,sr.current_grade_,sr.current_grade_num_,
         sr.current_class_,su.username_ name_,su.birthdate_,su.gender_
         FROM sys_user su
+        LEFT JOIN sys_user_tsign sut ON sut.user_id_ = su.id_
         LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
         WHERE su.phone_ = #{mobile} ORDER BY sr.id_ DESC
         LIMIT 1

+ 2 - 14
mec-biz/src/main/resources/config/mybatis/SysMusicScoreAccompanimentMapper.xml

@@ -76,16 +76,10 @@
 		<if test="speed != null">
 			speed_ = #{speed},
 		</if>
-		<if test="xmlUrl != null">
-			xml_url_ = #{xmlUrl},
-		</if>
 		<if test="examSongId != null">
 			exam_song_id_ = #{examSongId},
 		</if>
-		<if test="mp3Url != null">
-			mp3_url_ = #{mp3Url},
-		</if>
-		update_time_ = NOW()
+			xml_url_ = #{xmlUrl},mp3_url_ = #{mp3Url}, update_time_ = NOW()
 	</set>WHERE id_ = #{id}
 	</update>
 	<update id="batchDel">
@@ -110,16 +104,10 @@
 				<if test="item.subjectId != null">
 					subject_id_ = #{item.subjectId},
 				</if>
-				<if test="item.xmlUrl != null">
-					xml_url_ = #{item.xmlUrl},
-				</if>
 				<if test="item.examSongId != null">
 					exam_song_id_ = #{item.examSongId},
 				</if>
-				<if test="item.mp3Url != null">
-					mp3_url_ = #{item.mp3Url},
-				</if>
-				update_time_ = NOW()
+				xml_url_ = #{item.xmlUrl},mp3_url_ = #{item.mp3Url}, update_time_ = NOW()
 			</set> WHERE id_ = #{item.id}
 		</foreach>
 	</update>

+ 0 - 4
mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml

@@ -59,9 +59,7 @@
 		<if test="createUserId != null">
 			create_user_id_ = #{createUserId},
 		</if>
-		<if test="url != null and url != ''">
 			url_ = #{url},
-		</if>
 		<if test="subjectIds != null and subjectIds != ''">
 			subject_ids_ = #{subjectIds},
 		</if>
@@ -74,9 +72,7 @@
 		<if test="speed != null">
 			speed_ = #{speed},
 		</if>
-		<if test="updateTime != null">
 			update_time_ = NOW()
-		</if>
 	</set>
 		WHERE id_ = #{id}
 	</update>

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

@@ -256,7 +256,7 @@
                 AND FIND_IN_SET(su.organ_id_,#{queryInfo.organId})
             </if>
             <if test="queryInfo.startTime != null and queryInfo.startTime != ''">
-                AAND DATE_FORMAT(cad.create_time_,'%Y-%m-%d') >= #{queryInfo.startTime}
+                AND DATE_FORMAT(cad.create_time_,'%Y-%m-%d') >= #{queryInfo.startTime}
             </if>
             <if test="queryInfo.endTime != null and queryInfo.startTime != ''">
                 AND DATE_FORMAT(cad.create_time_,'%Y-%m-%d') &lt;= #{queryInfo.endTime}

+ 11 - 0
mec-student/src/main/java/com/ym/mec/student/controller/ChildrenDayController.java

@@ -3,6 +3,7 @@ package com.ym.mec.student.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.StudentDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dto.DegreeFeeDto;
 import com.ym.mec.biz.dal.dto.DegreePayDto;
 import com.ym.mec.biz.dal.entity.ChildrenDayDegreeDetail;
@@ -13,12 +14,14 @@ import com.ym.mec.biz.service.ChildrenDayReserveService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.util.date.DateUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -35,6 +38,8 @@ public class ChildrenDayController extends BaseController {
     private StudentDao studentDao;
     @Autowired
     private ChildrenDayDegreeDetailService childrenDayDegreeDetailService;
+    @Autowired
+    private SysConfigDao sysConfigDao;
 
     @ApiOperation(value = "占位")
     @PostMapping("/reserve")
@@ -74,6 +79,12 @@ public class ChildrenDayController extends BaseController {
         if (sysUser == null) {
             throw new BizException("用户信息获取失败,请重新登陆");
         }
+        Date nowTime = new Date();
+        String endTimeStr = sysConfigDao.findConfigValue("children_day_end_time");
+        Date endTime = DateUtil.stringToDate(endTimeStr);
+        if (endTime.compareTo(nowTime) <= 0) {
+            throw new BizException("活动已结束,谢谢关注");
+        }
         studentDao.lockUser(sysUser.getId());
 
         degreePayDto.setUserId(sysUser.getId());

+ 5 - 2
mec-student/src/main/java/com/ym/mec/student/controller/ChildrenDayDegreeDetailController.java

@@ -11,12 +11,14 @@ import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 
@@ -43,8 +45,9 @@ public class ChildrenDayDegreeDetailController extends BaseController {
         childrenDayDetailDto.setUser(user);
         childrenDayDetailDto.setChildrenDayDegreeDetails(userDegreeInfo);
         Student student = studentDao.get(user.getId());
-        if (student != null) {
-            childrenDayDetailDto.setSubjectId(Integer.parseInt(student.getSubjectIdList()));
+        if (student != null && StringUtils.isNotBlank(student.getSubjectIdList())) {
+            List<String> subjectIds = Arrays.asList(student.getSubjectIdList().split(","));
+            childrenDayDetailDto.setSubjectId(Integer.parseInt(subjectIds.get(0)));
         }
         return succeed(childrenDayDetailDto);
     }

+ 0 - 14
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java

@@ -2,11 +2,8 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
@@ -16,21 +13,14 @@ import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
-import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.date.DateUtil;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
-
-import java.io.IOException;
 import java.util.Date;
-import java.util.List;
 
 @RequestMapping("register")
 @Api(tags = "乐团注册")
@@ -46,10 +36,6 @@ public class MusicGroupRegisterController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
-    @Autowired
-    private CourseScheduleDao courseScheduleDao;
-    @Autowired
     private StudentRegistrationDao studentRegistrationDao;
 
 

+ 37 - 1
mec-util/src/main/java/com/ym/mec/util/http/HttpUtil.java

@@ -1,5 +1,6 @@
 package com.ym.mec.util.http;
 
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.util.compress.ZipUtil;
 import org.apache.commons.beanutils.ConvertUtils;
@@ -37,8 +38,44 @@ import java.util.Map.Entry;
 
 public class HttpUtil {
 
+//	public static void main(String[] args) {
+//		System.out.println(getSortUrl("https://mstuonline.dayaedu.com/#/childrenPayment"));
+//	}
+
 	public static String getSortUrl(String url){
 		try {
+			JSONArray jsonArray = new JSONArray();
+			JSONObject jsonObject = new JSONObject();
+			jsonObject.put("LongUrl",url);
+			jsonObject.put("TermOfValidity","1-year");
+			jsonArray.add(jsonObject);
+			Map<String,String> HeadMap = new HashMap<>();
+			HeadMap.put("Dwz-Token","0a9d3b34eae990d4355653d2ba6c8974");
+			HeadMap.put("Content-Type","application/json; charset=UTF-8");
+			HeadMap.put("Content-Language","zh");
+			String s = postForHttps("https://dwz.cn/api/v3/short-urls", jsonArray.toJSONString(),HeadMap);
+			JSONObject result = JSONObject.parseObject(s);
+			String code=result.getString("Code");
+			if(code.equals("0")){
+				String shortUrl = JSONArray.parseArray(result.getString("ShortUrls")).getJSONObject(0).getString("ShortUrl");
+				return shortUrl;
+			}else{
+				JSONArray jsonArray1 = JSONArray.parseArray(result.getString("ShortUrls"));
+				if(jsonArray1 != null){
+					String errorMsg = JSONArray.parseArray(result.getString("ShortUrls")).getJSONObject(0).getString("ErrMsg");
+					System.out.println("短网址生成失败:" + errorMsg);
+				}else {
+					System.out.println("短网址生成失败:" + result.getString("ErrMsg"));
+				}
+				return getSortUrl1(url);
+			}
+		}catch (Exception e){
+			return url;
+		}
+	}
+
+	public static String getSortUrl1(String url){
+		try {
 			Map<String,Object> paramMap = new HashMap<>();
 			paramMap.put("format","json");
 			paramMap.put("url",URLDecoder.decode(url,"UTF-8"));
@@ -54,7 +91,6 @@ public class HttpUtil {
 			return url;
 		}
 	}
-
 	/**
 	 * POST请求http url
 	 * 

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/controller/CooperationOrganController.java

@@ -59,6 +59,13 @@ public class CooperationOrganController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation(value = "更新合作单位乐团主管")
+    @PostMapping("/cooperationEdu")
+    public Object cooperationEdu(@RequestBody List<Integer> organIds) {
+        cooperationOrganService.updateCooperationEdu(organIds);
+        return succeed();
+    }
+
     @ApiOperation(value = "分页查询合作单位(教学点)列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('cooperationOrgan/queryPage')")

+ 0 - 5
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -9,13 +9,9 @@ import com.ym.mec.biz.service.IndexBaseMonthDataService;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
-import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -23,7 +19,6 @@ import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.controller.BaseController;

+ 10 - 16
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupPaymentCalenderDetailController.java

@@ -2,22 +2,17 @@ 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.dto.MusicArrearageStudentDto;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.page.ArrearageStudentsQueryInfo;
 import com.ym.mec.biz.service.EmployeeService;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Set;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -26,7 +21,6 @@ import org.springframework.web.bind.annotation.PostMapping;
 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.dto.MusicGroupPaymentCalenderAddStudentDto;
 import com.ym.mec.biz.dal.page.MusicCalenderDetailQueryInfo;
 import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
@@ -122,17 +116,17 @@ public class MusicGroupPaymentCalenderDetailController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-            Employee employee = employeeService.get(sysUser.getId());
-            if (StringUtils.isBlank(queryInfo.getOrganIds())) {
-                queryInfo.setOrganIds(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.getOrganIds().split(",")))){
-                    return failed("非法请求");
-                }
+        Employee employee = employeeService.get(sysUser.getId());
+        if (StringUtils.isBlank(queryInfo.getOrganIds())) {
+            queryInfo.setOrganIds(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.getOrganIds().split(",")))){
+                return failed("非法请求");
             }
+        }
         return succeed(musicGroupPaymentCalenderDetailService.queryArrearageStudents(queryInfo));
     }
 

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/controller/ReplacementInstrumentActivityController.java

@@ -194,8 +194,8 @@ public class ReplacementInstrumentActivityController extends BaseController {
         OutputStream outputStream = response.getOutputStream();
         HSSFWorkbook workbook = null;
         try {
-            String[] header = {"活动编号","分部", "合作单位编号", "合作单位","问卷标题", "缴费状态", "学员编号", "学员姓名", "联系电话", "声部", "品牌", "型号", "是否置换乐器"};
-            String[] body = {"replacementInstrumentCooperationId","organName", "cooperationOrganId", "cooperationOrganName","title","payStatus==NULL || payStatus==0?'未缴费':payStatus==1?'缴费中':'已缴费'", "userId", "userName", "mobileNo", "subjectName", "brand", "specification","hasInstrumentsId"};
+            String[] header = {"活动编号","分部", "合作单位编号", "合作单位","问卷标题", "缴费状态", "学员编号", "学员姓名", "联系电话", "声部", "品牌", "型号", "是否置换乐器","现金支付","余额支付"};
+            String[] body = {"replacementInstrumentCooperationId","organName", "cooperationOrganId", "cooperationOrganName","title","payStatus==NULL || payStatus==0?'未缴费':payStatus==1?'缴费中':'已缴费'", "userId", "userName", "mobileNo", "subjectName", "brand", "specification","hasInstrumentsId","actualAmount","balance"};
             workbook = POIUtil.exportExcel(header, body, pageList.getRows());
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=replacement-" + DateUtil.getDate(new Date()) + ".xls");

+ 11 - 11
mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java

@@ -79,17 +79,17 @@ public class SchoolController extends BaseController {
 		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("非法请求");
-				}
-			}
+        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(schoolService.queryPageDetail(queryInfo));
     }