Browse Source

小小训练营活动

zouxuan 3 years ago
parent
commit
f65d7a024b

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImGroupQueryInfo.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+* @author zx
+* @date 2021/9/26 15:52
+*/
+public class ImGroupQueryInfo extends QueryInfo {
+
+    private Integer userId;
+
+    private Long imSendGroupMessageId;
+
+    private String ignoreIds;
+
+    public String getIgnoreIds() {
+        return ignoreIds;
+    }
+
+    public void setIgnoreIds(String ignoreIds) {
+        this.ignoreIds = ignoreIds;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Long getImSendGroupMessageId() {
+        return imSendGroupMessageId;
+    }
+
+    public void setImSendGroupMessageId(Long imSendGroupMessageId) {
+        this.imSendGroupMessageId = imSendGroupMessageId;
+    }
+}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ImSendGroupMessageQueryInfo.java

@@ -0,0 +1,22 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author zx
+* @date 2021/9/26 15:52
+*/
+public class ImSendGroupMessageQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "消息是否发送")
+    private Boolean sendFlag;
+
+    public Boolean getSendFlag() {
+        return sendFlag;
+    }
+
+    public void setSendFlag(Boolean sendFlag) {
+        this.sendFlag = sendFlag;
+    }
+}

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

@@ -1,11 +1,11 @@
 package com.ym.mec.biz.service;
 
-import java.util.List;
-
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface ImGroupService extends BaseService<Long, ImGroup> {
 
 	/**

+ 10 - 11
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ImGroupServiceImpl.java

@@ -1,29 +1,27 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.common.entity.ImUserModel;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Lazy;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.ym.mec.biz.dal.dao.ImGroupDao;
 import com.ym.mec.biz.dal.dao.ImGroupMemberDao;
 import com.ym.mec.biz.dal.dao.ImGroupNoticeDao;
+import com.ym.mec.biz.dal.dao.ImSendGroupMessageDao;
 import com.ym.mec.biz.dal.dto.ImGroupMemberDto;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.service.ImGroupMemberService;
 import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.entity.GroupMember;
 import com.ym.mec.im.entity.GroupModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class ImGroupServiceImpl extends BaseServiceImpl<Long, ImGroup> implements ImGroupService {
@@ -45,6 +43,8 @@ public class ImGroupServiceImpl extends BaseServiceImpl<Long, ImGroup> implement
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private ImSendGroupMessageDao imSendGroupMessageDao;
 
 	@Override
 	public BaseDAO<Long, ImGroup> getDAO() {
@@ -153,5 +153,4 @@ public class ImGroupServiceImpl extends BaseServiceImpl<Long, ImGroup> implement
 		//同步融云基本信息
 		imFeignService.update(new ImUserModel(sysUser.getId().toString(),nickName,sysUser.getAvatar()));
 	}
-
 }

+ 20 - 7
mec-biz/src/main/resources/config/mybatis/ImGroupMapper.xml

@@ -52,11 +52,6 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.ImGroup" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		<!--
-		<selectKey resultClass="int" keyProperty="id" > 
-		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
-		</selectKey>
-		-->
 		INSERT INTO im_group (id_,name_,introduce_,member_num_,memo_,tags_,img_,type_,create_time_,update_time_,tenant_id_)
 		VALUES(#{id},#{name},#{introduce},#{memberNum},#{memo},#{tags},#{img},#{type},#{createTime},#{updateTime},#{tenantId})
 	</insert>
@@ -116,12 +111,30 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ImGroup" parameterType="map">
-		SELECT * FROM im_group where tenant_id_ = #{tenantId} ORDER BY id_ <include refid="global.limit"/>
+		SELECT ig.* FROM im_group_member igm
+		LEFT JOIN im_group ig ON igm.im_group_id_ = ig.id_
+		where igm.user_id_ = #{userId}
+		<if test="search != null and search != ''">
+			AND (ig.name_ like concat('%',#{search},'%') or ig.tags_ like concat('%',#{search},'%'))
+		</if>
+		<if test="ignoreIds != null and ignoreIds != ''">
+			AND NOT FIND_IN_SET(ig.id_,#{ignoreIds})
+		</if>
+		ORDER BY id_
+		<include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM im_group where tenant_id_ = #{tenantId}
+		SELECT COUNT(ig.id_) FROM im_group_member igm
+		LEFT JOIN im_group ig ON igm.im_group_id_ = ig.id_
+		where igm.user_id_ = #{userId}
+		<if test="search != null and search != ''">
+			AND (ig.name_ like concat('%',#{search},'%') or ig.tags_ like concat('%',#{search},'%'))
+		</if>
+		<if test="ignoreIds != null and ignoreIds != ''">
+			AND NOT FIND_IN_SET(ig.id_,#{ignoreIds})
+		</if>
 	</select>
 	
 	<select id="queryByUserId" resultMap="ImGroup" parameterType="map">

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

@@ -86,16 +86,27 @@
 	<delete id="delete" >
 		DELETE FROM im_send_group_message WHERE id_ = #{id} 
 	</delete>
+
+	<sql id="queryPageSql">
+		<where>
+			<if test="sendFlag != null">
+				AND send_flag_ = #{sendFlag}
+			</if>
+		</where>
+	</sql>
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="ImSendGroupMessage" parameterType="map">
-		SELECT * FROM im_send_group_message ORDER BY id_
+		SELECT * FROM im_send_group_message
+		<include refid="queryPageSql" />
+		ORDER BY id_ DESC
 		<include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM im_send_group_message
+		<include refid="queryPageSql" />
 	</select>
     <select id="findBySendFlag" resultMap="ImSendGroupMessage">
 		SELECT * FROM im_send_group_message WHERE send_flag_ = #{sendFlag}

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

@@ -12,6 +12,8 @@ import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.biz.service.ImUserFriendService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.yonge.log.model.AuditLogAnnotation;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;

+ 23 - 15
mec-web/src/main/java/com/ym/mec/web/controller/ImSendGroupMessageController.java

@@ -4,18 +4,20 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.ImGroup;
 import com.ym.mec.biz.dal.entity.ImSendGroupMessage;
+import com.ym.mec.biz.dal.page.ImGroupQueryInfo;
+import com.ym.mec.biz.dal.page.ImSendGroupMessageQueryInfo;
 import com.ym.mec.biz.service.ImGroupService;
 import com.ym.mec.biz.service.ImSendGroupMessageService;
 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.common.page.PageInfo;
 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.List;
-import java.util.Objects;
+import java.util.Optional;
 
 @Api(tags = "群消息定时发送")
 @RequestMapping("imSendGroupMessage")
@@ -25,9 +27,15 @@ public class ImSendGroupMessageController extends BaseController {
     @Autowired
     private ImSendGroupMessageService imSendGroupMessageService;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
     private ImGroupService imGroupService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation("获取群消息列表")
+    @PostMapping(value = "/queryPage")
+    public HttpResponseResult<PageInfo<ImSendGroupMessage>> queryPage(ImSendGroupMessageQueryInfo queryInfo) throws Exception {
+        return succeed(imSendGroupMessageService.queryPage(queryInfo));
+    }
 
     @ApiOperation("发送群聊消息")
     @PostMapping(value = "/send")
@@ -51,16 +59,16 @@ public class ImSendGroupMessageController extends BaseController {
     }
 
     @ApiOperation("查询群列表(没有在消息列表的)")
-    @GetMapping(value = "/queryGroupList")
-    public HttpResponseResult<List<ImGroup>> queryGroupList(String search,Long imSendGroupMessageId) {
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if (Objects.isNull(sysUser)) {
-            return failed(HttpStatus.FORBIDDEN, "请登录");
-        }
-        ImSendGroupMessage imSendGroupMessage = imSendGroupMessageService.get(imSendGroupMessageId);
-        if (Objects.isNull(imSendGroupMessage)) {
-            return failed(HttpStatus.NOT_FOUND, "消息不存在");
+    @PostMapping(value = "/queryGroupPage")
+    public HttpResponseResult<PageInfo<ImGroup>> queryGroupPage(ImGroupQueryInfo imGroupQueryInfo) throws Exception {
+        SysUser sysUser = Optional.of(sysUserFeignService.queryUserInfo()).
+                orElseThrow(() -> new Exception("请登录"));
+        imGroupQueryInfo.setUserId(sysUser.getId());
+        if(imGroupQueryInfo.getImSendGroupMessageId() != null){
+            ImSendGroupMessage imSendGroupMessage = Optional.of(imSendGroupMessageService.get(imGroupQueryInfo.getImSendGroupMessageId())).
+                    orElseThrow(()->new BizException("消息不存在"));
+            imGroupQueryInfo.setIgnoreIds(imSendGroupMessage.getTargetIds());
         }
-        return succeed(imGroupService.queryByUserId(sysUser.getId(), search,imSendGroupMessage.getTargetIds()));
+        return succeed(imGroupService.queryPage(imGroupQueryInfo));
     }
 }