Browse Source

邻里党群相关

hotfix/yujt_opt
曲树通 5 years ago
parent
commit
9eda6edc46
  1. 8
      epdc-cloud-property/pom.xml
  2. 24
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/controller/UserGroupController.java
  3. 20
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/dao/UserGroupDao.java
  4. 24
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/UserGroupService.java
  5. 27
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/impl/UserGroupServiceImpl.java
  6. 277
      epdc-cloud-property/src/main/resources/mapper/comment/TopicCommentDao.xml
  7. 20
      epdc-cloud-property/src/main/resources/mapper/comment/TopicCommentUserAttitudeDao.xml
  8. 409
      epdc-cloud-property/src/main/resources/mapper/group/GroupDao.xml
  9. 117
      epdc-cloud-property/src/main/resources/mapper/group/UserGroupDao.xml
  10. 10
      epdc-cloud-property/src/main/resources/mapper/topic/GroupTopicUserReadDao.xml
  11. 21
      epdc-cloud-property/src/main/resources/mapper/topic/TopicAuditRecordDao.xml
  12. 304
      epdc-cloud-property/src/main/resources/mapper/topic/TopicDao.xml

8
epdc-cloud-property/pom.xml

@ -183,9 +183,9 @@
<server.port>10009</server.port>
<spring.redis.index>2</spring.redis.index>
<spring.redis.host>47.104.224.45</spring.redis.host>
<spring.redis.port>6379</spring.redis.port>
<spring.redis.password>elink@888</spring.redis.password>
<spring.redis.host>114.215.125.123</spring.redis.host>
<spring.redis.port>9603</spring.redis.port>
<spring.redis.password>epdc!redis@master1405</spring.redis.password>
<spring.datasource.druid.url>
<![CDATA[jdbc:mysql://47.104.224.45:3308/esua_epdc_property?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai]]>
@ -196,7 +196,7 @@
<nacos.register-enabled>false</nacos.register-enabled>
<nacos.server-addr>47.104.224.45:8848</nacos.server-addr>
<nacos.ip></nacos.ip>
<nacos.namespace>de000340-5fc4-45aa-bdbc-dd96852012ad</nacos.namespace>
<nacos.namespace>a746dde3-7a13-4521-b986-7369b0b7c269</nacos.namespace>
<!--小程序配置-->
<wx.ma.appId>wxdd8530c5f4926766</wx.ma.appId>

24
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/controller/UserGroupController.java

@ -25,6 +25,7 @@ import com.elink.esua.epdc.commons.tools.validator.group.AddGroup;
import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup;
import com.elink.esua.epdc.dto.group.UserGroupDTO;
import com.elink.esua.epdc.dto.group.form.GroupToAdminFormDTO;
import com.elink.esua.epdc.modules.group.service.UserGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@ -81,4 +82,27 @@ public class UserGroupController {
return new Result();
}
/***
* 校验该群是否存在群主
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2020/5/11 15:23
*/
@PostMapping("checkGroupOwner")
public Result checkGroupOwner(@RequestBody GroupToAdminFormDTO formDTO){
return userGroupService.checkGroupOwner(formDTO);
}
/***
* 指定群主
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2020/5/11 15:23
*/
@PostMapping("toBecomeGroupOwner")
public Result toBecomeGroupOwner(@RequestBody GroupToAdminFormDTO formDTO){
return userGroupService.modifyGroupOwner(formDTO);
}
}

20
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/dao/UserGroupDao.java

@ -19,6 +19,7 @@ package com.elink.esua.epdc.modules.group.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.group.UserGroupDTO;
import com.elink.esua.epdc.dto.group.form.GroupToAdminFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupUserPartyMemberFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupUserRemoveOrQuitFormDTO;
import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO;
@ -113,5 +114,24 @@ public interface UserGroupDao extends BaseDao<UserGroupEntity> {
* @since 2019/11/11 14:30
*/
void updateGroupUsersPartyMember(GroupUserPartyMemberFormDTO formDto);
/***
* 校验是否有群主
* @param formDTO
* @return java.lang.Integer
* @author qushutong
* @date 2020/5/11 15:26
*/
Integer checkGroupOwnerExists(GroupToAdminFormDTO formDTO);
/***
* z指定群主
* @param formDTO
* @return void
* @author qushutong
* @date 2020/5/11 15:41
*/
void updataGroupOwner(GroupToAdminFormDTO formDTO);
}

24
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/UserGroupService.java

@ -23,10 +23,7 @@ import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.epdc.form.EpdcUserGroupInviteFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcUserGroupInviteResultDTO;
import com.elink.esua.epdc.dto.group.UserGroupDTO;
import com.elink.esua.epdc.dto.group.form.GroupAddUserFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupUserPartyMemberFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupUserRemoveOrQuitFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupUserReviewFormDTO;
import com.elink.esua.epdc.dto.group.form.*;
import com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO;
import com.elink.esua.epdc.modules.group.entity.UserGroupEntity;
@ -188,4 +185,23 @@ public interface UserGroupService extends BaseService<UserGroupEntity> {
* @since 2019/11/11 14:27
*/
Result modifyGroupUsersPartyMember(GroupUserPartyMemberFormDTO formDto);
/***
* 校验此群是否有群主
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2020/5/11 14:54
*/
Result checkGroupOwner(GroupToAdminFormDTO formDTO);
/***
* 指定群主
* @param formDTO
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author qushutong
* @date 2020/5/11 15:40
*/
Result modifyGroupOwner(GroupToAdminFormDTO formDTO);
}

27
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/group/service/impl/UserGroupServiceImpl.java

@ -51,10 +51,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
* 用户社群关系表 用户社群关系表
@ -292,6 +289,8 @@ public class UserGroupServiceImpl extends BaseServiceImpl<UserGroupDao, UserGrou
return new Result();
}
/**
* @Description: 被邀请入群短信通知
* @Param: [userMobiles]
@ -306,4 +305,24 @@ public class UserGroupServiceImpl extends BaseServiceImpl<UserGroupDao, UserGrou
sms.setSmsTemplateType(SysSmsTemplateConstant.SMS_TEMPLATE_RESIDENTS_GROUP_INVITE_JOIN);
issueOverseeResultsTask.sendSmsNotice(sms);
}
@Override
public Result checkGroupOwner(GroupToAdminFormDTO formDTO) {
// 查询此群内有没有群主
Integer integer = baseDao.checkGroupOwnerExists(formDTO);
Map map= new HashMap();
if(integer>0){
map.put("resultCode",1);
map.put("resultMessage","此群已经有群主 是否替换?");
return new Result().ok(map);
}
map.put("resultCode",0);
return new Result().ok(map);
}
@Override
public Result modifyGroupOwner(GroupToAdminFormDTO formDTO) {
baseDao.updataGroupOwner(formDTO);
return new Result();
}
}

277
epdc-cloud-property/src/main/resources/mapper/comment/TopicCommentDao.xml

@ -0,0 +1,277 @@
<?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.elink.esua.epdc.modules.comment.dao.TopicCommentDao">
<resultMap type="com.elink.esua.epdc.modules.comment.entity.TopicCommentEntity" id="topicCommentMap">
<result property="id" column="ID"/>
<result property="topicId" column="TOPIC_ID"/>
<result property="userId" column="USER_ID"/>
<result property="username" column="USERNAME"/>
<result property="userFace" column="USER_FACE"/>
<result property="content" column="CONTENT"/>
<result property="commentType" column="COMMENT_TYPE"/>
<result property="commentId" column="COMMENT_ID"/>
<result property="replyCount" column="REPLY_COUNT"/>
<result property="replyUserId" column="REPLY_USER_ID"/>
<result property="replyUsername" column="REPLY_USERNAME"/>
<result property="replyUserFace" column="REPLY_USER_FACE"/>
<result property="likeCount" column="LIKE_COUNT"/>
<result property="unLikeCount" column="UN_LIKE_COUNT"/>
<result property="shieldFlag" column="SHIELD_FLAG"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
<result property="partyFlag" column="PARTY_FLAG"/>
</resultMap>
<update id="updateReplyCount" parameterType="java.lang.String">
UPDATE epdc_topic_comment
SET REPLY_COUNT = REPLY_COUNT + 1
WHERE ID = #{commentId}
</update>
<update id="updateApproveNumAdd" parameterType="java.lang.String">
UPDATE epdc_topic_comment
SET LIKE_COUNT = LIKE_COUNT + 1
WHERE ID = #{commentId}
</update>
<update id="updateOpposeNumAdd" parameterType="java.lang.String">
UPDATE epdc_topic_comment
SET UN_LIKE_COUNT = UN_LIKE_COUNT + 1
WHERE ID = #{commentId}
</update>
<update id="updateApproveNumSubtract" parameterType="java.lang.String">
UPDATE epdc_topic_comment
SET LIKE_COUNT = LIKE_COUNT - 1
WHERE ID = #{commentId}
</update>
<update id="updateOpposeNumSubtract" parameterType="java.lang.String">
UPDATE epdc_topic_comment
SET UN_LIKE_COUNT = UN_LIKE_COUNT - 1
WHERE ID = #{commentId}
</update>
<select id="selectCountOfStatementNum" resultType="long">
SELECT
COUNT( ID ) +
CASE
WHEN SUM( LIKE_COUNT + UN_LIKE_COUNT ) IS NULL THEN
0 ELSE SUM( LIKE_COUNT + UN_LIKE_COUNT )
END AS statementNum
FROM
epdc_topic_comment
WHERE
DEL_FLAG = '0'
AND TOPIC_ID = #{topicId}
</select>
<resultMap id="listOfCommentsMap" type="com.elink.esua.epdc.dto.topic.TopicCommentsDTO">
<result property="commentId" column="ID"/>
<result property="content" column="CONTENT"/>
<result property="commentTime" column="CREATED_TIME"/>
<result property="user.userId" column="USER_ID"/>
<result property="user.userName" column="USERNAME"/>
<result property="user.userFace" column="USER_FACE"/>
<result property="user.partyFlag" column="PARTY_FLAG"/>
<result property="approveNum" column="LIKE_COUNT"/>
<result property="opposeNum" column="UN_LIKE_COUNT"/>
<result property="userLike" column="userLike"/>
<result property="userDislike" column="userDislike"/>
<result property="attitudeNum" column="attitudeNum"/>
<result property="replyComment.userName" column="replyUserName"/>
<result property="replyComment.content" column="replyContent"/>
</resultMap>
<select id="selectListOfComments" resultMap="listOfCommentsMap">
SELECT
t2.ID,
t2.COMMENT_ID,
t2.CONTENT,
t2.CREATED_TIME,
t2.USER_ID,
t2.USER_FACE,
t2.USERNAME,
t2.PARTY_FLAG,
t2.LIKE_COUNT,
t2.UN_LIKE_COUNT,
t2.userLike,
t2.userDislike,
t3.ID AS replyId,
t3.USERNAME AS replyUserName,
t3.CONTENT AS replyContent,
t2.attitudeNum
FROM
(
SELECT
<if test='userId != "" and userId != null'>
(ua.attitude_flag = 0) userLike,
(ua.attitude_flag = 1) userDislike,
</if>
t1.ID,
t1.COMMENT_ID,
t1.CONTENT,
t1.CREATED_TIME,
t1.USER_ID,
t1.USER_FACE,
t1.USERNAME,
t1.PARTY_FLAG,
t1.LIKE_COUNT,
t1.UN_LIKE_COUNT,
(t1.REPLY_COUNT + t1.LIKE_COUNT + t1.UN_LIKE_COUNT) AS attitudeNum
FROM
epdc_topic_comment t1
<if test='userId != "" and userId != null'>
LEFT JOIN epdc_topic_comment_user_attitude ua ON t1.ID = ua.COMMENT_ID
AND ua.DEL_FLAG = '0'
AND ua.USER_ID = #{userId}
AND ua.UPDATED_TIME = (
SELECT
MAX( a.updated_time )
FROM
epdc_topic_comment_user_attitude a
WHERE
a.COMMENT_ID = ua.COMMENT_ID
AND a.user_id = ua.user_id
)
</if>
WHERE
t1.DEL_FLAG = '0'
AND t1.SHIELD_FLAG = '0'
<if test="timestamp != null and timestamp.trim() != ''">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{timestamp}
</if>
AND t1.TOPIC_ID = #{topicId}
ORDER BY
<if test='orderType == "1"'>
attitudeNum DESC,
</if>
t1.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
) t2
LEFT JOIN epdc_topic_comment t3 ON t2.COMMENT_ID = t3.ID
ORDER BY
<if test='orderType == "1"'>
attitudeNum DESC,
</if>
t2.CREATED_TIME DESC
</select>
<resultMap id="commentListMap" type="com.elink.esua.epdc.dto.comment.TopicCommentListDTO">
<result property="commentId" column="ID"/>
<result property="content" column="CONTENT"/>
<result property="commentTime" column="CREATED_TIME"/>
<result property="shieldFlag" column="SHIELD_FLAG"/>
<result property="user.userId" column="USER_ID"/>
<result property="user.userName" column="USERNAME"/>
<result property="user.userFace" column="USER_FACE"/>
<result property="replyComment.userName" column="replyUserName"/>
<result property="replyComment.content" column="replyContent"/>
</resultMap>
<select id="selectListOfCommentsByTopicId" resultMap="commentListMap">
SELECT
t2.ID,
t2.COMMENT_ID,
t2.CONTENT,
t2.CREATED_TIME,
t2.USER_ID,
t2.USER_FACE,
t2.USERNAME,
t2.SHIELD_FLAG,
t3.ID AS replyId,
t3.USERNAME AS replyUserName,
t3.CONTENT AS replyContent
FROM
(
SELECT
t1.ID,
t1.COMMENT_ID,
t1.CONTENT,
t1.CREATED_TIME,
t1.USER_ID,
t1.USER_FACE,
t1.USERNAME,
t1.SHIELD_FLAG
FROM
epdc_topic_comment t1
WHERE
t1.DEL_FLAG = '0'
AND t1.TOPIC_ID = #{id}
ORDER BY
t1.CREATED_TIME DESC
) t2
LEFT JOIN epdc_topic_comment t3 ON t2.COMMENT_ID = t3.ID
ORDER BY
t2.CREATED_TIME DESC
</select>
<update id="updateCommentShieldFlag">
UPDATE epdc_topic_comment SET SHIELD_FLAG = '1' WHERE ID IN
<foreach collection="commentIds" item="commentId" index="no" open="("
separator="," close=")">
#{commentId}
</foreach>
</update>
<select id="selectListCommentForEvent" resultType="com.elink.esua.epdc.dto.comment.EventCommentDTO">
SELECT
ID,
#{eventId} AS EVENT_ID,
USER_ID,
USERNAME AS USER_NAME,
USER_FACE,
CONTENT,
COMMENT_TYPE,
COMMENT_ID,
REPLY_COUNT,
REPLY_USER_ID,
REPLY_USERNAME AS REPLY_USER_NAME,
REPLY_USER_FACE,
LIKE_COUNT,
UN_LIKE_COUNT,
SHIELD_FLAG,
DEL_FLAG,
REVISION,
CREATED_BY,
CREATED_TIME,
UPDATED_BY,
UPDATED_TIME,
PARTY_FLAG,
'0' AS SENSITIVE_FLAG
FROM
epdc_topic_comment
WHERE
DEL_FLAG = '0'
AND TOPIC_ID = #{topicId}
</select>
<select id="selectListCommentAttitudeForEvent" resultType="com.elink.esua.epdc.dto.comment.EventCommentUserAttitudeDTO">
SELECT
t1.ID,
t1.COMMENT_ID AS EVENT_COMMENT_ID,
t1.USER_ID,
t1.ATTITUDE_FLAG,
t1.DEL_FLAG,
t1.REVISION,
t1.CREATED_BY,
t1.CREATED_TIME,
t1.UPDATED_BY,
t1.UPDATED_TIME
FROM
epdc_topic_comment_user_attitude t1
WHERE
t1.DEL_FLAG = '0'
AND t1.COMMENT_ID IN ( SELECT t2.ID FROM epdc_topic_comment t2 WHERE t2.DEL_FLAG = '0' AND t2.TOPIC_ID = #{topicId} )
</select>
</mapper>

20
epdc-cloud-property/src/main/resources/mapper/comment/TopicCommentUserAttitudeDao.xml

@ -0,0 +1,20 @@
<?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.elink.esua.epdc.modules.comment.dao.TopicCommentUserAttitudeDao">
<resultMap type="com.elink.esua.epdc.modules.comment.entity.TopicCommentUserAttitudeEntity" id="topicCommentUserAttitudeMap">
<result property="id" column="ID"/>
<result property="commentId" column="COMMENT_ID"/>
<result property="userId" column="USER_ID"/>
<result property="attitudeFlag" column="ATTITUDE_FLAG"/>
<result property="delFlag" column="DEL_FLAG"/>
<result property="revision" column="REVISION"/>
<result property="createdBy" column="CREATED_BY"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="updatedBy" column="UPDATED_BY"/>
<result property="updatedTime" column="UPDATED_TIME"/>
</resultMap>
</mapper>

409
epdc-cloud-property/src/main/resources/mapper/group/GroupDao.xml

@ -0,0 +1,409 @@
<?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.elink.esua.epdc.modules.group.dao.GroupDao">
<select id="selectListOfGroups" resultType="com.elink.esua.epdc.dto.group.GroupManagementDTO">
SELECT
gp.ID,
gp.GROUP_NAME,
gp.GROUP_CATEGORY,
gp.CREATED_TIME,
ugp.NICKNAME,
gp.STATE
FROM
epdc_group gp
LEFT JOIN epdc_user_group ugp ON ugp.GROUP_ID = gp.ID
AND ugp.DEL_FLAG = '0'
AND ugp.LORD_FLAG = '1'
WHERE
gp.DEL_FLAG = '0'
<if test="state != null and state != ''">
AND gp.STATE = #{state}
</if>
<if test="gridId != null and gridId != ''">
AND (gp.GRID_ID = #{gridId}
OR find_in_set(#{gridId},gp.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},gp.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},gp.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},gp.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},gp.ALL_DEPT_IDS))
</if>
ORDER BY
gp.GROUP_CATEGORY, gp.CREATED_TIME DESC
</select>
<select id="selectListOfRepeatGroupName" resultType="long">
SELECT COUNT(ID) amount FROM epdc_group WHERE DEL_FLAG = '0' AND GRID_ID = #{gridId} AND GROUP_NAME = #{groupName}
</select>
<select id="selectOneOfGroupDetail" resultType="com.elink.esua.epdc.dto.group.GroupDetailDTO">
SELECT
gp.ID,
gp.GROUP_NAME,
gp.GROUP_INTRODUCTION,
gp.CREATED_TIME,
ugp.NICKNAME
FROM
epdc_group gp
LEFT JOIN epdc_user_group ugp ON gp.ID = ugp.GROUP_ID
AND ugp.DEL_FLAG = '0'
AND ugp.LORD_FLAG = '1'
WHERE
gp.DEL_FLAG = '0'
AND gp.ID = #{id}
</select>
<!-- <select id="selectListGroupsOfMine" resultType="com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO">-->
<!-- SELECT-->
<!-- gp.ID,-->
<!-- gp.GROUP_NAME,-->
<!-- gp.GROUP_AVATAR,-->
<!-- gp.GROUP_CATEGORY,-->
<!-- gp.STATE,-->
<!-- COUNT( DISTINCT ugp1.ID ) AS totalNum,-->
<!-- COUNT(DISTINCT ugp2.ID) AS partyMemberNum,-->
<!-- COUNT( DISTINCT ugpr.ID ) AS unreadTopicNum,-->
<!-- MAX( tp.CREATED_TIME ) AS latestTopicTime,-->
<!-- CASE-->
<!-- WHEN gp.STATE = 0 THEN-->
<!-- '网格长会尽快审核您创建的社群,请耐心等待'-->
<!-- WHEN gp.STATE = 5 THEN-->
<!-- gp.PROCESSING_OPINIONS-->
<!-- WHEN ( gp.STATE = 10 AND COUNT( DISTINCT ugp1.ID ) <![CDATA[ <= ]]> 1 AND gp.GROUP_CATEGORY = '1' AND COUNT(DISTINCT tp.ID) = 0 ) THEN-->
<!-- '您的社群审核已通过,快加好友进来吧' ELSE ''-->
<!-- END AS description-->
<!-- FROM-->
<!-- epdc_group gp-->
<!-- RIGHT JOIN epdc_user_group ugp ON gp.ID = ugp.GROUP_ID-->
<!-- AND ugp.DEL_FLAG = '0'-->
<!-- AND ugp.USER_ID = #{userId}-->
<!-- AND ugp.STATE = 10-->
<!-- LEFT JOIN epdc_user_group ugp1 ON gp.ID = ugp1.GROUP_ID-->
<!-- AND ugp1.DEL_FLAG = '0'-->
<!-- AND ugp1.STATE = 10-->
<!-- LEFT JOIN epdc_user_group ugp2 ON gp.ID = ugp2.GROUP_ID-->
<!-- AND ugp2.DEL_FLAG = '0'-->
<!-- AND ugp2.STATE = 10-->
<!-- AND ugp2.PARTY_MEMBER = '1'-->
<!-- LEFT JOIN epdc_group_topic_user_read ugpr ON gp.ID = ugpr.GROUP_ID-->
<!-- AND ugpr.DEL_FLAG = '0'-->
<!-- AND ugpr.USER_ID = #{userId}-->
<!-- AND ugpr.READ_FLAG = '0'-->
<!-- LEFT JOIN epdc_topic tp ON gp.ID = tp.GROUP_ID-->
<!-- AND tp.DEL_FLAG = '0'-->
<!-- WHERE-->
<!-- gp.DEL_FLAG = '0'-->
<!-- AND gp.GRID_ID = #{gridId}-->
<!-- <![CDATA[ AND gp.STATE <> ]]> 20-->
<!-- GROUP BY-->
<!-- gp.ID-->
<!-- ORDER BY-->
<!-- MAX( tp.CREATED_TIME ) DESC-->
<!-- </select>-->
<select id="selectListGroupsOfMine" resultType="com.elink.esua.epdc.dto.group.result.GroupsOfMineResultDTO">
SELECT
t.ID,
t.GROUP_NAME,
t.GROUP_AVATAR,
t.GROUP_CATEGORY,
t.STATE,
t.totalNum,
t.partyMemberNum,
COUNT( DISTINCT ugpr.ID ) AS unreadTopicNum,
MAX( tp.CREATED_TIME ) AS latestTopicTime,
CASE
WHEN t.STATE = 0 THEN
'网格长会尽快审核您创建的社群,请耐心等待'
WHEN t.STATE = 5 THEN
t.PROCESSING_OPINIONS
WHEN (
t.STATE = 10
AND t.totalNum <![CDATA[ <= ]]> 1
AND t.GROUP_CATEGORY = '1'
AND COUNT( DISTINCT tp.ID ) = 0
) THEN
'您的社群审核已通过,快加好友进来吧' ELSE ''
END AS description
FROM
(
SELECT
gp.ID,
gp.GROUP_NAME,
gp.GROUP_AVATAR,
gp.GROUP_CATEGORY,
gp.STATE,
gp.PROCESSING_OPINIONS,
SUM( ugp.STATE = 10 ) AS totalNum,
SUM( ugp.PARTY_MEMBER = '1' ) AS partyMemberNum
FROM
epdc_group gp
LEFT JOIN epdc_user_group ugp ON ugp.GROUP_ID = gp.ID
AND ugp.DEL_FLAG = '0'
AND ugp.STATE = 10
WHERE
gp.ID IN (
SELECT
gp.ID
FROM
epdc_group gp
RIGHT JOIN epdc_user_group ugp ON gp.ID = ugp.GROUP_ID
AND ugp.DEL_FLAG = '0'
AND ugp.STATE = 10
AND ugp.USER_ID = #{userId}
WHERE
gp.DEL_FLAG = '0'
AND gp.STATE <![CDATA[ AND gp.STATE <> ]]> 20
AND gp.GRID_ID = #{gridId}
)
GROUP BY
gp.ID
) t
LEFT JOIN epdc_group_topic_user_read ugpr ON t.ID = ugpr.GROUP_ID
AND ugpr.DEL_FLAG = '0'
AND ugpr.USER_ID = #{userId}
AND ugpr.READ_FLAG = '0'
LEFT JOIN epdc_topic tp ON t.ID = tp.GROUP_ID
AND tp.DEL_FLAG = '0'
GROUP BY
t.ID
ORDER BY
latestTopicTime DESC
</select>
<!-- <select id="selectListGroupsOfRecommend" resultType="com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO">-->
<!-- SELECT-->
<!-- gp.ID,-->
<!-- gp.GROUP_NAME,-->
<!-- gp.GROUP_AVATAR,-->
<!-- COUNT( DISTINCT ugp1.ID ) AS totalNum,-->
<!-- COUNT( DISTINCT ugp2.ID ) AS partyMemberNum-->
<!-- FROM-->
<!-- epdc_group gp-->
<!-- LEFT JOIN epdc_user_group ugp1 ON gp.ID = ugp1.GROUP_ID-->
<!-- AND ugp1.DEL_FLAG = '0'-->
<!-- AND ugp1.STATE = 10-->
<!-- LEFT JOIN epdc_user_group ugp2 ON gp.ID = ugp2.GROUP_ID-->
<!-- AND ugp2.DEL_FLAG = '0'-->
<!-- AND ugp2.STATE = 10-->
<!-- AND ugp2.PARTY_MEMBER = '1'-->
<!-- LEFT JOIN epdc_topic tp ON gp.ID = tp.GROUP_ID-->
<!-- AND tp.DEL_FLAG = '0'-->
<!-- WHERE-->
<!-- gp.DEL_FLAG = '0'-->
<!-- AND gp.STATE IN ( 10, 15 )-->
<!-- AND gp.GRID_ID = #{gridId}-->
<!-- AND gp.GROUP_CATEGORY = '1'-->
<!-- AND gp.ID NOT IN ( SELECT ugp.GROUP_ID FROM epdc_user_group ugp WHERE ugp.USER_ID = #{userId} AND ugp.DEL_FLAG = '0' AND ugp.STATE = 10 )-->
<!-- GROUP BY-->
<!-- gp.ID-->
<!-- ORDER BY-->
<!-- MAX( tp.CREATED_TIME ) DESC-->
<!-- </select>-->
<select id="selectListGroupsOfRecommend" resultType="com.elink.esua.epdc.dto.group.result.GroupsOfRecommendResultDTO">
SELECT
gp.ID,
gp.GROUP_NAME,
gp.GROUP_AVATAR,
(SELECT COUNT(ugp1.ID) FROM epdc_user_group ugp1 WHERE gp.ID = ugp1.GROUP_ID AND ugp1.DEL_FLAG = '0' AND ugp1.STATE = 10) AS totalNum,
(SELECT COUNT(ugp2.ID) FROM epdc_user_group ugp2 WHERE gp.ID = ugp2.GROUP_ID AND ugp2.DEL_FLAG = '0' AND ugp2.STATE = 10 AND ugp2.PARTY_MEMBER = '1') AS partyMemberNum
FROM
epdc_group gp
LEFT JOIN epdc_topic tp ON gp.ID = tp.GROUP_ID
AND tp.DEL_FLAG = '0'
WHERE
gp.DEL_FLAG = '0'
AND gp.STATE IN ( 10, 15 )
AND gp.GRID_ID = #{gridId}
AND gp.GROUP_CATEGORY = '1'
AND gp.ID NOT IN ( SELECT ugp.GROUP_ID FROM epdc_user_group ugp WHERE ugp.USER_ID = #{userId} AND ugp.DEL_FLAG = '0' AND ugp.STATE = 10 )
GROUP BY
gp.ID
ORDER BY
MAX( tp.CREATED_TIME ) DESC
</select>
<select id="selectOneOfGroupDetailForMobileEnd" resultType="com.elink.esua.epdc.dto.group.result.GroupDetailForMobileEndResultDTO">
SELECT
gp.ID,
gp.GROUP_NAME,
gp.GROUP_AVATAR,
gp.GROUP_CATEGORY,
gp.GROUP_INTRODUCTION,
COUNT( DISTINCT ugp.ID ) AS totalNum,
ugp1.NICKNAME,
ugp2.LORD_FLAG,
COUNT( DISTINCT tp.ID ) AS topicNum,
COUNT( DISTINCT tp1.ID ) AS changeToIssueNum
FROM
epdc_group gp
LEFT JOIN epdc_user_group ugp ON gp.ID = ugp.GROUP_ID
AND ugp.DEL_FLAG = '0'
AND ugp.STATE = 10
LEFT JOIN epdc_user_group ugp1 ON gp.ID = ugp1.GROUP_ID
AND ugp1.DEL_FLAG = '0'
AND ugp1.STATE = 10
AND ugp1.LORD_FLAG = '1'
LEFT JOIN epdc_user_group ugp2 ON gp.ID = ugp2.GROUP_ID
AND ugp2.DEL_FLAG = '0'
AND ugp2.STATE = 10
AND ugp2.USER_ID = #{userId}
LEFT JOIN epdc_topic tp ON gp.ID = tp.GROUP_ID
AND tp.DEL_FLAG = '0'
LEFT JOIN epdc_topic tp1 ON gp.ID = tp1.GROUP_ID
AND tp1.DEL_FLAG = '0'
AND (tp1.STATE = 10 OR tp1.STATE = 15)
WHERE
gp.DEL_FLAG = '0'
AND gp.ID = #{id}
</select>
<select id="selectListOfGroupByGridId" resultType="com.elink.esua.epdc.dto.group.GroupListDTO">
SELECT
ID AS groupId,
GROUP_NAME AS groupName
FROM
epdc_group
WHERE
DEL_FLAG = '0'
AND STATE IN ( 10, 15, 20 )
AND GRID_ID = #{deptId}
</select>
<select id="selectListOfGroupOrderByActivity" resultType="com.elink.esua.epdc.dto.group.GroupActivityDTO">
SELECT
gp.GROUP_NAME,
gp.ALL_DEPT_NAMES
FROM
epdc_group gp
LEFT JOIN (
SELECT
tc.GROUP_ID,
( tc.COMMENT_NUM + tc.BROWSE_NUM + SUM( tcm.LIKE_COUNT ) + SUM( tcm.UN_LIKE_COUNT ) ) AS attitudeNum
FROM
epdc_topic tc
LEFT JOIN epdc_topic_comment tcm ON tc.ID = tcm.TOPIC_ID
AND tcm.DEL_FLAG = '0'
WHERE
tc.DEL_FLAG = '0'
group by
tc.ID
) tmp ON gp.ID = tmp.GROUP_ID
WHERE
gp.DEL_FLAG = '0'
AND gp.STATE IN ( 10, 15 )
<if test="gridId != null and gridId != ''">
AND (gp.GRID_ID = #{gridId}
OR find_in_set(#{gridId},gp.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},gp.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},gp.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},gp.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},gp.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( gp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY
gp.ID
ORDER BY
SUM( tmp.attitudeNum ) DESC,
gp.CREATED_TIME DESC
</select>
<select id="selectListOfGroupOrderByMember" resultType="com.elink.esua.epdc.dto.group.GroupMemberDTO">
SELECT
gp.GROUP_NAME,
CASE
WHEN COUNT( up.ID ) IS NULL THEN
0 ELSE COUNT( up.ID ) END AS memberNum,
gp.ALL_DEPT_NAMES
FROM
epdc_group gp
LEFT JOIN epdc_user_group up ON gp.ID = up.GROUP_ID
AND up.DEL_FLAG = '0'
AND up.STATE = 10
WHERE
gp.DEL_FLAG = '0'
AND gp.STATE IN ( 10, 15 )
<if test="gridId != null and gridId != ''">
AND (gp.GRID_ID = #{gridId}
OR find_in_set(#{gridId},gp.ALL_DEPT_IDS))
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},gp.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},gp.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},gp.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},gp.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( gp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
GROUP BY
gp.ID
ORDER BY
memberNum DESC,
gp.CREATED_TIME DESC
</select>
<select id="selectOnePartyGroupInfoByGridId" resultType="com.elink.esua.epdc.dto.group.GroupDTO">
SELECT * FROM epdc_group WHERE DEL_FLAG = '0' AND GROUP_CATEGORY = '0' AND GRID_ID = #{gridId}
</select>
<!-- 查询已经建立党员群的网格id -->
<select id="listPartyMemberGridId" resultType="java.lang.String">
select distinct eg.GRID_ID
from epdc_group eg
where eg.DEL_FLAG='0'
and eg.GROUP_CATEGORY='0'
</select>
<!--根据社群id,查询群主手机号-->
<select id="queryGroupUserMOBILE" resultType="java.lang.String">
select MOBILE from
epdc_user_group
where GROUP_ID = #{groupId}
and LORD_FLAG = 1
and DEL_FLAG = 0
</select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.group.GroupDTO">
SELECT
ID,
PARENT_DEPT_IDS,
PARENT_DEPT_NAMES,
ALL_DEPT_IDS,
ALL_DEPT_NAMES
FROM
epdc_group
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
</select>
<update id="updateGridByDeptId">
UPDATE epdc_group SET GRID = #{newDeptName}, UPDATED_TIME = NOW() WHERE GRID_ID = #{deptId}
</update>
<select id="selectListOfPartyGroups" resultType="com.elink.esua.epdc.dto.group.GroupDTO">
SELECT
ID,
ALL_DEPT_NAMES
FROM
epdc_group
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
AND GROUP_CATEGORY = '0'
</select>
</mapper>

117
epdc-cloud-property/src/main/resources/mapper/group/UserGroupDao.xml

@ -0,0 +1,117 @@
<?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.elink.esua.epdc.modules.group.dao.UserGroupDao">
<select id="selectListOfGroupUsers" resultType="com.elink.esua.epdc.dto.group.UserGroupDTO">
SELECT
ugp.USER_ID,
ugp.NICKNAME,
ugp.LORD_FLAG,
ugp.MOBILE,
ugp.GROUP_ID,
ugp.ID
FROM
epdc_user_group ugp
WHERE
ugp.DEL_FLAG = '0'
AND ugp.GROUP_ID = #{groupId}
AND ugp.STATE = #{state}
<if test="nickname != null and nickname != ''">
AND ugp.NICKNAME LIKE concat('%', trim(#{nickname}), '%')
</if>
<if test="mobile != null and mobile != ''">
AND ugp.MOBILE = trim(#{mobile})
</if>
ORDER BY
ugp.LORD_FLAG DESC,
ugp.CREATED_TIME DESC
</select>
<select id="selectListOfGroupUsersByState" resultType="com.elink.esua.epdc.dto.group.result.GroupUserListResultDTO">
SELECT
ID,
NICKNAME,
USER_AVATAR,
LORD_FLAG,
CREATED_TIME,
USER_ID
FROM
epdc_user_group
WHERE
DEL_FLAG = '0'
AND STATE = #{state}
AND GROUP_ID = #{groupId}
ORDER BY
LORD_FLAG DESC,
<if test="state == 10">
CONVERT(NICKNAME USING gbk) ASC,
</if>
CREATED_TIME DESC
</select>
<select id="selectOneOfLordInfoByGroupId" resultType="com.elink.esua.epdc.dto.group.UserGroupDTO">
SELECT
ID,
GROUP_ID,
USER_ID,
NICKNAME,
USER_AVATAR,
MOBILE,
LORD_FLAG,
PARTY_MEMBER
FROM
epdc_user_group
WHERE
DEL_FLAG = '0'
AND STATE = 10
AND LORD_FLAG = '1'
AND GROUP_ID = #{groupId}
</select>
<update id="updateMemberState">
UPDATE epdc_user_group SET STATE = #{state} WHERE GROUP_ID = #{groupId} AND USER_ID = #{userId} AND DEL_FLAG = '0'
</update>
<select id="selectOnOfUserInfo" resultType="com.elink.esua.epdc.dto.group.UserGroupDTO">
SELECT * FROM epdc_user_group WHERE DEL_FLAG = '0' AND GROUP_ID = #{groupId} AND USER_ID = #{userId}
AND STATE in
<foreach item="state" collection="states" open="(" separator="," close=")">
#{state}
</foreach>
</select>
<select id="selectListOfGroupUserIdsByState" resultType="string">
SELECT
USER_ID
FROM
epdc_user_group
WHERE
DEL_FLAG = '0'
AND GROUP_ID = #{groupId}
AND STATE IN
<foreach item="state" collection="states" open="(" separator="," close=")">
#{state}
</foreach>
</select>
<update id="updateGroupUsersPartyMember">
UPDATE epdc_user_group SET PARTY_MEMBER = #{partyMember} WHERE USER_ID = #{userId}
</update>
<select id="checkGroupOwnerExists" resultType="Integer">
SELECT
COUNT(*)
FROM
epdc_user_group ug
WHERE
ug.LORD_FLAG = '1'
AND ug.DEL_FLAG = '0'
AND ug.GROUP_ID = #{groupId}
</select>
<update id="updataGroupOwner">
UPDATE epdc_user_group SET LORD_FLAG = 1 WHERE ID = #{id}
</update>
</mapper>

10
epdc-cloud-property/src/main/resources/mapper/topic/GroupTopicUserReadDao.xml

@ -0,0 +1,10 @@
<?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.elink.esua.epdc.modules.topic.dao.GroupTopicUserReadDao">
<update id="updateTopicReadFlag">
UPDATE epdc_group_topic_user_read SET READ_FLAG = #{readFlag} WHERE GROUP_ID = #{groupId} AND USER_ID = #{userId}
</update>
</mapper>

21
epdc-cloud-property/src/main/resources/mapper/topic/TopicAuditRecordDao.xml

@ -0,0 +1,21 @@
<?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.elink.esua.epdc.modules.topic.dao.TopicAuditRecordDao">
<select id="selectListOfTopicAuditRecord" resultType="com.elink.esua.epdc.dto.group.result.TopicAuditRecordResultDTO">
SELECT
STATE,
PROCESSING_OPINIONS,
CREATED_TIME
FROM
epdc_topic_audit_record
WHERE
DEL_FLAG = '0'
AND TOPIC_ID = #{topicId}
ORDER BY
CREATED_TIME DESC
</select>
</mapper>

304
epdc-cloud-property/src/main/resources/mapper/topic/TopicDao.xml

@ -0,0 +1,304 @@
<?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.elink.esua.epdc.modules.topic.dao.TopicDao">
<update id="updateCommentNum" parameterType="java.lang.String">
UPDATE epdc_topic SET COMMENT_NUM = COMMENT_NUM + 1 WHERE ID = #{id}
</update>
<resultMap id="topicDetailMap" type="com.elink.esua.epdc.dto.topic.result.TopicDetailResultDTO">
<result property="id" column="ID"/>
<result property="topicContent" column="TOPIC_CONTENT"/>
<result property="topicAddress" column="TOPIC_ADDRESS"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="nickname" column="NICKNAME"/>
<result property="userAvatar" column="USER_FACE"/>
<result property="partyMember" column="PARTY_MEMBER"/>
<result property="browseNum" column="BROWSE_NUM"/>
<result property="groupState" column="groupState"/>
<result property="topicState" column="topicState"/>
<result property="groupId" column="groupId"/>
<collection property="images" ofType="java.lang.String">
<result property="image" column="IMG_URL"/>
</collection>
</resultMap>
<select id="selectOneOfTopicDetailById" resultMap="topicDetailMap">
SELECT
tp.ID,
tp.TOPIC_CONTENT,
tp.TOPIC_ADDRESS,
tp.CREATED_TIME,
tp.NICKNAME,
tp.USER_FACE,
tp.PARTY_MEMBER,
tp.BROWSE_NUM,
img.IMG_URL,
gp.ID AS groupId,
gp.STATE AS groupState,
tp.STATE AS topicState
FROM
epdc_topic tp
LEFT JOIN epdc_topic_img img ON tp.ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
LEFT JOIN epdc_group gp ON tp.GROUP_ID = gp.ID
AND gp.DEL_FLAG = '0'
WHERE
tp.DEL_FLAG = '0'
AND tp.ID = #{id}
ORDER BY
img.IMG_URL
</select>
<resultMap id="topicForChangeToIssueMap" type="com.elink.esua.epdc.dto.events.form.EpdcEventSubmitFormDTO">
<result property="topicId" column="ID"/>
<result property="eventContent" column="TOPIC_CONTENT"/>
<result property="issueAddress" column="TOPIC_ADDRESS"/>
<result property="issueLatitude" column="TOPIC_LATITUDE"/>
<result property="issueLongitude" column="TOPIC_LONGITUDE"/>
<result property="allDeptIds" column="ALL_DEPT_IDS"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<result property="parentDeptIds" column="PARENT_DEPT_IDS"/>
<result property="parentDeptNames" column="PARENT_DEPT_NAMES"/>
<result property="grid" column="GRID"/>
<result property="gridId" column="GRID_ID"/>
<result property="userId" column="USER_ID"/>
<result property="userFace" column="USER_FACE"/>
<result property="nickName" column="NICKNAME"/>
<result property="isPartyMember" column="PARTY_MEMBER"/>
<result property="mobile" column="MOBILE"/>
<result property="groupId" column="GROUP_ID"/>
<result property="groupName" column="GROUP_NAME"/>
<result property="commentNum" column="COMMENT_NUM"/>
<result property="browseNum" column="BROWSE_NUM"/>
<collection property="images" ofType="java.lang.String">
<result property="image" column="IMG_URL"/>
</collection>
</resultMap>
<select id="selectOneOfTopicForChangeToIssue" resultMap="topicForChangeToIssueMap">
SELECT
tp.ID,
tp.TOPIC_CONTENT,
tp.TOPIC_ADDRESS,
tp.TOPIC_LATITUDE,
tp.TOPIC_LONGITUDE,
tp.GRID,
tp.GRID_ID,
tp.USER_ID,
tp.USER_FACE,
tp.NICKNAME,
tp.PARTY_MEMBER,
tp.MOBILE,
tp.GROUP_ID,
tp.GROUP_NAME,
tp.ALL_DEPT_IDS,
tp.ALL_DEPT_NAMES,
tp.PARENT_DEPT_IDS,
tp.PARENT_DEPT_NAMES,
tp.COMMENT_NUM,
tp.BROWSE_NUM,
img.IMG_URL
FROM
epdc_topic tp
LEFT JOIN epdc_topic_img img ON tp.ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
WHERE
tp.DEL_FLAG = '0'
AND tp.ID = #{id}
</select>
<resultMap id="topicListMap" type="com.elink.esua.epdc.dto.topic.result.TopicListResultDTO">
<result property="id" column="ID"/>
<result property="topicContent" column="TOPIC_CONTENT"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="nickname" column="NICKNAME"/>
<result property="userAvatar" column="USER_FACE"/>
<result property="userId" column="USER_ID"/>
<result property="partyMember" column="PARTY_MEMBER"/>
<result property="state" column="STATE"/>
<result property="issueId" column="ISSUE_ID"/>
<result property="itemId" column="ITEM_ID"/>
<result property="attentionNum" column="attentionNum"/>
<collection property="images" ofType="java.lang.String">
<result property="image" column="IMG_URL"/>
</collection>
</resultMap>
<select id="selectListOfTopic" resultMap="topicListMap">
SELECT
topic.ID,
topic.TOPIC_CONTENT,
topic.CREATED_TIME,
topic.NICKNAME,
topic.USER_FACE,
topic.USER_ID,
topic.PARTY_MEMBER,
topic.STATE,
topic.ISSUE_ID,
topic.ITEM_ID,
(topic.COMMENT_NUM + topic.BROWSE_NUM) AS attentionNum,
img.IMG_URL
FROM
epdc_topic topic
LEFT JOIN epdc_topic_img img ON topic.ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
WHERE
topic.ID IN (
SELECT
tmp.ID
FROM
(
SELECT
t1.ID
FROM
epdc_topic t1
WHERE
t1.DEL_FLAG = '0'
<if test="userId != null and userId.trim() != ''">
and t1.USER_ID = #{userId}
and t1.STATE IN (0, 20)
</if>
<if test="userId == null or userId.trim() == ''">
AND t1.STATE <![CDATA[ <> ]]> 20
AND t1.GROUP_ID = #{groupId}
AND t1.GRID_ID = #{gridId}
<if test="timestamp != null and timestamp.trim() != ''">
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') <= ]]> #{timestamp}
</if>
<if test="topicId != null and topicId.trim() != ''">
AND t1.ID = #{topicId}
</if>
<![CDATA[ AND DATE_FORMAT(t1.CREATED_TIME,'%Y-%m-%d %H:%i:%s') >= ]]> #{someMonthsAgo}
</if>
ORDER BY
t1.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
) tmp
)
ORDER BY
topic.CREATED_TIME DESC,
img.IMG_URL
</select>
<select id="selectListTopic" resultType="com.elink.esua.epdc.dto.topic.TopicDTO">
SELECT
temp.ID,
temp.NICKNAME,
temp.CREATED_TIME,
temp.TOPIC_CONTENT,
temp.COMMENT_NUM,
temp.BROWSE_NUM,
( temp.BROWSE_NUM + temp.COMMENT_NUM ) AS participantsNum,
temp.STATE
FROM
epdc_topic temp
WHERE
temp.DEL_FLAG = '0'
AND temp.STATE IN ( 0, 5, 20)
<if test="associatedType != null and associatedType != ''">
AND temp.STATE in (0,5,10,15)
</if>
<if test="streetId != null and streetId != ''">
AND (find_in_set(#{streetId},temp.PARENT_DEPT_IDS)
OR find_in_set(#{streetId},temp.ALL_DEPT_IDS))
</if>
<if test="communityId != null and communityId != ''">
AND (find_in_set(#{communityId},temp.PARENT_DEPT_IDS)
OR find_in_set(#{communityId},temp.ALL_DEPT_IDS))
</if>
<if test="gridId != null and gridId != ''">
AND (temp.GRID_ID = #{gridId}
OR find_in_set(#{gridId},temp.ALL_DEPT_IDS))
</if>
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND DATE_FORMAT( temp.CREATED_TIME, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime}
</if>
<if test="groupId != null and groupId != ''">
AND temp.GROUP_ID = #{groupId}
</if>
<if test="keyword != null and keyword != ''">
AND temp.TOPIC_CONTENT like concat('%', trim(#{keyword}), '%')
</if>
ORDER BY
<if test="orderType == 0">
temp.CREATED_TIME DESC
</if>
<if test="orderType == 1">
temp.BROWSE_NUM DESC
</if>
<if test="orderType == 2">
temp.COMMENT_NUM DESC
</if>
</select>
<resultMap id="topicDetail" type="com.elink.esua.epdc.dto.topic.TopicDetailDTO">
<result property="nickname" column="NICKNAME"/>
<result property="createdTime" column="CREATED_TIME"/>
<result property="topicContent" column="TOPIC_CONTENT"/>
<result property="mobile" column="MOBILE"/>
<result property="topicAddress" column="TOPIC_ADDRESS"/>
<result property="topicLatitude" column="TOPIC_LATITUDE"/>
<result property="topicLongitude" column="TOPIC_LONGITUDE"/>
<result property="groupName" column="GROUP_NAME"/>
<result property="userFace" column="USER_FACE"/>
<result property="gridId" column="GRID_ID"/>
<result property="commentNum" column="COMMENT_NUM"/>
<result property="browseNum" column="BROWSE_NUM"/>
<result property="allDeptNames" column="ALL_DEPT_NAMES"/>
<collection property="images" ofType="java.lang.String">
<result property="image" column="IMG_URL"/>
</collection>
</resultMap>
<select id="selectOneOfTopic" resultMap="topicDetail">
SELECT
tp.NICKNAME,
tp.CREATED_TIME,
tp.TOPIC_CONTENT,
tp.MOBILE,
tp.TOPIC_ADDRESS,
tp.TOPIC_LATITUDE,
tp.TOPIC_LONGITUDE,
tp.GROUP_NAME,
tp.ALL_DEPT_NAMES,
img.IMG_URL,
tp.USER_FACE,
tp.GRID_ID,
tp.COMMENT_NUM,
( tp.BROWSE_NUM + tp.COMMENT_NUM ) AS participantsNum,
tp.BROWSE_NUM
FROM
epdc_topic tp
LEFT JOIN epdc_topic_img img ON tp.ID = img.REFERENCE_ID
AND img.DEL_FLAG = '0'
WHERE
tp.DEL_FLAG = '0'
AND tp.ID = #{id}
</select>
<select id="selectListOfOrganizationInfo" resultType="com.elink.esua.epdc.dto.topic.TopicDTO">
SELECT
ID,
PARENT_DEPT_IDS,
PARENT_DEPT_NAMES,
ALL_DEPT_IDS,
ALL_DEPT_NAMES
FROM
epdc_topic
WHERE
FIND_IN_SET( #{deptId}, ALL_DEPT_IDS )
</select>
<update id="updateGridByDeptId">
UPDATE epdc_topic SET GRID = #{newDeptName} WHERE GRID_ID = #{deptId}
</update>
<update id="updateBatchPartyGroupNameByGroupId" parameterType="com.elink.esua.epdc.dto.group.GroupDTO">
<foreach collection="groups" item="group" index="index" open="" close="" separator=";">
UPDATE epdc_topic SET GROUP_NAME = #{group.groupName}, UPDATED_TIME = NOW() WHERE GROUP_ID = #{group.id}
</foreach>
</update>
</mapper>
Loading…
Cancel
Save