diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index 18c98bf5aa..56bde19105 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -379,6 +379,8 @@ lb://tduck-api + + lb://pli-power-base-server https://oapi.dingtalk.com/robot/send?access_token=e894e5690f9d6a527722974c71548ff6c0fe29bd956589a09e21b16442a35ed4 SECfcc020bdc83bb17a2c00f39977b1fbc409ef4188c7beaea11c5caa90eeaf87fd diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index 691c441552..a1d2a74c11 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -514,6 +514,7 @@ epmet: - /gov/org/icbuildingunit/unitoption - /gov/org/ichouse/houseoption - /epmetuser/icresicollect/save + - /gov/org/customergrid/gridoption # 外部应用认证,使用AccessToken等头进行认证 externalOpenUrls: - /data/report/** diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java index 34628a197f..3bf68a00ca 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/controller/CustomerGridController.java @@ -308,6 +308,7 @@ public class CustomerGridController { * @Return {@link Result>} * @Author zhaoqifeng * @Date 2021/10/26 14:02 + * !!!:此接口给城阳小程序使用,已经在gateway中放开此接口无需校验token */ @PostMapping("gridoption") public Result> getGridOption(@RequestBody GridOptionFormDTO formDTO){ diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/controller/ResiMineGridController.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/controller/ResiMineGridController.java index 606d4d9d44..318b7f6aa6 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/controller/ResiMineGridController.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/controller/ResiMineGridController.java @@ -50,15 +50,16 @@ public class ResiMineGridController { /** * @return - * @param appId * @Author sun * @Description 单客户-获取用户最近访问网格 * @Date 2020/8/3 **/ @GetMapping("latestgridinfo") - public Result latestGridInfo(@LoginUser TokenDto token, @RequestParam("appId") String appId) { + //public Result latestGridInfo(@LoginUser TokenDto token, @RequestParam("appId") String appId) { + public Result latestGridInfo_new(@LoginUser TokenDto token) { LatestGridInfoFormDTO formDTO = new LatestGridInfoFormDTO(); - formDTO.setAppId(appId); + //formDTO.setAppId(appId); + formDTO.setCustomerId(token.getCustomerId()); formDTO.setUserId(token.getUserId()); return new Result().ok(resiMineGridService.latestGridInfo(formDTO)); } diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java index 68ac4ef3c1..3778e941c3 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java +++ b/epmet-module/resi-mine/resi-mine-server/src/main/java/com/epmet/modules/grid/service/impl/ResiMineGridServiceImpl.java @@ -130,7 +130,10 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { } } } - //1.调用third服务,根据appId获取客户Id + + /* + //2022.4.29 应前端要求 入参不再传appid值 + //1.调用third服务,根据appId获取客户Id JSONObject jsonObject = new JSONObject(); String customerMsgUrl = "https://epmet-cloud.elinkservice.cn/api/third/customermp/getcustomermsg/"; String data = HttpClientManager.getInstance().sendPostByJSON(customerMsgUrl + formDTO.getAppId(), JSON.toJSONString(jsonObject)).getData(); @@ -148,10 +151,10 @@ public class ResiMineGridServiceImpl implements ResiMineGridService { JSONObject json = JSON.parseObject(PublicCustomerResultDTO.toString()); Map map = (Map) json.get("customer"); PaCustomerDTO customer = ConvertUtils.mapToEntity(map, PaCustomerDTO.class); - logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer); + logger.info("小程序登陆third服务获取客户用户信息PaCustomerDTO->" + customer);*/ //2.调用epmet-user服务,根据客户Id和用户Id查询最后一次访问记录 - formDTO.setCustomerId(customer.getId()); + //formDTO.setCustomerId(customer.getId()); Result userResult = epmetUserOpenFeignClient.latestGridInfo(formDTO); if (!userResult.success()) { logger.error(String.format("居民端获取用户最近访问网格失败,接口入参客户Id->%s,appId->%s,调用epmet-user-server服务返回->%s", formDTO.getCustomerId(), formDTO.getAppId(), JSON.toJSONString(userResult))); diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java index f2bbbf32f8..aa0cb1e7f9 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/fallback/EpmetUserOpenFeignClientFallback.java @@ -542,4 +542,5 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result> userChartList(UserChartFormDTO userDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "userChartList", userDTO); } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java index 6fb974f26d..a6f696a39f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/IcResiUserController.java @@ -241,8 +241,8 @@ public class IcResiUserController implements ResultDataResolver { * @date 2022/4/26 10:48 */ @PostMapping("rent/updateimage") - public Result updateImage(@RequestBody RentTenantFormDTO formDTO) { - String resiUserId = icResiUserService.updateImage(formDTO); + public Result updateImage(@LoginUser TokenDto tokenDto, @RequestBody RentTenantFormDTO formDTO) { + String resiUserId = icResiUserService.updateImage(tokenDto, formDTO); //推送MQ事件 editResiMq(formDTO.getCustomerId(), resiUserId); return new Result(); diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java index fabb61d0a0..02d15a0b46 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/OperUserController.java @@ -18,6 +18,9 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.AppClientConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; @@ -29,9 +32,11 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.dto.OperUserDTO; +import com.epmet.dto.PasswordDTO; import com.epmet.dto.result.QueryOperUserResultDto; import com.epmet.excel.OperUserExcel; import com.epmet.service.OperUserService; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -82,6 +87,22 @@ public class OperUserController { return new Result(); } + /** + * desc:修改运营端用户 密码 + * @param tokenDto + * @param dto + * @return + */ + @PostMapping(value = "updatePwd") + public Result updatePwd(@LoginUser TokenDto tokenDto,@RequestBody PasswordDTO dto) { + if (StringUtils.isBlank(dto.getNewPassword()) && AppClientConstant.APP_OPER.equals(tokenDto.getClient())){ + throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"参数错误","参数错误"); + } + operUserService.updatePwd(tokenDto.getUserId(),dto); + return new Result(); + } + + @DeleteMapping public Result delete(@RequestBody String[] ids) { //效验数据 diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java index 9a4a5c48a3..ca9a6d3af3 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/IcResiUserService.java @@ -88,7 +88,14 @@ public interface IcResiUserService extends BaseService { String staffOrgPath); /** + * @Description 查询个人数据 * @param formDTO + * @author zxc + * @date 2021/11/3 9:21 上午 + */ + PersonDataResultDTO personData(PersonDataFormDTO formDTO); + + /** * @Description 根据名字搜索 * @param formDTO * @Description 根据名字搜索 @@ -301,4 +308,35 @@ public interface IcResiUserService extends BaseService { * @date 2022/4/26 10:48 */ String updateImage(RentTenantFormDTO formDTO); + + /** + * 租客房东黑名单查询个人数据 + * + * @param formDTO + * @return com.epmet.dto.result.RentTenantDataResultDTO + * @author zhy + * @date 2022/4/26 16:03 + */ + RentTenantDataResultDTO getRentResiUserInfo(RentTenantDataFormDTO formDTO); + + /** + * 租客房东黑名单查询个人数据 + * + * @param idCard + * @return com.epmet.dto.result.RentTenantDataResultDTO + * @author zhy + * @date 2022/4/26 16:03 + */ + List getRentResiUserInfoByIdCard(String idCard); + + /** + * 租客房东根据身份证更新头像 + * + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author zhy + * @date 2022/4/26 10:48 + */ + String updateImage(TokenDto tokenDto, RentTenantFormDTO formDTO); + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/OperUserService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/OperUserService.java index fd7b4f60e8..4aff1ed012 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/OperUserService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/OperUserService.java @@ -20,6 +20,7 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.OperUserDTO; +import com.epmet.dto.PasswordDTO; import com.epmet.entity.OperUserEntity; import java.util.List; @@ -99,4 +100,11 @@ public interface OperUserService extends BaseService { * @return */ OperUserDTO getOperUserInfoById(String id); -} \ No newline at end of file + + /** + * desc:修改密码 + * @param userId + * @param dto + */ + void updatePwd(String userId, PasswordDTO dto); +} diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java index 6cee68d249..233df4117a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/IcResiUserServiceImpl.java @@ -259,14 +259,33 @@ public class IcResiUserServiceImpl extends BaseServiceImpl map, String icUserId, String icUserName) { + //变更记录表和变更记录明细表新增数据 CustomerStaffInfoCacheResult staffInfoCache = CustomerStaffRedis.getStaffInfo(tokenDto.getCustomerId(), tokenDto.getUserId()); //3-1.变更记录表 IcUserChangeRecordEntity changeRecordEntity = new IcUserChangeRecordEntity(); changeRecordEntity.setCustomerId(tokenDto.getCustomerId()); changeRecordEntity.setOperatorId(tokenDto.getUserId()); - changeRecordEntity.setIcUserId(resiUserId); + changeRecordEntity.setIcUserId(icUserId); changeRecordEntity.setOperatorName(staffInfoCache.getRealName()); - changeRecordEntity.setIcUserName(name); + changeRecordEntity.setIcUserName(icUserName); changeRecordEntity.setType("add"); changeRecordEntity.setTypeName("新增"); changeRecordEntity.setBeforeChangeName("-"); @@ -274,11 +293,8 @@ public class IcResiUserServiceImpl extends BaseServiceImpl changeDetailedEntityList = saveChangeRecord(tokenDto, map, resiUserId, changeRecordEntity.getId()); + List changeDetailedEntityList = saveChangeRecord(tokenDto, map, icUserId, changeRecordEntity.getId()); icUserChangeDetailedService.insertBatch(changeDetailedEntityList); - - return resiUserId; - } /** @@ -799,7 +815,93 @@ public class IcResiUserServiceImpl extends BaseServiceImpl(groupByTables)); return map; } - + /** + * @param formDTO + * @Description 查询个人数据 + * @author zxc + * @date 2021/11/3 9:21 上午 + */ + @Override + public PersonDataResultDTO personData(PersonDataFormDTO formDTO) { + PersonDataResultDTO personData = baseDao.personData(formDTO.getUserId()); + if (null == personData) { + return new PersonDataResultDTO(); + } + //新增以下2个返参 + ResiUserFormDTO resiUserFormDTO = new ResiUserFormDTO(); + resiUserFormDTO.setIcResiUserId(formDTO.getUserId()); + resiUserFormDTO.setIdNum(personData.getIdCard()); + resiUserFormDTO.setCustomerId(formDTO.getCustomerId()); + //根据身份证号+ic_resi_user.id找epmetUserId + ResiUserResDTO resiUserResDTO = userService.findEpmetUser(resiUserFormDTO); + personData.setEpmetUserIdList(null != resiUserResDTO ? resiUserResDTO.getEpmetUserIdList() : new ArrayList<>()); + personData.setIcResiUserId(formDTO.getUserId()); + + // 房屋信息查询 + Result> listResult = govOrgOpenFeignClient.selectHouseInfoByIdCard(personData.getIdCard(), formDTO.getCustomerId()); + if (!listResult.success()) { + throw new RenException("查询房屋信息失败"); + } + personData.setHouseInfo(listResult.getData()); + + // 志愿者处理 + if (personData.getIsVolunteer().equals(NumConstant.ONE_STR)) { + List volunteerList = baseDao.selectVolunteerByUserId(formDTO.getUserId()); + if (!CollectionUtils.isEmpty(volunteerList)) { + List volunteers = new ArrayList<>(); + List finalVolunteers = volunteers; + volunteerList.forEach(v -> { + List collect = Arrays.stream(v.split(",")).collect(Collectors.toList()); + finalVolunteers.addAll(collect); + }); + volunteers = volunteers.stream().distinct().collect(Collectors.toList()); + // 去customize 查询志愿者类别 + Result> volunteerResult = operCustomizeOpenFeignClient.volunteerLabelByValues(volunteers, personData.getCustomerId()); + if (!volunteerResult.success()) { + throw new RenException("查询志愿者类别失败..."); + } + personData.setVolunteerCategory(volunteerResult.getData()); + } + } + // 网格名 + GridInfoCache gridInfo = CustomerOrgRedis.getGridInfo(personData.getGridId()); + if (null != gridInfo) { + personData.setGridName(gridInfo.getGridNamePath()); + } + /** + * 人员类别 + * 先查询customize配置的 + * 再根据配置去查询字段 + */ + IcResiCategoryStatsConfigDTO dto = new IcResiCategoryStatsConfigDTO(); + dto.setCustomerId(personData.getCustomerId()); + Result> categoryListResult = operCustomizeOpenFeignClient.getCategoryList(dto); + if (!categoryListResult.success()) { + throw new RenException("查询客户下的人员类别失败..."); + } + List categoryData = categoryListResult.getData(); + if (!CollectionUtils.isEmpty(categoryData)) { + Map> groupByStatus = categoryData.stream().collect(Collectors.groupingBy(IcResiCategoryStatsConfigDTO::getStatus)); + List showList = groupByStatus.get(IcPlatformConstant.PERSON_CATEGORY_SHOW); + List personCategoryList = new ArrayList<>(); + if (!CollectionUtils.isEmpty(showList)) { + Map> groupByTableName = showList.stream().collect(Collectors.groupingBy(IcResiCategoryStatsConfigDTO::getTableName)); + groupByTableName.forEach((tableName, list) -> { + List columns = list.stream().map(IcResiCategoryStatsConfigDTO::getColumnName).collect(Collectors.toList()); + Map result = baseDao.selectPersonType(columns, personData.getCustomerId(), tableName, formDTO.getUserId()); + list.forEach(l -> { + result.forEach((k, v) -> { + if (l.getColumnName().equals(k) && v.equals(NumConstant.ONE_STR)) { + personCategoryList.add(l.getLabel()); + } + }); + }); + }); + personData.setPersonCategory(personCategoryList); + } + } + return personData; + } /** * @param formDTO * @Description 根据名字搜索 @@ -1672,4 +1774,48 @@ public class IcResiUserServiceImpl extends BaseServiceImpl getRentResiUserInfoByIdCard(String idCard) { + Map params = new HashMap<>(8); + params.put("idCard", idCard); + List entityList = baseDao.selectList(getWrapper(params)); + return ConvertUtils.sourceToTarget(entityList, RentTenantDataResultDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public String updateImage(TokenDto tokenDto, RentTenantFormDTO formDTO) { + String resiUserId = ""; + IcResiUserDTO userDTO = baseDao.getResiUserByIdCard(formDTO.getIdCard(), formDTO.getCustomerId()); + if (null != userDTO) { + resiUserId = userDTO.getId(); + // 插入附件头像(只有一张) + List images = formDTO.getImages(); + images.forEach(item -> item.setUserId(userDTO.getId())); + images.forEach(item-> icResiUserAttachmentService.save(item)); + } else if (NumConstant.ONE_STR.equals(formDTO.getType())) { + // 如果是新增的租客,需要新增一条信息,不存在的房东就不管了 + IcResiUserEntity entity = ConvertUtils.sourceToTarget(formDTO.getUser(), IcResiUserEntity.class); + insert(entity); + resiUserId = entity.getId(); + // 变更记录表和变更记录明细表新增数据 + LinkedHashMap map = new LinkedHashMap(); + map.put("AGENCY_ID",entity.getAgencyId()); + saveUserChangeRecord(tokenDto,map,resiUserId,entity.getName()); + // 新增用户后保存头像信息 + List images = formDTO.getImages(); + images.forEach(item -> item.setUserId(entity.getId())); + images.forEach(item -> icResiUserAttachmentService.save(item)); + } + + return resiUserId; + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java index aba125363b..f3dddd6a59 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/OperUserServiceImpl.java @@ -17,6 +17,7 @@ package com.epmet.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; @@ -29,6 +30,7 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.OperUserDao; import com.epmet.dto.OperUserDTO; +import com.epmet.dto.PasswordDTO; import com.epmet.entity.OperUserEntity; import com.epmet.entity.UserEntity; import com.epmet.feign.OperRoleUserFeignClient; @@ -40,6 +42,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; +import java.util.Date; import java.util.List; import java.util.Map; @@ -142,4 +145,15 @@ public class OperUserServiceImpl extends BaseServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(OperUserEntity::getUserId,userId); + baseDao.update(param, lambdaQueryWrapper); + } + }