Browse Source

Merge remote-tracking branch 'origin/dev_1118' into dev_1118

dev
李鹏飞 6 years ago
parent
commit
cd86addd8c
  1. 1
      esua-epdc/doc/branch/dev_1118/db/esua_epdc_user.sql
  2. 12
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java
  3. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java
  4. 16
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java
  5. 5
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/controller/CategoryController.java
  6. 3
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/dao/CategoryDao.java
  7. 291
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/service/impl/CategoryServiceImpl.java
  8. 31
      esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/category/CategoryDao.xml
  9. 8
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/constant/GroupNoticeConstant.java
  10. 1
      esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/form/TopicSubmitFormDTO.java
  11. 3
      esua-epdc/epdc-module/epdc-group/epdc-group-server/src/main/resources/mapper/group/UserGroupDao.xml
  12. 5
      esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml
  13. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java
  14. 14
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java
  15. 42
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  16. 29
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  17. 11
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java
  18. 11
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java
  19. 48
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java
  20. 5
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java
  21. 30
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java
  22. 2
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml
  23. 7
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/PartyMembersDao.xml
  24. 74
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml
  25. 13
      esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml

1
esua-epdc/doc/branch/dev_1118/db/esua_epdc_user.sql

@ -50,6 +50,7 @@ CREATE TABLE epdc_user_invitation_record(
GRID VARCHAR(128) NOT NULL COMMENT '网格' ,
GRID_ID BIGINT NOT NULL COMMENT '网格ID' ,
REGISTER_TIME DATETIME NOT NULL COMMENT '注册时间' ,
REVISION INT NULL COMMENT '乐观锁' ,
CREATED_BY VARCHAR(32) NOT NULL COMMENT '创建人' ,
CREATED_TIME DATETIME NOT NULL COMMENT '创建时间' ,
UPDATED_BY VARCHAR(32) NOT NULL COMMENT '更新人' ,

12
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/UserFeignClient.java

@ -258,6 +258,18 @@ public interface UserFeignClient {
@GetMapping("app-user/epdc-app/user/residentDetail/{userId}")
Result<EpdcResidentDetailResultDTO> residentDetail(@PathVariable("userId") String userId);
/**
*
* 获取用户最后一次切换的网格信息
*
* @params [openId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO>
* @author liuchuang
* @since 2019/12/6 11:04
*/
@GetMapping("app-user/epdc-app/user/lastSwitchGrid/{openId}")
Result<EpdcUserRegisterInfoResultDTO> getUserLastSwitchGrid(@PathVariable("openId") String openId);
/**
* 认证用户用户信息审核
*

5
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/UserFeignClientFallback.java

@ -136,6 +136,11 @@ public class UserFeignClientFallback implements UserFeignClient {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "authenticateResident", formDTO);
}
@Override
public Result<EpdcUserRegisterInfoResultDTO> getUserLastSwitchGrid(String openId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getUserLastSwitchGrid", openId);
}
@Override
public Result<List<EpdcWorkUserResultDTO>> getWorkUserList(EpdcWorkUserFromDTO workUserFromDto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_USER_SERVER, "getWorkUserList", workUserFromDto);

16
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AppUserServiceImpl.java

@ -639,12 +639,26 @@ public class AppUserServiceImpl implements AppUserService {
return authorization;
}
@Override
public Result<EpdcAppAuthorizationDTO> getMaV2Token(EpdcAppUserRegisterFormDTO formDto) {
WxMaJscode2SessionResult wxMaResult = this.getWxMaUser(formDto.getWxCode());
String openId = wxMaResult.getOpenid();
String unionId = wxMaResult.getUnionid();
// if (null == formDto.getGridId()) {
// // 获取用户绑定网格信息
// Result<EpdcUserRegisterInfoResultDTO> dtoResult = userFeignClient.getUserLastSwitchGrid(openId);
// if (!dtoResult.success()) {
// return new Result<EpdcAppAuthorizationDTO>().error(dtoResult.getMsg());
// }
// EpdcUserRegisterInfoResultDTO userDto = dtoResult.getData();
// if (userDto.getRegisterState() != NumConstant.TWO) {
// EpdcAppAuthorizationDTO resultDto = new EpdcAppAuthorizationDTO();
// resultDto.setUserState(NumConstant.FIVE_STR);
// return new Result<EpdcAppAuthorizationDTO>().ok(resultDto);
// } else {
// formDto.setGridId(userDto.getGridId());
// }
// }
// 查询当前微信注册状态
EpdcCheckUserRegisterFromDTO checkFromDto = new EpdcCheckUserRegisterFromDTO();
checkFromDto.setOpenId(openId);

5
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/controller/CategoryController.java

@ -22,8 +22,8 @@ import com.elink.esua.epdc.commons.tools.utils.ExcelUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
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.commons.tools.validator.group.UpdateGroup;
import com.elink.esua.epdc.dto.category.CategoryDTO;
import com.elink.esua.epdc.dto.category.CategoryOption;
import com.elink.esua.epdc.dto.category.form.CategoryInfoFormDTO;
@ -98,6 +98,9 @@ public class CategoryController {
/***
* 导入分类Excel表格
* @Author wanggongfeng
* @Description excle层级导入
* @Date 2019/12/6 9:20
*/
@PostMapping("importExcel")
public Result importExcel(@RequestParam("file") MultipartFile file) {

3
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/dao/CategoryDao.java

@ -21,6 +21,7 @@ import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.category.CategoryTreeDTO;
import com.elink.esua.epdc.modules.category.entity.CategoryEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -46,4 +47,6 @@ public interface CategoryDao extends BaseDao<CategoryEntity> {
List<Long> getSubCategoryIdList(String id);
List<CategoryTreeDTO> selectListCategoryTreeDTO();
void insertList(@Param("categorys")CategoryEntity[] categorys);
}

291
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/java/com/elink/esua/epdc/modules/category/service/impl/CategoryServiceImpl.java

@ -27,6 +27,7 @@ import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.redis.RedisKeys;
import com.elink.esua.epdc.commons.tools.redis.RedisUtils;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.utils.TreeUtils;
@ -41,6 +42,13 @@ import com.elink.esua.epdc.modules.category.redis.CategoryRedis;
import com.elink.esua.epdc.modules.category.service.CategoryService;
import com.google.common.collect.Lists;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -48,6 +56,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@ -64,6 +74,14 @@ public class CategoryServiceImpl extends BaseServiceImpl<CategoryDao, CategoryEn
@Autowired
private RedisUtils redisUtils;
private int totalRows = 0; // 总行数
private int totalCells = 0;// 总条数
public static int Guid=100;//id自增值
private Logger logger = LoggerFactory.getLogger(getClass());
@Override
@ -230,8 +248,279 @@ public class CategoryServiceImpl extends BaseServiceImpl<CategoryDao, CategoryEn
@Override
public Result insertPartyList(MultipartFile file) {
//获取excle版本
String isExcel2003 = getExcelInfo(file);
Result result = new Result();
//需存储的实体
List<CategoryEntity> list = new ArrayList<CategoryEntity>();
try{
Workbook wb = null;
InputStream is = file.getInputStream();
if ("true".equals(isExcel2003)) {
// 当excel是2003时,创建excel2003
wb = new HSSFWorkbook(is);
}else if("false".equals(isExcel2003)){
// 当excel是2007时,创建excel2007
wb = new XSSFWorkbook(is);
} else {
result.setMsg("defeat");
result.setCode(1);
result.setData("excle格式错误!");
return result;
}
// 得到第一个shell
Sheet sheet = wb.getSheetAt(0);
// 得到Excel的行数
this.totalRows = sheet.getPhysicalNumberOfRows();
// 得到Excel的列数(前提是有行数)
if (totalRows > 1 && sheet.getRow(0) != null) {
this.totalCells = sheet.getRow(0).getPhysicalNumberOfCells();
}
//查询根分类开始序号
CategoryEntity categoryEntity = new CategoryEntity();
categoryEntity.setPid(0L);
QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<CategoryEntity>(categoryEntity);
List<CategoryEntity> categoryEntityList = baseDao.selectList(wrapper);
int numm = categoryEntityList.size();
if(numm >= 0){
numm -= 1;
}
//一级分类
String firstClassName = "";
Long firstClassId = 0L;
Integer firstClassSort = Integer.parseInt(numm+"");
//二级分类
String secondClassName = "";
Long secondClassId = 0L;
Integer secondClassSort = -1;
//三级分类
String thirdClassName = "";
Long thirdClassId = 0L;
Integer thirdClassSort = -1;
//四级分类
String fourthClassName = "";
Long fourthClassId = 0L;
Integer fourthClassSort = -1;
// 循环Excel行数(不要表头,从2开始) ;0是excle表头、1是列名
for (int r = 2; r < totalRows; r++) {
Row row = sheet.getRow(r);
if (row == null) {
continue;
}
// 循环Excel的列 只需要读取2-5列
String firstClassNameCurrent = "";//本行一级分类
String secondClassNameCurrent = "";//本行二级分类
String thirdClassNameCurrent = "";//本行三级分类
String fourthClassNameCurrent = "";//本行四级分类
for (int c = 1; c < 5; c++) {
Cell cell = row.getCell(c);
if (null != cell) {
if (c == 1) {
//领域列
firstClassNameCurrent = "";
String value = getCellContent(cell);
if(!"".equals(value)){
firstClassName = value;
firstClassNameCurrent = value;
firstClassId = getLongRandom();
firstClassSort++;
secondClassSort = -1;
thirdClassSort = -1;
fourthClassSort = -1;
}
} else if (c == 2) {
//大类列
secondClassNameCurrent = "";
String value = getCellContent(cell);
if(!"".equals(value)){
secondClassName = value;
secondClassNameCurrent = value;
secondClassId = getLongRandom();
secondClassSort++;
thirdClassSort = -1;
fourthClassSort = -1;
}
} else if (c == 3) {
//小类列
thirdClassNameCurrent = "";
String value = getCellContent(cell);
if(!"".equals(value)){
thirdClassName = value;
thirdClassNameCurrent = value;
thirdClassId = getLongRandom();
thirdClassSort++;
fourthClassSort = -1;
}
} else if (c == 4) {
//细类名称列
fourthClassNameCurrent = "";
String value = getCellContent(cell);
if(!"".equals(value)){
fourthClassName = value;
fourthClassNameCurrent = value;
fourthClassId = getLongRandom();
fourthClassSort++;
}
}
}
}
if(!"".equals(firstClassNameCurrent)){
//领域
CategoryEntity insertEntity = getCategoryEntity(firstClassId,0L,"0",firstClassName,
firstClassId+"","0",firstClassSort,0,"");
list.add(insertEntity);
}
if(!"".equals(secondClassNameCurrent)){
//大类
CategoryEntity insertEntity = getCategoryEntity(secondClassId,firstClassId,firstClassId+"",secondClassName,
secondClassId+"","1",secondClassSort,0,firstClassName);
list.add(insertEntity);
}
if(!"".equals(thirdClassNameCurrent)){
//小类
String pids = firstClassId + "," + secondClassId + "";
CategoryEntity insertEntity = getCategoryEntity(thirdClassId,secondClassId,pids,thirdClassName,
thirdClassId+"","2",thirdClassSort,0,secondClassName);
list.add(insertEntity);
}
if(!"".equals(fourthClassNameCurrent)){
//细分类
String pids = firstClassId + "," + secondClassId + "," + thirdClassId + "";
CategoryEntity insertEntity = getCategoryEntity(fourthClassId,thirdClassId,pids,fourthClassName,
fourthClassId+"","3",fourthClassSort,0,thirdClassName);
list.add(insertEntity);
}
}
if(list.size() > 0){
CategoryEntity[] categoryEntities = new CategoryEntity[list.size()];
for(int k = 0 ; k < list.size() ; k++){
categoryEntities[k] = list.get(k);
}
baseDao.insertList(categoryEntities);
}
result.setMsg("success");
result.setCode(0);
result.setData("数据导入成功!");
return result;
}catch(Exception e){
}
result.setMsg("defeat");
result.setCode(1);
result.setData("数据导入失败!");
return result;
}
/**
* 获取单元格内容
* @param cell
* @return
*/
public String getCellContent(Cell cell){
String value = "";
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
value = String.valueOf(cell.getNumericCellValue());
} else {
value = cell.getStringCellValue();
}
//内容超过25个字进行长度限制,否则数据库会超限
if(value.length() > 25){
value = value.substring(0,25) + "...";
}
return value;
}
/**
* 获取19位随机数
* @return
*/
public Long getLongRandom(){
Guid+=1;
long now = System.currentTimeMillis();
SimpleDateFormat dateFormat=new SimpleDateFormat("MMdd");
String time=dateFormat.format(now);
String currentTimeMillis=now+"";
int ran=0;
if(Guid>999){
Guid=100;
}
ran=Guid;
String str = time+currentTimeMillis.substring(1, currentTimeMillis.length())+ran;
return Long.parseLong(str);
}
return new Result();
/**
* 拼接entity
* @param id ID
* @param pid 上级分类ID
* @param categoryName 分类名称
* @param categoryCode 分类编码
* @param categoryType 分类类别
* @param sort 排序
* @param delFlag 删除标识 0未删除 1删除
* @param parentName 上级部门名称
*/
public CategoryEntity getCategoryEntity(Long id,Long pid,String pids,String categoryName,String categoryCode,
String categoryType,Integer sort,Integer delFlag,String parentName) {
CategoryEntity entity = new CategoryEntity();
Long userId = SecurityUser.getUserId();
entity.setId(id);
entity.setPid(pid);
entity.setPids(pids);
entity.setCategoryName(categoryName);//分类名称
entity.setCategoryCode(categoryCode);//分类编码(暂时使用ID)
entity.setCategoryType(categoryType);//分类类别(默认1)
entity.setSort(sort);//排序
entity.setDelFlag(delFlag);//删除标识 0:未删除 1:删除
entity.setParentName(parentName);//上级部门名称
entity.setCreator(userId);
entity.setUpdater(userId);
entity.setCreateDate(new Date());
entity.setUpdateDate(new Date());
return entity;
}
/**
* 获取excle版本
* @param mFile
* @return
*/
public String getExcelInfo(MultipartFile mFile) {
String fileName = mFile.getOriginalFilename();// 获取文件名
String isExcel2003 = "true";// 根据文件名判断文件是2003版本还是2007版本
try {
if (!validateExcel(fileName)) {// 验证文件名是否合格
return "";
}
if (isExcel2007(fileName)) {
isExcel2003 = "false";
}
return isExcel2003;
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
/**
* 验证EXCEL文件
* @param filePath
* @return
*/
public boolean validateExcel(String filePath) {
if (filePath == null || !(isExcel2003(filePath) || isExcel2007(filePath))) {
return false;
}
return true;
}
// @描述:是否是2003的excel,返回true是2003
public static boolean isExcel2003(String filePath) {
return filePath.matches("^.+\\.(?i)(xls)$");
}
// @描述:是否是2007的excel,返回true是2007
public static boolean isExcel2007(String filePath) {
return filePath.matches("^.+\\.(?i)(xlsx)$");
}
/**

31
esua-epdc/epdc-module/epdc-events/epdc-events-server/src/main/resources/mapper/category/CategoryDao.xml

@ -48,4 +48,35 @@
ORDER BY
t1.sort ASC
</select>
<insert id="insertList">
insert into epdc_category
(id,
pid,
pids,
category_name,
category_code,
category_type,
sort,
del_flag,
creator,
create_date,
updater,
update_date)
values
<foreach collection="categorys" item="item" index="index" separator="," >
(#{item.id},
#{item.pid},
#{item.pids},
#{item.categoryName},
#{item.categoryCode},
#{item.categoryType},
#{item.sort},
#{item.delFlag},
#{item.creator},
#{item.createDate},
#{item.updater},
#{item.updateDate})
</foreach>
</insert>
</mapper>

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

@ -12,22 +12,22 @@ public interface GroupNoticeConstant {
/**
* 社群审核未通过
*/
String NOTICE_GROUP_NOT_PASSED = "创建的社群【审核未通过】";
String NOTICE_GROUP_NOT_PASSED = "创建的社群【审核未通过】";
/**
* 社群审核通过
*/
String NOTICE_GROUP_PASSED = "创建的社群【审核通过】";
String NOTICE_GROUP_PASSED = "创建的社群【审核通过】";
/**
* 社群解散
*/
String NOTICE_GROUP_DISBAND = "加入的社群已被解散";
String NOTICE_GROUP_DISBAND = "加入的社群已被解散";
/**
* 删除社群成员
*/
String NOTICE_GROUP_USER_REMOVED_MEMBER = "已被群主移除社群";
String NOTICE_GROUP_USER_REMOVED_MEMBER = "已被群主移除社群";
/**
* 邀请入群

1
esua-epdc/epdc-module/epdc-group/epdc-group-client/src/main/java/com.elink.esua.epdc/dto/topic/form/TopicSubmitFormDTO.java

@ -35,6 +35,7 @@ public class TopicSubmitFormDTO implements Serializable {
* 话题地址
*/
@NotBlank(message = "话题地址不能为空")
@Size(min = 1, max = 100, message = "话题地址在100个字以内")
private String topicAddress;
/**

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

@ -41,10 +41,11 @@
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
CREATED_TIME DESC
</select>
<select id="selectOneOfLordInfoByGroupId" resultType="com.elink.esua.epdc.dto.group.UserGroupDTO">

5
esua-epdc/epdc-module/epdc-user/epdc-user-server/pom.xml

@ -13,6 +13,11 @@
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-admin-client</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>com.esua.epdc</groupId>
<artifactId>epdc-user-client</artifactId>

14
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/controller/EpdcAppUserController.java

@ -326,4 +326,18 @@ public class EpdcAppUserController {
List<UserInvitationRecordResultDTO> data = userInvitationRecordService.invitationRecord(SecurityUser.getUserId());
return new Result<List<UserInvitationRecordResultDTO>>().ok(data);
}
/**
*
* 获取用户最后一次切换的网格信息
*
* @params [openId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO>
* @author liuchuang
* @since 2019/12/6 11:01
*/
@GetMapping("lastSwitchGrid/{openId}")
public Result<EpdcUserRegisterInfoResultDTO> getUserLastSwitchGird(@PathVariable("openId") String openId) {
return userService.getUserLastSwitchGird(openId);
}
}

14
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/dao/UserGridRelationDao.java

@ -18,6 +18,7 @@
package com.elink.esua.epdc.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.UserGridRelationDTO;
import com.elink.esua.epdc.entity.UserGridRelationEntity;
import org.apache.ibatis.annotations.Mapper;
@ -29,5 +30,16 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface UserGridRelationDao extends BaseDao<UserGridRelationEntity> {
/**
*
* 获取用户最后一次切换的网格信息
*
* @params [userId]
* @return com.elink.esua.epdc.dto.UserGridRelationDTO
* @author liuchuang
* @since 2019/12/6 10:45
*/
UserGridRelationDTO selectOneOfGird(String userId);
}

42
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java

@ -0,0 +1,42 @@
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.ParentAndAllDeptDTO;
import com.elink.esua.epdc.feign.fallback.AdminFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import java.util.List;
/**
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/5 14:44
*/
@FeignClient(name = ServiceConstant.EPDC_ADMIN_SERVER, fallback = AdminFeignClientFallback.class)
public interface AdminFeignClient {
/**
* 根据部门ID获取下属所有网格ID
*
* @param pid
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < java.lang.Long>>
* @author yujintao
* @date 2019/9/5 14:49
*/
@GetMapping("/sys/dept/listGridId/{pid}")
Result<List<Long>> listGridIdByDeptPid(@PathVariable("pid") Long pid);
/**
* 根据部门ID获取上级所有部门信息
*
* @param deptId
* @return com.elink.esua.epdc.commons.tools.utils.Result<ParentAndAllDeptDTO>
* @author gp
* @date 2019-11-29
*/
@GetMapping("/sys/dept/getParentAndAllDept/{deptId}")
Result<ParentAndAllDeptDTO> getParentAndAllDept(@PathVariable("deptId") String deptId);
}

29
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java

@ -0,0 +1,29 @@
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.ParentAndAllDeptDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* @author yujintao
* @email yujintao@elink-cn.com
* @date 2019/9/5 14:44
*/
@Component
public class AdminFeignClientFallback implements AdminFeignClient {
@Override
public Result<List<Long>> listGridIdByDeptPid(Long pid) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "listGridIdByDeptPid", pid);
}
@Override
public Result<ParentAndAllDeptDTO> getParentAndAllDept(String depId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getParentAndAllDept", depId);
}
}

11
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserGridRelationService.java

@ -165,4 +165,15 @@ public interface UserGridRelationService extends BaseService<UserGridRelationEnt
* @Date 2019/11/22 14:31
**/
Result removeGrid(EpdcAppRemoveGridFormDTO formDto);
/**
*
* 获取用户最后一次切换的网格信息
*
* @params [userId]
* @return com.elink.esua.epdc.dto.UserGridRelationDTO
* @author liuchuang
* @since 2019/12/6 10:47
*/
UserGridRelationDTO getUserLastSwitchGird(String userId);
}

11
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/UserService.java

@ -239,4 +239,15 @@ public interface UserService extends BaseService<UserEntity> {
*/
Result<Integer> getUnauthorizedAmount(EpdcUnauthorizedAmountFromDTO fromDto);
/**
*
* 获取用户最后一次切换的网格信息
*
* @params [openId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.epdc.result.EpdcUserRegisterInfoResultDTO>
* @author liuchuang
* @since 2019/12/6 10:59
*/
Result<EpdcUserRegisterInfoResultDTO> getUserLastSwitchGird(String openId);
}

48
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/PartyMembersServiceImpl.java

@ -28,16 +28,19 @@ import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.enums.YesOrNoEnum;
import com.elink.esua.epdc.commons.tools.exception.RenException;
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.Result;
import com.elink.esua.epdc.config.StreamUtils;
import com.elink.esua.epdc.dao.PartyMembersDao;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.PartyMembersDTO;
import com.elink.esua.epdc.dto.PartyTagRelationDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcPartyErroyResultDTO;
import com.elink.esua.epdc.entity.PartyMembersEntity;
import com.elink.esua.epdc.excel.PartyMembersExcel;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.redis.PartyMembersRedis;
import com.elink.esua.epdc.service.PartyMembersService;
import com.elink.esua.epdc.service.PartyTagRelationService;
@ -64,7 +67,8 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Autowired
private PartyTagRelationService partyTagRelationService;
@Autowired
private AdminFeignClient adminFeignClient;
@Override
public PageData<PartyMembersDTO> page(Map<String, Object> params) {
IPage<PartyMembersEntity> page = baseDao.selectPage(
@ -106,7 +110,8 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
public PartyMembersDTO get(String id) {
PartyMembersDTO partyMembersDTO = baseDao.selectByIdNew(id);
if(partyMembersDTO.getDeptStrIds()!=null){
partyMembersDTO.setAllDeptIds(partyMembersDTO.getDeptStrIds().split(","));
String depts[]=partyMembersDTO.getDeptStrIds().split(",");
partyMembersDTO.setAllDeptIds(Arrays.copyOfRange(depts,depts.length-3,depts.length));
}
return partyMembersDTO;
}
@ -114,14 +119,30 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Override
@Transactional(rollbackFor = Exception.class)
public void save(PartyMembersDTO dto) {
PartyMembersEntity entity = new PartyMembersEntity();
//通过用户审核添加的党员
if (dto.getRegistTime() != null) {
dto.setRegistFlag(YesOrNoEnum.YES.value());
entity.setRegistFlag(YesOrNoEnum.YES.value());
} else {
dto.setRegistFlag(YesOrNoEnum.NO.value());
dto.setRegistTime(new Date());
entity.setRegistFlag(YesOrNoEnum.NO.value());
entity.setRegistTime(new Date());
}
entity.setRealName(dto.getRealName());
entity.setMobile(dto.getMobile());
entity.setIdentityNo(dto.getIdentityNo());
Result<ParentAndAllDeptDTO> parentResult = adminFeignClient.getParentAndAllDept(dto.getAllDeptIds()[dto.getAllDeptIds().length-1]);
if (!parentResult.success() || parentResult.getData() == null) {
throw new RenException("获取部门信息失败");
}else {
ParentAndAllDeptDTO deptDTO = parentResult.getData();
entity.setAllDeptIds(deptDTO.getAllDeptIds());
entity.setAllDeptNames(deptDTO.getAllDeptNames());
entity.setParentDeptIds(deptDTO.getParentDeptIds());
entity.setParentDeptNames(deptDTO.getParentDeptNames());
entity.setGridId(Long.valueOf(dto.getAllDeptIds()[dto.getAllDeptIds().length-1]));
String[] split = deptDTO.getAllDeptNames().split("-");
entity.setGridName(split[split.length-1]);
}
PartyMembersEntity entity = ConvertUtils.sourceToTarget(dto, PartyMembersEntity.class);
insert(entity);
JSONArray jsonArray = JSON.parseArray(dto.getTagIds());
@ -138,11 +159,16 @@ public class PartyMembersServiceImpl extends BaseServiceImpl<PartyMembersDao, Pa
@Transactional(rollbackFor = Exception.class)
public void update(PartyMembersDTO dto) {
PartyMembersEntity entity = ConvertUtils.sourceToTarget(dto, PartyMembersEntity.class);
//修改数据库结构
entity.setAllDeptNames(dto.getStreetName()+"-"+dto.getCommunityName()+"-"+dto.getGridName());
entity.setAllDeptIds(dto.getStreetId()+","+dto.getCommunityId()+","+dto.getGridId());
entity.setParentDeptNames(dto.getStreetName()+"-"+dto.getCommunityName());
entity.setParentDeptIds(dto.getStreetId()+","+dto.getCommunityId());
Result<ParentAndAllDeptDTO> parentResult = adminFeignClient.getParentAndAllDept(String.valueOf(dto.getGridId()));
if (!parentResult.success() || parentResult.getData() == null) {
throw new RenException("获取部门信息失败");
}else {
ParentAndAllDeptDTO deptDTO = parentResult.getData();
entity.setAllDeptIds(deptDTO.getAllDeptIds());
entity.setAllDeptNames(deptDTO.getAllDeptNames());
entity.setParentDeptIds(deptDTO.getParentDeptIds());
entity.setParentDeptNames(deptDTO.getParentDeptNames());
}
updateById(entity);
partyTagRelationService.deleteByPartyId(entity.getId());

5
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserGridRelationServiceImpl.java

@ -206,4 +206,9 @@ public class UserGridRelationServiceImpl extends BaseServiceImpl<UserGridRelatio
}
return new Result();
}
@Override
public UserGridRelationDTO getUserLastSwitchGird(String userId) {
return baseDao.selectOneOfGird(userId);
}
}

30
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/java/com/elink/esua/epdc/service/impl/UserServiceImpl.java

@ -374,6 +374,11 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
else {
resultDto.setRegisterState(NumConstant.TWO);
resultDto.setGrid(relationInfo.getGrid());
// 更新最后一次切换网格时间
UserGridRelationEntity userGridRelationEntity = new UserGridRelationEntity();
userGridRelationEntity.setId(relationInfo.getId());
userGridRelationEntity.setSwitchedTime(new Date());
userGridRelationService.updateById(userGridRelationEntity);
}
}
// 未注册
@ -666,4 +671,29 @@ public class UserServiceImpl extends BaseServiceImpl<UserDao, UserEntity> implem
return new Result<Integer>().ok(baseDao.selectCountUnauthorizedAmount(fromDto));
}
@Override
public Result<EpdcUserRegisterInfoResultDTO> getUserLastSwitchGird(String openId) {
QueryWrapper<UserEntity> wrapper = new QueryWrapper<>();
wrapper.eq(UserFieldConsant.WX_OPEN_ID, openId)
.select(FieldConstant.ID, UserFieldConsant.NICKNAME, UserFieldConsant.FACE_IMG,
FieldConstant.MOBILE, UserFieldConsant.REAL_NAME,
FieldConstant.STATE, UserFieldConsant.PARTY_FLAG, UserFieldConsant.REMARK)
.orderByDesc(FieldConstant.CREATED_TIME);
List<UserEntity> userEntityList = this.baseDao.selectList(wrapper);
EpdcUserRegisterInfoResultDTO resultDto = new EpdcUserRegisterInfoResultDTO();
if (null != userEntityList && userEntityList.size() > 0) {
UserGridRelationDTO dto = userGridRelationService.getUserLastSwitchGird(userEntityList.get(NumConstant.ZERO).getId());
if (null == dto) {
resultDto.setRegisterState(NumConstant.ONE);
} else {
resultDto.setRegisterState(NumConstant.TWO);
resultDto.setGridId(dto.getGridId());
}
} else {
resultDto.setRegisterState(NumConstant.ZERO);
}
return new Result<EpdcUserRegisterInfoResultDTO>().ok(resultDto);
}
}

2
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/application.yml

@ -4,6 +4,8 @@ server:
context-path: /app-user
spring:
main:
allow-bean-definition-overriding: true
application:
name: epdc-user-server
# 环境 dev|test|prod

7
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/PartyMembersDao.xml

@ -145,12 +145,7 @@
<!--管理系统-->
<select id="selectByIdNew" resultType="com.elink.esua.epdc.dto.PartyMembersDTO">
SELECT
pm.CADRE_FLAG,
pm.CREATED_BY,pm.CREATED_TIME,
pm.DEPT_ID,
pm.ID,pm.IDENTITY_NO,pm.MOBILE,pm.POST,
pm.POST_VALUE,pm.REAL_NAME,pm.REGIST_FLAG,pm.REGIST_TIME,
pm.REVISION,
pm.*,
pm.ALL_DEPT_IDS as deptStrIds,
GROUP_CONCAT(DISTINCT(partytag.TAG_ID)) AS tagIds
FROM

74
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserDao.xml

@ -157,7 +157,7 @@
#{userId}
</foreach>
<if test="mobile != null and mobile != ''">
and u.MOBILE = #{mobile}
and u.MOBILE like concat('%', #{mobile}, '%')
</if>
<if test="road != null and road != ''">
and u.ROAD like concat('%', #{road}, '%')
@ -203,8 +203,8 @@
eu.VILLAGE_NAME AS villageName,
eu.DWELLING_PLACE as dwellingPlace,
'1' as authenticatedFlag,
SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',1) as streetName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',2),'-',-1)as communityName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',-3),'-',1) as streetName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',-2),'-',1)as communityName,
SUBSTRING_INDEX(epm.ALL_DEPT_NAMES,'-',-1) as gridName,
eu.PARTY_FLAG as partyFlag,
epm.CADRE_FLAG as cadreFlag,
@ -233,8 +233,8 @@
eu.VILLAGE_NAME AS villageName,
eu.DWELLING_PLACE AS dwellingPlace,
'0' AS authenticatedFlag,
SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',1) as streetName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',2),'-',-1)as communityName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',-3),'-',1) as streetName,
SUBSTRING_INDEX(SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',-2),'-',1)as communityName,
SUBSTRING_INDEX(epaf.ALL_DEPT_NAMES,'-',-1) as gridName,
eu.PARTY_FLAG AS partyFlag,
epaf.CADRE_FLAG AS cadreFlag,
@ -269,29 +269,29 @@
<!--获取用户列表-->
<select id="selectWorkUserList" resultType="com.elink.esua.epdc.dto.epdc.result.EpdcWorkUserResultDTO">
SELECT
u.ID as userId,
u.NICKNAME as nickname,
u.REGISTER_TIME as registerTime,
u.FACE_IMG as faceImg
u.ID as userId,
u.NICKNAME as nickname,
u.REGISTER_TIME as registerTime,
u.FACE_IMG as faceImg
FROM
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON ug.USER_ID = u.ID
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON ug.USER_ID = u.ID
WHERE
u.PARTY_FLAG = #{partyFlag}
AND u.STATE = #{authenticatedFlag}
AND u.DEL_FLAG = '0'
AND ug.DEL_FLAG = '0'
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")" >
#{item}
</foreach>
</otherwise>
</choose>
u.PARTY_FLAG = #{partyFlag}
AND u.STATE = #{authenticatedFlag}
AND u.DEL_FLAG = '0'
AND ug.DEL_FLAG = '0'
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</otherwise>
</choose>
GROUP BY
u.ID
u.ID
ORDER BY u.CREATED_TIME DESC
LIMIT #{pageIndex},#{pageSize}
</select>
@ -299,20 +299,20 @@
<!--查询待认证用户数量-->
<select id="selectCountUnauthorizedAmount" resultType="Integer">
SELECT
COUNT(DISTINCT(u.ID))
COUNT(DISTINCT(u.ID))
FROM
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON u.ID = ug.USER_ID
epdc_user_grid_relation ug
LEFT JOIN epdc_user u ON u.ID = ug.USER_ID
WHERE u.DEL_FLAG = '0' AND ug.DEL_FLAG = '0' AND u.STATE = '1'
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")" >
#{item}
</foreach>
</otherwise>
</choose>
<choose>
<when test="gridId != null and gridId > 0">AND ug.GRID_ID = #{gridId}</when>
<otherwise>
AND ug.GRID_ID in
<foreach collection="gridIdList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</otherwise>
</choose>
</select>

13
esua-epdc/epdc-module/epdc-user/epdc-user-server/src/main/resources/mapper/UserGridRelationDao.xml

@ -3,6 +3,17 @@
<mapper namespace="com.elink.esua.epdc.dao.UserGridRelationDao">
<select id="selectOneOfGird" resultType="com.elink.esua.epdc.dto.UserGridRelationDTO">
SELECT
*
FROM
`epdc_user_grid_relation`
WHERE
USER_ID = #{userId}
AND DEL_FLAG = '0'
ORDER BY
SWITCHED_TIME DESC
LIMIT 1
</select>
</mapper>
Loading…
Cancel
Save