Browse Source

居民端我的详情,定时任务修改

dev
wangchao 5 years ago
parent
commit
31d8c965f1
  1. 38
      epmet-gateway/src/main/java/com/epmet/util/UserTokenValidateUtil.java
  2. 25
      epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java
  3. 13
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java
  4. 3
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java
  5. 27
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java
  6. 4
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java
  7. 47
      epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java
  8. 19
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml
  9. 119
      epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml
  10. 20
      epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/VotableCountResultDTO.java
  11. 4
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java
  12. 1
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java
  13. 12
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java
  14. 41
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java
  15. 10
      epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java
  16. 40
      epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml
  17. 23
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyResiUserInfoFormDTO.java
  18. 46
      epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyResiUserInfoResultDTO.java
  19. 13
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java
  20. 14
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java
  21. 43
      epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/MineController.java
  22. 23
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyResiUserInfoFormDTO.java
  23. 46
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java
  24. 41
      epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java
  25. 20
      epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java
  26. 11
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserDao.java
  27. 9
      epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java
  28. 15
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java
  29. 62
      epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java
  30. 26
      epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml
  31. 36
      epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml

38
epmet-gateway/src/main/java/com/epmet/util/UserTokenValidateUtil.java

@ -0,0 +1,38 @@
package com.epmet.util;
import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.BaseTokenDto;
import com.epmet.commons.tools.utils.CpUserDetailRedis;
import com.epmet.jwt.JwtTokenUtils;
import io.jsonwebtoken.Claims;
import org.springframework.stereotype.Component;
/**
* @Description
* @ClassName UserTokenValidateUtil
* @Auth wangc
* @Date 2020-05-21 17:47
*/
@Component
public class UserTokenValidateUtil {
public BaseTokenDto getBaseTokenDto(String token, JwtTokenUtils jwtTokenUtils) {
//是否过期
Claims claims = jwtTokenUtils.getClaimByToken(token);
if (claims == null || jwtTokenUtils.isTokenExpired(claims.getExpiration())) {
throw new RenException(EpmetErrorCode.ERR401.getCode());
}
//获取用户ID
String app = (String) claims.get("app");
String client = (String) claims.get("client");
String userId = (String) claims.get("userId");
return new BaseTokenDto(app, client, userId, token);
}
public <T> T getLoginUserInfoByToken(String token, JwtTokenUtils jwtTokenUtils, CpUserDetailRedis cpUserDetailRedis, Class<T> clz) {
BaseTokenDto baseTokenDto = getBaseTokenDto(token, jwtTokenUtils);
//查询Redis
return cpUserDetailRedis.get(baseTokenDto.getApp(), baseTokenDto.getClient(), baseTokenDto.getUserId(), clz);
}
}

25
epmet-module/gov-issue/gov-issue-client/src/main/java/com/epmet/dto/form/CommonGridIdFormDTO.java

@ -0,0 +1,25 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName CommonGridIdFormDTO
* @Author wangc
* @date 2020.04.24 14:17
*/
@Data
public class CommonGridIdFormDTO implements Serializable {
private static final long serialVersionUID = 2496019865436084805L;
/**
* 网格Id
* */
@NotBlank(message = "网格Id不能为空")
private String gridId;
}

13
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/controller/IssueVoteStatisticalController.java

@ -118,4 +118,17 @@ public class IssueVoteStatisticalController {
return new Result<VotingTrendResultDTO>().ok(issueVoteStatisticalService.votingTrend(formDTO));
}
/**
* @Description 将所有表决中的投票数从缓存同步到数据库要进行数据对比若数据一致无需更新
* @param
* @return
* @author wangc
* @date 2020.05.21 09:07
**/
@PostMapping("syncvotingcacheanddb")
public Result syncVotingCacheAndDb(){
issueVoteStatisticalService.syncVotingCacheToDb();
return new Result();
}
}

3
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDailyDao.java

@ -21,6 +21,7 @@ import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.result.IssuesToBeCountedResultDTO;
import com.epmet.entity.IssueVoteStatisticalDailyEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -76,5 +77,5 @@ public interface IssueVoteStatisticalDailyDao extends BaseDao<IssueVoteStatistic
* @author wangc
* @date 2020.05.20 14:54
**/
void updateBatch(List<IssueVoteStatisticalDailyEntity> list);
void updateBatch(@Param("list") List<IssueVoteStatisticalDailyEntity> list);
}

27
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/dao/IssueVoteStatisticalDao.java

@ -101,4 +101,31 @@ public interface IssueVoteStatisticalDao extends BaseDao<IssueVoteStatisticalEnt
* @date 2020.05.22 00:49
**/
List<IssueVoteStatisticalDTO> selectListByIds(@Param("ids") Set<String> ids);
/**
* @Description 批量新增
* @param list
* @return
* @author wangc
* @date 2020.05.22 14:16
**/
void insertBatch(List<IssueVoteStatisticalDTO> list);
/**
* @Description 批量更新 ByIssueId
* @param list
* @return
* @author wangc
* @date 2020.05.22 14:16
**/
void updateBatchByIssueId(List<IssueVoteStatisticalDTO> list);
/**
* @Description 通过issueId更新
* @param vote
* @return
* @author wangc
* @date 2020.05.22 15:52
**/
void updateBtIssueId(IssueVoteStatisticalDTO vote);
}

4
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/feign/ResiGroupFeignClient.java

@ -25,7 +25,7 @@ import java.util.List;
* @Author sun
* , url = "localhost:8095"
*/
@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupFeignClientFallBack.class)
@FeignClient(name = ServiceConstant.RESI_GROUP_SERVER, fallback = ResiGroupFeignClientFallBack.class, url = "http://localhost:8095")
public interface ResiGroupFeignClient {
/**
@ -87,6 +87,6 @@ public interface ResiGroupFeignClient {
* @author wangc
* @date 2020.05.22 10:12
**/
@PostMapping("votablecounts")
@PostMapping("/resi/group/member/votablecounts")
Result<GridVotableCountResultDTO> votableCounts(@RequestBody CommonGridIdListFormDTO gridList);
}

47
epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java

@ -37,6 +37,7 @@ import com.epmet.dto.IssueVoteStatisticalDTO;
import com.epmet.dto.PolyLineDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.IssueEntity;
import com.epmet.entity.IssueVoteStatisticalEntity;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.ResiGroupFeignClient;
@ -268,6 +269,7 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
Set<String> notExistedIds = new HashSet<String>();
notExistedIds.addAll(ids);
notExistedIds.removeAll(statisiticalIds);
//交集
Set<String> existedIds = new HashSet<>();
existedIds.addAll(ids);
existedIds.retainAll(statisiticalIds);
@ -281,8 +283,8 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
})).collect(Collectors.toSet()),
votableCountMap);
//TODO 批量更新listToUpdate
// 批量更新listToUpdate
baseDao.updateBatchByIssueId(listToUpdate);
if (notExistedIds.size() > NumConstant.ZERO) {
//新增
@ -293,6 +295,7 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
summaryList.stream().collect(Collectors.groupingBy(IssueAttitudeCountResultDTO::getIssueId));
for (Map.Entry<String, List<IssueAttitudeCountResultDTO>> entry : summaryMap.entrySet()) {
IssueVoteStatisticalDTO obj = new IssueVoteStatisticalDTO();
obj.setCreatedBy("system");
obj.setIssueId(entry.getKey());
List<IssueAttitudeCountResultDTO> v = entry.getValue();
if (v.size() > NumConstant.ONE) {
@ -328,6 +331,7 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
IssueVoteStatisticalDTO dto = new IssueVoteStatisticalDTO();
dto.setOppositionCount(NumConstant.ZERO);
dto.setSupportCount(NumConstant.ZERO);
dto.setCreatedBy("system");
return dto;
}).collect(Collectors.toList());
@ -355,13 +359,9 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
}
}
for(Map.Entry<String,List<IssueDTO>> entry : gridIssueMap.entrySet()){
String k = entry.getKey();
List<IssueDTO> v = entry.getValue();
}
//TODO 批量插入
// 批量插入
baseDao.insertBatch(summary);
}
}
else if (ids.size() < statisiticalIds.size()) {
@ -383,21 +383,24 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
setVotableCountsAndUpdateCache(listToUpdate,issues,votableCountMap);
//TODO listToUpdate批量更新
// listToUpdate批量更新
baseDao.updateBatchByIssueId(listToUpdate);
}
}else{
//ids中的议题没有任何统计信息 - 全部添加
//TODO 根据ids去缓存中取值
//根据ids去缓存中取值
List<IssueVoteStatisticalDTO> listToAdd = new ArrayList<>();
setVotableCountsAndUpdateCache(listToAdd,issues,votableCountMap);
// 批量新增listToAdd
baseDao.insertBatch(listToAdd);
}
}
/**
* @Description 对指定的issueId的议题表决统计数缓存与Db同步
* @Description 对指定的issueId的议题表决统计数缓存与Db同步 在关闭议题以及议题转项目时调用
* @param issueId
* @return
* @author wangc
@ -405,6 +408,22 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
**/
@Override
public void syncVotingCacheToDbByIssueId(String issueId) {
VoteRedisFormDTO vote = issueVoteDetailRedis.getVoteStatistical(issueId);
if(null == vote) return;
IssueVoteStatisticalDTO toUpd = ConvertUtils.sourceToTarget(vote,IssueVoteStatisticalDTO.class);
toUpd.setUpdatedBy("system");
IssueEntity issue = issueDao.selectById(issueId);
if(null != issue && StringUtils.isNotBlank(issue.getGridId())){
CommonGridIdFormDTO gridId = new CommonGridIdFormDTO();
gridId.setGridId(issue.getGridId());
Result<Integer> votableCount =
resiGroupFeignClient.votableCount(gridId);
if(votableCount.success() && null != votableCount.getData()){
toUpd.setVotableCount(votableCount.getData());
}
}
toUpd.setVotableCount(NumConstant.ZERO);
}
@ -441,6 +460,8 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl<IssueVoteSt
VoteRedisFormDTO cache = issueVoteDetailRedis.get(issue.getId());
if(null == cache)
continue;
vote.setCreatedBy("system");
vote.setUpdatedBy("system");
vote.setSupportCount(cache.getSupportAmount());
vote.setOppositionCount(cache.getOppositionAmount());
vote.setVotableCount( null == votableCountMap ?

19
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDailyDao.xml

@ -114,7 +114,7 @@
WHERE
DEL_FLAG = '0'
AND
STATISTICAL_DATE = #{statisticalDate}
TO_DAYS( #{statisticalDate} ) - TO_DAYS( STATISTICAL_DATE ) = 0
AND
ISSUE_ID = #{issueId}
</select>
@ -190,7 +190,7 @@
</insert>
<!-- 批量更新 -->
<update id="updateBatch" parameterType="java.util.ArrayList">
<update id="updateBatch" >
UPDATE issue_vote_statistical_daily
<trim prefix="set" suffixOverrides=",">
@ -242,14 +242,6 @@
</foreach>
</trim>
<trim prefix="updated_by =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.updatedBy'>
when id = #{item.id} then #{item.updatedBy}
</if>
</foreach>
</trim>
<trim prefix="votable_count =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.votableCount'>
@ -278,7 +270,10 @@
updated_time = now()
</trim>
WHERE id = #{id}
WHERE
DEL_FLAG = '0'
<foreach collection="list" item="item" open="AND( " separator=" OR " index="index" close=")">
id = #{item.id}
</foreach>
</update>
</mapper>

119
epmet-module/gov-issue/gov-issue-server/src/main/resources/mapper/IssueVoteStatisticalDao.xml

@ -125,4 +125,123 @@
ISSUE_ID = #{issueId}
</foreach>
</select>
<!-- 批量添加 -->
<insert id="insertBatch" parameterType="java.util.List">
INSERT INTO issue_vote_statistical
(
id,
issue_id,
SUPPORT_COUNT,
OPPOSITION_COUNT,
VOTABLE_COUNT,
created_by,
created_time,
updated_by,
updated_time
) values
<foreach collection="list" item="item" index="index" separator=",">
(
(SELECT REPLACE(UUID(), '-', '') AS id),
#{item.issueId},
#{item.supportCount},
#{item.oppositionCount},
#{item.votableCount},
#{item.createdBy},
now(),
#{item.createdBy},
now()
)
</foreach>
</insert>
<!-- 批量更新 -->
<update id="updateBatchByIssueId" parameterType="list">
UPDATE issue_vote_statistical
<trim prefix="set" suffixOverrides=",">
<trim prefix="support_count =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.supportCount'>
when issue_id = #{item.issueId} then #{item.supportCount}
</if>
</foreach>
</trim>
<trim prefix="opposition_count =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.oppositionCount'>
when issue_id = #{item.issueId} then #{item.oppositionCount}
</if>
</foreach>
</trim>
<trim prefix="updated_by =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.updatedBy'>
when issue_id = #{item.issueId} then #{item.updatedBy}
</if>
</foreach>
</trim>
<trim prefix="votable_count =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.votableCount'>
when id = #{item.id} then #{item.votableCount}
</if>
</foreach>
</trim>
<trim prefix="del_flag =(case" suffix="end),">
<foreach collection="list" item="item">
<if test='null != item.delFlag'>
when id = #{item.id} then #{item.delFlag}
</if>
</foreach>
</trim>
updated_time = now()
</trim>
WHERE
del_flag = '0'
<foreach collection="list" item="item" open="AND( " separator=" OR " index="index" close=")">
issue_id = #{item.issueId}
</foreach>
</update>
<!-- 通过issueId更新 -->
<update id="updateBtIssueId" parameterType="com.epmet.dto.IssueVoteStatisticalDTO">
UPDATE
issue_vote_statistical
<set>
<if test="null != supportCount">support_count = #{supportCount}</if>
<if test="null != oppositionCount">opposition_count = #{oppositionCount}</if>
<if test="null != votableCount">votable_count = #{votableCount}</if>
<if test="null != updatedBy">updated_by = #{updatedBy}</if>
UPDATED_TIME = NOW ()
</set>
WHERE
DEL_FLAG = '0'
AND
ISSUE_ID = #{issueId}
</update>
</mapper>

20
epmet-module/resi-group/resi-group-client/src/main/java/com/epmet/resi/group/dto/member/result/VotableCountResultDTO.java

@ -0,0 +1,20 @@
package com.epmet.resi.group.dto.member.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName VotableCountResultDTO
* @Auth wangc
* @Date 2020-05-22 18:10
*/
@Data
public class VotableCountResultDTO implements Serializable {
private static final long serialVersionUID = -4901865119510991968L;
private String gridId;
private Integer votableCount;
}

4
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/group/service/impl/ResiGroupServiceImpl.java

@ -478,6 +478,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
* @Date 2020/3/31 12:44
**/
@Override
@Transactional(rollbackFor = Exception.class)
public Result agreeApplyGroup(AgreeApplyGroupFormDTO agreeApplyGroupFormDTO) {
//1、更新组的状态
ResiGroupDTO resiGroupDTO = this.get(agreeApplyGroupFormDTO.getGroupId());
@ -564,6 +565,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
* @Date 2020/3/31 13:22
**/
@Override
@Transactional(rollbackFor = Exception.class)
public Result disagreeApplyGroup(DisAgreeApplyGroupFormDTO disAgreeApplyGroupFormDTO) {
//1、更新组的状态
ResiGroupDTO resiGroupDTO = this.get(disAgreeApplyGroupFormDTO.getGroupId());
@ -661,7 +663,7 @@ public class ResiGroupServiceImpl extends BaseServiceImpl<ResiGroupDao, ResiGrou
int pageIndex = (formDTO.getPageNo() - NumConstant.ONE) * formDTO.getPageSize();
formDTO.setPageNo(pageIndex);
List<ResiGroupEntity> list = baseDao.selectGroupsByGridId(formDTO);
list.forEach(i -> {
list.stream().filter(group -> StringUtils.equals(ModuleConstant.GROUP_STATUS_APPROVED,group.getState())).collect(Collectors.toList()).forEach(i -> {
//缓存中获取组信息
ResiGroupInfoRedisDTO resiGroupInfoRedisDTO = resiGroupRedis.get(i.getId());
GroupsInGridResultDTO groupsInGridResultDTO = new GroupsInGridResultDTO();

1
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/controller/ResiGroupMemberController.java

@ -26,7 +26,6 @@ import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import oracle.jdbc.proxy.annotation.Post;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

12
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/dao/ResiGroupMemberDao.java

@ -26,6 +26,7 @@ import com.epmet.resi.group.dto.member.form.ApplyingMemberFormDTO;
import com.epmet.resi.group.dto.member.form.GroupMemberListFormDTO;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import com.epmet.resi.group.dto.member.result.VotableCountResultDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -96,4 +97,15 @@ public interface ResiGroupMemberDao extends BaseDao<ResiGroupMemberEntity> {
* @Date 2020/3/31 16:06
**/
ResiGroupMemberDTO selectGroupMemberInfo(@Param("groupId") String groupId, @Param("userId")String userId);
/**
* @Description 一个网格的应表决数
* @param
* @return
* @author wangc
* @date 2020.05.22 18:02
**/
Integer getMembersCountInGrid(@Param("gridId")String gridId);
List<VotableCountResultDTO> getMembersCountInGrids(@Param("gridIds")List<String> gridIds);
}

41
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/member/service/impl/ResiGroupMemberServiceImpl.java

@ -65,7 +65,9 @@ import com.epmet.resi.group.dto.member.form.*;
import com.epmet.resi.group.dto.member.result.ApplyingMemberResultDTO;
import com.epmet.resi.group.dto.member.result.GridVotableCountResultDTO;
import com.epmet.resi.group.dto.member.result.GroupMemberListResultDTO;
import com.epmet.resi.group.dto.member.result.VotableCountResultDTO;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -567,20 +569,9 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
**/
@Override
public Integer gridResiCount(String gridId) {
//1.查询网格下有多少组
List<String> groupIds = resiGroupService.getGroupIdByGridId(gridId);
//2.去缓存中拿取这些组的信息
if(null != groupIds && groupIds.size() > NumConstant.ZERO){
Set<String> set = new HashSet<>();
groupIds.forEach( id -> {
Set<String> members = resiGroupMemberRedis.getGroupMemberIds(id);
if(null != members && members.size() > NumConstant.ZERO){
set.addAll(members);
}
});
return set.size();
}
return NumConstant.ZERO;
Integer votable = baseDao.getMembersCountInGrid(gridId);
return null == votable ? NumConstant.ZERO : votable;
}
/**
@ -594,20 +585,20 @@ public class ResiGroupMemberServiceImpl extends BaseServiceImpl<ResiGroupMemberD
public GridVotableCountResultDTO votableCount(CommonGridIdListFormDTO gridList) {
if(null == gridList || null == gridList.getGridIds() || gridList.getGridIds().size() < NumConstant.ONE)
return null;
GridVotableCountResultDTO result = new GridVotableCountResultDTO();
Map<String,Integer> votableCountMap = new HashMap<>();
Map<String,Set<String>> gridGroups =
resiGroupService.getGroupIdsByGridIdList(gridList.getGridIds());
gridGroups.forEach((k,v)->{
Set<String> set = new HashSet<>();
v.forEach(groupId -> {
Set<String> members = resiGroupMemberRedis.getGroupMemberIds(groupId);
if(null != members && members.size() > NumConstant.ZERO){
set.addAll(members);
}
gridList.getGridIds().forEach(gridId -> {
votableCountMap.put(gridId, NumConstant.ZERO );
});
votableCountMap.put(k,set.size());
List<VotableCountResultDTO> list = baseDao.getMembersCountInGrids(gridList.getGridIds());
if(null == list || list.size() < NumConstant.ZERO){
result.setVotableCountMap(votableCountMap);
return result;
}
list.forEach( obj ->{
votableCountMap.put(obj.getGridId(),null == obj.getVotableCount()? NumConstant.ZERO : obj.getVotableCount());
});
GridVotableCountResultDTO result = new GridVotableCountResultDTO();
result.setVotableCountMap(votableCountMap);
return result;
}

10
epmet-module/resi-group/resi-group-server/src/main/java/com/epmet/modules/utils/ModuleConstant.java

@ -301,4 +301,14 @@ public interface ModuleConstant extends Constant {
* 议题来源 话题
* */
String ISSUE_SOURCE_TYPE = "resi_topic";
/**
* 组状态 通过
* */
String GROUP_STATUS_APPROVED = "approved";
/**
* 组状态 审核中
* */
String GROUP_STATUS_UNDER_AUDITTING = "under_auditting";
}

40
epmet-module/resi-group/resi-group-server/src/main/resources/mapper/member/ResiGroupMemberDao.xml

@ -94,4 +94,44 @@
AND rgm.RESI_GROUP_ID = #{groupId}
AND rgm.CUSTOMER_USER_ID=#{userId}
</select>
<select id="getMembersCountInGrid" resultType="integer">
SELECT
COUNT(
DISTINCT
CUSTOMER_USER_ID
)
FROM
RESI_GROUP groupp
INNER JOIN RESI_GROUP_MEMBER member ON member.RESI_GROUP_ID = groupp.ID AND member.DEL_FLAG = '0' AND member.STATUS <![CDATA[<>]]> 'removed'
WHERE
groupp.DEL_FLAG = '0'
AND
groupp.GRID_ID = #{gridId}
AND
groupp.STATE = 'approved'
</select>
<select id="getMembersCountInGrids" resultType="com.epmet.resi.group.dto.member.result.VotableCountResultDTO">
SELECT
groupp.GRID_ID as gridId,
COUNT(
DISTINCT
member.CUSTOMER_USER_ID
) as votableCount
FROM
RESI_GROUP groupp
LEFT JOIN RESI_GROUP_MEMBER member ON member.RESI_GROUP_ID = groupp.ID AND member.DEL_FLAG = '0' AND member.STATUS <![CDATA[<>]]> 'removed'
WHERE
groupp.DEL_FLAG = '0'
AND
<foreach collection="gridIds" index="index" item="item" open="( " separator=" or " close=" )">
groupp.GRID_ID = #{item.gridId}
</foreach>
AND
groupp.STATE = 'approved'
GROUP BY
groupp.GRID_ID
</select>
</mapper>

23
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/from/MyResiUserInfoFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.resi.mine.dto.from;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName MyResiUserInfoFormDTO
* @Auth wangc
* @Date 2020-05-22 17:27
*/
@Data
public class MyResiUserInfoFormDTO implements Serializable {
private static final long serialVersionUID = -6534841370041338474L;
@NotBlank(message = "客户Id不能为空")
private String customerId;
@NotBlank(message = "网格Id不能为空")
private String gridId;
@NotBlank(message = "用户Id不能为空")
private String userId;
}

46
epmet-module/resi-mine/resi-mine-client/src/main/java/com/epmet/resi/mine/dto/result/MyResiUserInfoResultDTO.java

@ -0,0 +1,46 @@
package com.epmet.resi.mine.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName MyResiUserInfoResultDTO
* @Auth wangc
* @Date 2020-05-22 18:26
*/
@Data
public class MyResiUserInfoResultDTO implements Serializable {
private static final long serialVersionUID = -1269738324822294380L;
/**
* 用户id
* */
private String userId;
/**
* 是否已注册居民true ,false
* */
private Boolean registerFlag;
/**
* 微信昵称可为空
* */
private String nickName;
/**
* 注册姓名可为空
* */
private String userRealName;
/**
* 头像可为空
* */
private String userHeadPhoto;
/**
* 首次注册的网格可为空
* */
private String registerGridName;
/**
* 拥有角色名称列表可为空[]
* */
private List<String> roleList;
}

13
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/EpmetUserFeignClient.java

@ -8,10 +8,13 @@ import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.LatestGridInfoResultDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.modules.feign.fallback.EpmetUserFeignClientFallBack;
import com.epmet.resi.mine.dto.from.MyResiUserInfoFormDTO;
import com.epmet.resi.mine.dto.result.MyResiUserInfoResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@ -62,4 +65,14 @@ public interface EpmetUserFeignClient {
**/
@PostMapping(value = "epmetuser/gridlatest/getgridsbyuserid/{userId}")
Result<List<String>> getGridsByUserId(@PathVariable("userId") String userId);
/**
* @Description 居民端获取个人信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 19:24
**/
@PostMapping("epmetuser/user/resimyselfmsg")
Result<MyResiUserInfoResultDTO> resiMyselfMsg(@RequestBody MyResiUserInfoFormDTO myResiUserInfoFormDTO);
}

14
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/feign/fallback/EpmetUserFeignClientFallBack.java

@ -9,6 +9,8 @@ import com.epmet.dto.form.VerificationCodeFormDTO;
import com.epmet.dto.result.LatestGridInfoResultDTO;
import com.epmet.dto.result.ResiRegisterResultDTO;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.resi.mine.dto.from.MyResiUserInfoFormDTO;
import com.epmet.resi.mine.dto.result.MyResiUserInfoResultDTO;
import org.springframework.stereotype.Component;
import java.util.List;
@ -73,4 +75,16 @@ public class EpmetUserFeignClientFallBack implements EpmetUserFeignClient {
public Result<List<String>> getGridsByUserId(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getGridsByUserId", userId);
}
/**
* @Description 居民端获取个人信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 19:24
**/
@Override
public Result<MyResiUserInfoResultDTO> resiMyselfMsg(MyResiUserInfoFormDTO myResiUserInfoFormDTO) {
return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "resiMyselfMsg", myResiUserInfoFormDTO);
}
}

43
epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/mine/controller/MineController.java

@ -0,0 +1,43 @@
package com.epmet.modules.mine.controller;
import com.epmet.commons.tools.annotation.LoginUser;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.modules.feign.EpmetUserFeignClient;
import com.epmet.resi.mine.dto.from.MyResiUserInfoFormDTO;
import com.epmet.resi.mine.dto.result.MyResiUserInfoResultDTO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description
* @ClassName MineController
* @Auth wangc
* @Date 2020-05-22 18:33
*/
@RestController
@RequestMapping("mine")
public class MineController {
@Autowired
EpmetUserFeignClient epmetUserFeignClient;
/**
* @Description 居民端获取我的信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 18:37
**/
@PostMapping("profile")
Result<MyResiUserInfoResultDTO> getMyResiInfo(@LoginUser TokenDto tokenDto, @RequestBody MyResiUserInfoFormDTO myResiUserInfoFormDTO){
myResiUserInfoFormDTO.setUserId(tokenDto.getUserId());
ValidatorUtils.validateEntity(myResiUserInfoFormDTO);
return epmetUserFeignClient.resiMyselfMsg(myResiUserInfoFormDTO);
}
}

23
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/MyResiUserInfoFormDTO.java

@ -0,0 +1,23 @@
package com.epmet.dto.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @Description
* @ClassName MyResiUserInfoFormDTO
* @Auth wangc
* @Date 2020-05-22 17:27
*/
@Data
public class MyResiUserInfoFormDTO implements Serializable {
private static final long serialVersionUID = -6534841370041338474L;
@NotBlank(message = "客户Id不能为空")
private String customerId;
@NotBlank(message = "网格Id不能为空")
private String gridId;
@NotBlank(message = "用户Id不能为空")
private String userId;
}

46
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyResiUserInfoResultDTO.java

@ -0,0 +1,46 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
/**
* @Description
* @ClassName MyResiUserInfoResultDTO
* @Auth wangc
* @Date 2020-05-22 18:26
*/
@Data
public class MyResiUserInfoResultDTO implements Serializable {
private static final long serialVersionUID = -1269738324822294380L;
/**
* 用户id
* */
private String userId;
/**
* 是否已注册居民true ,false
* */
private Boolean registerFlag;
/**
* 微信昵称可为空
* */
private String nickName;
/**
* 注册姓名可为空
* */
private String userRealName;
/**
* 头像可为空
* */
private String userHeadPhoto;
/**
* 首次注册的网格可为空
* */
private String registerGridName;
/**
* 拥有角色名称列表可为空[]
* */
private List<String> roleList;
}

41
epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/MyselfMsgResultDTO.java

@ -0,0 +1,41 @@
package com.epmet.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* @Description
* @ClassName MyselfMsgResultDTO
* @Auth wangc
* @Date 2020-05-22 19:15
*/
@Data
public class MyselfMsgResultDTO implements Serializable {
private static final long serialVersionUID = 1862775055704168458L;
/**
* 用户id
* */
private String userId;
/**
* 是否已注册居民
* */
private String resiId;
/**
* 微信昵称
* */
private String nickName;
/**
* 注册姓名
* */
private String userRealName;
/**
* 头像
* */
private String userHeadPhoto;
/**
* 首次注册的网格
* */
private String gridId;
}

20
epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserController.java

@ -8,14 +8,13 @@ import com.epmet.commons.tools.validator.group.AddGroup;
import com.epmet.commons.tools.validator.group.DefaultGroup;
import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.CreatedTimeByUserIdFormDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CreatedTimeByUserIdResultDTO;
import com.epmet.dto.result.MyResiUserInfoResultDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
@ -99,4 +98,17 @@ public class UserController {
return new Result<CreatedTimeByUserIdResultDTO>().ok(userService.createdTimeByUserId(formDTO));
}
/**
* @Description 居民端获取个人信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 19:24
**/
@PostMapping("resimyselfmsg")
public Result<MyResiUserInfoResultDTO> resiMyselfMsg(@RequestBody MyResiUserInfoFormDTO myResiUserInfoFormDTO){
ValidatorUtils.validateEntity(myResiUserInfoFormDTO);
return new Result<MyResiUserInfoResultDTO>().ok(userService.resiMyselfMsg(myResiUserInfoFormDTO));
}
}

11
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserDao.java

@ -3,9 +3,11 @@ package com.epmet.dao;
import com.epmet.commons.mybatis.dao.BaseDao;
import com.epmet.dto.form.CreatedTimeByUserIdFormDTO;
import com.epmet.dto.result.CreatedTimeByUserIdResultDTO;
import com.epmet.dto.result.MyselfMsgResultDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.entity.UserEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Description 用户DAO
@ -34,5 +36,12 @@ public interface UserDao extends BaseDao<UserEntity> {
*/
CreatedTimeByUserIdResultDTO createdTimeByUserId(CreatedTimeByUserIdFormDTO formDTO);
/**
* @Description 获取居民端个人信息
* @param userId
* @return
* @author wangc
* @date 2020.05.22 19:19
**/
MyselfMsgResultDTO getMyselfMsg(@Param("userId")String userId);
}

9
epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java

@ -43,4 +43,13 @@ public interface UserRoleDao extends BaseDao<UserRoleEntity> {
**/
List<UserRoleResultDTO> getUserRoleInfo(UserRoleFormDTO userRoleFormDTO);
/**
* @Description 根据用户Id网格Id客户Id查询用户角色key列表
* @param userRoleFormDTO
* @return List<String>
* @author wangc
* @date 2020.05.22 19:44
**/
List<String> getUserRoleList(UserRoleFormDTO userRoleFormDTO);
}

15
epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserService.java

@ -5,11 +5,9 @@ import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.Result;
import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.CreatedTimeByUserIdFormDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.CreatedTimeByUserIdResultDTO;
import com.epmet.dto.result.MyResiUserInfoResultDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.entity.UserEntity;
@ -66,4 +64,13 @@ public interface UserService extends BaseService<UserEntity> {
* @CreatedTime 2020/4/27 16:14
*/
CreatedTimeByUserIdResultDTO createdTimeByUserId(CreatedTimeByUserIdFormDTO formDTO);
/**
* @Description 居民端获取个人信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 19:24
**/
MyResiUserInfoResultDTO resiMyselfMsg(MyResiUserInfoFormDTO myResiUserInfoFormDTO);
}

62
epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java

@ -5,23 +5,26 @@ import com.epmet.commons.tools.utils.ConvertUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.constant.UserConstant;
import com.epmet.dao.UserDao;
import com.epmet.dao.UserRoleDao;
import com.epmet.dao.UserWechatDao;
import com.epmet.dto.CustomerGridDTO;
import com.epmet.dto.UserDTO;
import com.epmet.dto.UserWechatDTO;
import com.epmet.dto.form.CreatedTimeByUserIdFormDTO;
import com.epmet.dto.form.PasswordLoginUserInfoFormDTO;
import com.epmet.dto.form.WxLoginUserInfoFormDTO;
import com.epmet.dto.form.WxUserInfoFormDTO;
import com.epmet.dto.result.CreatedTimeByUserIdResultDTO;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.dto.form.*;
import com.epmet.dto.result.*;
import com.epmet.entity.UserEntity;
import com.epmet.entity.UserWechatEntity;
import com.epmet.feign.GovOrgFeignClient;
import com.epmet.service.UserService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -34,6 +37,12 @@ import java.util.Date;
public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implements UserService {
@Autowired
private UserWechatDao userWechatDao;
@Autowired
private GovOrgFeignClient govOrgFeignClient;
@Autowired
private UserRoleDao userRoleDao;
private static final Logger log = LoggerFactory.getLogger(UserServiceImpl.class);
/**
* 根据openIdapp查询对应终端用户信息
@ -125,4 +134,45 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
// registerTime.setRegisterTime(registerTime.getRegisterTime() * 1000L);
return registerTime;
}
/**
* @Description 居民端获取个人信息
* @param myResiUserInfoFormDTO
* @return MyResiUserInfoResultDTO
* @author wangc
* @date 2020.05.22 19:24
**/
@Override
public MyResiUserInfoResultDTO resiMyselfMsg(MyResiUserInfoFormDTO myResiUserInfoFormDTO) {
MyselfMsgResultDTO myselfMsg = baseDao.getMyselfMsg(myResiUserInfoFormDTO.getUserId());
if(null != myselfMsg){
MyResiUserInfoResultDTO result = ConvertUtils.sourceToTarget(myselfMsg,MyResiUserInfoResultDTO.class);
//registerFlag 是否已注册居民,true ,false
result.setRegisterFlag(StringUtils.isNotBlank(myselfMsg.getResiId()) ? true : false);
if(StringUtils.isNotBlank(myselfMsg.getGridId())){
//registerGridName 首次注册的网格
CustomerGridFormDTO gridId = new CustomerGridFormDTO();
gridId.setGridId(myselfMsg.getGridId());
Result<CustomerGridDTO> gridResult = govOrgFeignClient.getCustomerGridByGridId(gridId);
if(gridResult.success() && null != gridResult.getData()){
result.setRegisterGridName(gridResult.getData().getGridName());
}else{
if(StringUtils.isNotBlank(gridResult.getMsg())) log.warn(gridResult.getMsg());
}
}
//拥有角色名称列表
UserRoleFormDTO userRoleFormDTO = new UserRoleFormDTO();
userRoleFormDTO.setUserId(myResiUserInfoFormDTO.getUserId());
userRoleFormDTO.setCustomerId(myResiUserInfoFormDTO.getCustomerId());
userRoleFormDTO.setGridId(myResiUserInfoFormDTO.getGridId());
result.setRoleList(userRoleDao.getUserRoleList(userRoleFormDTO));
userRoleDao.getUserRoleList(userRoleFormDTO);
userRoleDao.getUserRoleList(userRoleFormDTO);
return result;
}
return null;
}
}

26
epmet-user/epmet-user-server/src/main/resources/mapper/UserDao.xml

@ -26,4 +26,30 @@
AND del_flag = 0
</select>
<!-- 获取居民端个人信息 -->
<select id="getMyselfMsg" resultType="com.epmet.dto.result.MyselfMsgResultDTO">
SELECT
user.Id AS userId,
IFNULL(wechat.HEAD_IMG_URL,"") AS userHeadPhoto,
IFNULL(wechat.NICKNAME,"") AS nickName,
IFNULL(resi.ID,"") AS resiId,
IFNULL(CONCAT(resi.SURNAME,resi.NAME),"") AS userRealName,
IFNULL(relation.GRID_ID,"") AS gridId
FROM
USER user
LEFT JOIN
USER_RESI_INFO resi ON user.ID = resi.USER_ID AND resi.DEL_FLAG = '0'
LEFT JOIN
USER_WECHAT wechat ON user.ID = wechat.USER_ID AND wechat.DEL_FLAG = '0'
LEFT JOIN
REGISTER_RELATION relation ON user.ID = relation.USER_ID
AND relation.DEL_FLAG = '0'
AND relation.FIRST_REGISTER = '1'
WHERE
user.ID = #{userId}
AND
user.DEL_FLAG = '0'
AND
user.FROM_APP = 'resi'
</select>
</mapper>

36
epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml

@ -53,4 +53,40 @@
</select>
<select id="getUserRoleList" parameterType="com.epmet.dto.form.UserRoleFormDTO"
resultType="string">
SELECT
DISTINCT
er.ROLE_KEY
FROM
USER_ROLE ur
JOIN EPMET_ROLE er ON ur.ROLE_ID = er.ID
<where>
er.DEL_FLAG = 0
AND
ur.DEL_FLAG = 0
AND
ur.USER_ID = #{userId}
<if test='null != app and "" != app'>
AND
er.APP = #{app}
</if>
<if test='null != customerId and "" != customerId'>
AND
ur.CUSTOMER_ID = #{customerId}
</if>
<if test='null != gridId and "" != gridId'>
AND
( ur.GRID_ID = #{gridId} OR ur.GRID_ID = 'all' )
</if>
<if test='null == gridId or "" == gridId'>
AND
ur.GRID_ID = 'all'
</if>
</where>
</select>
</mapper>
Loading…
Cancel
Save