diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRole.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRole.java index 0b47fb3..bded704 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRole.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRole.java @@ -1,15 +1,13 @@ package com.evotech.hd.common.core.entity.resource.auth; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; import com.evotech.hd.common.core.entity.BaseEntity; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; -import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.util.Date; /** * @author zrb @@ -40,4 +38,10 @@ public class AuthRole extends BaseEntity implements Serializable { @Schema(description = "是否内置角色,内置角色不允许修改") private Integer readonly; + + @Schema(description = "业务code, 如果是开发者创建, 则为空") + private String businessCode; + + @TableField(exist = false) + private String businessName; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUser.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUser.java index dbd0e34..c9be65b 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUser.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUser.java @@ -40,6 +40,8 @@ public class AuthUser extends BaseEntity implements Serializable { @Schema(description = "业务code, 即公司类型,为公司统一社会信息代码, 运营商类型为运营商统一社会信用代码", hidden = true) private String businessCode; + @TableField(exist = false) + private String businessName; @Schema(description = "关联方代码") private String typeRelateCode; diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/CompanyController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/CompanyController.java index 17b34a3..bfba3a9 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/CompanyController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/CompanyController.java @@ -67,5 +67,9 @@ public class CompanyController { return companyService.loginOne(code); } + @GetMapping("/resource/list") + public BaseResponse> resourceList() { + return companyService.resourceList(); + } } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/config/MqttConnectInit.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/config/MqttConnectInit.java index e7a57fa..14998bf 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/config/MqttConnectInit.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/config/MqttConnectInit.java @@ -12,14 +12,13 @@ import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; import org.springframework.core.annotation.Order; -import org.springframework.stereotype.Component; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Date; import java.util.concurrent.ConcurrentHashMap; -@Component +//@Component @Order(value = 20) @Slf4j public class MqttConnectInit implements ApplicationRunner { diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/CompanyService.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/CompanyService.java index 245d0bb..7c0f460 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/CompanyService.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/CompanyService.java @@ -21,4 +21,6 @@ public interface CompanyService { public Result> companyByCode(String ccode); public BaseResponse loginOne(String code); + + public BaseResponse> resourceList(); } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/CompanyServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/CompanyServiceImpl.java index 4d782e4..b3b47df 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/CompanyServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/CompanyServiceImpl.java @@ -84,4 +84,9 @@ public class CompanyServiceImpl implements CompanyService { return new BaseResponse().success(companyDao.selectOne(new LambdaQueryWrapper().eq(Company::getCcode, code))); } + @Override + public BaseResponse> resourceList() { + return new BaseResponse>().success(companyDao.selectList(new LambdaQueryWrapper().select(Company::getCcode, Company::getCname))); + } + } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java index 2b622cd..3bcdfe9 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/AuthUserServiceImpl.java @@ -1,20 +1,25 @@ package com.evotech.hd.resource.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.evotech.hd.common.core.Dto.BaseResponse; +import com.evotech.hd.common.core.dao.resource.ProxyOperaterDao; import com.evotech.hd.common.core.dao.resource.auth.AuthUserDao; import com.evotech.hd.common.core.dao.resource.auth.AuthUserRoleDao; import com.evotech.hd.common.core.dao.resource.auth.AuthUserStationDao; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.BatteryStation; +import com.evotech.hd.common.core.entity.cloud.Company; +import com.evotech.hd.common.core.entity.resource.ProxyOperater; import com.evotech.hd.common.core.entity.resource.auth.AuthUser; import com.evotech.hd.common.core.entity.resource.auth.AuthUserRole; import com.evotech.hd.common.core.entity.resource.auth.AuthUserStation; import com.evotech.hd.common.core.enums.CodeMsg; import com.evotech.hd.common.core.utils.SnowflakeUtil; +import com.evotech.hd.common.permission.util.RedisPermissionUtils; import com.evotech.hd.resource.entity.request.ListUserRequest; import com.evotech.hd.resource.service.AuthUserService; import com.evotech.hd.resource.service.rpc.CloudService; @@ -28,6 +33,7 @@ import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; @Service @@ -40,6 +46,8 @@ public class AuthUserServiceImpl implements AuthUserService { @Resource private AuthUserStationDao authUserStationDao; @Resource + private ProxyOperaterDao proxyOperaterDao; + @Resource private CloudService cloudService; @@ -68,7 +76,16 @@ public class AuthUserServiceImpl implements AuthUserService { Date d = new Date(); u.setCtime(d); u.setStatus(1); - u.setPasswordExpireTime(DateUtil.offsetMonth(d, 12)); + u.setPasswordExpireTime(DateUtil.offsetMonth(d, 12)) + ; + AuthUser user = RedisPermissionUtils.getUser(); + if(BeanUtil.isNotEmpty(user)){ + //如果不是开发者, 将当前登录用户所属的公司给角色 + if(!Integer.valueOf(1).equals(user.getType())){ + user.setBusinessCode(user.getBusinessCode()); + } + } + int n = userDao.insert(u); if (n == 1) { return new Result().success(n); @@ -112,6 +129,21 @@ public class AuthUserServiceImpl implements AuthUserService { if (page.getRecords().isEmpty()) { return new Result>().error(CodeMsg.DATABASE_RESULT_NULL); } + + Map businessNames = proxyOperaterDao.selectList(new LambdaQueryWrapper().select(ProxyOperater::getPocode, ProxyOperater::getPoname)).stream().collect(Collectors.toMap(ProxyOperater::getPocode, ProxyOperater::getPoname, (k1, k2)->k1)); + BaseResponse> companyResult = cloudService.resourceCompanyList(); + if(CodeMsg.SUCCESS.getCode().equals(companyResult.getCode())){ + businessNames.putAll(companyResult.getData().stream().collect(Collectors.toMap(Company::getCcode, Company::getCname, (k1,k2)->k1))); + } + page.getRecords().stream().forEach(user ->{ + if(StringUtils.hasText(user.getBusinessCode())){ + user.setBusinessName(businessNames.get(user.getBusinessCode())); + }else{ + user.setBusinessName("系统管理员"); + } + }); + + return new Result>().success(page); } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/RoleServiceImpl.java b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/RoleServiceImpl.java index 13619b9..0460abe 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/RoleServiceImpl.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/RoleServiceImpl.java @@ -1,22 +1,30 @@ package com.evotech.hd.resource.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.dao.resource.ProxyOperaterDao; import com.evotech.hd.common.core.dao.resource.auth.AuthRoleDao; import com.evotech.hd.common.core.dao.resource.auth.AuthRoleResourceDao; import com.evotech.hd.common.core.dao.resource.auth.AuthUserRoleDao; import com.evotech.hd.common.core.entity.Result; +import com.evotech.hd.common.core.entity.cloud.Company; +import com.evotech.hd.common.core.entity.resource.ProxyOperater; import com.evotech.hd.common.core.entity.resource.auth.AuthRole; import com.evotech.hd.common.core.entity.resource.auth.AuthRoleResource; +import com.evotech.hd.common.core.entity.resource.auth.AuthUser; import com.evotech.hd.common.core.entity.resource.auth.AuthUserRole; import com.evotech.hd.common.core.entity.resource.dict.Dict; import com.evotech.hd.common.core.enums.CodeMsg; +import com.evotech.hd.common.permission.util.RedisPermissionUtils; import com.evotech.hd.resource.entity.request.DelAddRoleSourceRequest; import com.evotech.hd.resource.service.DictService; import com.evotech.hd.resource.service.RoleService; +import com.evotech.hd.resource.service.rpc.CloudService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.apache.ibatis.executor.BatchResult; @@ -39,10 +47,21 @@ public class RoleServiceImpl implements RoleService { private AuthUserRoleDao authUserRoleDao; @Resource private DictService dictService; - + @Resource + private ProxyOperaterDao proxyOperaterDao; + @Resource + private CloudService cloudService; + @Override public Result add(AuthRole r) { r.setCtime(new Date()); + AuthUser user = RedisPermissionUtils.getUser(); + if(BeanUtil.isNotEmpty(user)){ + //如果不是开发者, 将当前登录用户所属的公司给角色 + if(!Integer.valueOf(1).equals(user.getType())){ + r.setBusinessCode(user.getBusinessCode()); + } + } int n = authRoleDao.insert(r); if (n == 1) { try { @@ -118,6 +137,19 @@ public class RoleServiceImpl implements RoleService { if (roleList.isEmpty()) { return new Result>().error(CodeMsg.DATABASE_RESULT_NULL); } + Map businessNames = proxyOperaterDao.selectList(new LambdaQueryWrapper().select(ProxyOperater::getPocode, ProxyOperater::getPoname)).stream().collect(Collectors.toMap(ProxyOperater::getPocode, ProxyOperater::getPoname, (k1,k2)->k1)); + BaseResponse> companyResult = cloudService.resourceCompanyList(); + if(CodeMsg.SUCCESS.getCode().equals(companyResult.getCode())){ + businessNames.putAll(companyResult.getData().stream().collect(Collectors.toMap(Company::getCcode, Company::getCname, (k1,k2)->k1))); + } + roleList.stream().forEach(role ->{ + if(StringUtils.hasText(role.getBusinessCode())){ + role.setBusinessName(businessNames.get(role.getBusinessCode())); + }else{ + role.setBusinessName("系统管理员"); + } + }); + return new Result>().success(roleList); } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/rpc/CloudService.java b/resource-server/src/main/java/com/evotech/hd/resource/service/rpc/CloudService.java index c5a6f3b..566d1a7 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/rpc/CloudService.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/rpc/CloudService.java @@ -2,6 +2,7 @@ package com.evotech.hd.resource.service.rpc; import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.cloud.BatteryStation; +import com.evotech.hd.common.core.entity.cloud.Company; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -16,4 +17,6 @@ public interface CloudService { consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}) public BaseResponse> resourceList(String pkIds); + @GetMapping(value = "/company/resource/list", consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}) + public BaseResponse> resourceCompanyList(); } diff --git a/resource-server/src/main/resources/mapper/AuthRoleMapper.xml b/resource-server/src/main/resources/mapper/AuthRoleMapper.xml index 903e963..9a318c4 100644 --- a/resource-server/src/main/resources/mapper/AuthRoleMapper.xml +++ b/resource-server/src/main/resources/mapper/AuthRoleMapper.xml @@ -11,6 +11,7 @@ + diff --git a/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/OrderServiceImpl.java b/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/OrderServiceImpl.java index badb56f..ea2e59f 100644 --- a/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/OrderServiceImpl.java +++ b/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/OrderServiceImpl.java @@ -1,29 +1,27 @@ package com.evotech.hd.wechat.service.impl; -import java.util.List; -import java.util.Optional; - - -import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.OrderSwapBattery; import com.evotech.hd.common.core.entity.cloud.OrderSwapBatteryPre; import com.evotech.hd.common.core.entity.cloud.OrderSwapBatteryStep; +import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse; import com.evotech.hd.common.core.entity.cloud.request.PageListSwapOrderPreRequest; import com.evotech.hd.common.core.entity.cloud.request.PageListSwapOrderRequest; import com.evotech.hd.wechat.service.OrderService; import com.evotech.hd.wechat.service.rpc.CloudService; - import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; -import org.springframework.web.bind.annotation.RequestParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.List; +import java.util.Optional; @Service +@Slf4j public class OrderServiceImpl implements OrderService { @Resource @@ -68,6 +66,7 @@ public class OrderServiceImpl implements OrderService { public Result walletPay(String orderNo, String wuid, String uname) { if (!wuid.equals(request.getHeader(HDConstant.WECHAT_SERVER_AUTHORIZATION_KEY))) { + log.error("当前参数的wuid:{}=== 请求中的wuid:{}", wuid, request.getHeader(HDConstant.WECHAT_SERVER_AUTHORIZATION_KEY)); return new Result().error("账号错误"); } return cloudService.walletPay(orderNo, wuid, uname); diff --git a/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatUserServiceImpl.java b/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatUserServiceImpl.java index b828321..75fd905 100644 --- a/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatUserServiceImpl.java +++ b/wechat-server/src/main/java/com/evotech/hd/wechat/service/impl/WechatUserServiceImpl.java @@ -1,10 +1,6 @@ package com.evotech.hd.wechat.service.impl; -import java.nio.file.WatchService; -import java.util.List; - -import org.springframework.stereotype.Service; - +import cn.hutool.core.util.DesensitizedUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.dao.wechat.WechatUserDao; @@ -17,13 +13,16 @@ import com.evotech.hd.common.core.entity.wechat.WechatUser; import com.evotech.hd.common.core.enums.CodeMsg; import com.evotech.hd.wechat.service.WechatUserService; import com.evotech.hd.wechat.service.rpc.CloudService; - -import cn.hutool.core.util.DesensitizedUtil; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import java.util.List; @Service +@Slf4j public class WechatUserServiceImpl implements WechatUserService { @Resource @@ -88,6 +87,7 @@ public class WechatUserServiceImpl implements WechatUserService { @Override public Result> listWallet(String wuid, HttpServletRequest request) { if (wuid == null || !wuid.equals(request.getHeader(HDConstant.WECHAT_SERVER_AUTHORIZATION_KEY))) { + log.error("当前参数的wuid:{}=== 请求中的wuid:{}", wuid, request.getHeader(HDConstant.WECHAT_SERVER_AUTHORIZATION_KEY)); return new Result>().error("账号错误"); }