diff --git a/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml b/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml index 0275695054..6b4803d4d8 100644 --- a/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml +++ b/epmet-admin/epmet-admin-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: epmet-admin-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index 20a0b534f6..a61c25d8cf 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -107,7 +107,9 @@ public enum EpmetErrorCode { OPER_EXTERNAL_APP_AUTH_ERROR(8709, "外部应用认证失败"), OPER_EXTERNAL_CUSTOMER_NOT_EXISTS(8710, "该客户不存在"), OPER_EXTERNAL_APP_EXISTS(8711, "应用已存在"), - OPER_EXT_APP_SECRET_RESET_FAIL(8713, "秘钥更新失败"), + OPER_CUSTOMER_FOOTBAR_EXISTS(8712, "footbar已存在"), + OPER_CUSTOMER_FOOTBAR_NOT_FOUND(8713, "footbar不存在"), + OPER_EXT_APP_SECRET_RESET_FAIL(8713, "秘钥更新失败"), // 党建声音 前端提示 88段 DRAFT_CONTENT_IS_NULL(8801, "至少需要添加一个段落"), diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml index e64e3f45c3..cef4109081 100644 --- a/epmet-gateway/pom.xml +++ b/epmet-gateway/pom.xml @@ -90,6 +90,8 @@ 8080 + dev + 0 192.168.1.130 @@ -206,6 +208,8 @@ 8080 + local + 0 192.168.1.130 @@ -322,6 +326,8 @@ 8080 + test + 0 r-m5eoz5b6tkx09y6bpz.redis.rds.aliyuncs.com @@ -409,6 +415,8 @@ 8080 + prod + 0 r-m5ez3n1j0qc3ykq2ut.redis.rds.aliyuncs.com diff --git a/epmet-gateway/src/main/resources/bootstrap.yml b/epmet-gateway/src/main/resources/bootstrap.yml index 5af513a4a4..de94f499a2 100644 --- a/epmet-gateway/src/main/resources/bootstrap.yml +++ b/epmet-gateway/src/main/resources/bootstrap.yml @@ -11,7 +11,7 @@ spring: name: epmet-gateway-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml index 5899ead6dd..d3ebec947d 100644 --- a/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml +++ b/epmet-module/data-report/data-report-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: data-report-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml index d0f69c2502..f9a372c94e 100644 --- a/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-activiti/epmet-activiti-server/src/main/resources/bootstrap.yml @@ -8,7 +8,7 @@ spring: name: epmet-activiti-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml index ec2f2c7a2b..e521fd36ff 100644 --- a/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-common-service/common-service-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: common-service-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/epmet-demo/epmet-demo-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-demo/epmet-demo-server/src/main/resources/bootstrap.yml index c34d1822b8..1352c66f87 100644 --- a/epmet-module/epmet-demo/epmet-demo-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-demo/epmet-demo-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: allow-bean-definition-overriding: true #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml index 8f43acbf19..a1948620e3 100644 --- a/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-ext/epmet-ext-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: epmet-ext-server # dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml index 0f7b365814..0f9afbef03 100644 --- a/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-message/epmet-message-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: epmet-message-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml index 390608e0f4..115f991f57 100644 --- a/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml +++ b/epmet-module/epmet-oss/epmet-oss-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: epmet-oss-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/epmet-point/epmet-point-client/pom.xml b/epmet-module/epmet-point/epmet-point-client/pom.xml index c43496fa40..479b51156e 100644 --- a/epmet-module/epmet-point/epmet-point-client/pom.xml +++ b/epmet-module/epmet-point/epmet-point-client/pom.xml @@ -27,6 +27,12 @@ io.springfox springfox-swagger-ui + + com.epmet + epmet-user-client + 2.0.0 + compile + diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/CommonPageUserFormDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/CommonPageUserFormDTO.java index 3dd0e34ac9..c37afa2921 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/CommonPageUserFormDTO.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/CommonPageUserFormDTO.java @@ -26,4 +26,7 @@ public class CommonPageUserFormDTO implements Serializable { private Integer pageNo = 1; private Integer pageSize = 10; + + @NotBlank(message = "获取不到用户Id" , groups = PageUserGroup.class) + private String customerId; } diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java index 7920d68c66..8726a2659b 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/dto/form/PointVerificationFormDTO.java @@ -52,4 +52,6 @@ public class PointVerificationFormDTO implements Serializable { @NotBlank(message = "缺失地址信息" , groups = PointVerificationGroup.class) private String address; + + private String customerId; } diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java index deaa7bb6d5..d5b9edd6c6 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/EpmetPointOpenFeignClient.java @@ -1,13 +1,12 @@ package com.epmet.feign; -import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.result.ResiPointDetailResultDTO; import com.epmet.feign.fallback.EpmetPointOpenFeignClientFallback; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 @@ -20,11 +19,11 @@ public interface EpmetPointOpenFeignClient { /** * @Description 获取指定居民的积分信息 - * @param dto + * @param * @return * @author wangc * @date 2020.07.22 15:58 **/ - @GetMapping("/point/resi/point/mypoint") - Result myPoint(TokenDto dto); + @PostMapping("/point/resi/point/mypoint") + Result myPoint(CommonUserFormDTO param); } diff --git a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java index 8901a0724b..7d5cda718f 100644 --- a/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java +++ b/epmet-module/epmet-point/epmet-point-client/src/main/java/com/epmet/feign/fallback/EpmetPointOpenFeignClientFallback.java @@ -1,9 +1,9 @@ package com.epmet.feign.fallback; import com.epmet.commons.tools.constant.ServiceConstant; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.result.ResiPointDetailResultDTO; import com.epmet.feign.EpmetPointOpenFeignClient; import org.springframework.stereotype.Component; @@ -17,7 +17,7 @@ import org.springframework.stereotype.Component; @Component public class EpmetPointOpenFeignClientFallback implements EpmetPointOpenFeignClient { @Override - public Result myPoint(TokenDto dto) { - return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "myPoint", dto); + public Result myPoint(CommonUserFormDTO param) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_POINT_SERVER, "myPoint",param); } } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java index 21336dccb2..535b717e0c 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/AdjustmentController.java @@ -7,6 +7,7 @@ import com.epmet.commons.tools.enums.RequirePermissionEnum; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.CustomerUserFormDTO; import com.epmet.dto.form.IssueInitiatorFormDTO; import com.epmet.dto.form.PointAdjustmentFormDTO; @@ -59,7 +60,8 @@ public class AdjustmentController { **/ @PostMapping("userdetail") @RequirePermission(requirePermission = RequirePermissionEnum.MORE_POINT_USER_MANAGE_DETAIL_VIEW) - public Result userDetail(@RequestBody IssueInitiatorFormDTO param){ + public Result userDetail(@LoginUser TokenDto staffToken,@RequestBody CommonUserFormDTO param){ + param.setCustomerId(staffToken.getCustomerId()); ValidatorUtils.validateEntity(param,IssueInitiatorFormDTO.UserIdGroup.class); return new Result().ok(pointAdjustmentLogService.userDetail(param)); } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java index ff4bdd2285..8bb1d31cc5 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ExchangeController.java @@ -39,6 +39,7 @@ public class ExchangeController { @PostMapping("execute") public Result execute(@LoginUser TokenDto token, @RequestBody PointVerificationFormDTO verificationParam){ verificationParam.setOperatorId(token.getUserId()); + verificationParam.setCustomerId(token.getCustomerId()); ValidatorUtils.validateEntity(verificationParam, PointVerificationFormDTO.PointVerificationGroup.class); return new Result().ok(pointVerificationLogService.verifyPoint(verificationParam)); } diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java index bca69b050a..f4e5ce6bb4 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/controller/ResiPointController.java @@ -5,7 +5,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; import com.epmet.dto.form.CommonPageUserFormDTO; -import com.epmet.dto.form.ResiCommonUserIdFormDTO; +import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.ResiPointRankFormDTO; import com.epmet.dto.result.PointExchangeResponseResultDTO; import com.epmet.dto.result.ResiPointDetailResultDTO; @@ -46,12 +46,11 @@ public class ResiPointController { * @author wangc * @date 2020.07.22 15:58 **/ - @GetMapping("mypoint") - public Result myPoint(@LoginUser TokenDto dto){ - ResiCommonUserIdFormDTO param = new ResiCommonUserIdFormDTO(); - param.setUserId(dto.getUserId()); - ValidatorUtils.validateEntity(param,ResiCommonUserIdFormDTO.UserIdGroup.class); - return new Result().ok(userPointTotalService.getMyPoint(param)); + @PostMapping("mypoint") + public Result myPoint(@LoginUser TokenDto dto, @RequestBody CommonUserFormDTO userParam){ + userParam.setUserId(dto.getUserId()); + ValidatorUtils.validateEntity(userParam, CommonUserFormDTO.CustomerId_UserIdGroup.class); + return new Result().ok(userPointTotalService.getMyPoint(userParam)); } /** diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java index 5b90380b88..52c76a7c4c 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/PointVerificationLogDao.java @@ -43,7 +43,7 @@ public interface PointVerificationLogDao extends BaseDao selectVerificationLog(@Param("userId") String userId); + List selectVerificationLog(@Param("userId") String userId,@Param("customerId")String customerId); /** * @Description 获取工作人员月度核销记录 diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java index a16ce26c67..42d7cb404b 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointActionLogDao.java @@ -42,7 +42,8 @@ public interface UserPointActionLogDao extends BaseDao * @author wangc * @date 2020.07.22 13:56 **/ - List selectPointActionLogList(@Param("userId") String userId); + List selectPointActionLogList(@Param("userId") String userId,@Param("customerId")String customerId); + /** * @Description 查询指定用户在某条规则下所得的积分总和 diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointTotalDao.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointTotalDao.java index 36b2540ac1..c78d265734 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointTotalDao.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/dao/UserPointTotalDao.java @@ -44,6 +44,15 @@ public interface UserPointTotalDao extends BaseDao { **/ ResiPointDetailResultDTO selectPointByUserId(@Param("userId")String userId); + /** + * @Description 根据用户Id和客户Id查询他的累计积分以及可用积分 + * @param userId + * @return + * @author wangc + * @date 2020.07.21 13:38 + **/ + ResiPointDetailResultDTO selectPointByCustomerUserId(@Param("userId")String userId,@Param("customerId")String customerId); + /** * @Description 查询客户下的用户累计积分排名榜 * @param customerId diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdjustmentLogService.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdjustmentLogService.java index 02df12d652..6e77b0f7c8 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdjustmentLogService.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/PointAdjustmentLogService.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.PointAdjustmentLogDTO; +import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.IssueInitiatorFormDTO; import com.epmet.dto.form.PointAdjustmentFormDTO; import com.epmet.dto.result.CustomerUserDetailResultDTO; @@ -113,7 +114,7 @@ public interface PointAdjustmentLogService extends BaseService /** * @Description 获取指定居民的积分信息 - * @param userId + * @param param * @return * @author wangc * @date 2020.07.22 15:58 **/ - ResiPointDetailResultDTO getMyPoint(ResiCommonUserIdFormDTO userId); + ResiPointDetailResultDTO getMyPoint(CommonUserFormDTO param); /** * @Description 获取客户下用户积分排名榜 @@ -125,4 +126,13 @@ public interface UserPointTotalService extends BaseService void insertOrUpdate(UserPointTotalEntity entity); void testInsertOrUpdate(UserPointTotalEntity entity); + + /** + * @Description 获取指定居民的积分信息 - 使用客户Id匹配,兼容多客户情况 + * @param customerUserParam + * @return + * @author wangc + * @date 2020.07.22 15:58 + **/ + ResiPointDetailResultDTO getMyPointGroupByCustomer(CommonUserFormDTO customerUserParam); } \ No newline at end of file diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdjustmentLogServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdjustmentLogServiceImpl.java index a78e6f70bf..cdbf4e882b 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdjustmentLogServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointAdjustmentLogServiceImpl.java @@ -30,6 +30,7 @@ import com.epmet.commons.tools.utils.Result; import com.epmet.dao.PointAdjustmentLogDao; import com.epmet.dao.UserPointActionLogDao; import com.epmet.dto.PointAdjustmentLogDTO; +import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.IssueInitiatorFormDTO; import com.epmet.dto.form.PointAdjustmentFormDTO; import com.epmet.dto.form.ResiCommonUserIdFormDTO; @@ -150,13 +151,14 @@ public class PointAdjustmentLogServiceImpl extends BaseServiceImpl detailResult = epmetUserOpenFeignClient.customerUserDetail(param); + public CustomerUserDetailResultDTO userDetail(CommonUserFormDTO param) { + IssueInitiatorFormDTO userParam = new IssueInitiatorFormDTO(); + userParam.setUserId(param.getUserId()); + Result detailResult = epmetUserOpenFeignClient.customerUserDetail(userParam); if(!detailResult.success()){ throw new RenException(detailResult.getCode()); } - ResiCommonUserIdFormDTO userParam = ConvertUtils.sourceToTarget(param,ResiCommonUserIdFormDTO.class); - ResiPointDetailResultDTO pointDto = userPointTotalService.getMyPoint(userParam); + ResiPointDetailResultDTO pointDto = userPointTotalService.getMyPointGroupByCustomer(param); if(null != detailResult.getData()){ CustomerUserDetailResultDTO result = new CustomerUserDetailResultDTO(); result.setPoint(null != pointDto ? pointDto.getUsablePoint() : NumConstant.ZERO); diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java index f8f3974e80..8dec019109 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/PointVerificationLogServiceImpl.java @@ -147,7 +147,7 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl getMyExchangeRecord(CommonPageUserFormDTO pageUser) { PageHelper.startPage(pageUser.getPageNo(),pageUser.getPageSize()); - List logList = baseDao.selectVerificationLog(pageUser.getUserId()); + List logList = baseDao.selectVerificationLog(pageUser.getUserId(),pageUser.getCustomerId()); List result = new LinkedList<>(); if(null != logList && !logList.isEmpty()){ Map> map = @@ -256,9 +256,10 @@ public class PointVerificationLogServiceImpl extends BaseServiceImpl getMyPointRecord(CommonPageUserFormDTO pageUser) { PageHelper.startPage(pageUser.getPageNo(),pageUser.getPageSize()); - List logList = baseDao.selectPointActionLogList(pageUser.getUserId()); + List logList = baseDao.selectPointActionLogList(pageUser.getUserId(),pageUser.getCustomerId()); List result = new LinkedList<>(); if(null != logList && !logList.isEmpty()){ Map> map = diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java index 6be4ae538e..a36a0c39d9 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java +++ b/epmet-module/epmet-point/epmet-point-server/src/main/java/com/epmet/service/impl/UserPointStatisticalDailyServiceImpl.java @@ -38,6 +38,7 @@ import com.epmet.service.UserPointStatisticalDailyService; import com.epmet.utils.DimIdGenerator; import com.epmet.utils.ModuleConstant; import com.github.pagehelper.PageHelper; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -53,6 +54,7 @@ import java.util.stream.Collectors; * @since v1.0.0 2020-07-20 */ @Service +@Slf4j public class UserPointStatisticalDailyServiceImpl extends BaseServiceImpl implements UserPointStatisticalDailyService { @Autowired @@ -131,6 +133,8 @@ public class UserPointStatisticalDailyServiceImpl extends BaseServiceImpl implements UserPointTotalService { + @Autowired EpmetUserOpenFeignClient epmetUserOpenFeignClient; @@ -111,14 +115,14 @@ public class UserPointTotalServiceImpl extends BaseServiceImpl opt = rankList.stream().filter(obj -> StringUtils.equals(obj.getUserId(), pointRankFormDTO.getUserId())).findFirst(); @@ -244,4 +250,20 @@ public class UserPointTotalServiceImpl extends BaseServiceImpl diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml index 9777f506d3..994bca4ad4 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml +++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointActionLogDao.xml @@ -36,6 +36,8 @@ DEL_FLAG = '0' AND USER_ID = #{userId} + AND + CUSTOMER_ID = #{customerId} ORDER BY CREATED_TIME DESC diff --git a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointTotalDao.xml b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointTotalDao.xml index d84b1b02ed..e64d984a00 100644 --- a/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointTotalDao.xml +++ b/epmet-module/epmet-point/epmet-point-server/src/main/resources/mapper/UserPointTotalDao.xml @@ -31,6 +31,21 @@ USER_ID = #{userId} + + + + \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml index 9aaa3e9556..e8a2685e37 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-access-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml b/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml index c56eefd656..6b8729cd4e 100644 --- a/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-grid/gov-grid-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-grid-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalService.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalService.java index bdbf47bc78..c6334dd86e 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalService.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/IssueVoteStatisticalService.java @@ -148,4 +148,15 @@ public interface IssueVoteStatisticalService extends BaseService imp //5:缓存中网格下表决中的议题总数减1 govIssueRedis.subtractWorkGrassrootsIssueRedDotValue(entity.getGridId()); + try { + issueVoteStatisticalService.syncVotingCacheToDbByParams(formDTO.getIssueId(),entity.getGridId(),null); + }catch (RenException e){ + logger.error(e.getMsg()); + } } /** @@ -581,6 +586,11 @@ public class IssueServiceImpl extends BaseServiceImpl imp //6:缓存中网格下表决中的议题总数减1 govIssueRedis.subtractWorkGrassrootsIssueRedDotValue(entity.getGridId()); + try{ + issueVoteStatisticalService.syncVotingCacheToDbByParams(formDTO.getIssueId(),entity.getGridId(),null); + }catch(RenException e){ + logger.error(e.getMsg()); + } } /** diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java index 320138bfc5..60b0aabbc3 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java +++ b/epmet-module/gov-issue/gov-issue-server/src/main/java/com/epmet/service/impl/IssueVoteStatisticalServiceImpl.java @@ -252,7 +252,7 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl issues = issueDao.selectIssueIdsByCondition(issueParam); - if(null == issues || issues.size()< NumConstant.ONE){ + if(null == issues || issues.isEmpty()){ return; } Set ids = issues.stream().map(IssueDTO::getId).collect(Collectors.toSet()); @@ -285,9 +285,7 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl listToUpdate = new ArrayList<>(); setVotableCountsAndUpdateCache(listToUpdate, existedIds.stream().flatMap(existedId -> issues.stream().filter(issue -> - StringUtils.equals(issue.getId(),existedId)).map(issueDTO -> { - return issueDTO; - })).collect(Collectors.toSet()), + StringUtils.equals(issue.getId(),existedId))).collect(Collectors.toSet()), votableCountMap); // 批量更新listToUpdate @@ -417,8 +415,10 @@ public class IssueVoteStatisticalServiceImpl extends BaseServiceImpl votableCount = + resiGroupFeignClient.votableCount(gridParam); + if(votableCount.success() && null != votableCount.getData()){ + toUpd.setVotableCount(votableCount.getData()); + } + + if(StringUtils.isNotBlank(statisticalId)){ + toUpd.setId(statisticalId); + update(toUpd); + }else{ + IssueVoteStatisticalDTO existedStatistical = getByIssueId(issueId); + if(null != existedStatistical && StringUtils.isNotBlank(existedStatistical.getId())){ + toUpd.setId(existedStatistical.getId()); + update(toUpd); + } + } + + } + /** * @Description 遍历应表决数 * @param list - List | Set | Map diff --git a/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml b/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml index 93f2568a4b..e523016b91 100644 --- a/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-issue/gov-issue-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-issue-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml b/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml index 372d057000..f19d228c96 100644 --- a/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-mine/gov-mine-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-mine-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index 215e32b471..140bd8cd43 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -215,18 +215,22 @@ public class CustomerGridServiceImpl extends BaseServiceImpl addGrid(TokenDto tokenDto, AddGridFormDTO addGridFormDTO) { - CustomerAgencyDTO customerAgencyDTO=customerAgencyService.get(addGridFormDTO.getAgencyId()); + CustomerAgencyDTO customerAgencyDTO = customerAgencyService.get(addGridFormDTO.getAgencyId()); // 1. 查询该客户下可创建网格的最大数量 GridCountFormDTO gridCount = new GridCountFormDTO(); String customerId = customerAgencyDTO.getCustomerId(); gridCount.setCustomerId(customerId); GridCountResultDTO grid = operCrmOpenFeignClient.getGridCount(gridCount).getData(); - if (grid.getGridCount().equals(NumConstant.ZERO)){ + log.info("客户信息为:" + grid); + if (null == grid) { + throw new RenException("未查出该客户信息"); + } + if (null == grid.getGridCount() || grid.getGridCount().equals(NumConstant.ZERO)) { throw new RenException(EpmetErrorCode.GRID_COUNT_UP.getCode()); } // 2. 判断当前客户下存在的网格数量 Integer gridCounts = customerGridDao.selectGridCount(customerId); - if (gridCounts >= grid.getGridCount()){ + if (gridCounts >= grid.getGridCount()) { throw new RenException(EpmetErrorCode.GRID_COUNT_UP.getCode()); } // 3. 查询网格名称是否重名 diff --git a/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml b/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml index 123fa48ad4..4657c30354 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-org/gov-org-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-org-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml b/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml index ddd3113ac5..31d7d1ef6d 100644 --- a/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-project/gov-project-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-project-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml b/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml index 8504cb2d5a..8e85f694ed 100644 --- a/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml +++ b/epmet-module/gov-voice/gov-voice-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: gov-voice-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml b/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml index b57b255fe6..b7cbcbe1af 100644 --- a/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-access/oper-access-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: oper-access-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml b/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml index c434e9de81..422a4459a9 100644 --- a/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-crm/oper-crm-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: oper-crm-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFootBarDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFootBarDTO.java index 2cc9b89b0e..9a33b3161d 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFootBarDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFootBarDTO.java @@ -43,6 +43,11 @@ public class CustomerFootBarDTO implements Serializable { */ private String barName; + /** + * 默认的bar名称 + */ + private String defaultBarName; + /** * KEY */ @@ -93,4 +98,6 @@ public class CustomerFootBarDTO implements Serializable { */ private Date updatedTime; + private Boolean display; + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionRoleDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionRoleDTO.java new file mode 100644 index 0000000000..548e8b9996 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/CustomerFunctionRoleDTO.java @@ -0,0 +1,96 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto; + +import java.io.Serializable; +import java.util.Date; +import lombok.Data; + + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@Data +public class CustomerFunctionRoleDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 唯一标识 + */ + private String id; + + /** + * 客户Id + */ + private String customerId; + + /** + * 功能ID(function.ID) + */ + private String functionId; + + /** + * 所属APP(工作端:gov、居民端:resi) + */ + private String fromApp; + + /** + * 角色Key值 + */ + private String roleKey; + + /** + * 角色名称 + */ + private String roleName; + + /** + * 删除标识:0.未删除 1.已删除 + */ + private Integer delFlag; + + /** + * 乐观锁 + */ + private Integer revision; + + /** + * 创建人 + */ + private String createdBy; + + /** + * 创建时间 + */ + private Date createdTime; + + /** + * 更新人 + */ + private String updatedBy; + + /** + * 更新时间 + */ + private Date updatedTime; + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFootBarFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFootBarFormDTO.java index 1d5218fd4b..d5981860fd 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFootBarFormDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFootBarFormDTO.java @@ -1,17 +1,98 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; @Data public class CustomerFootBarFormDTO { - //@NotBlank(message = "客户ID不能为空") + // 创建footbar的分组 + public interface CreateFootBarGroup extends CustomerClientShowGroup {} + + // 查询footbar列表分组 + public interface ListFootBarGroup extends CustomerClientShowGroup {} + + // 运营端查询footbar列表分组 + public interface ListFootBarGroup4Oper extends CustomerClientShowGroup {} + + // 更新footbar + public interface UpdateFootBarGroup extends CustomerClientShowGroup {} + + // 保存顺序 + public interface SaveOrderGroup extends CustomerClientShowGroup {} + + // 明细分组 + public interface FootBarDetailGroup extends CustomerClientShowGroup {} + + // 更新显示状态分组 + public interface UpdateDisplayStatusGroup extends CustomerClientShowGroup {} + + // 为客户添加默认footbar + public interface AddDefaultFootbars4Customer extends CustomerClientShowGroup {} + + // 删除footbar + public interface DeleteFootbarsGroup extends CustomerClientShowGroup {} + + @NotBlank(message = "FootBar的ID不能为空", groups = { UpdateFootBarGroup.class, FootBarDetailGroup.class, UpdateDisplayStatusGroup.class, DeleteFootbarsGroup.class }) + private String id; + + @NotBlank(message = "客户ID不能为空", groups = { CreateFootBarGroup.class, AddDefaultFootbars4Customer.class, ListFootBarGroup4Oper.class }) private String customerId; // 哪一个端:gov,resi - @NotBlank(message = "app类型不能为空") + @NotBlank(message = "app类型不能为空", groups = { ListFootBarGroup.class, CreateFootBarGroup.class, AddDefaultFootbars4Customer.class, ListFootBarGroup4Oper.class }) private String appType; + @NotBlank(message = "名称不能为空", groups = { CreateFootBarGroup.class, UpdateFootBarGroup.class }) + private String barName; + + @NotBlank(message = "key不能为空", groups = { CreateFootBarGroup.class }) + private String barKey; + + @NotBlank(message = "页面标题不能为空", groups = { CreateFootBarGroup.class, UpdateFootBarGroup.class }) + private String pageTitle; + + //@NotBlank(message = "图标路径不能为空", groups = { UpdateFootBarGroup.class }) + private String iconPath; + + //@NotBlank(message = "选中的图标路径不能为空", groups = { UpdateFootBarGroup.class }) + private String selectedIconPath; + + @NotEmpty(message = "顺序不能为空", groups = { SaveOrderGroup.class }) + private List orderList; + + @NotNull(message = "显示状态不能为空", groups = { UpdateDisplayStatusGroup.class }) + private Boolean display; + + /** + * 排序索引号dto + */ + public static class OrderIndexDTO { + private String id; + private Integer orderIndex; + + public OrderIndexDTO() { + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getOrderIndex() { + return orderIndex; + } + + public void setOrderIndex(Integer orderIndex) { + this.orderIndex = orderIndex; + } + } } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionRoleListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionRoleListFormDTO.java new file mode 100644 index 0000000000..717e0d3c46 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/CustomerFunctionRoleListFormDTO.java @@ -0,0 +1,29 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 查询客户定制功能角色列表--接口入参 + * + * @author sun + */ +@Data +public class CustomerFunctionRoleListFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空", groups = {AddUserInternalGroup.class }) + private String customerId; + /** + * 定制功能ID + */ + @NotBlank(message = "功能ID不能为空", groups = {AddUserInternalGroup.class }) + private String functionId; + public interface AddUserInternalGroup {} + +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionDetailFromDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionDetailFromDTO.java index ee133cd136..dc8c61b904 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionDetailFromDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/FunctionDetailFromDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import javax.validation.constraints.NotBlank; import java.io.Serializable; +import java.util.List; /** * 查询客户定制功能列表-接口入参 @@ -25,11 +26,26 @@ public class FunctionDetailFromDTO implements Serializable { */ @NotBlank(message = "客户Id不能为空", groups = {AddUserShowGroup.class}) private String customerId; + /** + * 网格ID + */ + @NotBlank(message = "网格Id不能为空", groups = {AddUserShowGroup.class}) + private String gridId; /** - * resi:居民端,work:工作端 + * resi:居民端,gov:工作端 */ @NotBlank(message = "所属端不能为空", groups = {AddUserInternalGroup.class, AddUserShowGroup.class}) private String clientType; + /** + * token中userId + */ + private String userId; + + /** + * 用户角色key集合 + */ + private List roleKeyList; + } diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/RoleListFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/RoleListFormDTO.java new file mode 100644 index 0000000000..e88bf9393f --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/RoleListFormDTO.java @@ -0,0 +1,27 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 客户定制功能角色设置--接口入参 + * + * @author sun + */ +@Data +public class RoleListFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 角色Key + */ + @NotBlank(message = "角色key不能为空", groups = {AddUserInternalGroup.class }) + private String roleKey; + /** + * 角色名称 + */ + @NotBlank(message = "角色名称不能为空", groups = {AddUserInternalGroup.class }) + private String roleName; + public interface AddUserInternalGroup {} +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionRoleFormDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionRoleFormDTO.java new file mode 100644 index 0000000000..16a89de55e --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/form/SaveCustomerFunctionRoleFormDTO.java @@ -0,0 +1,37 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; +import java.util.List; + +/** + * 客户定制功能角色设置--接口入参 + * + * @author sun + */ +@Data +public class SaveCustomerFunctionRoleFormDTO implements Serializable { + private static final long serialVersionUID = 1L; + /** + * 客户Id + */ + @NotBlank(message = "客户Id不能为空", groups = {AddUserInternalGroup.class }) + private String customerId; + /** + * 定制功能ID + */ + @NotBlank(message = "功能ID不能为空", groups = {AddUserInternalGroup.class }) + private String functionId; + /** + * 所属APP(工作端:gov、居民端:resi) + */ + @NotBlank(message = "所属App不能为空", groups = {AddUserInternalGroup.class }) + private String fromApp; + /** + * 角色信息集合 + */ + private List roleList; + public interface AddUserInternalGroup {} +} diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFootBarResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFootBarResultDTO.java index 832e06944c..c517c835ad 100644 --- a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFootBarResultDTO.java +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFootBarResultDTO.java @@ -39,6 +39,10 @@ public class CustomerFootBarResultDTO implements Serializable { */ private String id; + private String customerId; + + private String appType; + /** * bar名称 */ @@ -94,4 +98,14 @@ public class CustomerFootBarResultDTO implements Serializable { */ private Date updatedTime; + private Boolean display; + + private String defaultBarName; + + private String defaultIconPath; + + private String defaultSelectedIconPath; + + private String defaultPageTitle; + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionRoleListResultDTO.java b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionRoleListResultDTO.java new file mode 100644 index 0000000000..cbb4db6fb8 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-client/src/main/java/com/epmet/dto/result/CustomerFunctionRoleListResultDTO.java @@ -0,0 +1,26 @@ +package com.epmet.dto.result; + +import com.epmet.dto.form.RoleListFormDTO; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 查询客户定制功能角色列表--接口返参 + * + * @author sun + */ +@Data +public class CustomerFunctionRoleListResultDTO implements Serializable { + private static final long serialVersionUID = 2971689193155710437L; + + /** + * 角色Key + */ + private String roleKey; + /** + * 角色名称 + */ + private String roleName; +} diff --git a/epmet-module/oper-customize/oper-customize-server/pom.xml b/epmet-module/oper-customize/oper-customize-server/pom.xml index ff5abc3d03..1e8bb2216c 100644 --- a/epmet-module/oper-customize/oper-customize-server/pom.xml +++ b/epmet-module/oper-customize/oper-customize-server/pom.xml @@ -64,6 +64,12 @@ 2.0.0 compile + + com.epmet + epmet-user-client + 2.0.0 + compile + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java index 1be0943b60..5b9c7a0da8 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFootBarController.java @@ -27,6 +27,7 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.CustomerFootBarDTO; import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.dto.result.CustomerFootBarResultDTO; import com.epmet.entity.CustomerFootBarEntity; import com.epmet.excel.CustomerFootBarExcel; import com.epmet.service.CustomerFootBarService; @@ -35,7 +36,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import javax.validation.constraints.NotBlank; import java.util.LinkedList; import java.util.List; import java.util.Map; @@ -103,17 +103,130 @@ public class CustomerFootBarController { */ @PostMapping("customerfootbars") public Result> getCustomerfootbars(@RequestBody CustomerFootBarFormDTO formDTO) { - ValidatorUtils.validateEntity(formDTO); + ValidatorUtils.validateEntity(formDTO, CustomerFootBarFormDTO.ListFootBarGroup.class); String customerId = formDTO.getCustomerId(); String appType = formDTO.getAppType(); List footbars = customerFootBarService.listCustomerFootBars(customerId, appType); List barDTOS = new LinkedList<>(); footbars.forEach(barEntity -> { + CustomerFootBarEntity defaultFootBarEntity = customerFootBarService.getByAppTypeAndBarKeyOfCustomer("default", barEntity.getAppType(), barEntity.getBarKey()); + CustomerFootBarDTO barDTO = new CustomerFootBarDTO(); BeanUtils.copyProperties(barEntity, barDTO); + barDTO.setDefaultBarName(defaultFootBarEntity.getBarName()); barDTOS.add(barDTO); }); return new Result>().ok(barDTOS); } + + /** + * 运营端查询footbar列表 + * @param formDTO + * @return + */ + @PostMapping("customerfootbars4oper") + public Result> getCustomerfootbars4Oper(@RequestBody CustomerFootBarFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, CustomerFootBarFormDTO.ListFootBarGroup4Oper.class); + String customerId = formDTO.getCustomerId(); + String appType = formDTO.getAppType(); + + List footbars = customerFootBarService.listAllCustomerFootBars(customerId, appType); + List barDTOS = new LinkedList<>(); + footbars.forEach(barEntity -> { + CustomerFootBarEntity defaultFootBarEntity = customerFootBarService.getByAppTypeAndBarKeyOfCustomer("default", barEntity.getAppType(), barEntity.getBarKey()); + + CustomerFootBarDTO barDTO = new CustomerFootBarDTO(); + BeanUtils.copyProperties(barEntity, barDTO); + barDTO.setDefaultBarName(defaultFootBarEntity.getBarName()); + barDTOS.add(barDTO); + }); + return new Result>().ok(barDTOS); + } + + + /** + * 创建footbar,只能创建默认的,不能直接为客户创建 + * @param form + * @return + */ + @PostMapping("createfootbar") + public Result createFootBar(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.CreateFootBarGroup.class); + customerFootBarService.createFootBar(form); + return new Result(); + } + + /** + * 更新footbar + * @param form + * @return + */ + @PostMapping("updatefootbar") + public Result updateFootbar(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.UpdateFootBarGroup.class); + customerFootBarService.updateFootBar(form); + return new Result(); + } + + /** + * + * @param form + * @return + */ + @PostMapping("footbardetail") + public Result footbarDetail(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.FootBarDetailGroup.class); + CustomerFootBarResultDTO dto = customerFootBarService.getFootBarDetail(form.getId()); + return new Result().ok(dto); + } + + /** + * 保存排序 + * @param form + * @return + */ + @PostMapping("saveorder") + public Result saveOrder(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.SaveOrderGroup.class); + customerFootBarService.saveOrder(form.getOrderList()); + return new Result(); + } + + /** + * 更新显示状态 + * @param form + * @return + */ + @PostMapping("updatedisplaystatus") + public Result updateDisplayStatus(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.UpdateDisplayStatusGroup.class); + customerFootBarService.updateDisplayStatus(form.getId(), form.getDisplay()); + return new Result(); + } + + /** + * 为客户初始化默认的footbar + * @param form + * @return + */ + @PostMapping("initdefault4customer") + public Result initDefault4Customer(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.AddDefaultFootbars4Customer.class); + customerFootBarService.addDefault4Customer(form.getCustomerId(), form.getAppType()); + return new Result(); + } + + /** + * 删除footbar + * @param form + * @return + */ + @PostMapping("deletefootbar") + public Result deleteFootBar(@RequestBody CustomerFootBarFormDTO form) { + ValidatorUtils.validateEntity(form, CustomerFootBarFormDTO.DeleteFootbarsGroup.class); + customerFootBarService.deleteFootBar(form.getId()); + return new Result(); + } + } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java index 245d5018a2..0778f3d989 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionDetailController.java @@ -18,6 +18,7 @@ package com.epmet.controller; import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; @@ -105,6 +106,7 @@ public class CustomerFunctionDetailController { @PostMapping("resifunctiondetaillist") public Result> resiFunctionDetail(@LoginUser TokenDto tokenDto, @RequestBody FunctionDetailFromDTO formDTO) { ValidatorUtils.validateEntity(formDTO, FunctionDetailFromDTO.AddUserShowGroup.class); + formDTO.setUserId(tokenDto.getUserId()); return new Result>().ok(customerFunctionDetailService.resiAndWorkFunctionDetail(formDTO)); } @@ -118,6 +120,7 @@ public class CustomerFunctionDetailController { public Result> workFunctionDetail(@LoginUser TokenDto tokenDto, @RequestBody FunctionDetailFromDTO formDTO) { ValidatorUtils.validateEntity(formDTO, FunctionDetailFromDTO.AddUserInternalGroup.class); formDTO.setCustomerId(tokenDto.getCustomerId()); + formDTO.setUserId(tokenDto.getUserId()); return new Result>().ok(customerFunctionDetailService.resiAndWorkFunctionDetail(formDTO)); } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionRoleController.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionRoleController.java new file mode 100644 index 0000000000..7ed5dc4b50 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/controller/CustomerFunctionRoleController.java @@ -0,0 +1,123 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.controller; + +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; +import com.epmet.commons.tools.utils.ExcelUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.AssertUtils; +import com.epmet.commons.tools.validator.ValidatorUtils; +import com.epmet.commons.tools.validator.group.AddGroup; +import com.epmet.commons.tools.validator.group.UpdateGroup; +import com.epmet.commons.tools.validator.group.DefaultGroup; +import com.epmet.dto.CustomerFunctionRoleDTO; +import com.epmet.dto.form.CustomerFunctionRoleListFormDTO; +import com.epmet.dto.form.SaveCustomerFunctionRoleFormDTO; +import com.epmet.dto.result.CustomerFunctionRoleListResultDTO; +import com.epmet.excel.CustomerFunctionRoleExcel; +import com.epmet.service.CustomerFunctionRoleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@RestController +@RequestMapping("customerfunctionrole") +public class CustomerFunctionRoleController { + + @Autowired + private CustomerFunctionRoleService customerFunctionRoleService; + + @GetMapping("page") + public Result> page(@RequestParam Map params){ + PageData page = customerFunctionRoleService.page(params); + return new Result>().ok(page); + } + + @GetMapping("{id}") + public Result get(@PathVariable("id") String id){ + CustomerFunctionRoleDTO data = customerFunctionRoleService.get(id); + return new Result().ok(data); + } + + @PostMapping + public Result save(@RequestBody CustomerFunctionRoleDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); + customerFunctionRoleService.save(dto); + return new Result(); + } + + @PutMapping + public Result update(@RequestBody CustomerFunctionRoleDTO dto){ + //效验数据 + ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); + customerFunctionRoleService.update(dto); + return new Result(); + } + + @DeleteMapping + public Result delete(@RequestBody String[] ids){ + //效验数据 + AssertUtils.isArrayEmpty(ids, "id"); + customerFunctionRoleService.delete(ids); + return new Result(); + } + + @GetMapping("export") + public void export(@RequestParam Map params, HttpServletResponse response) throws Exception { + List list = customerFunctionRoleService.list(params); + ExcelUtils.exportExcelToTarget(response, null, list, CustomerFunctionRoleExcel.class); + } + + /** + * @param tokenDTO formDTO + * @return + * @author sun + * @Description 客户定制功能角色设置 + */ + @PostMapping("savecustomerfunctionrole") + public Result saveCustomerFunctionRole(@LoginUser TokenDto tokenDTO, @RequestBody SaveCustomerFunctionRoleFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, SaveCustomerFunctionRoleFormDTO.AddUserInternalGroup.class); + customerFunctionRoleService.saveCustomerFunctionRole(formDTO); + return new Result(); + } + + /** + * @param tokenDTO formDTO + * @return + * @author sun + * @Description 查询客户定制功能角色列表 + */ + @PostMapping("customerfunctionrolelist") + public Result> customerFunctionRoleList(@LoginUser TokenDto tokenDTO, @RequestBody CustomerFunctionRoleListFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO, CustomerFunctionRoleListFormDTO.AddUserInternalGroup.class); + return new Result>().ok(customerFunctionRoleService.customerFunctionRoleList(formDTO)); + } +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFootBarDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFootBarDao.java index 480e148b60..30fac6164c 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFootBarDao.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFootBarDao.java @@ -33,6 +33,55 @@ import java.util.List; @Mapper public interface CustomerFootBarDao extends BaseDao { - List listCustomerFootBars(@Param("customerId") String customerId, + List listDisplayCustomerFootBars(@Param("customerId") String customerId, @Param("appType") String appType); + + List listAllCustomerFootBars(@Param("customerId") String customerId, + @Param("appType") String appType); + + /** + * 唯一性count + * @param appType + * @param barKey + * @return + */ + int count4Unique(@Param("customerId") String customerId, + @Param("appType") String appType, + @Param("barKey") String barKey, + @Param("barName") String barName); + + /** + * 获取下一个顺序号 + * @param customerId + * @param appType + * @return + */ + Integer fetchNextOrder(@Param("customerId") String customerId, @Param("appType") String appType); + + /** + * 更新顺序号 + * @param id + * @param orderIndex + * @return + */ + Integer updateOrder(@Param("id") String id, @Param("orderIndex") Integer orderIndex); + + CustomerFootBarEntity getByAppTypeAndBarKeyOfCustomer(@Param("customerId") String customerId, + @Param("appType") String appType, + @Param("barKey") String barKey); + + CustomerFootBarEntity getByAppTypeAndBarNameOfCustomer(@Param("customerId") String customerId, + @Param("appType") String appType, + @Param("barName") String barName); + + List listByAppTypeAndCustomerId(@Param("customerId") String customerId, + @Param("appType") String appType); + + void updateDisplayStatus(@Param("id") String id, @Param("display") Boolean display); + + List listFootBarOwnerCustomerIds(); + + void physicsDeleteById(@Param("id") String id); + + void physicsDeleteByAppTypeAndBarKey(@Param("appType") String appType, @Param("barKey") String barKey); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionRoleDao.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionRoleDao.java new file mode 100644 index 0000000000..5a00d7e20a --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/dao/CustomerFunctionRoleDao.java @@ -0,0 +1,62 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dao; + +import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.CustomerFunctionRoleDTO; +import com.epmet.dto.form.CustomerFunctionRoleListFormDTO; +import com.epmet.dto.form.FunctionDetailFromDTO; +import com.epmet.dto.form.SaveCustomerFunctionRoleFormDTO; +import com.epmet.dto.result.CustomerFunctionRoleListResultDTO; +import com.epmet.entity.CustomerFunctionRoleEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@Mapper +public interface CustomerFunctionRoleDao extends BaseDao { + + /** + * @author sun + * @Description 根据客户Id删除客户功能角色信息 + */ + void delByCustomerId(SaveCustomerFunctionRoleFormDTO formDTO); + + /** + * @param formDTO + * @return + * @author sun + * @Description 查询客户定制功能角色列表 + */ + List selectCustomerFunctionRoleList(CustomerFunctionRoleListFormDTO formDTO); + + /** + * @param formDTO + * @return + * @author sun + * @Description 根据用户拥有的角色查询客户的定制功能 + */ + List selectFunctionList(FunctionDetailFromDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFootBarEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFootBarEntity.java index 2161fc4bdc..9abc736b13 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFootBarEntity.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFootBarEntity.java @@ -38,6 +38,11 @@ public class CustomerFootBarEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; + /** + * 客户id + */ + private String customerId; + /** * bar名称 */ @@ -65,6 +70,14 @@ public class CustomerFootBarEntity extends BaseEpmetEntity { */ private String selectedIconPath; - private Integer order; + /** + * 顺序号 + */ + private Integer orderIndex; + + /** + * 是否显示 + */ + private Boolean display; } diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionRoleEntity.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionRoleEntity.java new file mode 100644 index 0000000000..65a0c7ffc3 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/entity/CustomerFunctionRoleEntity.java @@ -0,0 +1,66 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.entity; + +import com.baomidou.mybatisplus.annotation.TableName; + +import com.epmet.commons.mybatis.entity.BaseEpmetEntity; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.util.Date; + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@Data +@EqualsAndHashCode(callSuper=false) +@TableName("customer_function_role") +public class CustomerFunctionRoleEntity extends BaseEpmetEntity { + + private static final long serialVersionUID = 1L; + + /** + * 客户Id + */ + private String customerId; + + /** + * 功能ID(function.ID) + */ + private String functionId; + + /** + * 所属APP(工作端:gov、居民端:resi) + */ + private String fromApp; + + /** + * 角色Key值 + */ + private String roleKey; + + /** + * 角色名称 + */ + private String roleName; + +} diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/CustomerFunctionRoleExcel.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/CustomerFunctionRoleExcel.java new file mode 100644 index 0000000000..78da1939dc --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/excel/CustomerFunctionRoleExcel.java @@ -0,0 +1,71 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.excel; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@Data +public class CustomerFunctionRoleExcel { + + @Excel(name = "唯一标识") + private String id; + + @Excel(name = "客户Id ") + private String customerId; + + @Excel(name = "功能ID(function.ID)") + private String functionId; + + @Excel(name = "所属APP(工作端:gov、居民端:resi)") + private String fromApp; + + @Excel(name = "角色Key值") + private String roleKey; + + @Excel(name = "角色名称") + private String roleName; + + @Excel(name = "删除标识:0.未删除 1.已删除") + private Integer delFlag; + + @Excel(name = "乐观锁") + private Integer revision; + + @Excel(name = "创建人") + private String createdBy; + + @Excel(name = "创建时间") + private Date createdTime; + + @Excel(name = "更新人") + private String updatedBy; + + @Excel(name = "更新时间") + private Date updatedTime; + + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/CustomerFunctionRoleRedis.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/CustomerFunctionRoleRedis.java new file mode 100644 index 0000000000..3e81389629 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/redis/CustomerFunctionRoleRedis.java @@ -0,0 +1,47 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.redis; + +import com.epmet.commons.tools.redis.RedisUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@Component +public class CustomerFunctionRoleRedis { + @Autowired + private RedisUtils redisUtils; + + public void delete(Object[] ids) { + + } + + public void set(){ + + } + + public String get(String id){ + return null; + } + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java index f38eab950d..0ed3c9e0e5 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFootBarService.java @@ -20,6 +20,8 @@ package com.epmet.service; import com.epmet.commons.mybatis.service.BaseService; import com.epmet.commons.tools.page.PageData; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.dto.result.CustomerFootBarResultDTO; import com.epmet.entity.CustomerFootBarEntity; import java.util.List; @@ -94,4 +96,22 @@ public interface CustomerFootBarService extends BaseService listCustomerFootBars(String customerId, String appType); + + List listAllCustomerFootBars(String customerId, String appType); + + void createFootBar(CustomerFootBarFormDTO form); + + void updateFootBar(CustomerFootBarFormDTO form); + + CustomerFootBarResultDTO getFootBarDetail(String id); + + void saveOrder(List orderList); + + CustomerFootBarEntity getByAppTypeAndBarKeyOfCustomer(String customerId, String appType, String barKey); + + void updateDisplayStatus(String id, Boolean display); + + void addDefault4Customer(String customerId, String appType); + + void deleteFootBar(String id); } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java index d0561093e3..88c8e6d3bc 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionDetailService.java @@ -102,7 +102,7 @@ public interface CustomerFunctionDetailService extends BaseService resiAndWorkFunctionDetail(FunctionDetailFromDTO formDTO); diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionRoleService.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionRoleService.java new file mode 100644 index 0000000000..7b4d747d46 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/CustomerFunctionRoleService.java @@ -0,0 +1,114 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service; + +import com.epmet.commons.mybatis.service.BaseService; +import com.epmet.commons.tools.page.PageData; +import com.epmet.dto.CustomerFunctionRoleDTO; +import com.epmet.dto.form.CustomerFunctionRoleListFormDTO; +import com.epmet.dto.form.SaveCustomerFunctionRoleFormDTO; +import com.epmet.dto.result.CustomerFunctionRoleListResultDTO; +import com.epmet.entity.CustomerFunctionRoleEntity; + +import java.util.List; +import java.util.Map; + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +public interface CustomerFunctionRoleService extends BaseService { + + /** + * 默认分页 + * + * @param params + * @return PageData + * @author generator + * @date 2020-09-07 + */ + PageData page(Map params); + + /** + * 默认查询 + * + * @param params + * @return java.util.List + * @author generator + * @date 2020-09-07 + */ + List list(Map params); + + /** + * 单条查询 + * + * @param id + * @return CustomerFunctionRoleDTO + * @author generator + * @date 2020-09-07 + */ + CustomerFunctionRoleDTO get(String id); + + /** + * 默认保存 + * + * @param dto + * @return void + * @author generator + * @date 2020-09-07 + */ + void save(CustomerFunctionRoleDTO dto); + + /** + * 默认更新 + * + * @param dto + * @return void + * @author generator + * @date 2020-09-07 + */ + void update(CustomerFunctionRoleDTO dto); + + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2020-09-07 + */ + void delete(String[] ids); + + /** + * @param formDTO + * @return + * @author sun + * @Description 客户定制功能角色设置 + */ + void saveCustomerFunctionRole(SaveCustomerFunctionRoleFormDTO formDTO); + + /** + * @param formDTO + * @return + * @author sun + * @Description 查询客户定制功能角色列表 + */ + List customerFunctionRoleList(CustomerFunctionRoleListFormDTO formDTO); +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java index 417555be13..594674b283 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFootBarServiceImpl.java @@ -20,11 +20,15 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.CustomerFootBarDao; import com.epmet.dto.CustomerFootBarDTO; +import com.epmet.dto.form.CustomerFootBarFormDTO; +import com.epmet.dto.result.CustomerFootBarResultDTO; import com.epmet.entity.CustomerFootBarEntity; import com.epmet.redis.CustomerFootBarRedis; import com.epmet.service.CustomerFootBarService; @@ -103,7 +107,157 @@ public class CustomerFootBarServiceImpl extends BaseServiceImpl listCustomerFootBars(String customerId, String appType) { - return baseDao.listCustomerFootBars(customerId, appType); + return baseDao.listDisplayCustomerFootBars(customerId, appType); } + @Override + public List listAllCustomerFootBars(String customerId, String appType) { + return baseDao.listAllCustomerFootBars(customerId, appType); + } + + @Override + public void createFootBar(CustomerFootBarFormDTO form) { + + validateBeforeCreate(form); + + CustomerFootBarEntity entity = new CustomerFootBarEntity(); + entity.setAppType(form.getAppType()); + entity.setCustomerId("default"); // 只能为默认客户创建 + entity.setBarKey(form.getBarKey()); + entity.setBarName(form.getBarName()); + entity.setIconPath(form.getIconPath()); + entity.setPageTitle(form.getPageTitle()); + entity.setSelectedIconPath(form.getSelectedIconPath()); + entity.setOrderIndex(baseDao.fetchNextOrder(form.getCustomerId(), form.getAppType())); + entity.setDisplay(true); + baseDao.insert(entity); + + sync2Customers(entity); + } + + /** + * 同步到客户 + * @param entity + */ + private void sync2Customers(CustomerFootBarEntity entity) { + List customerIds = baseDao.listFootBarOwnerCustomerIds(); + for (String customerId : customerIds) { + CustomerFootBarEntity bar = baseDao.getByAppTypeAndBarKeyOfCustomer(customerId, entity.getAppType(), entity.getBarKey()); + if (bar == null) { + // 该客户还没有该bar + CustomerFootBarEntity newBar = new CustomerFootBarEntity(); + newBar.setCustomerId(customerId); + newBar.setIconPath(entity.getIconPath()); + newBar.setPageTitle(entity.getPageTitle()); + newBar.setBarKey(entity.getBarKey()); + newBar.setBarName(entity.getBarName()); + newBar.setSelectedIconPath(entity.getSelectedIconPath()); + newBar.setOrderIndex(baseDao.fetchNextOrder(customerId, entity.getAppType())); + newBar.setAppType(entity.getAppType()); + newBar.setDisplay(true); + baseDao.insert(newBar); + } + } + } + + @Override + public void updateFootBar(CustomerFootBarFormDTO form) { + validateBeforeUpdate(form); + CustomerFootBarEntity entity = baseDao.selectById(form.getId()); + if (entity == null) { + throw new RenException(EpmetErrorCode.OPER_CUSTOMER_FOOTBAR_NOT_FOUND.getCode(), + EpmetErrorCode.OPER_CUSTOMER_FOOTBAR_NOT_FOUND.getMsg()); + } + entity.setSelectedIconPath(form.getSelectedIconPath()); + entity.setBarName(form.getBarName()); + entity.setPageTitle(form.getPageTitle()); + entity.setIconPath(form.getIconPath()); + + baseDao.updateById(entity); + } + + @Override + public CustomerFootBarResultDTO getFootBarDetail(String id) { + CustomerFootBarEntity entity = baseDao.selectById(id); + if (entity == null) { + return new CustomerFootBarResultDTO(); + } + CustomerFootBarResultDTO dto = ConvertUtils.sourceToTarget(entity, CustomerFootBarResultDTO.class); + CustomerFootBarEntity defaultBar = baseDao.getByAppTypeAndBarKeyOfCustomer("default", entity.getAppType(), entity.getBarKey()); + dto.setDefaultBarName(defaultBar.getBarName()); + dto.setDefaultIconPath(defaultBar.getIconPath()); + dto.setDefaultSelectedIconPath(defaultBar.getSelectedIconPath()); + dto.setDefaultPageTitle(defaultBar.getPageTitle()); + return dto; + } + + @Transactional + @Override + public void saveOrder(List orderList) { + for (CustomerFootBarFormDTO.OrderIndexDTO idx : orderList) { + baseDao.updateOrder(idx.getId(), idx.getOrderIndex()); + } + } + + @Override + public CustomerFootBarEntity getByAppTypeAndBarKeyOfCustomer(String customerId, String appType, String barKey) { + return baseDao.getByAppTypeAndBarKeyOfCustomer(customerId, appType, barKey); + } + + @Override + public void updateDisplayStatus(String id, Boolean display) { + baseDao.updateDisplayStatus(id, display); + } + + @Transactional + @Override + public void addDefault4Customer(String customerId, String appType) { + List defaultBars = baseDao.listByAppTypeAndCustomerId("default", appType); + for (CustomerFootBarEntity defaultBar : defaultBars) { + CustomerFootBarEntity bar = baseDao.getByAppTypeAndBarKeyOfCustomer(customerId, appType, defaultBar.getBarKey()); + if (bar != null) { + // 该客户已经有该bar了,不再添加 + continue; + } + + defaultBar.setCustomerId(customerId); + defaultBar.setId(null); + defaultBar.setCreatedTime(null); + defaultBar.setCreatedBy(null); + defaultBar.setUpdatedTime(null); + defaultBar.setUpdatedBy(null); + baseDao.insert(defaultBar); + } + } + + @Override + public void deleteFootBar(String id) { + CustomerFootBarEntity defaultFootbar = baseDao.selectById(id); + baseDao.physicsDeleteByAppTypeAndBarKey(defaultFootbar.getAppType(), defaultFootbar.getBarKey()); + } + + /** + * 添加footbar之前的校验 + * @param form + */ + private void validateBeforeCreate(CustomerFootBarFormDTO form) { + synchronized (this) { + int uniqueCount1 = baseDao.count4Unique(form.getCustomerId(), form.getAppType(), form.getBarKey(), null); + int uniqueCount2 = baseDao.count4Unique(form.getCustomerId(), form.getAppType(), null, form.getBarName()); + if (uniqueCount1 > 0 || uniqueCount2 > 0) { + throw new RenException(EpmetErrorCode.OPER_CUSTOMER_FOOTBAR_EXISTS.getCode(), + EpmetErrorCode.OPER_CUSTOMER_FOOTBAR_EXISTS.getMsg()); + } + } + } + + private void validateBeforeUpdate(CustomerFootBarFormDTO form) { + synchronized (this) { + CustomerFootBarEntity entity = baseDao.getByAppTypeAndBarNameOfCustomer(form.getCustomerId(), form.getAppType(), form.getBarName()); + if (entity != null && !entity.getId().equals(form.getId())) { + throw new RenException(EpmetErrorCode.OPER_CUSTOMER_FOOTBAR_EXISTS.getCode(), + EpmetErrorCode.OPER_CUSTOMER_FOOTBAR_EXISTS.getMsg()); + } + } + } } \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java index d57623db5d..1473a18675 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionDetailServiceImpl.java @@ -20,6 +20,7 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.EpmetErrorCode; @@ -28,10 +29,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; -import com.epmet.dao.CustomerFunctionDao; -import com.epmet.dao.CustomerFunctionDetailDao; -import com.epmet.dao.FunctionCustomizedDao; -import com.epmet.dao.FunctionShoppingHistoryDao; +import com.epmet.dao.*; import com.epmet.dto.CustomerFunctionDetailDTO; import com.epmet.dto.FunctionCustomizedDTO; import com.epmet.dto.FunctionShoppingHistoryDTO; @@ -40,6 +38,7 @@ import com.epmet.dto.result.*; import com.epmet.entity.CustomerFunctionDetailEntity; import com.epmet.entity.CustomerFunctionEntity; import com.epmet.entity.FunctionShoppingHistoryEntity; +import com.epmet.feign.EpmetUserOpenFeignClient; import com.epmet.redis.CustomerFunctionDetailRedis; import com.epmet.service.CustomerFunctionDetailService; import com.epmet.service.FunctionShoppingHistoryService; @@ -49,6 +48,7 @@ import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import rx.internal.util.LinkedArrayList; import java.util.*; import java.util.stream.Collectors; @@ -73,6 +73,10 @@ public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl page(Map params) { @@ -127,27 +131,63 @@ public class CustomerFunctionDetailServiceImpl extends BaseServiceImpl resiAndWorkFunctionDetail(FunctionDetailFromDTO formDTO) { - //根据客户Id和所属端查询客户定制功能列表数据 + List restltList = new LinkedList<>(); + //1.根据客户Id和所属端查询客户定制功能列表数据 logger.info(String.format("根据客户Id和所属端查询客户定制功能列表,对应客户Id->%s,所属端->%s", formDTO.getCustomerId(), formDTO.getClientType())); List list = baseDao.selectFunctionDetailList(formDTO); - try { - String join = String.join(",", new ArrayList<>()); - String customerParameter = java.net.URLEncoder.encode(join, "utf-8"); - list.forEach(l->{ - l.setCustomerParameter(customerParameter); + if (null != list && list.size() > NumConstant.ZERO) { + //1-1.设置自定义json数据(暂时为空) + try { + String join = String.join(",", new ArrayList<>()); + String customerParameter = java.net.URLEncoder.encode(join, "utf-8"); + list.forEach(l -> { + l.setCustomerParameter(customerParameter); + }); + } catch (Exception e) { + logger.error("CustomerFunctionDetailServiceImpl.resiAndWorkFunctionDetail->集合参数URLEncode失败"); + throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage()); + } + + //2.调用user服务,获取用户角色信息 + GetRoleKeyListFormDTO dto = new GetRoleKeyListFormDTO(); + dto.setUserId(formDTO.getUserId()); + dto.setFromApp(formDTO.getClientType()); + //居民端需要传网格Id 热心居民的角色是在网格里的 + if(AppClientConstant.APP_RESI.equals(formDTO.getClientType())){ + dto.setGridId(formDTO.getGridId()); + } + Result> result = epmetUserOpenFeignClient.getUserRoleKeyList(dto); + if (!result.success()) { + logger.error(String.format("调用user服务,获取用户角色信息失败,用户Id:%s ,所属端:%s", formDTO.getUserId(), formDTO.getClientType())); + throw new RenException(result.getCode()); + } + //未查询到角色数据则不能查看定制功能(居民端陌生人无任何角色) + if (null == result || result.getData().size() < NumConstant.ONE) { + return restltList; + } + formDTO.setRoleKeyList(result.getData()); + + //3.根据用户拥有的角色查询客户的定制功能 + List listFunctionIds = customerFunctionRoleDao.selectFunctionList(formDTO); + + //4.封装结果数据 + list.forEach(l -> { + listFunctionIds.forEach(id -> { + if (id.equals(l.getFunctionId())) { + restltList.add(l); + } + }); }); - } catch (Exception e) { - logger.error("CustomerFunctionDetailServiceImpl.resiAndWorkFunctionDetail->集合参数URLEncode失败"); - throw new RenException(EpmetErrorCode.SERVER_ERROR.getCode(), e.getMessage()); } - return list; + + return restltList; } @Override diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionRoleServiceImpl.java b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionRoleServiceImpl.java new file mode 100644 index 0000000000..f930ee6bdc --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/java/com/epmet/service/impl/CustomerFunctionRoleServiceImpl.java @@ -0,0 +1,154 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.exception.ErrorCode; +import com.epmet.commons.tools.exception.RenException; +import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.utils.ConvertUtils; +import com.epmet.commons.tools.constant.FieldConstant; +import com.epmet.dao.CustomerFunctionRoleDao; +import com.epmet.dto.CustomerFunctionRoleDTO; +import com.epmet.dto.form.CustomerFunctionRoleListFormDTO; +import com.epmet.dto.form.RoleListFormDTO; +import com.epmet.dto.form.SaveCustomerFunctionRoleFormDTO; +import com.epmet.dto.result.CustomerFunctionRoleListResultDTO; +import com.epmet.entity.CustomerFunctionRoleEntity; +import com.epmet.redis.CustomerFunctionRoleRedis; +import com.epmet.service.CustomerFunctionRoleService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * 客户定制功能角色列表 + * + * @author generator generator@elink-cn.com + * @since v1.0.0 2020-09-07 + */ +@Service +public class CustomerFunctionRoleServiceImpl extends BaseServiceImpl implements CustomerFunctionRoleService { + + @Autowired + private CustomerFunctionRoleRedis customerFunctionRoleRedis; + + @Override + public PageData page(Map params) { + IPage page = baseDao.selectPage( + getPage(params, FieldConstant.CREATED_TIME, false), + getWrapper(params) + ); + return getPageData(page, CustomerFunctionRoleDTO.class); + } + + @Override + public List list(Map params) { + List entityList = baseDao.selectList(getWrapper(params)); + + return ConvertUtils.sourceToTarget(entityList, CustomerFunctionRoleDTO.class); + } + + private QueryWrapper getWrapper(Map params){ + String id = (String)params.get(FieldConstant.ID_HUMP); + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq(StringUtils.isNotBlank(id), FieldConstant.ID, id); + + return wrapper; + } + + @Override + public CustomerFunctionRoleDTO get(String id) { + CustomerFunctionRoleEntity entity = baseDao.selectById(id); + return ConvertUtils.sourceToTarget(entity, CustomerFunctionRoleDTO.class); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void save(CustomerFunctionRoleDTO dto) { + CustomerFunctionRoleEntity entity = ConvertUtils.sourceToTarget(dto, CustomerFunctionRoleEntity.class); + insert(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void update(CustomerFunctionRoleDTO dto) { + CustomerFunctionRoleEntity entity = ConvertUtils.sourceToTarget(dto, CustomerFunctionRoleEntity.class); + updateById(entity); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delete(String[] ids) { + // 逻辑删除(@TableLogic 注解) + baseDao.deleteBatchIds(Arrays.asList(ids)); + } + + /** + * @param formDTO + * @return + * @author sun + * @Description 客户定制功能角色设置 + */ + @Override + public void saveCustomerFunctionRole(SaveCustomerFunctionRoleFormDTO formDTO) { + List listEntity = new ArrayList<>(); + //1.封装数据 + List roleList = formDTO.getRoleList(); + roleList.forEach(role->{ + CustomerFunctionRoleEntity entity = new CustomerFunctionRoleEntity(); + entity.setCustomerId(formDTO.getCustomerId()); + entity.setFunctionId(formDTO.getFunctionId()); + entity.setFromApp(formDTO.getFromApp()); + entity.setRoleKey(role.getRoleKey()); + entity.setRoleName(role.getRoleName()); + listEntity.add(entity); + }); + + //2.先按客户Id、功能Id执行删除操作 + baseDao.delByCustomerId(formDTO); + + //3.批量新增 + if(!insertBatch(listEntity)){ + throw new RenException("定制功能角色设置失败"); + } + + } + + /** + * @param formDTO + * @return + * @author sun + * @Description 查询客户定制功能角色列表 + */ + @Override + public List customerFunctionRoleList(CustomerFunctionRoleListFormDTO formDTO) { + //1.根据客户Id、功能Id查询客户定制功能设置的角色列表 + return baseDao.selectCustomerFunctionRoleList(formDTO); + } + +} \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml index f65f7d24eb..14755776eb 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: oper-customize-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.6__footbar_add_column.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.6__footbar_add_column.sql new file mode 100644 index 0000000000..d6301a196a --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.6__footbar_add_column.sql @@ -0,0 +1,2 @@ +alter table customer_foot_bar add column DISPLAY tinyint(1) default 1; +alter table customer_foot_bar change `ORDER` ORDER_INDEX tinyint(1) default 1; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.7__customer_function_role.sql b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.7__customer_function_role.sql new file mode 100644 index 0000000000..ca1b9d2be1 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/db/migration/V0.0.7__customer_function_role.sql @@ -0,0 +1,15 @@ +CREATE TABLE `customer_function_role` ( + `ID` varchar(64) NOT NULL COMMENT '唯一标识', + `CUSTOMER_ID` varchar(64) NOT NULL COMMENT '客户Id ', + `FUNCTION_ID` varchar(64) NOT NULL COMMENT '功能ID(function.ID)', + `FROM_APP` varchar(32) NOT NULL COMMENT '所属APP(工作端:gov、居民端:resi)', + `ROLE_KEY` varchar(32) NOT NULL COMMENT '角色Key值', + `ROLE_NAME` varchar(32) NOT NULL COMMENT '角色名称', + `DEL_FLAG` int(11) NOT NULL COMMENT '删除标识:0.未删除 1.已删除', + `REVISION` int(11) NOT NULL COMMENT '乐观锁', + `CREATED_BY` varchar(32) NOT NULL COMMENT '创建人', + `CREATED_TIME` datetime NOT NULL COMMENT '创建时间', + `UPDATED_BY` varchar(32) NOT NULL COMMENT '更新人', + `UPDATED_TIME` datetime NOT NULL COMMENT '更新时间', + PRIMARY KEY (`ID`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户定制功能角色列表'; \ No newline at end of file diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFootBarDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFootBarDao.xml index e41b42ddb3..b320a9c1d2 100644 --- a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFootBarDao.xml +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFootBarDao.xml @@ -11,7 +11,8 @@ - + + @@ -20,34 +21,194 @@ + + + update customer_foot_bar + set ORDER_INDEX = #{orderIndex} + where ID = #{id} + + + + update customer_foot_bar + set DISPLAY=#{display} + where ID = #{id} + + + + + delete + from customer_foot_bar + where ID = #{id} + + + + delete + from customer_foot_bar + where app_type = #{appType} + and BAR_KEY = #{barKey} + + - SELECT id, customer_id, app_type, bar_key, bar_name, - app_type, page_title, icon_path, selected_icon_path, - `order`, + display, + order_index, del_flag, revision, created_by, created_time, updated_by, - updated_time, - `order` + updated_time FROM customer_foot_bar DEL_FLAG = '0' AND CUSTOMER_ID = #{customerId} AND APP_TYPE = #{appType} + AND DISPLAY = 1 + + ORDER BY `ORDER_INDEX` ASC + + + + + + + + + + + + + + + diff --git a/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionRoleDao.xml b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionRoleDao.xml new file mode 100644 index 0000000000..2789f2c2a4 --- /dev/null +++ b/epmet-module/oper-customize/oper-customize-server/src/main/resources/mapper/CustomerFunctionRoleDao.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + DELETE + FROM customer_function_role + WHERE customer_id = #{customerId} + AND function_id = #{functionId} + + + \ No newline at end of file diff --git a/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml b/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml index dd17343ed3..6f73407d1a 100644 --- a/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-group/resi-group-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-group-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/resi-guide/resi-guide-server/src/main/resources/bootstrap.yml b/epmet-module/resi-guide/resi-guide-server/src/main/resources/bootstrap.yml index 1108340bce..ed94f661c3 100644 --- a/epmet-module/resi-guide/resi-guide-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-guide/resi-guide-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-guide-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/resi-hall/resi-hall-server/src/main/resources/bootstrap.yml b/epmet-module/resi-hall/resi-hall-server/src/main/resources/bootstrap.yml index 00e752f20a..58e251be5b 100644 --- a/epmet-module/resi-hall/resi-hall-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-hall/resi-hall-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-hall-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-module/resi-home/resi-home-server/src/main/resources/bootstrap.yml b/epmet-module/resi-home/resi-home-server/src/main/resources/bootstrap.yml index 78690a6d9f..afb7ab3e38 100644 --- a/epmet-module/resi-home/resi-home-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-home/resi-home-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-home-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-module/resi-mine/resi-mine-server/src/main/resources/bootstrap.yml b/epmet-module/resi-mine/resi-mine-server/src/main/resources/bootstrap.yml index ad3ec82fe3..6e5eb54cc2 100644 --- a/epmet-module/resi-mine/resi-mine-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-mine/resi-mine-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-mine-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java index 93aa5af28c..2004930351 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartyMemberConfirmServiceImpl.java @@ -477,9 +477,9 @@ public class PartyMemberConfirmServiceImpl implements PartyMemberConfirmService Result gridInfoResult = govOrgFeignClient.queryGridInfo(partyMemberInfo.getGridId()); String gridFullPath = ""; if (gridInfoResult.success() && null != gridInfoResult.getData()) { - gridFullPath = String.format("%s-%s-%s", gridInfoResult.getData().getStreetName(), - gridInfoResult.getData().getCommnuityName(), - gridInfoResult.getData().getGridName()); + gridFullPath = String.format("%s-%s-%s", null == gridInfoResult.getData().getStreetName() ? "" : gridInfoResult.getData().getStreetName(), + null == gridInfoResult.getData().getCommnuityName() ? "" : gridInfoResult.getData().getCommnuityName(), + null == gridInfoResult.getData().getGridName() ? "" : gridInfoResult.getData().getGridName()); gridFullPath = gridFullPath.replaceAll("--", "").trim(); } resultDTO.setGridFullPath(gridFullPath); diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/bootstrap.yml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/bootstrap.yml index 9a2b17a333..a2118ff3a3 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-partymember-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages,i18n/messages_common diff --git a/epmet-module/resi-voice/resi-voice-server/src/main/resources/bootstrap.yml b/epmet-module/resi-voice/resi-voice-server/src/main/resources/bootstrap.yml index e77e88368d..03891ed01a 100644 --- a/epmet-module/resi-voice/resi-voice-server/src/main/resources/bootstrap.yml +++ b/epmet-module/resi-voice/resi-voice-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: resi-voice-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ jackson: time-zone: GMT+8 date-format: yyyy-MM-dd HH:mm:ss diff --git a/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml b/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml index 6c9dba5543..84000daee9 100644 --- a/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml +++ b/epmet-openapi/epmet-openapi-scan/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: epmet-openapi-scan #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CommonUserFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CommonUserFormDTO.java index 9b2eec5757..89c1145e31 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CommonUserFormDTO.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/CommonUserFormDTO.java @@ -1,5 +1,6 @@ package com.epmet.dto.form; +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; import lombok.Data; import javax.validation.constraints.NotBlank; @@ -15,15 +16,17 @@ import java.io.Serializable; public class CommonUserFormDTO implements Serializable{ private static final long serialVersionUID = -7994579456530273809L; + public interface CustomerId_UserIdGroup extends CustomerClientShowGroup{} + /** * 用户Id * */ - @NotBlank(message = "用户Id不能为空") + @NotBlank(message = "用户Id不能为空" , groups = CustomerId_UserIdGroup.class) private String userId; /** * 客户Id * */ - @NotBlank(message = "客户Id不能为空") + @NotBlank(message = "客户Id不能为空" , groups = CustomerId_UserIdGroup.class) private String customerId; } diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetRoleKeyListFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetRoleKeyListFormDTO.java new file mode 100644 index 0000000000..263b263a8f --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/GetRoleKeyListFormDTO.java @@ -0,0 +1,28 @@ +package com.epmet.dto.form; + +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * @Description 获取用户拥有的角色key集合-接口入参 + * @Author sun + */ +@Data +public class GetRoleKeyListFormDTO implements Serializable{ + private static final long serialVersionUID = -7994579456530273809L; + + /** + * 用户Id + * */ + private String userId; + /** + * 网格Id + * */ + private String gridId; + /** + * 所属端(居民端:resi 工作端:gov) + * */ + private String fromApp; +} diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiGovRoleListResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiGovRoleListResultDTO.java new file mode 100644 index 0000000000..5221f37c67 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiGovRoleListResultDTO.java @@ -0,0 +1,46 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + + +/** + * 获取居民端、工作端人员角色列表--接口返参 + * + * @author sun + */ +@Data +public class ResiGovRoleListResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 居民端角色列表 + */ + private List resiRoleList; + + /** + * 工作端角色列表 + */ + private List govRoleList; + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiGovRoleResultDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiGovRoleResultDTO.java new file mode 100644 index 0000000000..49b05f0804 --- /dev/null +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/result/ResiGovRoleResultDTO.java @@ -0,0 +1,44 @@ +/** + * Copyright 2018 人人开源 https://www.renren.io + *

+ * 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. + *

+ * 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. + *

+ * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + + +/** + * 获取居民端、工作端人员角色列表--接口返参 + * + * @author sun + */ +@Data +public class ResiGovRoleResultDTO implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 角色key + */ + private String roleKey; + /** + * 角色名称 + */ + private String roleName; + +} \ No newline at end of file diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java index a1902d95c5..c5a50bc818 100644 --- a/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java +++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/feign/EpmetUserOpenFeignClient.java @@ -306,4 +306,11 @@ public interface EpmetUserOpenFeignClient { */ @PostMapping("epmetuser/staffrole/changeroleorg") Result changeRoleOrg(@RequestBody StaffRoleDTO formDTO); + + /** + * @Author sun + * @Description 居民端-查询用户角色key列表 + **/ + @PostMapping("epmetuser/role/getuserrolekeylist") + Result> getUserRoleKeyList(@RequestBody GetRoleKeyListFormDTO dto); } 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 a60c9611ae..2a6db644e7 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 @@ -205,4 +205,9 @@ public class EpmetUserOpenFeignClientFallback implements EpmetUserOpenFeignClien public Result changeRoleOrg(StaffRoleDTO formDTO) { return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "changeRoleOrg", formDTO); } + + @Override + public Result> getUserRoleKeyList(GetRoleKeyListFormDTO dto) { + return ModuleUtils.feignConError(ServiceConstant.EPMET_USER_SERVER, "getUserRoleKeyList", dto); + } } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java index 38081f88cd..2411ec1079 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/GovStaffRoleController.java @@ -1,11 +1,16 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.RoleDTO; import com.epmet.dto.form.GovStaffRoleFormDTO; +import com.epmet.dto.form.IssueInitiatorFormDTO; import com.epmet.dto.result.GovStaffRoleResultDTO; import com.epmet.dto.result.GovStaffRoleTemplateDTO; +import com.epmet.dto.result.IssueInitiatorResultDTO; +import com.epmet.dto.result.ResiGovRoleListResultDTO; import com.epmet.entity.GovStaffRoleEntity; import com.epmet.service.GovStaffRoleService; import org.springframework.beans.factory.annotation.Autowired; @@ -59,4 +64,16 @@ public class GovStaffRoleController { return new Result>().ok(roleDTOS); } + + /** + * @param tokenDTO + * @return ResiGovRoleListResultDTO + * @author sun + * @Description 获取居民端、工作端人员角色列表 + */ + @PostMapping("resigovrolelist") + public Result resiGovRoleList(@LoginUser TokenDto tokenDTO){ + return new Result().ok(govStaffRoleService.resiGovRoleList()); + } + } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RoleController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RoleController.java index e7c82100a6..98ec4c998f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RoleController.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/RoleController.java @@ -17,7 +17,9 @@ package com.epmet.controller; +import com.epmet.commons.tools.annotation.LoginUser; import com.epmet.commons.tools.page.PageData; +import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ExcelUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.AssertUtils; @@ -26,6 +28,7 @@ import com.epmet.commons.tools.validator.group.AddGroup; import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.commons.tools.validator.group.DefaultGroup; import com.epmet.dto.RoleDTO; +import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.excel.RoleExcel; import com.epmet.service.RoleService; import org.springframework.beans.factory.annotation.Autowired; @@ -91,4 +94,15 @@ public class RoleController { ExcelUtils.exportExcelToTarget(response, null, list, RoleExcel.class); } + /** + * @param formDTO + * @return + * @Author sun + * @Description 居民端-查询用户角色key列表 + **/ + @PostMapping("getuserrolekeylist") + public Result> getUserRoleKeyList(@RequestBody GetRoleKeyListFormDTO formDTO) { + return new Result>().ok(roleService.getUserRoleKeyList(formDTO)); + } + } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleTemplateDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleTemplateDao.java index 4622b81f79..62af0e097c 100755 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleTemplateDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/GovStaffRoleTemplateDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.result.GovStaffRoleTemplateDTO; +import com.epmet.dto.result.ResiGovRoleResultDTO; import com.epmet.entity.GovStaffRoleTemplateEntity; import org.apache.ibatis.annotations.Mapper; @@ -38,4 +39,10 @@ public interface GovStaffRoleTemplateDao extends BaseDao listValidateRoles(); + + /** + * @author sun + * @Description 获取工作端角色列表 + */ + List selectGovRoleList(); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java index 398406a8cf..c8ceda37c5 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/RoleDao.java @@ -19,6 +19,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.dto.RoleDTO; +import com.epmet.dto.result.ResiGovRoleResultDTO; import com.epmet.entity.RoleEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -41,4 +42,10 @@ public interface RoleDao extends BaseDao { * @return RoleEntity */ RoleEntity selectRoleByKey(RoleEntity param); + + /** + * @author sun + * @Description 获取居民端角色列表 + */ + List selectResiRoleList(); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java index dfc5407272..3124fc68c7 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/StaffRoleDao.java @@ -23,6 +23,7 @@ import com.epmet.commons.mybatis.entity.DataScope; import com.epmet.dto.StaffRoleDTO; import com.epmet.dto.form.CommonUserFormDTO; import com.epmet.dto.form.CustomerStaffRoleListFormDTO; +import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.dto.result.CustomerStaffRoleListResultDTO; import com.epmet.dto.result.CustomerStaffRoleResultDTO; import com.epmet.dto.result.GovStaffRoleResultDTO; @@ -122,4 +123,12 @@ public interface StaffRoleDao extends BaseDao { * @return void */ void updateStaffRoleOrgId(StaffRoleDTO dto); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 工作端-查询用户角色key列表 + **/ + List selectStaffRoleKeyList(GetRoleKeyListFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java index e91e0c8d46..3801f0fcf4 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserRoleDao.java @@ -20,6 +20,7 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.UserRoleDTO; +import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.dto.form.UserRoleFormDTO; import com.epmet.dto.result.UserRoleResultDTO; import com.epmet.entity.UserRoleEntity; @@ -63,4 +64,12 @@ public interface UserRoleDao extends BaseDao { * @Date 14:24 2020-07-23 **/ List getUserRoleInfoByUserId(@Param("userId") String userId); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 居民端-查询用户角色key列表 + **/ + List selectUserRoleKeyList(GetRoleKeyListFormDTO formDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java index 1322bf06d1..d7347a597f 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/GovStaffRoleService.java @@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.result.GovStaffRoleResultDTO; import com.epmet.dto.result.GovStaffRoleTemplateDTO; +import com.epmet.dto.result.ResiGovRoleListResultDTO; import com.epmet.entity.GovStaffRoleEntity; import java.util.List; @@ -127,4 +128,10 @@ public interface GovStaffRoleService extends BaseService { List listRoleTemplates(); GovStaffRoleResultDTO getDTOById(String roleId); + + /** + * @author sun + * @Description 获取居民端、工作端人员角色列表 + */ + ResiGovRoleListResultDTO resiGovRoleList(); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RoleService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RoleService.java index 72e055c4b1..21ac0465b0 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RoleService.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/RoleService.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.RoleDTO; +import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.entity.RoleEntity; import java.util.List; @@ -99,4 +100,12 @@ public interface RoleService extends BaseService { * @return RoleDTO */ RoleDTO getRoleByKey(RoleDTO role); + + /** + * @param formDTO + * @return + * @Author sun + * @Description 居民端-查询用户角色key列表 + **/ + List getUserRoleKeyList(GetRoleKeyListFormDTO formDTO); } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java index 72f9c416b2..ec85e7b960 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/CustomerStaffServiceImpl.java @@ -626,23 +626,25 @@ public class CustomerStaffServiceImpl extends BaseServiceImpl customerInfo = operCrmOpenFeignClient.getCustomerInfo(customerDTO); - if (!customerInfo.success()) { - logger.error(String.format("获取根管理员信息失败,调用%s服务查询客户名称失败,入参%s", ServiceConstant.OPER_CRM_SERVER, JSON.toJSONString(staffDTO.getCustomerId()))); - } else { - if (null != customerInfo.getData()){ - CustomerListResultDTO resultDTO = new CustomerListResultDTO(); - resultDTO.setCustomerId(customerInfo.getData().getId()); - resultDTO.setCustomerName(customerInfo.getData().getCustomerName()); - listResultDTO.add(resultDTO); - } - } - } + if (null != roleKey){ + // 3.根据roleId + staff_id(即 userId) 查 staff_role表的主键id, 如果查到了,那这个userId就是 根管理员 + StaffRoleDTO staffRoleDTO = staffRoleDao.selectStaffRoleByStaffIdAndRoleId(staffDTO.getUserId(), roleKey.getId()); + if (null != staffRoleDTO){ + // 4.如果userID是根管理员的话,则根据customerId 去 customer表 查询 id、customer_name + customerDTO.setId(staffDTO.getCustomerId()); + Result customerInfo = operCrmOpenFeignClient.getCustomerInfo(customerDTO); + if (!customerInfo.success()) { + logger.error(String.format("获取根管理员信息失败,调用%s服务查询客户名称失败,入参%s", ServiceConstant.OPER_CRM_SERVER, JSON.toJSONString(staffDTO.getCustomerId()))); + } else { + if (null != customerInfo.getData()){ + CustomerListResultDTO resultDTO = new CustomerListResultDTO(); + resultDTO.setCustomerId(customerInfo.getData().getId()); + resultDTO.setCustomerName(customerInfo.getData().getCustomerName()); + listResultDTO.add(resultDTO); + } + } + } + } } return new Result>().ok(listResultDTO); } diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java index 6da54b7c69..29f782b14a 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/GovStaffRoleServiceImpl.java @@ -27,10 +27,13 @@ import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.utils.Result; import com.epmet.dao.GovStaffRoleDao; import com.epmet.dao.GovStaffRoleTemplateDao; +import com.epmet.dao.RoleDao; import com.epmet.dto.GovStaffRoleDTO; import com.epmet.dto.form.InitDefaultOperationsFormDTO; import com.epmet.dto.result.GovStaffRoleResultDTO; import com.epmet.dto.result.GovStaffRoleTemplateDTO; +import com.epmet.dto.result.ResiGovRoleListResultDTO; +import com.epmet.dto.result.ResiGovRoleResultDTO; import com.epmet.entity.GovStaffRoleEntity; import com.epmet.feign.GovAccessFeignClient; import com.epmet.redis.GovStaffRoleRedis; @@ -66,6 +69,9 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl page(Map params) { IPage page = baseDao.selectPage( @@ -181,4 +187,25 @@ public class GovStaffRoleServiceImpl extends BaseServiceImpl resiRoleList = roleDao.selectResiRoleList(); + + //2.查询工作端角色列表 + List govRoleList = govStaffRoleTemplateDao.selectGovRoleList(); + + //3.封装数据并返回 + resultDTO.setResiRoleList(resiRoleList); + resultDTO.setGovRoleList(govRoleList); + return resultDTO; + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RoleServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RoleServiceImpl.java index 8322ee7226..40b1e478ff 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RoleServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/RoleServiceImpl.java @@ -20,11 +20,15 @@ package com.epmet.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; +import com.epmet.commons.tools.constant.AppClientConstant; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.dao.RoleDao; +import com.epmet.dao.StaffRoleDao; +import com.epmet.dao.UserRoleDao; import com.epmet.dto.RoleDTO; +import com.epmet.dto.form.GetRoleKeyListFormDTO; import com.epmet.entity.RoleEntity; import com.epmet.redis.RoleRedis; import com.epmet.service.RoleService; @@ -33,6 +37,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -48,6 +53,10 @@ public class RoleServiceImpl extends BaseServiceImpl implem @Autowired private RoleRedis roleRedis; + @Autowired + private UserRoleDao userRoleDao; + @Autowired + private StaffRoleDao staffRoleDao; @Override public PageData page(Map params) { @@ -106,4 +115,21 @@ public class RoleServiceImpl extends BaseServiceImpl implem RoleEntity entity = baseDao.selectRoleByKey(ConvertUtils.sourceToTarget(role, RoleEntity.class)); return ConvertUtils.sourceToTarget(entity, RoleDTO.class); } + + /** + * @param formDTO + * @return + * @Author sun + * @Description 居民端-查询用户角色key列表 + **/ + @Override + public List getUserRoleKeyList(GetRoleKeyListFormDTO formDTO) { + List list = new ArrayList<>(); + if(AppClientConstant.APP_RESI.equals(formDTO.getFromApp())){ + list = userRoleDao.selectUserRoleKeyList(formDTO); + }else if(AppClientConstant.APP_GOV.equals(formDTO.getFromApp())){ + list = staffRoleDao.selectStaffRoleKeyList(formDTO); + } + return list; + } } \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java index 2f32b59b5f..da356f3e5c 100644 --- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java +++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserServiceImpl.java @@ -3,7 +3,6 @@ package com.epmet.service.impl; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.NumConstant; import com.epmet.commons.tools.exception.RenException; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.CpUserDetailRedis; import com.epmet.commons.tools.utils.Result; @@ -203,9 +202,9 @@ public class UserServiceImpl extends BaseServiceImpl implem userRoleFormDTO.setGridId(myResiUserInfoFormDTO.getGridId()); result.setRoleList(userRoleDao.getUserRoleList(userRoleFormDTO)); - TokenDto dto = new TokenDto(); - dto.setUserId(myResiUserInfoFormDTO.getUserId()); - Result pointResult = epmetPointOpenFeignClient.myPoint(dto); + CommonUserFormDTO pointParam = new CommonUserFormDTO(); + pointParam.setCustomerId(myResiUserInfoFormDTO.getCustomerId()); + Result pointResult = epmetPointOpenFeignClient.myPoint(pointParam); if(pointResult.success() && null != pointResult.getData()){ //累计积分 result.setPoint(pointResult.getData().getUsablePoint()); diff --git a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml index 00a9025891..4f732d5ac9 100644 --- a/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml +++ b/epmet-user/epmet-user-server/src/main/resources/bootstrap.yml @@ -10,7 +10,7 @@ spring: name: epmet-user-server #环境 dev|test|prod profiles: - active: dev + active: @spring.profiles.active@ messages: encoding: UTF-8 basename: i18n/messages_common diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleTemplateDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleTemplateDao.xml index 263d76beec..a06b408917 100755 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleTemplateDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/GovStaffRoleTemplateDao.xml @@ -23,5 +23,14 @@ WHERE DEL_FLAG = 0 + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/RoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/RoleDao.xml index 2bc5147051..8fbf38a62a 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/RoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/RoleDao.xml @@ -27,4 +27,12 @@ and ROLE_KEY = #{roleKey} and DEL_FLAG = 0 + + \ No newline at end of file diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml index aabdfd6d71..0b39b350b7 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/StaffRoleDao.xml @@ -181,4 +181,16 @@ and sr.ROLE_ID = #{roleId} and sr.DEL_FLAG='0' + + diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml index 803fa40621..d7726d3b7b 100644 --- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml +++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserRoleDao.xml @@ -88,4 +88,16 @@ ur.USER_ID = #{userId} + +