Ver código fonte

Merge remote-tracking branch 'origin/master'

Joburgess 5 anos atrás
pai
commit
d8b7e75a19
20 arquivos alterados com 337 adições e 94 exclusões
  1. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupNoticeDao.java
  2. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkReplyDao.java
  3. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ClassGroup.java
  4. 41 24
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupNotice.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysTenantAccountDetail.java
  6. 26 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/GroupNoticeQueryInfo.java
  7. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupNoticeService.java
  8. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysTenantAccountService.java
  9. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  10. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseHomeworkServiceImpl.java
  11. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupNoticeServiceImpl.java
  12. 9 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/PayServiceImpl.java
  13. 45 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysTenantAccountServiceImpl.java
  14. 34 17
      mec-biz/src/main/resources/config/mybatis/ImGroupNoticeMapper.xml
  15. 14 0
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml
  16. 1 0
      mec-biz/src/main/resources/config/mybatis/SysTenantAccountDetailMapper.xml
  17. 16 0
      mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java
  18. 16 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java
  19. 36 36
      mec-web/src/main/java/com/ym/mec/web/controller/SysTenantAccountController.java
  20. 30 9
      mec-web/src/main/java/com/ym/mec/web/controller/education/ImGroupNoticeController.java

+ 6 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ImGroupNoticeDao.java

@@ -5,5 +5,10 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface ImGroupNoticeDao extends BaseDAO<Long, ImGroupNotice> {
 
-	
+
+    /**
+     * 获取最新一条群公告
+     * @return
+     */
+    ImGroupNotice getNewNotice(Long groupId);
 }

+ 13 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentCourseHomeworkReplyDao.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.StudentCourseHomeworkReply;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -20,5 +21,16 @@ public interface StudentCourseHomeworkReplyDao extends BaseDAO<Long, StudentCour
      * 根据ID批量删除
      */
     int batchDeleteReplys(List<Long> ids);
-	
+
+    /**
+     * 删除作业回复
+     * @param courseScheduleId
+     */
+    void delByCourseScheduleId(@Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * 删除作业回复
+     * @param courseScheduleIdList
+     */
+    void delByCourseScheduleIds(@Param("courseScheduleIdList") List<Long> courseScheduleIdList);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ClassGroup.java

@@ -44,6 +44,10 @@ public class ClassGroup {
 	@ApiModelProperty(value = "群名称", required = true)
 	private String groupName;
 
+	/** 群名称 */
+	@ApiModelProperty(value = "乐团名称", required = true)
+	private String musicGroupName;
+
 	/** 子班级名称列表 */
 	@ApiModelProperty(value = "子班班级名称")
 	private String classNames;
@@ -79,6 +83,14 @@ public class ClassGroup {
 	@ApiModelProperty(value = "班级图标",required = false)
 	private String img;
 
+	public String getMusicGroupName() {
+		return musicGroupName;
+	}
+
+	public void setMusicGroupName(String musicGroupName) {
+		this.musicGroupName = musicGroupName;
+	}
+
 	public String getGroupName() {
 		return groupName;
 	}

+ 41 - 24
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/ImGroupNotice.java

@@ -1,11 +1,8 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.util.Date;
-import java.util.List;
 
 /**
  * 对应数据库表(im_group_notice):
@@ -15,19 +12,47 @@ public class ImGroupNotice {
 
 	private Long imGroupId;
 
+	private Long operatorId;
+
 	private String title;
 
 	private String content;
 
-	private YesOrNoEnum isTop;
+	private String realName;
+
+	private String avatar;
 
-	private YesOrNoEnum isSentToNewMember;
+	private Integer isTop;
 
 	private Date createTime;
 
 	private Date updateTime;
 
-	private YesOrNoEnum delFlag;
+	private Integer delFlag = 0;
+
+	public String getRealName() {
+		return realName;
+	}
+
+	public void setRealName(String realName) {
+		this.realName = realName;
+	}
+
+	public String getAvatar() {
+		return avatar;
+	}
+
+	public void setAvatar(String avatar) {
+		this.avatar = avatar;
+	}
+
+	public Long getOperatorId() {
+		return operatorId;
+	}
+
+	public void setOperatorId(Long operatorId) {
+		this.operatorId = operatorId;
+	}
 
 	public Long getId() {
 		return id;
@@ -61,22 +86,6 @@ public class ImGroupNotice {
 		this.content = content;
 	}
 
-	public YesOrNoEnum getIsTop() {
-		return isTop;
-	}
-
-	public void setIsTop(YesOrNoEnum isTop) {
-		this.isTop = isTop;
-	}
-
-	public YesOrNoEnum getIsSentToNewMember() {
-		return isSentToNewMember;
-	}
-
-	public void setIsSentToNewMember(YesOrNoEnum isSentToNewMember) {
-		this.isSentToNewMember = isSentToNewMember;
-	}
-
 	public Date getCreateTime() {
 		return createTime;
 	}
@@ -93,11 +102,19 @@ public class ImGroupNotice {
 		this.updateTime = updateTime;
 	}
 
-	public YesOrNoEnum getDelFlag() {
+	public Integer getIsTop() {
+		return isTop;
+	}
+
+	public void setIsTop(Integer isTop) {
+		this.isTop = isTop;
+	}
+
+	public Integer getDelFlag() {
 		return delFlag;
 	}
 
-	public void setDelFlag(YesOrNoEnum delFlag) {
+	public void setDelFlag(Integer delFlag) {
 		this.delFlag = delFlag;
 	}
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysTenantAccountDetail.java

@@ -90,6 +90,9 @@ public class SysTenantAccountDetail {
 	private String memo;
 
 	/**  */
+	private Integer operatorId;
+
+	/**  */
 	private java.util.Date createTime;
 
 	/**  */
@@ -191,6 +194,14 @@ public class SysTenantAccountDetail {
 		this.orderNo = orderNo;
 	}
 
+	public Integer getOperatorId() {
+		return operatorId;
+	}
+
+	public void setOperatorId(Integer operatorId) {
+		this.operatorId = operatorId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 26 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/GroupNoticeQueryInfo.java

@@ -0,0 +1,26 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.common.page.QueryInfo;
+
+public class GroupNoticeQueryInfo extends QueryInfo {
+    private Long groupId;
+
+    private YesOrNoEnum isTop;
+
+    public Long getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(Long groupId) {
+        this.groupId = groupId;
+    }
+
+    public YesOrNoEnum getIsTop() {
+        return isTop;
+    }
+
+    public void setIsTop(YesOrNoEnum isTop) {
+        this.isTop = isTop;
+    }
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ImGroupNoticeService.java

@@ -4,4 +4,6 @@ import com.ym.mec.biz.dal.entity.ImGroupNotice;
 import com.ym.mec.common.service.BaseService;
 
 public interface ImGroupNoticeService extends BaseService<Long, ImGroupNotice> {
+
+    ImGroupNotice getNewNotice(Long groupId);
 }

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

@@ -20,4 +20,15 @@ public interface SysTenantAccountService extends BaseService<Integer, SysTenantA
 	 * @return
 	 */
 	public boolean update(Integer userId, int minutes, String orderNo, TransType type, String transNo, BigDecimal cashAmount, String memo);
+
+	/**
+	 * 后台人工更新账户
+	 * @param teacherId 用户编号
+	 * @param minutes 分钟数
+	 * @param type 交易类型
+	 * @param operatorId 操作人
+	 * @param memo 备注
+	 * @return
+	 */
+	boolean manualUpdate(Integer teacherId, int minutes, TransType type,Integer operatorId, String memo);
 }

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

@@ -2618,6 +2618,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             if(classGroup.getGroupType() == GroupType.MUSIC){
                 MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                 if(musicGroup != null){
+                    classGroup.setMusicGroupName(musicGroup.getName());
                     classGroup.setName(musicGroup.getName() + " " + (StringUtils.isEmpty(classGroup.getGroupName())?classGroup.getName():classGroup.getGroupName()));
                 }
             }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.CourseHomeworkDao;
 import com.ym.mec.biz.dal.dao.StudentCourseHomeworkDao;
+import com.ym.mec.biz.dal.dao.StudentCourseHomeworkReplyDao;
 import com.ym.mec.biz.dal.dto.Mapper;
 import com.ym.mec.biz.dal.dto.TeacherHomeworkListDto;
 import com.ym.mec.biz.dal.entity.CourseHomework;
@@ -35,6 +36,9 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 	private StudentCourseHomeworkDao studentCourseHomeworkDao;
 
 	@Autowired
+	private StudentCourseHomeworkReplyDao studentCourseHomeworkReplyDao;
+
+	@Autowired
 	private SysMessageService sysMessageService;
 
 	@Override
@@ -114,7 +118,8 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 		courseHomeworkDao.delByCourseScheduleId(courseScheduleId);
 		// 删除学生作业
 		studentCourseHomeworkDao.delByCourseScheduleId(courseScheduleId);
-		// 删除学生回复的作业
+		// 删除作业回复
+		studentCourseHomeworkReplyDao.delByCourseScheduleId(courseScheduleId);
 		return true;
 	}
 
@@ -125,6 +130,8 @@ public class CourseHomeworkServiceImpl extends BaseServiceImpl<Long, CourseHomew
 		courseHomeworkDao.batchDelByCourseScheduleId(courseScheduleIdList);
 		// 删除学生作业
 		studentCourseHomeworkDao.batchDelByCourseScheduleId(courseScheduleIdList);
+		// 删除作业回复
+		studentCourseHomeworkReplyDao.delByCourseScheduleIds(courseScheduleIdList);
 		return true;
 	}
 }

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

@@ -18,4 +18,9 @@ public class ImGroupNoticeServiceImpl extends BaseServiceImpl<Long, ImGroupNotic
 	public BaseDAO<Long, ImGroupNotice> getDAO() {
 		return imGroupNoticeDao;
 	}
+
+	@Override
+	public ImGroupNotice getNewNotice(Long groupId) {
+		return imGroupNoticeDao.getNewNotice(groupId);
+	}
 }

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

@@ -19,10 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -101,6 +98,14 @@ public class PayServiceImpl implements PayService {
                 company = "yaming";
             }
         }
+        //深圳,广州,上海分部收到深圳大雅
+        Set<Integer> organIds = new HashSet<>();
+        organIds.add(16);
+        organIds.add(3);
+        organIds.add(15);
+        if(organIds.contains(organId)){
+            company = "sdaya";
+        }
 
         //支付通道决策
         Map<String, Object> unionPay = new HashMap<>();

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

@@ -81,4 +81,49 @@ public class SysTenantAccountServiceImpl extends BaseServiceImpl<Integer, SysTen
 		return true;
 	}
 
+	@Override
+	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+	public boolean manualUpdate(Integer teacherId, int minutes, TransType type, Integer operatorId, String memo) {
+		Date date = new Date();
+		SysTenantAccount tenantAccount = sysTenantAccountDao.getLocked(teacherId);
+		if (tenantAccount == null) {
+			tenantAccount = new SysTenantAccount();
+			tenantAccount.setUserId(teacherId);
+			tenantAccount.setCreateTime(date);
+			tenantAccount.setUpdateTime(date);
+			tenantAccount.setStatus(AccountStatus.NORMAL);
+			tenantAccount.setAvailableMinutes(0);
+			tenantAccount.setFrozenMinutes(0);
+			sysTenantAccountDao.insert(tenantAccount);
+		}
+
+		if (tenantAccount.getStatus() != AccountStatus.NORMAL) {
+			throw new BizException("账户不可用");
+		}
+		int balance = tenantAccount.getAvailableMinutes() + minutes;
+		if (balance < 0) {
+			throw new BizException("账户[{}]可用时间不足,可用时间剩{}分钟", teacherId, tenantAccount.getAvailableMinutes());
+		}
+
+		tenantAccount.setAvailableMinutes(balance);
+		tenantAccount.setUpdateTime(date);
+		sysTenantAccountDao.update(tenantAccount);
+
+		SysTenantAccountDetail detail = new SysTenantAccountDetail();
+		detail.setTransMinutes(minutes);
+		detail.setTotalAvailableMinutes(tenantAccount.getAvailableMinutes());
+		detail.setMemo(memo);
+		detail.setCreateTime(date);
+		detail.setTransStatus(TransStatus.SUCCESS);
+		detail.setTransType(type);
+		detail.setUpdateTime(date);
+		detail.setUserId(teacherId);
+		detail.setTransCashAmount(BigDecimal.ZERO);
+		detail.setOperatorId(operatorId);
+
+		sysTenantAccountDetailDao.insert(detail);
+
+		return true;
+	}
+
 }

+ 34 - 17
mec-biz/src/main/resources/config/mybatis/ImGroupNoticeMapper.xml

@@ -11,10 +11,12 @@
         <result column="im_group_id_" property="imGroupId"/>
         <result column="title_" property="title"/>
         <result column="content_" property="content"/>
-        <result column="is_top_" property="isTop" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="is_sent_to_new_member_" property="isSentToNewMember" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="real_name_" property="realName"/>
+        <result column="avatar_" property="avatar"/>
+        <result column="is_top_" property="isTop"/>
+        <result column="del_flag_" property="delFlag"/>
         <result column="create_time_" property="createTime"/>
+        <result column="operator_id_" property="operatorId"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
 
@@ -31,11 +33,10 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ImGroupNotice" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        INSERT INTO im_group_notice (im_group_id_,title_,content_,is_top_,is_sent_to_new_member_,
-        del_flag_,create_time_,update_time_)
-        VALUES(#{imGroupId},#{title},#{content},#{isTop, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{isSentToNewMember, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{delFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now())
+        INSERT INTO im_group_notice (im_group_id_,title_,content_,is_top_,
+        del_flag_,create_time_,update_time_,operator_id_)
+        VALUES(#{imGroupId},#{title},#{content},#{isTop},
+        #{delFlag},now(),now(),#{operatorId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -43,7 +44,7 @@
         UPDATE im_group_notice
         <set>
             <if test="delFlag != null">
-                del_flag_ = #{delFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                del_flag_ = #{delFlag},
             </if>
             <if test="title != null">
                 title_ = #{title},
@@ -52,14 +53,14 @@
                 content_ = content,
             </if>
             <if test="isTop != null">
-                is_top_ = #{isTop, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-            </if>
-            <if test="isSentToNewMember != null">
-                is_sent_to_new_member_ = #{isSentToNewMember, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                is_top_ = #{isTop},
             </if>
             <if test="updateTime != null">
                 update_time_ = NOW()
             </if>
+            <if test="operatorId != null">
+                operator_id_ = #{operatorId}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -71,15 +72,31 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="ImGroupNotice" parameterType="map">
-        SELECT * FROM im_group_notice
-        WHERE del_flag_ != 1
-        ORDER BY update_time_ DESC
+        SELECT ign.*,su.real_name_,su.avatar_ FROM im_group_notice ign
+        LEFT JOIN sys_user su ON su.id_ = ign.operator_id_
+        <where>
+            ign.del_flag_ = 0
+            <if test="groupId != null">
+                AND ign.im_group_id_ = #{groupId}
+            </if>
+        </where>
+        ORDER BY ign.is_top_ DESC,ign.update_time_ DESC
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM im_group_notice
-		WHERE del_flag_ != 1
+        <where>
+            del_flag_ = 0
+            <if test="groupId != null">
+                AND im_group_id_ = #{groupId}
+            </if>
+        </where>
 	</select>
+    <select id="getNewNotice" resultMap="ImGroupNotice">
+        SELECT * FROM im_group_notice ign
+        WHERE ign.im_group_id_ = #{groupId} AND ign.del_flag_ = 0
+        ORDER BY ign.is_top_ DESC,ign.update_time_ DESC LIMIT 1
+    </select>
 </mapper>

+ 14 - 0
mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml

@@ -74,6 +74,20 @@
           #{id}
       </foreach>
     </delete>
+    <delete id="delByCourseScheduleId">
+        DELETE FROM student_course_homework_reply
+        WHERE student_course_homework_id_ IN
+        (SELECT s.id_ FROM student_course_homework s WHERE s.course_schedule_id_ = #{courseScheduleId})
+    </delete>
+    <delete id="delByCourseScheduleIds">
+        DELETE FROM student_course_homework_reply
+        WHERE student_course_homework_id_ IN
+        (SELECT s.id_ FROM student_course_homework s
+        WHERE s.course_schedule_id_ IN
+        <foreach collection="courseScheduleIdList" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>)
+    </delete>
 
     <sql id="queryCondition">
         <where>

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

@@ -15,6 +15,7 @@
 		<result column="total_available_minutes_" property="totalAvailableMinutes" />
 		<result column="trans_minutes_" property="transMinutes" />
 		<result column="memo_" property="memo" />
+		<result column="operator_id_" property="operatorId" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
 	</resultMap>

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

@@ -3,8 +3,10 @@ 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.UserMusicGroupQueryInfo;
+import com.ym.mec.biz.dal.page.GroupNoticeQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.ImGroupNoticeService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -23,6 +25,8 @@ public class CourseController extends BaseController {
     private ClassGroupService classGroupService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private ImGroupNoticeService imGroupNoticeService;
 
     @ApiOperation("获取学生所购买课程列表")
     @GetMapping(value = "/queryUserMusicGroups")
@@ -44,6 +48,18 @@ public class CourseController extends BaseController {
         return succeed(classGroupService.queryUserGroups(sysUser.getId(),search));
     }
 
+    @ApiOperation(value = "获取最新一条群公告")
+    @RequestMapping("/getNewNotice")
+    public Object getNewNotice(Long groupId) {
+        return succeed(imGroupNoticeService.getNewNotice(groupId));
+    }
+
+    @ApiOperation(value = "获取群公告列表")
+    @RequestMapping("/queryNoticePage")
+    public Object queryPage(GroupNoticeQueryInfo queryInfo) {
+        return succeed(imGroupNoticeService.queryPage(queryInfo));
+    }
+
     @ApiOperation(value = "根据群编号,获取群组基本信息")
     @GetMapping("/findGroupById")
     public Object findGroupById(Integer groupId){

+ 16 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/ClassGroupController.java

@@ -4,9 +4,11 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.CourseScheduleEvaluate;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.GroupNoticeQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupStudentMapperService;
 import com.ym.mec.biz.service.CourseScheduleEvaluateService;
+import com.ym.mec.biz.service.ImGroupNoticeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
@@ -14,6 +16,7 @@ import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Objects;
@@ -34,7 +37,7 @@ public class ClassGroupController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private ClassGroupStudentMapperService classGroupStudentMapperService;
+    private ImGroupNoticeService imGroupNoticeService;
 
     @ApiOperation(value = "教师关联班级获取")
     @GetMapping("/findTeacherClassGroups")
@@ -80,4 +83,16 @@ public class ClassGroupController extends BaseController {
         return succeed(classGroupService.getUserInfoWithUserId(groupId,userId));
     }
 
+    @ApiOperation(value = "获取最新一条群公告")
+    @RequestMapping("/getNewNotice")
+    public Object getNewNotice(Long groupId) {
+        return succeed(imGroupNoticeService.getNewNotice(groupId));
+    }
+
+    @ApiOperation(value = "获取群公告列表")
+    @RequestMapping("/queryNoticePage")
+    public Object queryPage(GroupNoticeQueryInfo queryInfo) {
+        return succeed(imGroupNoticeService.queryPage(queryInfo));
+    }
+
 }

+ 36 - 36
mec-web/src/main/java/com/ym/mec/web/controller/SysTenantAccountController.java

@@ -35,7 +35,7 @@ public class SysTenantAccountController extends BaseController {
 
     @ApiOperation(value = "获取账户信息")
     @GetMapping("/get")
-    @PreAuthorize("@pcs.hasPermissions('userCashAccount/get')")
+    @PreAuthorize("@pcs.hasPermissions('sysTenantAccount/get')")
     public Object get() {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
@@ -47,59 +47,59 @@ public class SysTenantAccountController extends BaseController {
 
     @ApiOperation(value = "获取账户明细")
     @GetMapping("/queryTenantAccountDetail")
-    @PreAuthorize("@pcs.hasPermissions('userCashAccount/queryTenantAccountDetail')")
+    @PreAuthorize("@pcs.hasPermissions('sysTenantAccount/queryTenantAccountDetail')")
     public Object queryTenantAccountDetail(TenantAccountDetailQueryInfo queryInfo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        queryInfo.setUserId(sysUser.getId());
+        if (queryInfo.getUserId() == null || queryInfo.getUserId() <= 0) {
+            return failed("用户id不能为空");
+        }
 
         return succeed(sysTenantAccountDetailService.getPageList(queryInfo));
     }
 
     @ApiOperation(value = "增加分钟数")
     @PostMapping("/addMinutes")
-    @PreAuthorize("@pcs.hasPermissions('userCashAccount/addMinutes')")
-    public Object addMinutes(Integer minutes, String memo) {
+    @PreAuthorize("@pcs.hasPermissions('sysTenantAccount/addMinutes')")
+    public Object addMinutes(Integer teacherId, Integer minutes, String memo) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        if(minutes == null || minutes < 0){
-			return failed("充值分钟数必须大于0");
-		}
-		if(memo == null || memo.isEmpty()){
-			return failed("备注信息不能为空");
-		}
-		Integer userId = sysUser.getId();
-		boolean updateRes = sysTenantAccountService.update(userId, minutes, null, SysTenantAccountDetail.TransType.CONSUME, null, BigDecimal.ZERO, memo);
-		if(!updateRes){
-			return failed("充值失败,请重试");
-		}
-		return succeed("充值成功");
-	}
+        if (minutes == null || minutes <= 0) {
+            return failed("充值分钟数必须大于0");
+        }
+        if (memo == null || memo.isEmpty()) {
+            return failed("备注信息不能为空");
+        }
+        boolean updateRes = sysTenantAccountService.manualUpdate(teacherId, minutes, SysTenantAccountDetail.TransType.MANUAL_ADD, sysUser.getId(), memo);
+        if (!updateRes) {
+            return failed("充值失败,请重试");
+        }
+        return succeed("充值成功");
+    }
 
     @ApiOperation(value = "减分钟数")
     @PostMapping("/subtractMinutes")
-    @PreAuthorize("@pcs.hasPermissions('userCashAccount/subtractMinutes')")
-    public Object subtractMinutes(Integer minutes, String memo) {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed(HttpStatus.FORBIDDEN, "请登录");
-		}
-		if(minutes == null || minutes < 0){
-			return failed("扣除分钟数必须大于0");
-		}
-		if(memo == null || memo.isEmpty()){
-			return failed("备注信息不能为空");
-		}
-		Integer userId = sysUser.getId();
-		boolean updateRes = sysTenantAccountService.update(userId, -minutes, null, SysTenantAccountDetail.TransType.CONSUME, null, BigDecimal.ZERO, memo);
-		if(!updateRes){
-			return failed("充值失败,请重试");
-		}
-		return succeed("充值成功");
+    @PreAuthorize("@pcs.hasPermissions('sysTenantAccount/subtractMinutes')")
+    public Object subtractMinutes(Integer teacherId, Integer minutes, String memo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        if (minutes == null || minutes <= 0) {
+            return failed("扣除分钟数必须大于0");
+        }
+        if (memo == null || memo.isEmpty()) {
+            return failed("备注信息不能为空");
+        }
+        boolean updateRes = sysTenantAccountService.manualUpdate(teacherId, -minutes, SysTenantAccountDetail.TransType.MANUAL_SUB, sysUser.getId(), memo);
+        if (!updateRes) {
+            return failed("充值失败,请重试");
+        }
+        return succeed("扣除成功");
     }
 
 }

+ 30 - 9
mec-web/src/main/java/com/ym/mec/web/controller/education/ImGroupNoticeController.java

@@ -1,6 +1,9 @@
 package com.ym.mec.web.controller.education;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.ImGroupNotice;
+import com.ym.mec.biz.dal.page.GroupNoticeQueryInfo;
 import com.ym.mec.biz.service.ImGroupNoticeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
@@ -26,33 +29,51 @@ public class ImGroupNoticeController extends BaseController {
 
     @Autowired
     private ImGroupNoticeService imGroupNoticeService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "新增")
-    @PostMapping("/add")
+    @RequestMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('imGroupNotice/add','system')")
     public Object add(ImGroupNotice imGroupNotice ) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
+        imGroupNotice.setOperatorId(sysUser.getId().longValue());
         return succeed(imGroupNoticeService.insert(imGroupNotice));
     }
 
     @ApiOperation(value = "修改")
-    @PostMapping("/update")
+    @RequestMapping("/update")
     @PreAuthorize("@pcs.hasPermissions('imGroupNotice/update','system')")
     public Object update(ImGroupNotice imGroupNotice ) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
+        imGroupNotice.setOperatorId(sysUser.getId().longValue());
         imGroupNotice.setUpdateTime(new Date());
         imGroupNoticeService.update(imGroupNotice);
         return succeed();
     }
 
-    @ApiOperation(value = "获取单条")
-    @PostMapping("/get")
-    @PreAuthorize("@pcs.hasPermissions('imGroupNotice/get','system')")
-    public Object get(Long id) {
-        imGroupNoticeService.get(id);
-        return succeed();
+    @ApiOperation(value = "获取最新一条群公告")
+    @RequestMapping("/getNewNotice")
+    @PreAuthorize("@pcs.hasPermissions('imGroupNotice/getNewNotice','system')")
+    public Object getNewNotice(Long groupId) {
+        return succeed(imGroupNoticeService.getNewNotice(groupId));
+    }
+
+    @ApiOperation(value = "获取群公告列表")
+    @RequestMapping("/queryNoticePage")
+    @PreAuthorize("@pcs.hasPermissions('imGroupNotice/queryNoticePage','system')")
+    public Object queryPage(GroupNoticeQueryInfo queryInfo) {
+        return succeed(imGroupNoticeService.queryPage(queryInfo));
     }
 
     @ApiOperation(value = "删除")
-    @PostMapping("/del")
+    @RequestMapping("/del")
     @PreAuthorize("@pcs.hasPermissions('imGroupNotice/del','system')")
     public Object del(Long id) {
         imGroupNoticeService.delete(id);