Переглянути джерело

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
#	mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
zouxuan 4 роки тому
батько
коміт
b1dbc80dac
21 змінених файлів з 1154 додано та 12 видалено
  1. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ChildrenDayReserveDao.java
  2. 18 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeLevelFeeDao.java
  3. 12 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  4. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDegreeCourseFeeDao.java
  5. 126 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ChildrenStatisticsDto.java
  6. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeFeeDto.java
  7. 136 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayReserve.java
  8. 106 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeLevelFee.java
  9. 106 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/OrganizationDegreeCourseFee.java
  10. 36 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/ChildrenReserveQueryInfo.java
  11. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ChildrenDayReserveService.java
  12. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  13. 102 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayReserveServiceImpl.java
  14. 5 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  15. 128 0
      mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml
  16. 60 0
      mec-biz/src/main/resources/config/mybatis/DegreeLevelFeeMapper.xml
  17. 12 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  18. 59 0
      mec-biz/src/main/resources/config/mybatis/OrganizationDegreeCourseFeeMapper.xml
  19. 64 0
      mec-student/src/main/java/com/ym/mec/student/controller/ChildrenDayController.java
  20. 56 0
      mec-web/src/main/java/com/ym/mec/web/controller/ChildrenReserveController.java
  21. 8 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

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

@@ -0,0 +1,24 @@
+package com.ym.mec.biz.dal.dao;
+
+
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
+import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface ChildrenDayReserveDao extends BaseDAO<Integer, ChildrenDayReserve> {
+
+    List<ChildrenStatisticsDto> queryChildrenStatistics(Map<String, Object> map);
+
+    Integer countChildrenStatistics(Map<String, Object> map);
+
+    /**
+     * 根据用户id获取用户预约信息
+     * @param userId
+     * @return
+     */
+    ChildrenDayReserve getByUserId(@Param("userId") Integer userId);
+}

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DegreeLevelFeeDao.java

@@ -0,0 +1,18 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.DegreeLevelFee;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface DegreeLevelFeeDao extends BaseDAO<Long, DegreeLevelFee> {
+
+    /**
+     * 获取所有等级的报名费用
+     *
+     * @return
+     */
+    List<DegreeLevelFee> getAll();
+
+}

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

@@ -383,6 +383,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
 
     /**
      * 获取乐团合作单位进行中 、暂停、关闭 的乐团
+     *
      * @param cooperationOrganId
      * @param musicGroupId
      * @return
@@ -391,6 +392,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
 
     /**
      * 获取课程关联教务老师名称
+     *
      * @param courseIds
      * @return
      */
@@ -404,16 +406,19 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
     List<MusicGroup> findByCooperationIdAndStatus(Integer cooperationOrganId);
 
     /**
-     * 根据合作单位获取乐团列表
-     * @param cooperationOrganId
-     * @return
-     */
-    List<MusicGroup> findByCooperationId(@Param("cooperationId") Integer cooperationOrganId, @Param("musicStatus") String musicStatus);
-
-    /**
      * 批量修改乐团主管
      * @param cooperationOrganId
      * @param educationUserId
      */
     void batchUpdateEdu(@Param("cooperationOrganId") Integer cooperationOrganId, @Param("educationUserId") Integer educationUserId);
+
+    /**
+     * 获取学生最新的乐团
+     *
+     * @param userId
+     * @return
+     */
+    MusicGroup getStudentLastMusicGroup(@Param("userId") Integer userId);
+
+    List<MusicGroup> findByCooperationId(@Param("cooperationId") Integer cooperationOrganId, @Param("musicStatus") String musicStatus);
 }

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDegreeCourseFeeDao.java

@@ -0,0 +1,17 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee;
+import com.ym.mec.common.dal.BaseDAO;
+
+import java.util.List;
+
+public interface OrganizationDegreeCourseFeeDao extends BaseDAO<Long, OrganizationDegreeCourseFee> {
+
+    /**
+     * 获取考级的课程费用
+     *
+     * @param organId
+     * @return
+     */
+    OrganizationDegreeCourseFee getByOrganId(Integer organId);
+}

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

@@ -0,0 +1,126 @@
+package com.ym.mec.biz.dal.dto;
+
+import java.math.BigDecimal;
+
+public class ChildrenStatisticsDto {
+
+    private String organName;
+
+    private String cooperationOrganName;
+
+    private  String musicGroupName;
+
+    private  Integer normalNum;
+
+    private Integer reserveNum;
+
+    private Integer noReserveNum;
+
+    private Integer instrumentalMusicNum;
+
+    private Integer musicTheoryNum;
+
+    private Integer buyVipNum;
+
+    private BigDecimal buyVipAmount;
+
+    private Integer buyMusicTheoryNum;
+
+    private BigDecimal buyMusicTheoryAmount;
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getCooperationOrganName() {
+        return cooperationOrganName;
+    }
+
+    public void setCooperationOrganName(String cooperationOrganName) {
+        this.cooperationOrganName = cooperationOrganName;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public Integer getNormalNum() {
+        return normalNum;
+    }
+
+    public void setNormalNum(Integer normalNum) {
+        this.normalNum = normalNum;
+    }
+
+    public Integer getReserveNum() {
+        return reserveNum;
+    }
+
+    public void setReserveNum(Integer reserveNum) {
+        this.reserveNum = reserveNum;
+    }
+
+    public Integer getNoReserveNum() {
+        return noReserveNum;
+    }
+
+    public void setNoReserveNum(Integer noReserveNum) {
+        this.noReserveNum = noReserveNum;
+    }
+
+    public Integer getInstrumentalMusicNum() {
+        return instrumentalMusicNum;
+    }
+
+    public void setInstrumentalMusicNum(Integer instrumentalMusicNum) {
+        this.instrumentalMusicNum = instrumentalMusicNum;
+    }
+
+    public Integer getMusicTheoryNum() {
+        return musicTheoryNum;
+    }
+
+    public void setMusicTheoryNum(Integer musicTheoryNum) {
+        this.musicTheoryNum = musicTheoryNum;
+    }
+
+    public Integer getBuyVipNum() {
+        return buyVipNum;
+    }
+
+    public void setBuyVipNum(Integer buyVipNum) {
+        this.buyVipNum = buyVipNum;
+    }
+
+    public BigDecimal getBuyVipAmount() {
+        return buyVipAmount;
+    }
+
+    public void setBuyVipAmount(BigDecimal buyVipAmount) {
+        this.buyVipAmount = buyVipAmount;
+    }
+
+    public Integer getBuyMusicTheoryNum() {
+        return buyMusicTheoryNum;
+    }
+
+    public void setBuyMusicTheoryNum(Integer buyMusicTheoryNum) {
+        this.buyMusicTheoryNum = buyMusicTheoryNum;
+    }
+
+    public BigDecimal getBuyMusicTheoryAmount() {
+        return buyMusicTheoryAmount;
+    }
+
+    public void setBuyMusicTheoryAmount(BigDecimal buyMusicTheoryAmount) {
+        this.buyMusicTheoryAmount = buyMusicTheoryAmount;
+    }
+}

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/DegreeFeeDto.java

@@ -0,0 +1,32 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.DegreeLevelFee;
+import com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+public class DegreeFeeDto {
+
+    @ApiModelProperty(value = "考级费用")
+    private List<DegreeLevelFee> degreeLevelFee;
+
+    @ApiModelProperty(value = "考级教程费用")
+    private OrganizationDegreeCourseFee organizationDegreeCourseFee;
+
+    public OrganizationDegreeCourseFee getOrganizationDegreeCourseFee() {
+        return organizationDegreeCourseFee;
+    }
+
+    public void setOrganizationDegreeCourseFee(OrganizationDegreeCourseFee organizationDegreeCourseFee) {
+        this.organizationDegreeCourseFee = organizationDegreeCourseFee;
+    }
+
+    public List<DegreeLevelFee> getDegreeLevelFee() {
+        return degreeLevelFee;
+    }
+
+    public void setDegreeLevelFee(List<DegreeLevelFee> degreeLevelFee) {
+        this.degreeLevelFee = degreeLevelFee;
+    }
+}

+ 136 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ChildrenDayReserve.java

@@ -0,0 +1,136 @@
+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")
+public class ChildrenDayReserve {
+    @ApiModelProperty(value="")
+    private Integer id;
+
+    /**
+    * 用户id
+    */
+    @ApiModelProperty(value="用户id")
+    private Integer userId;
+
+    /**
+    * 分部id
+    */
+    @ApiModelProperty(value="分部id")
+    private Integer organId;
+
+    /**
+    * 合作单位id
+    */
+    @ApiModelProperty(value="合作单位id")
+    private Integer cooperationOrganId;
+
+    /**
+    * 乐团id
+    */
+    @ApiModelProperty(value="乐团id")
+    private String musicGroupId;
+
+    /**
+    * 是否预约 0-否 1-是
+    */
+    @ApiModelProperty(value="是否预约 0-否 1-是")
+    private YesOrNoEnum isReserve;
+
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty(value="创建时间")
+    private Date createTime;
+
+    /**
+    * 更新时间
+    */
+    @ApiModelProperty(value="更新时间")
+    private Date updateTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public Integer getCooperationOrganId() {
+        return cooperationOrganId;
+    }
+
+    public void setCooperationOrganId(Integer cooperationOrganId) {
+        this.cooperationOrganId = cooperationOrganId;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public YesOrNoEnum getIsReserve() {
+        return isReserve;
+    }
+
+    public void setIsReserve(YesOrNoEnum isReserve) {
+        this.isReserve = isReserve;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", userId=").append(userId);
+        sb.append(", organId=").append(organId);
+        sb.append(", cooperationOrganId=").append(cooperationOrganId);
+        sb.append(", musicGroupId=").append(musicGroupId);
+        sb.append(", isReserve=").append(isReserve);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 106 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DegreeLevelFee.java

@@ -0,0 +1,106 @@
+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-DegreeLevelFee")
+public class DegreeLevelFee {
+    @ApiModelProperty(value="")
+    private Integer id;
+
+    /**
+    * 等级
+    */
+    @ApiModelProperty(value="等级")
+    private Integer level;
+
+    /**
+    * 乐器考级费用
+    */
+    @ApiModelProperty(value="乐器考级费用")
+    private BigDecimal grade;
+
+    /**
+    * 乐理费用
+    */
+    @ApiModelProperty(value="乐理费用")
+    private BigDecimal theory;
+
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty(value="创建时间")
+    private Date createTime;
+
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty(value="修改时间")
+    private Date updateTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getLevel() {
+        return level;
+    }
+
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+
+    public BigDecimal getGrade() {
+        return grade;
+    }
+
+    public void setGrade(BigDecimal grade) {
+        this.grade = grade;
+    }
+
+    public BigDecimal getTheory() {
+        return theory;
+    }
+
+    public void setTheory(BigDecimal theory) {
+        this.theory = theory;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", level=").append(level);
+        sb.append(", grade=").append(grade);
+        sb.append(", theory=").append(theory);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 106 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/OrganizationDegreeCourseFee.java

@@ -0,0 +1,106 @@
+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")
+public class OrganizationDegreeCourseFee {
+    @ApiModelProperty(value="")
+    private Integer id;
+
+    /**
+    * 分部id
+    */
+    @ApiModelProperty(value="分部id")
+    private Integer organId;
+
+    /**
+    * vip课价格
+    */
+    @ApiModelProperty(value="vip课价格")
+    private BigDecimal vip;
+
+    /**
+    * 乐理课价格
+    */
+    @ApiModelProperty(value="乐理课价格")
+    private BigDecimal theory;
+
+    /**
+    * 创建时间
+    */
+    @ApiModelProperty(value="创建时间")
+    private Date createTime;
+
+    /**
+    * 修改时间
+    */
+    @ApiModelProperty(value="修改时间")
+    private Date updateTime;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public BigDecimal getVip() {
+        return vip;
+    }
+
+    public void setVip(BigDecimal vip) {
+        this.vip = vip;
+    }
+
+    public BigDecimal getTheory() {
+        return theory;
+    }
+
+    public void setTheory(BigDecimal theory) {
+        this.theory = theory;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", organId=").append(organId);
+        sb.append(", vip=").append(vip);
+        sb.append(", theory=").append(theory);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append("]");
+        return sb.toString();
+    }
+}

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ChildrenReserveQueryInfo.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class ChildrenReserveQueryInfo extends QueryInfo {
+
+    private String organId;
+
+    private Integer cooperationId;
+
+    private String musicGroupId;
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
+    public Integer getCooperationId() {
+        return cooperationId;
+    }
+
+    public void setCooperationId(Integer cooperationId) {
+        this.cooperationId = cooperationId;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+}

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ChildrenDayReserveService.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.service;
+
+
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
+import com.ym.mec.biz.dal.dto.DegreeFeeDto;
+import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.service.BaseService;
+
+public interface ChildrenDayReserveService extends BaseService<Integer, ChildrenDayReserve> {
+
+    /**
+     * 填加占位
+     *
+     * @param user
+     * @return
+     */
+    ChildrenDayReserve addReserve(SysUser user);
+
+
+    /**
+     * 获取用户的占位信息
+     *
+     * @param userId
+     * @return
+     */
+    ChildrenDayReserve getUserReserve(Integer userId);
+
+    PageInfo<ChildrenStatisticsDto> queryStatisticsPage(ChildrenReserveQueryInfo queryInfo);
+
+    /**
+     * 获取活动的费用信息
+     * @param organId
+     * @return
+     */
+    DegreeFeeDto getFeeInfo(Integer organId);
+
+}

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -365,4 +365,11 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @return 关闭结果
 	 */
 	Boolean closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto);
+
+	/**
+	 * 根据合作单位获取所有乐团列表
+	 * @param cooperationId
+	 * @return
+	 */
+	List<MusicGroup> findByCooperationId(Integer cooperationId);
 }

+ 102 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ChildrenDayReserveServiceImpl.java

@@ -0,0 +1,102 @@
+package com.ym.mec.biz.service.impl;
+
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.ChildrenDayReserveDao;
+import com.ym.mec.biz.dal.dao.DegreeLevelFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dto.ChildrenStatisticsDto;
+import com.ym.mec.biz.dal.dao.OrganizationDegreeCourseFeeDao;
+import com.ym.mec.biz.dal.dto.DegreeFeeDto;
+import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
+import com.ym.mec.biz.dal.entity.DegreeLevelFee;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
+import com.ym.mec.biz.service.ChildrenDayReserveService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import java.util.List;
+
+@Service
+public class ChildrenDayReserveServiceImpl extends BaseServiceImpl<Integer, ChildrenDayReserve> implements ChildrenDayReserveService {
+
+    @Autowired
+    private ChildrenDayReserveDao childrenDayReserveDao;
+    @Autowired
+    private MusicGroupDao musicGroupDao;
+    @Autowired
+    private DegreeLevelFeeDao degreeLevelFeeDao;
+    @Autowired
+    private OrganizationDegreeCourseFeeDao organizationDegreeCourseFeeDao;
+
+    @Override
+    public BaseDAO<Integer, ChildrenDayReserve> getDAO() {
+        return childrenDayReserveDao;
+    }
+
+    @Override
+    public ChildrenDayReserve addReserve(SysUser user) {
+        ChildrenDayReserve hasOne = childrenDayReserveDao.getByUserId(user.getId());
+        if (hasOne != null) {
+            throw new BizException("您已成功占位");
+        }
+        MusicGroup studentLastMusicGroup = musicGroupDao.getStudentLastMusicGroup(user.getId());
+        ChildrenDayReserve childrenDayReserve = new ChildrenDayReserve();
+        childrenDayReserve.setUserId(user.getId());
+        childrenDayReserve.setOrganId(user.getOrganId());
+        childrenDayReserve.setIsReserve(YesOrNoEnum.YES);
+        if (studentLastMusicGroup != null) {
+            childrenDayReserve.setCooperationOrganId(studentLastMusicGroup.getCooperationOrganId());
+            childrenDayReserve.setMusicGroupId(studentLastMusicGroup.getId());
+        }
+        childrenDayReserveDao.insert(childrenDayReserve);
+        return childrenDayReserve;
+    }
+
+    @Override
+    public ChildrenDayReserve getUserReserve(Integer userId) {
+        return childrenDayReserveDao.getByUserId(userId);
+    }
+
+    @Override
+    public PageInfo<ChildrenStatisticsDto> queryStatisticsPage(ChildrenReserveQueryInfo queryInfo) {
+        PageInfo<ChildrenStatisticsDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ChildrenStatisticsDto> dataList = null;
+        int count = childrenDayReserveDao.countChildrenStatistics(params);;
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = childrenDayReserveDao.queryChildrenStatistics(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    public DegreeFeeDto getFeeInfo(Integer organId) {
+        List<DegreeLevelFee> degreeLevelFee = degreeLevelFeeDao.getAll();
+        OrganizationDegreeCourseFee courseFee = organizationDegreeCourseFeeDao.getByOrganId(organId);
+        DegreeFeeDto degreeFeeDto = new DegreeFeeDto();
+        degreeFeeDto.setDegreeLevelFee(degreeLevelFee);
+        degreeFeeDto.setOrganizationDegreeCourseFee(courseFee);
+        return degreeFeeDto;
+    }
+}

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

@@ -123,9 +123,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
     @Autowired
-    private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
-
-    @Autowired
     private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService;
 
     @Autowired
@@ -3055,4 +3052,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         return true;
     }
 
+    @Override
+    public List<MusicGroup> findByCooperationId(Integer cooperationId) {
+        return musicGroupDao.findByCooperationId(cooperationId,"PROGRESS");
+    }
+
 }

+ 128 - 0
mec-biz/src/main/resources/config/mybatis/ChildrenDayReserveMapper.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.biz.dal.dao.ChildrenDayReserveDao">
+    <resultMap id="ChildrenDayReserve" type="com.ym.mec.biz.dal.entity.ChildrenDayReserve">
+        <!--@mbg.generated-->
+        <id column="id_" property="id"/>
+        <result column="user_id_" property="userId"/>
+        <result column="organ_id_" property="organId"/>
+        <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="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+
+    <select id="get" parameterType="java.lang.Integer" resultMap="ChildrenDayReserve">
+        <!--@mbg.generated-->
+        select *
+        from children_day_reserve
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from children_day_reserve
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.ChildrenDayReserve"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into children_day_reserve (user_id_, organ_id_, cooperation_organ_id_, music_group_id_, is_reserve_,
+        create_time_, update_time_)
+        values (#{userId}, #{organId}, #{cooperationOrganId}, #{musicGroupId},
+        #{isReserve,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},NOW(), NOW())
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.ChildrenDayReserve">
+        <!--@mbg.generated-->
+        update children_day_reserve
+        <set>
+            <if test="userId != null">
+                user_id_ = #{userId},
+            </if>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="cooperationOrganId != null">
+                cooperation_organ_id_ = #{cooperationOrganId},
+            </if>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId},
+            </if>
+            <if test="isReserve != null">
+                is_reserve_ = #{isReserve,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="ChildrenDayReserve" parameterType="map">
+        SELECT * FROM children_day_reserve
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*)
+        FROM children_day_reserve
+    </select>
+    <resultMap id="ChildrenStatisticsDtoMap" type="com.ym.mec.biz.dal.dto.ChildrenStatisticsDto">
+        <result property="buyMusicTheoryAmount" column="buy_music_theory_amount_"/>
+        <result property="buyMusicTheoryNum" column="buy_music_theory_num_"/>
+        <result property="buyVipAmount" column="buy_vip_amount_"/>
+        <result property="buyVipNum" column="buy_vip_num_"/>
+        <result property="cooperationOrganName" column="cooperation_organ_name_"/>
+        <result property="instrumentalMusicNum" column="instrumental_music_num_"/>
+        <result property="musicGroupName" column="music_group_name_"/>
+        <result property="musicTheoryNum" column="music_theory_num_"/>
+        <result property="noReserveNum" column="no_reserve_num_"/>
+        <result property="normalNum" column="normal_num_"/>
+        <result property="organName" column="organ_name_"/>
+        <result property="reserveNum" column="reserve_num_"/>
+    </resultMap>
+    <select id="queryChildrenStatistics" resultMap="ChildrenStatisticsDtoMap">
+        SELECT o.name_ organ_name_,co.name_ cooperation_organ_name_,mg.name_ music_group_name_,COUNT(sr.user_id_)
+        normal_num_,
+        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_'
+        FROM children_day_reserve cdr
+        LEFT JOIN music_group mg ON mg.id_ = cdr.music_group_id_
+        LEFT JOIN student_registration sr ON sr.music_group_id_ = cdr.music_group_id_ AND sr.music_group_status_ =
+        'NORMAL'
+        LEFT JOIN cooperation_organ co ON co.id_ = cdr.cooperation_organ_id_
+        LEFT JOIN organization o ON o.id_ = cdr.organ_id_
+        <include refid="queryChildrenStatisticsSql"/>
+        GROUP BY cdr.music_group_id_
+    </select>
+    <select id="countChildrenStatistics" resultType="java.lang.Integer">
+        SELECT COUNT(cdr.id_)
+        FROM children_day_reserve cdr
+        <include refid="queryChildrenStatisticsSql"/>
+        GROUP BY cdr.music_group_id_
+    </select>
+    <sql id="queryChildrenStatisticsSql">
+        <where>
+            <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>
+        </where>
+    </sql>
+
+    <select id="getByUserId" resultMap="ChildrenDayReserve">
+        SELECT *
+        FROM children_day_reserve
+        WHERE user_id_ = #{userId}
+    </select>
+</mapper>

+ 60 - 0
mec-biz/src/main/resources/config/mybatis/DegreeLevelFeeMapper.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.biz.dal.dao.DegreeLevelFeeDao">
+    <resultMap id="DegreeLevelFee" type="com.ym.mec.biz.dal.entity.DegreeLevelFee">
+        <!--@mbg.generated-->
+        <!--@Table degree_level_fee-->
+        <id column="id_" property="id"/>
+        <result column="level_" property="level"/>
+        <result column="grade_" property="grade"/>
+        <result column="theory_" property="theory"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+    <select id="get" parameterType="java.lang.Integer" resultMap="DegreeLevelFee">
+        <!--@mbg.generated-->
+        select *
+        from degree_level_fee
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from degree_level_fee
+        where id_ = #{id}
+    </delete>
+    <insert id="insert" keyColumn="id_" keyProperty="id" parameterType="com.ym.mec.biz.dal.entity.DegreeLevelFee"
+            useGeneratedKeys="true">
+        <!--@mbg.generated-->
+        insert into degree_level_fee (level_, grade_, theory_, create_time_, update_time_)
+        values (#{level}, #{grade}, #{theory}, #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.DegreeLevelFee">
+        <!--@mbg.generated-->
+        update degree_level_fee
+        <set>
+            <if test="level != null">
+                level_ = #{level},
+            </if>
+            <if test="grade != null">
+                grade_ = #{grade},
+            </if>
+            <if test="theory != null">
+                theory_ = #{theory},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+
+    <!-- 全查询 -->
+    <select id="getAll" resultMap="DegreeLevelFee">
+        SELECT *
+        FROM degree_level_fee
+        ORDER BY level_ ASC
+    </select>
+</mapper>

+ 12 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -742,13 +742,23 @@
         </foreach>
         AND mg.educational_teacher_id_ IS NOT NULL
     </select>
+    <select id="findByCooperationIdAndStatus" resultMap="MusicGroup">
+        SELECT * FROM music_group WHERE cooperation_organ_id_ = #{cooperationOrganId} AND status_ IN ('PROGRESS','PAUSE','PREPARE')
+    </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="findByCooperationIdAndStatus" resultMap="MusicGroup">
-        SELECT * FROM music_group WHERE cooperation_organ_id_ = #{cooperationOrganId} AND status_ IN ('PROGRESS','PAUSE','PREPARE')
+
+    <select id="getStudentLastMusicGroup" resultMap="MusicGroup">
+        SELECT mg.*
+        FROM music_group mg
+        LEFT JOIN student_registration sr ON mg.id_ = sr.music_group_id_
+        WHERE sr.user_id_ = #{userId}
+        AND mg.status_ IN ('PREPARE', 'PROGRESS', 'PAUSE', 'CLOSE')
+        ORDER BY mg.create_time_ DESC
+        LIMIT 1
     </select>
 </mapper>

+ 59 - 0
mec-biz/src/main/resources/config/mybatis/OrganizationDegreeCourseFeeMapper.xml

@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.biz.dal.dao.OrganizationDegreeCourseFeeDao">
+    <resultMap id="OrganizationDegreeCourseFee" type="com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee">
+        <!--@mbg.generated-->
+        <!--@Table organization_degree_course_fee-->
+        <id column="id_" property="id"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="vip_" property="vip"/>
+        <result column="theory_" property="theory"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+    </resultMap>
+    <select id="get" parameterType="java.lang.Integer" resultMap="OrganizationDegreeCourseFee">
+        <!--@mbg.generated-->
+        select *
+        from organization_degree_course_fee
+        where id_ = #{id}
+    </select>
+    <delete id="delete" parameterType="java.lang.Integer">
+        <!--@mbg.generated-->
+        delete from organization_degree_course_fee
+        where id_ = #{id}
+    </delete>
+    <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_, theory_, create_time_, update_time_)
+        values (#{organId}, #{vip}, #{theory}, #{createTime}, #{updateTime})
+    </insert>
+    <update id="update" parameterType="com.ym.mec.biz.dal.entity.OrganizationDegreeCourseFee">
+        <!--@mbg.generated-->
+        update organization_degree_course_fee
+        <set>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="vip != null">
+                vip_ = #{vip},
+            </if>
+            <if test="theory != null">
+                theory_ = #{theory},
+            </if>
+            <if test="createTime != null">
+                create_time_ = #{createTime},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+        </set>
+        where id_ = #{id}
+    </update>
+
+    <select id="getByOrganId" resultMap="OrganizationDegreeCourseFee">
+        SELECT *
+        FROM organization_degree_course_fee
+        WHERE organ_id_ = #{organId}
+    </select>
+</mapper>

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

@@ -0,0 +1,64 @@
+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.dto.DegreeFeeDto;
+import com.ym.mec.biz.dal.dto.DegreeRegistrationActivityDto;
+import com.ym.mec.biz.dal.entity.ChildrenDayReserve;
+import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
+import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
+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.idcard.IdcardValidator;
+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.Objects;
+
+@RequestMapping("childrenDay")
+@Api(tags = "6.1儿童节活动")
+@RestController
+public class ChildrenDayController extends BaseController {
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private ChildrenDayReserveService childrenDayReserveService;
+
+
+    @ApiOperation(value = "占位")
+    @PostMapping("/reserve")
+    public HttpResponseResult<ChildrenDayReserve> reserve() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(user)) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(childrenDayReserveService.addReserve(user));
+    }
+
+    @ApiOperation(value = "获取占位信息")
+    @GetMapping("/getReserve")
+    public HttpResponseResult<ChildrenDayReserve> getReserve() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(user)) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(childrenDayReserveService.getUserReserve(user.getId()));
+    }
+
+
+    @ApiOperation(value = "获取考级相关的价格")
+    @GetMapping("/getFeeInfo")
+    public HttpResponseResult<DegreeFeeDto> getFeeInfo() {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (Objects.isNull(user)) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return succeed(childrenDayReserveService.getFeeInfo(user.getOrganId()));
+    }
+
+}

+ 56 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ChildrenReserveController.java

@@ -0,0 +1,56 @@
+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.ChildrenStatisticsDto;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.page.ChildrenReserveQueryInfo;
+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.page.PageInfo;
+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.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.List;
+
+@RequestMapping("childrenReserve")
+@Api(tags = "儿童节活动")
+@RestController
+public class ChildrenReserveController extends BaseController {
+
+    @Autowired
+    private ChildrenDayReserveService childrenDayReserveService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+
+    @ApiOperation(value = "21年暑期考级活动统计页面")
+    @GetMapping("/queryStatisticsPage")
+    @PreAuthorize("@pcs.hasPermissions('childrenReserve/queryStatisticsPage')")
+    public HttpResponseResult<PageInfo<ChildrenStatisticsDto>> queryPage(ChildrenReserveQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        Employee employee = employeeDao.get(sysUser.getId());
+        if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+            queryInfo.setOrganId(employee.getOrganIdList());
+        }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+            return failed("用户所在分部异常");
+        }else {
+            List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+            if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                return failed("非法请求");
+            }
+        }
+        return succeed(childrenDayReserveService.queryStatisticsPage(queryInfo));
+    }
+}

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -331,4 +331,12 @@ public class MusicGroupController extends BaseController {
 		return succeed(organizationService.getGradeList(musicGroup.getOrganId()));
 	}
 
+	@ApiOperation(value = "根据合作单位获取所有乐团列表")
+	@GetMapping("/findByCooperationId")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/findByCooperationId')")
+	@ApiImplicitParams({@ApiImplicitParam(name = "cooperationId", value = "合作单位", required = true, dataType = "Integer")})
+	public HttpResponseResult<List<MusicGroup>> findByCooperationId(Integer cooperationId) {
+		return succeed(musicGroupService.findByCooperationId(cooperationId));
+	}
+
 }