zouxuan 5 years ago
parent
commit
59b7be857b

+ 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);
 }

+ 31 - 4
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,10 +12,16 @@ public class ImGroupNotice {
 
 	private Long imGroupId;
 
+	private Long operatorId;
+
 	private String title;
 
 	private String content;
 
+	private String realName;
+
+	private String avatar;
+
 	private YesOrNoEnum isTop;
 
 	private YesOrNoEnum isSentToNewMember;
@@ -27,7 +30,31 @@ public class ImGroupNotice {
 
 	private Date updateTime;
 
-	private YesOrNoEnum delFlag;
+	private YesOrNoEnum delFlag = YesOrNoEnum.NO;
+
+	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;

+ 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);
 }

+ 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);
+	}
 }

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

@@ -11,10 +11,13 @@
         <result column="im_group_id_" property="imGroupId"/>
         <result column="title_" property="title"/>
         <result column="content_" property="content"/>
+        <result column="real_name_" property="realName"/>
+        <result column="avatar_" property="avatar"/>
         <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="create_time_" property="createTime"/>
+        <result column="operator_id_" property="operatorId"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
 
@@ -32,10 +35,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_)
+        del_flag_,create_time_,update_time_,operator_id_)
         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())
+        #{delFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),#{operatorId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -60,6 +63,9 @@
             <if test="updateTime != null">
                 update_time_ = NOW()
             </if>
+            <if test="operatorId != null">
+                operator_id_ = #{operatorId}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -71,15 +77,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>

+ 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));
+    }
+
 }

+ 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);