Browse Source

社群管理列表查看详情数据、移动端创建社群接口 init

dev
liuchuang 6 years ago
parent
commit
6a74a2a4d6
  1. 2
      esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java
  2. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml
  3. 42
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java
  4. 32
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java
  5. 21
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java
  6. 26
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/GroupService.java
  7. 66
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/GroupServiceImpl.java
  8. 8
      esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EpdcEventSubmitFormDTO.java
  9. 8
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupDTO.java
  10. 5
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupManagementDTO.java
  11. 116
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/UserGroupDTO.java
  12. 53
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/enums/GroupStateEnum.java
  13. 56
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/enums/GroupUserStateEnum.java
  14. 82
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupCreateFormDTO.java
  15. 59
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupUserFormDTO.java
  16. 43
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java
  17. 84
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/UserGroupController.java
  18. 11
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/dao/GroupDao.java
  19. 48
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/dao/UserGroupDao.java
  20. 8
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/entity/GroupEntity.java
  21. 84
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/entity/UserGroupEntity.java
  22. 13
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java
  23. 95
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/UserGroupService.java
  24. 27
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java
  25. 97
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/UserGroupServiceImpl.java
  26. 8
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml
  27. 29
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/UserGroupDao.xml

2
esua-epdc/epdc-commons/epdc-commons-tools/src/main/java/com/elink/esua/epdc/commons/tools/constant/ServiceConstant.java

@ -46,7 +46,7 @@ public interface ServiceConstant {
/** /**
* 友邻社群模块 * 友邻社群模块
*/ */
String EPDC_NEIGHBOR_SERVER = "epdc-neighbor-server"; String EPDC_GROUP_SERVER = "epdc-group-server";
/** /**
* 新闻公告模块 * 新闻公告模块
*/ */

5
esua-epdc/epdc-module/epdc-api/epdc-api-client/pom.xml

@ -68,6 +68,11 @@
<artifactId>epdc-message-client</artifactId> <artifactId>epdc-message-client</artifactId>
<version>1.0.0</version> <version>1.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-group-client</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

42
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiGroupController.java

@ -0,0 +1,42 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.service.GroupService;
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;
/**
*
* 移动端接口-社群模块
*
* @Authorliuchuang
* @Date2019/10/17 13:48
*/
@RestController
@RequestMapping("group/group")
public class ApiGroupController {
@Autowired
private GroupService groupService;
/**
*
* 创建社群
*
* @params [userDetail, formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/17 13:58
*/
@PostMapping("create")
public Result createGroup(@LoginUser TokenDto userDetail, @RequestBody GroupCreateFormDTO formDto) {
return groupService.saveGroup(userDetail, formDto);
}
}

32
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/GroupFeignClient.java

@ -0,0 +1,32 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.feign.fallback.GroupFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
/**
*
* 社群模块调用
*
* @Authorliuchuang
* @Date2019/10/17 14:40
*/
@FeignClient(name = ServiceConstant.EPDC_GROUP_SERVER, fallback = GroupFeignClientFallback.class)
public interface GroupFeignClient {
/**
*
* 创建社群
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/17 14:44
*/
@PostMapping(value = "group/epdc-app/group/create", consumes = MediaType.APPLICATION_JSON_VALUE)
Result createGroup(GroupCreateFormDTO formDto);
}

21
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/GroupFeignClientFallback.java

@ -0,0 +1,21 @@
package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.feign.GroupFeignClient;
import org.springframework.stereotype.Component;
/**
* @Authorliuchuang
* @Date2019/10/17 14:40
*/
@Component
public class GroupFeignClientFallback implements GroupFeignClient {
@Override
public Result createGroup(GroupCreateFormDTO formDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_GROUP_SERVER, "createGroup", formDto);
}
}

26
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/GroupService.java

@ -0,0 +1,26 @@
package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
/**
*
* 社群模块
*
* @Authorliuchuang
* @Date2019/10/17 13:55
*/
public interface GroupService {
/**
*
* 创建社群
*
* @params [userDetail, formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/17 13:58
*/
Result saveGroup(TokenDto userDetail, GroupCreateFormDTO formDto);
}

66
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/GroupServiceImpl.java

@ -0,0 +1,66 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.constant.NumConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.group.enums.GroupUserStateEnum;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.dto.group.form.GroupUserFormDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.GroupFeignClient;
import com.elink.esua.epdc.service.GroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
*
* 社群模块
*
* @Authorliuchuang
* @Date2019/10/17 13:55
*/
@Service
public class GroupServiceImpl implements GroupService {
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private GroupFeignClient groupFeignClient;
@Override
public Result saveGroup(TokenDto userDetail, GroupCreateFormDTO formDto) {
if (null == userDetail) {
return new Result().error("获取用户信息失败");
}
// 获取该网格所有上级机构
Result<CompleteDeptDTO> deptDTOResult = adminFeignClient.getCompleteDept(userDetail.getGridId());
CompleteDeptDTO deptDTO = deptDTOResult.getData();
formDto.setArea(deptDTO.getDistrict());
formDto.setAreaId(deptDTO.getDistrictId());
formDto.setStreet(deptDTO.getStreet());
formDto.setStreetId(deptDTO.getStreetId());
formDto.setCommunity(deptDTO.getCommunity());
formDto.setCommunityId(deptDTO.getCommunityId());
formDto.setGrid(deptDTO.getGrid());
formDto.setGridId(deptDTO.getGridId());
formDto.setGroupCategory(NumConstant.ONE_STR);
// 群主信息
GroupUserFormDTO groupUserFormDTO = new GroupUserFormDTO();
groupUserFormDTO.setUserId(userDetail.getUserId());
groupUserFormDTO.setNickname(userDetail.getNickname());
groupUserFormDTO.setUserAvatar(userDetail.getFaceImg());
groupUserFormDTO.setMobile(userDetail.getMobile());
// 判断当前用户是否为党员
if (!NumConstant.ONE_STR.equals(userDetail.getPartyFlag())) {
return new Result().error("您当前身份不是党员,不能创建社群");
}
groupUserFormDTO.setPartyMember(userDetail.getPartyFlag());
groupUserFormDTO.setLordFlag(NumConstant.ONE_STR);
groupUserFormDTO.setState(GroupUserStateEnum.GROUP_USER_STATE_EXAMINATION_PASSED.getValue());
formDto.setGroupUserFormDTO(groupUserFormDTO);
return groupFeignClient.createGroup(formDto);
}
}

8
esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/form/EpdcEventSubmitFormDTO.java

@ -46,7 +46,7 @@ public class EpdcEventSubmitFormDTO implements Serializable {
/** /**
* 区ID * 区ID
*/ */
@NotBlank(message = "用户区ID不能为空") @NotNull(message = "用户区ID不能为空")
private Long areaId; private Long areaId;
/** /**
* 街道 * 街道
@ -55,7 +55,7 @@ public class EpdcEventSubmitFormDTO implements Serializable {
/** /**
* 街道ID * 街道ID
*/ */
@NotBlank(message = "用户街道ID不能为空") @NotNull(message = "用户街道ID不能为空")
private Long streetId; private Long streetId;
/** /**
* 社区 * 社区
@ -64,7 +64,7 @@ public class EpdcEventSubmitFormDTO implements Serializable {
/** /**
* 社区ID * 社区ID
*/ */
@NotBlank(message = "用户社区ID不能为空") @NotNull(message = "用户社区ID不能为空")
private Long communityId; private Long communityId;
/** /**
* 网格 * 网格
@ -73,7 +73,7 @@ public class EpdcEventSubmitFormDTO implements Serializable {
/** /**
* 网格ID * 网格ID
*/ */
@NotBlank(message = "用户网格ID不能为空") @NotNull(message = "用户网格ID不能为空")
private Long gridId; private Long gridId;
/** /**
* 用户ID * 用户ID

8
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupDTO.java

@ -66,7 +66,7 @@ public class GroupDTO implements Serializable {
/** /**
* 区ID * 区ID
*/ */
private String areaId; private Long areaId;
/** /**
* 街道 * 街道
@ -76,7 +76,7 @@ public class GroupDTO implements Serializable {
/** /**
* 街道ID * 街道ID
*/ */
private String streetId; private Long streetId;
/** /**
* 社区 * 社区
@ -86,7 +86,7 @@ public class GroupDTO implements Serializable {
/** /**
* 社区ID * 社区ID
*/ */
private String communityId; private Long communityId;
/** /**
* 网格 * 网格
@ -96,7 +96,7 @@ public class GroupDTO implements Serializable {
/** /**
* 网格ID * 网格ID
*/ */
private String gridId; private Long gridId;
/** /**
* 状态 0待审核5审核不通过10审核通过15禁言20已解散 * 状态 0待审核5审核不通过10审核通过15禁言20已解散

5
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/GroupManagementDTO.java

@ -43,4 +43,9 @@ public class GroupManagementDTO implements Serializable {
*/ */
private Date createdTime; private Date createdTime;
/**
* 群主
*/
private String nickname;
} }

116
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/UserGroupDTO.java

@ -0,0 +1,116 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.dto.group;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 用户社群关系表 用户社群关系表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-17
*/
@Data
public class UserGroupDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
private String id;
/**
* 社群ID
*/
private String groupId;
/**
* 用户ID
*/
private String userId;
/**
* 用户名
*/
private String nickname;
/**
* 用户头像
*/
private String userAvatar;
/**
* 手机号
*/
private String mobile;
/**
* 群主标识 01
*/
private String lordFlag;
/**
* 党员标识 01
*/
private String partyMember;
/**
* 状态 0待审核5审核不通过10审核通过15已退群20已移除
*/
private Integer state;
/**
* 审核意见
*/
private String auditOpinion;
/**
* 删除标记 0未删除1已删除
*/
private String delFlag;
/**
* 乐观锁
*/
private Integer revision;
/**
* 创建人
*/
private String createdBy;
/**
* 创建时间
*/
private Date createdTime;
/**
* 更新人
*/
private String updatedBy;
/**
* 更新时间
*/
private Date updatedTime;
}

53
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/enums/GroupStateEnum.java

@ -0,0 +1,53 @@
package com.elink.esua.epdc.dto.group.enums;
/**
* @Authorliuchuang
* @Date2019/10/17 14:15
*/
public enum GroupStateEnum {
/**
* 0-待审核
*/
GROUP_STATE_PENDING_REVIEW(0, "待审核"),
/**
* 5-审核不通过
*/
GROUP_STATE_AUDIT_NOT_PASSED(5, "审核不通过"),
/**
* 10-审核通过
*/
GROUP_STATE_EXAMINATION_PASSED(10, "审核通过"),
/**
* 15-禁言
*/
GROUP_STATE_BANNED(15, "禁言"),
/**
* 20-已解散
*/
GROUP_STATE_DISBANDED(20, "已解散");
private Integer value;
private String name;
GroupStateEnum(Integer value, String name) {
this.value = value;
this.name = name;
}
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

56
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/enums/GroupUserStateEnum.java

@ -0,0 +1,56 @@
package com.elink.esua.epdc.dto.group.enums;
/**
*
* 社群成员状态枚举
*
* @Authorliuchuang
* @Date2019/10/17 15:38
*/
public enum GroupUserStateEnum {
/**
* 0-待审核
*/
GROUP_USER_STATE_PENDING_REVIEW(0, "待审核"),
/**
* 5-审核不通过
*/
GROUP_USER_STATE_AUDIT_NOT_PASSED(5, "审核不通过"),
/**
* 10-审核通过
*/
GROUP_USER_STATE_EXAMINATION_PASSED(10, "审核通过"),
/**
* 15-已退群
*/
GROUP_USER_STATE_RETIRED(15, "已退群"),
/**
* 20-已移除
*/
GROUP_USER_STATE_REMOVED(20, "已移除");
private Integer value;
private String name;
GroupUserStateEnum(Integer value, String name) {
this.value = value;
this.name = name;
}
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}

82
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupCreateFormDTO.java

@ -0,0 +1,82 @@
package com.elink.esua.epdc.dto.group.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
/**
*
* 创建社群DTO
*
* @Authorliuchuang
* @Date2019/10/17 13:52
*/
@Data
public class GroupCreateFormDTO implements Serializable {
private static final long serialVersionUID = 2948200217356354599L;
/**
* 社群名称
*/
@NotBlank(message = "社群名称不能为空且在10个字以内")
@Size(min = 1, max = 10, message = "社群名称不能为空且在10个字以内")
private String groupName;
/**
* 社群头像
*/
@NotBlank(message = "社群头像不能为空")
private String groupAvatar;
/**
* 社群介绍
*/
@NotBlank(message = "社群介绍不能为空且在500个字以内")
@Size(min = 1, max = 500, message = "社群介绍不能为空且在500个字以内")
private String groupIntroduction;
/**
* 社群类别 0党员群1自建群
*/
private String groupCategory;
/**
*
*/
private String area;
/**
* 区ID
*/
@NotNull(message = "用户区ID不能为空")
private Long areaId;
/**
* 街道
*/
private String street;
/**
* 街道ID
*/
@NotNull(message = "用户街道ID不能为空")
private Long streetId;
/**
* 社区
*/
private String community;
/**
* 社区ID
*/
@NotNull(message = "用户社区ID不能为空")
private Long communityId;
/**
* 网格
*/
private String grid;
/**
* 网格ID
*/
@NotNull(message = "用户网格ID不能为空")
private Long gridId;
/**
* 群主信息
*/
private GroupUserFormDTO groupUserFormDTO;
}

59
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/group/form/GroupUserFormDTO.java

@ -0,0 +1,59 @@
package com.elink.esua.epdc.dto.group.form;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
*
* 社群成员DTO
*
* @Authorliuchuang
* @Date2019/10/17 14:27
*/
@Data
public class GroupUserFormDTO implements Serializable {
private static final long serialVersionUID = -1532468675717622698L;
/**
* 社群ID
*/
private String groupId;
/**
* 用户ID
*/
@NotBlank(message = "用户ID不能为空")
private String userId;
/**
* 用户昵称
*/
@NotBlank(message = "用户昵称不能为空")
private String nickname;
/**
* 用户头像
*/
@NotBlank(message = "用户头像不能为空")
private String userAvatar;
/**
* 用户手机号
*/
@NotBlank(message = "用户联系方式不能为空")
private String mobile;
/**
* 群主标识 01
*/
private String lordFlag;
/**
* 党员标识 01
*/
private String partyMember;
/**
* 状态 0待审核5审核不通过10审核通过15已退群20已移除
*/
private Integer state;
/**
* 处理意见
*/
private String auditOpinion;
}

43
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/AppGroupController.java

@ -0,0 +1,43 @@
package com.elink.esua.epdc.modules.group.controller;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.modules.group.service.GroupService;
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;
/**
*
* 移动端社群模块
*
* @Authorliuchuang
* @Date2019/10/17 13:46
*/
@RestController
@RequestMapping(Constant.EPDC_APP + "group")
public class AppGroupController {
@Autowired
private GroupService groupService;
/**
*
* 创建社群
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/17 14:56
*/
@PostMapping("create")
public Result createGroup(@RequestBody GroupCreateFormDTO formDto) {
//效验数据
ValidatorUtils.validateEntity(formDto);
return groupService.saveGroup(formDto);
}
}

84
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/controller/UserGroupController.java

@ -0,0 +1,84 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.group.controller;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
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.modules.group.service.UserGroupService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 用户社群关系表 用户社群关系表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-17
*/
@RestController
@RequestMapping("usergroup")
public class UserGroupController {
@Autowired
private UserGroupService userGroupService;
@GetMapping("page")
public Result<PageData<UserGroupDTO>> page(@RequestParam Map<String, Object> params){
PageData<UserGroupDTO> page = userGroupService.page(params);
return new Result<PageData<UserGroupDTO>>().ok(page);
}
@GetMapping("{id}")
public Result<UserGroupDTO> get(@PathVariable("id") String id){
UserGroupDTO data = userGroupService.get(id);
return new Result<UserGroupDTO>().ok(data);
}
@PostMapping
public Result save(@RequestBody UserGroupDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class);
userGroupService.save(dto);
return new Result();
}
@PutMapping
public Result update(@RequestBody UserGroupDTO dto){
//效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
userGroupService.update(dto);
return new Result();
}
@DeleteMapping
public Result delete(@RequestBody String[] ids){
//效验数据
AssertUtils.isArrayEmpty(ids, "id");
userGroupService.delete(ids);
return new Result();
}
}

11
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/dao/GroupDao.java

@ -44,5 +44,16 @@ public interface GroupDao extends BaseDao<GroupEntity> {
* @since 2019/10/11 14:54 * @since 2019/10/11 14:54
*/ */
List<GroupManagementDTO> selectListOfGroups(Map<String, Object> params); List<GroupManagementDTO> selectListOfGroups(Map<String, Object> params);
/**
*
* 查询社群名称重复数量
*
* @params [gridId, groupName]
* @return java.lang.Long
* @author liuchuang
* @since 2019/10/17 16:38
*/
Long selectListOfRepeatGroupName(Long gridId, String groupName);
} }

48
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/dao/UserGroupDao.java

@ -0,0 +1,48 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
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.modules.group.entity.UserGroupEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* 用户社群关系表 用户社群关系表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-17
*/
@Mapper
public interface UserGroupDao extends BaseDao<UserGroupEntity> {
/**
*
* 社群成员列表
*
* @params [params]
* @return java.util.List<com.elink.esua.epdc.dto.group.UserGroupDTO>
* @author liuchuang
* @since 2019/10/17 10:31
*/
List<UserGroupDTO> selectListOfGroupUsers(Map<String, Object> params);
}

8
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/entity/GroupEntity.java

@ -66,7 +66,7 @@ public class GroupEntity extends BaseEpdcEntity {
/** /**
* 区ID * 区ID
*/ */
private String areaId; private Long areaId;
/** /**
* 街道 * 街道
@ -76,7 +76,7 @@ public class GroupEntity extends BaseEpdcEntity {
/** /**
* 街道ID * 街道ID
*/ */
private String streetId; private Long streetId;
/** /**
* 社区 * 社区
@ -86,7 +86,7 @@ public class GroupEntity extends BaseEpdcEntity {
/** /**
* 社区ID * 社区ID
*/ */
private String communityId; private Long communityId;
/** /**
* 网格 * 网格
@ -96,7 +96,7 @@ public class GroupEntity extends BaseEpdcEntity {
/** /**
* 网格ID * 网格ID
*/ */
private String gridId; private Long gridId;
/** /**
* 状态 0待审核5审核不通过10审核通过15禁言20已解散 * 状态 0待审核5审核不通过10审核通过15禁言20已解散

84
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/entity/UserGroupEntity.java

@ -0,0 +1,84 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.group.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEpdcEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 用户社群关系表 用户社群关系表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-17
*/
@Data
@EqualsAndHashCode(callSuper=false)
@TableName("epdc_user_group")
public class UserGroupEntity extends BaseEpdcEntity {
private static final long serialVersionUID = 1L;
/**
* 社群ID
*/
private String groupId;
/**
* 用户ID
*/
private String userId;
/**
* 用户名
*/
private String nickname;
/**
* 用户头像
*/
private String userAvatar;
/**
* 手机号
*/
private String mobile;
/**
* 群主标识 01
*/
private String lordFlag;
/**
* 党员标识 01
*/
private String partyMember;
/**
* 状态 0待审核5审核不通过10审核通过15已退群20已移除
*/
private Integer state;
/**
* 审核意见
*/
private String auditOpinion;
}

13
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/GroupService.java

@ -19,8 +19,10 @@ package com.elink.esua.epdc.modules.group.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.group.GroupDTO; import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.group.GroupManagementDTO; import com.elink.esua.epdc.dto.group.GroupManagementDTO;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.modules.group.entity.GroupEntity; import com.elink.esua.epdc.modules.group.entity.GroupEntity;
import java.util.List; import java.util.List;
@ -93,4 +95,15 @@ public interface GroupService extends BaseService<GroupEntity> {
* @date 2019-10-10 * @date 2019-10-10
*/ */
void delete(String[] ids); void delete(String[] ids);
/**
*
* 移动端-创建社群
*
* @params [formDto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2019/10/17 14:57
*/
Result saveGroup(GroupCreateFormDTO formDto);
} }

95
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/UserGroupService.java

@ -0,0 +1,95 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.group.service;
import com.elink.esua.epdc.commons.mybatis.service.BaseService;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.dto.group.UserGroupDTO;
import com.elink.esua.epdc.modules.group.entity.UserGroupEntity;
import java.util.List;
import java.util.Map;
/**
* 用户社群关系表 用户社群关系表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-17
*/
public interface UserGroupService extends BaseService<UserGroupEntity> {
/**
* 默认分页
*
* @param params
* @return PageData<UserGroupDTO>
* @author generator
* @date 2019-10-17
*/
PageData<UserGroupDTO> page(Map<String, Object> params);
/**
* 默认查询
*
* @param params
* @return java.util.List<UserGroupDTO>
* @author generator
* @date 2019-10-17
*/
List<UserGroupDTO> list(Map<String, Object> params);
/**
* 单条查询
*
* @param id
* @return UserGroupDTO
* @author generator
* @date 2019-10-17
*/
UserGroupDTO get(String id);
/**
* 默认保存
*
* @param dto
* @return void
* @author generator
* @date 2019-10-17
*/
void save(UserGroupDTO dto);
/**
* 默认更新
*
* @param dto
* @return void
* @author generator
* @date 2019-10-17
*/
void update(UserGroupDTO dto);
/**
* 批量删除
*
* @param ids
* @return void
* @author generator
* @date 2019-10-17
*/
void delete(String[] ids);
}

27
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/GroupServiceImpl.java

@ -23,12 +23,17 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.group.GroupDTO; import com.elink.esua.epdc.dto.group.GroupDTO;
import com.elink.esua.epdc.dto.group.GroupManagementDTO; import com.elink.esua.epdc.dto.group.GroupManagementDTO;
import com.elink.esua.epdc.dto.group.UserGroupDTO;
import com.elink.esua.epdc.dto.group.form.GroupCreateFormDTO;
import com.elink.esua.epdc.modules.group.dao.GroupDao; import com.elink.esua.epdc.modules.group.dao.GroupDao;
import com.elink.esua.epdc.modules.group.entity.GroupEntity; import com.elink.esua.epdc.modules.group.entity.GroupEntity;
import com.elink.esua.epdc.modules.group.service.GroupService; import com.elink.esua.epdc.modules.group.service.GroupService;
import com.elink.esua.epdc.modules.group.service.UserGroupService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -45,6 +50,9 @@ import java.util.Map;
@Service @Service
public class GroupServiceImpl extends BaseServiceImpl<GroupDao, GroupEntity> implements GroupService { public class GroupServiceImpl extends BaseServiceImpl<GroupDao, GroupEntity> implements GroupService {
@Autowired
private UserGroupService userGroupService;
@Override @Override
public PageData<GroupManagementDTO> page(Map<String, Object> params) { public PageData<GroupManagementDTO> page(Map<String, Object> params) {
IPage<GroupManagementDTO> page = getPage(params); IPage<GroupManagementDTO> page = getPage(params);
@ -95,4 +103,23 @@ public class GroupServiceImpl extends BaseServiceImpl<GroupDao, GroupEntity> imp
baseDao.deleteBatchIds(Arrays.asList(ids)); baseDao.deleteBatchIds(Arrays.asList(ids));
} }
@Override
@Transactional(rollbackFor = Exception.class)
public Result saveGroup(GroupCreateFormDTO formDto) {
// 去掉社群名称中的空白
formDto.setGroupName(formDto.getGroupName().replaceAll("\\s*", ""));
// 校验社群名称是否已存在
Long amount = baseDao.selectListOfRepeatGroupName(formDto.getGridId(), formDto.getGroupName());
if (amount > 0) {
return new Result().error("群名称已存在,请修改");
}
GroupEntity entity = ConvertUtils.sourceToTarget(formDto, GroupEntity.class);
if (insert(entity)) {
UserGroupDTO userGroupDTO = ConvertUtils.sourceToTarget(formDto.getGroupUserFormDTO(), UserGroupDTO.class);
userGroupDTO.setGroupId(entity.getId());
userGroupService.save(userGroupDTO);
}
return new Result();
}
} }

97
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/java/com.elink.esua.epdc/modules/group/service/impl/UserGroupServiceImpl.java

@ -0,0 +1,97 @@
/**
* Copyright 2018 人人开源 https://www.renren.io
* <p>
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
* <p>
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.elink.esua.epdc.modules.group.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.dto.group.UserGroupDTO;
import com.elink.esua.epdc.modules.group.dao.UserGroupDao;
import com.elink.esua.epdc.modules.group.entity.UserGroupEntity;
import com.elink.esua.epdc.modules.group.service.UserGroupService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 用户社群关系表 用户社群关系表
*
* @author qu qu@elink-cn.com
* @since v1.0.0 2019-10-17
*/
@Service
public class UserGroupServiceImpl extends BaseServiceImpl<UserGroupDao, UserGroupEntity> implements UserGroupService {
@Override
public PageData<UserGroupDTO> page(Map<String, Object> params) {
IPage<UserGroupDTO> page = getPage(params);
List<UserGroupDTO> list = baseDao.selectListOfGroupUsers(params);
return new PageData<>(list, page.getTotal());
}
@Override
public List<UserGroupDTO> list(Map<String, Object> params) {
List<UserGroupEntity> entityList = baseDao.selectList(getWrapper(params));
return ConvertUtils.sourceToTarget(entityList, UserGroupDTO.class);
}
private QueryWrapper<UserGroupEntity> getWrapper(Map<String, Object> params){
String id = (String)params.get(FieldConstant.ID_HUMP);
QueryWrapper<UserGroupEntity> wrapper = new QueryWrapper<>();
wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id);
return wrapper;
}
@Override
public UserGroupDTO get(String id) {
UserGroupEntity entity = baseDao.selectById(id);
return ConvertUtils.sourceToTarget(entity, UserGroupDTO.class);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void save(UserGroupDTO dto) {
UserGroupEntity entity = ConvertUtils.sourceToTarget(dto, UserGroupEntity.class);
insert(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void update(UserGroupDTO dto) {
UserGroupEntity entity = ConvertUtils.sourceToTarget(dto, UserGroupEntity.class);
updateById(entity);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void delete(String[] ids) {
// 逻辑删除(@TableLogic 注解)
baseDao.deleteBatchIds(Arrays.asList(ids));
}
}

8
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/GroupDao.xml

@ -18,7 +18,9 @@
AND ugp.LORD_FLAG = '1' AND ugp.LORD_FLAG = '1'
WHERE WHERE
gp.DEL_FLAG = '0' gp.DEL_FLAG = '0'
AND gp.STATE = #{state} <if test="state != null and state != ''">
AND gp.STATE = #{state}
</if>
<if test="gridId != null and gridId != ''"> <if test="gridId != null and gridId != ''">
AND gp.GRID_ID = #{gridId} AND gp.GRID_ID = #{gridId}
</if> </if>
@ -32,5 +34,9 @@
gp.GROUP_CATEGORY, gp.CREATED_TIME DESC gp.GROUP_CATEGORY, gp.CREATED_TIME DESC
</select> </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>
</mapper> </mapper>

29
esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/UserGroupDao.xml

@ -0,0 +1,29 @@
<?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
FROM
epdc_user_group ugp
WHERE
ugp.DEL_FLAG = '0'
AND ugp.GROUP_ID = #{groupId}
AND ugp.STATE = 10
<if test="nickname != null and nickname != ''">
AND ugp.NICKNAME LIKE concat('%', #{nickname}, '%')
</if>
<if test="mobile != null and mobile != ''">
AND ugp.MOBILE = #{mobile}
</if>
ORDER BY
ugp.LORD_FLAG DESC,
ugp.CREATED_TIME DESC
</select>
</mapper>
Loading…
Cancel
Save