diff --git a/authorization-server/src/main/java/com/evotech/hd/authorization/service/CloudService.java b/authorization-server/src/main/java/com/evotech/hd/authorization/service/CloudService.java new file mode 100644 index 0000000..20ac029 --- /dev/null +++ b/authorization-server/src/main/java/com/evotech/hd/authorization/service/CloudService.java @@ -0,0 +1,26 @@ +package com.evotech.hd.authorization.service; + +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 com.evotech.hd.common.core.entity.cloud.VehicleInfo; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient(value = "cloud-server", path = "/cloud") +public interface CloudService { + + + @GetMapping(value = "/batterystation/login/list", consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + public BaseResponse> loadBatteryStation(@RequestParam("proxyCode") String proxyCode); + + @GetMapping(value = "/company/login/one", consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + public BaseResponse loadCompany(@RequestParam("code") String code); + + @GetMapping(value = "/vehicle/login/list", consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + public BaseResponse> loadVehicleInfo(@RequestParam("companyCode") String companyCode); +} diff --git a/authorization-server/src/main/java/com/evotech/hd/authorization/service/ResourceService.java b/authorization-server/src/main/java/com/evotech/hd/authorization/service/ResourceService.java index 5b3ca20..c50a0a8 100644 --- a/authorization-server/src/main/java/com/evotech/hd/authorization/service/ResourceService.java +++ b/authorization-server/src/main/java/com/evotech/hd/authorization/service/ResourceService.java @@ -1,5 +1,12 @@ package com.evotech.hd.authorization.service; +import com.evotech.hd.common.core.Dto.BaseResponse; +import com.evotech.hd.common.core.entity.LoginCacheInfo; +import com.evotech.hd.common.core.entity.Result; +import com.evotech.hd.common.core.entity.resource.LogLogin; +import com.evotech.hd.common.core.entity.resource.auth.AuthUser; +import com.evotech.hd.common.core.entity.resource.auth.AuthUserStation; +import jakarta.validation.constraints.NotNull; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; @@ -7,12 +14,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; -import com.evotech.hd.common.core.entity.LoginCacheInfo; -import com.evotech.hd.common.core.entity.Result; -import com.evotech.hd.common.core.entity.resource.LogLogin; -import com.evotech.hd.common.core.entity.resource.auth.AuthUser; - -import jakarta.validation.constraints.NotNull; +import java.util.List; @FeignClient(value = "resource-server") public interface ResourceService { @@ -33,4 +35,8 @@ public interface ResourceService { @GetMapping(value = "/resource/logininfo/get", consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}) public Result loginInfo(@RequestParam("uid") String uid); + + @GetMapping(value = "/resource/user/station",consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE}) + public BaseResponse> loadBatteryStation(@RequestParam("uid") String uid); + } diff --git a/authorization-server/src/main/java/com/evotech/hd/authorization/service/impl/LoginServiceImpl.java b/authorization-server/src/main/java/com/evotech/hd/authorization/service/impl/LoginServiceImpl.java index fc26067..7794cde 100644 --- a/authorization-server/src/main/java/com/evotech/hd/authorization/service/impl/LoginServiceImpl.java +++ b/authorization-server/src/main/java/com/evotech/hd/authorization/service/impl/LoginServiceImpl.java @@ -1,42 +1,49 @@ package com.evotech.hd.authorization.service.impl; +import cn.hutool.http.useragent.UserAgent; +import cn.hutool.http.useragent.UserAgentUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.evotech.hd.authorization.config.oauth2.MyAccessToken; +import com.evotech.hd.authorization.entity.LoginRequest; +import com.evotech.hd.authorization.entity.UserVo; +import com.evotech.hd.authorization.service.CaptchaService; +import com.evotech.hd.authorization.service.CloudService; +import com.evotech.hd.authorization.service.LoginService; +import com.evotech.hd.authorization.service.ResourceService; +import com.evotech.hd.authorization.utils.LoginRequesHeadertUtil; +import com.evotech.hd.authorization.utils.Oauth2AccessTokenUtil; +import com.evotech.hd.authorization.utils.TokenUtil; +import com.evotech.hd.common.core.Dto.BaseResponse; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.entity.LoginCacheInfo; +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.cloud.VehicleInfo; +import com.evotech.hd.common.core.entity.resource.LogLogin; +import com.evotech.hd.common.core.entity.resource.auth.AuthPermission; +import com.evotech.hd.common.core.entity.resource.auth.AuthRole; +import com.evotech.hd.common.core.entity.resource.auth.AuthUser; +import com.evotech.hd.common.core.entity.resource.auth.AuthUserStation; +import com.evotech.hd.common.core.enums.CodeMsg; +import com.evotech.hd.common.redis.utils.RedisUtil; +import com.evotech.hd.common.web.util.IpUtil; +import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import org.apache.http.auth.AuthenticationException; +import org.springframework.beans.BeanUtils; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Service; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; + import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.apache.http.auth.AuthenticationException; -import org.springframework.beans.BeanUtils; -import org.springframework.core.env.Environment; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - -import com.evotech.hd.authorization.config.oauth2.MyAccessToken; -import com.evotech.hd.authorization.entity.LoginRequest; -import com.evotech.hd.authorization.entity.UserVo; -import com.evotech.hd.authorization.service.ResourceService; -import com.evotech.hd.authorization.service.CaptchaService; -import com.evotech.hd.authorization.service.LoginService; -import com.evotech.hd.authorization.utils.LoginRequesHeadertUtil; -import com.evotech.hd.authorization.utils.Oauth2AccessTokenUtil; -import com.evotech.hd.authorization.utils.TokenUtil; -import com.evotech.hd.common.core.constant.HDConstant; -import com.evotech.hd.common.core.entity.LoginCacheInfo; -import com.evotech.hd.common.core.entity.Result; -import com.evotech.hd.common.core.entity.resource.LogLogin; -import com.evotech.hd.common.core.entity.resource.auth.AuthPermission; -import com.evotech.hd.common.core.entity.resource.auth.AuthRole; -import com.evotech.hd.common.core.entity.resource.auth.AuthUser; -import com.evotech.hd.common.core.enums.CodeMsg; -import com.evotech.hd.common.redis.utils.RedisUtil; -import com.evotech.hd.common.web.util.IpUtil; -import cn.hutool.http.useragent.UserAgent; -import cn.hutool.http.useragent.UserAgentUtil; -import cn.hutool.json.JSONObject; -import cn.hutool.json.JSONUtil; -import jakarta.annotation.Resource; -import jakarta.servlet.http.HttpServletRequest; - @Service public class LoginServiceImpl implements LoginService { @@ -48,6 +55,8 @@ public class LoginServiceImpl implements LoginService { @Resource private ResourceService resourceService; @Resource + private CloudService cloudService; + @Resource private RedisUtil redisUtil; @Resource private Environment env; @@ -109,7 +118,7 @@ public class LoginServiceImpl implements LoginService { loginLog.setLoginTime(d); loginLog.setCtime(d); loginLog.setRequestIp(IpUtil.getRemoteIP(request)); - String uaStr = request.getHeader("User-Agent"); + String uaStr = request.getHeader("User-Agent"); UserAgent ua = UserAgentUtil.parse(uaStr); loginLog.setUa(uaStr); loginLog.setBrowser(ua.getBrowser().toString()); @@ -164,7 +173,66 @@ public class LoginServiceImpl implements LoginService { uv.setPermCodeList(permCodeList); redisUtil.lSet(HDConstant.LOGIN_CACHE_KEY_PREFIX + jti + ":perms", permUriList.toArray(new String[permUriList.size()]), tokenExp); } - + + //开始缓存权限信息 + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_AUTH_USER_UID+":"+user.getPkId(), user.getUid()); + //如果是运营方的类型账号 + String pkIds = "-1", codes="-1"; + if(Integer.valueOf(2).equals(user.getType())){ + if(rcodeList.contains(HDConstant.OPERATOR_ROLE_CODE)){ + BaseResponse> result = cloudService.loadBatteryStation(user.getBusinessCode()); + if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){ + List list = result.getData(); + if(CollectionUtils.isNotEmpty(list)){ + pkIds = list.stream().map(BatteryStation::getPkId).map(String::valueOf).filter(com.alibaba.nacos.common.utils.StringUtils::isNotEmpty).collect(Collectors.joining(",")); + codes = list.stream().map(BatteryStation::getCode).filter(com.alibaba.nacos.common.utils.StringUtils::isNotEmpty).collect(Collectors.joining(",")); + } + } + }else{ + //不是运营商管理角色 + // 检查当前角色的站点信息 + BaseResponse> result = resourceService.loadBatteryStation(user.getUid()); + if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){ + List list = result.getData(); + if(CollectionUtils.isNotEmpty(list)){ + pkIds = list.stream().map(AuthUserStation::getStationId).map(String::valueOf).filter(com.alibaba.nacos.common.utils.StringUtils::isNotEmpty).collect(Collectors.joining(",")); + codes = list.stream().map(AuthUserStation::getStationCode).filter(com.alibaba.nacos.common.utils.StringUtils::isNotEmpty).collect(Collectors.joining(",")); + } + } + } + } + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_PROXY_CODE+":"+user.getPkId(), user.getBusinessCode()); + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_STATION_ID+":"+user.getPkId(), pkIds); + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_STATION_CODE+":"+user.getPkId(), codes); + + //客户角色 + String companyId="-1", companyCode="-1", carIds="-1", carPlateNums="-1"; + if(Integer.valueOf(3).equals(user.getType())){ + BaseResponse companyResult = cloudService.loadCompany(user.getBusinessCode()); + if(rcodeList.contains(HDConstant.COMPANY_ROLE_CODE)){ + if(CodeMsg.SUCCESS.getCode().equals(companyResult.getCode())){ + Company company = companyResult.getData(); + if(!ObjectUtils.isEmpty(company)){ + companyId = String.valueOf(company.getPkId()); + companyCode = company.getCcode(); + BaseResponse> vehicleInfoResult = cloudService.loadVehicleInfo(company.getCcode()); + if(CodeMsg.SUCCESS.getCode().equals(vehicleInfoResult.getCode())){ + List list = vehicleInfoResult.getData(); + if(CollectionUtils.isNotEmpty(list)){ + carIds = list.stream().map(VehicleInfo::getPkId).map(String::valueOf).filter(com.alibaba.nacos.common.utils.StringUtils::isNotEmpty).collect(Collectors.joining(",")); + carPlateNums = list.stream().map(VehicleInfo::getPlateNum).filter(com.alibaba.nacos.common.utils.StringUtils::isNotEmpty).collect(Collectors.joining(",")); + } + } + } + } + } + } + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_COMPANY_ID+":"+user.getPkId(), companyId); + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_COMPANY_CODE+":"+user.getPkId(), companyCode); + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_CAR_ID+":"+user.getPkId(), carIds); + redisUtil.set(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_CAR_CODE+":"+user.getPkId(), carPlateNums); + + return uv; } diff --git a/authorization-server/src/main/resources/application.yml b/authorization-server/src/main/resources/application.yml index fb7563e..1104965 100644 --- a/authorization-server/src/main/resources/application.yml +++ b/authorization-server/src/main/resources/application.yml @@ -14,12 +14,15 @@ spring: name: oauth2-server config: import: + - nacos:yt-common.properties?refreshEnabled=true - nacos:${spring.application.name}.yaml?refreshEnabled=true cloud: nacos: serverAddr: 192.168.5.213:8848 username: nacos password: nacos + config: + namespace: ${nacos.namespace:public} discovery: namespace: ${nacos.namespace:public} register-enabled: true diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/Dto/BaseResponse.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/Dto/BaseResponse.java new file mode 100644 index 0000000..e1ccb0b --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/Dto/BaseResponse.java @@ -0,0 +1,41 @@ +package com.evotech.hd.common.core.Dto; + +import com.evotech.hd.common.core.enums.CodeMsg; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import java.io.Serializable; + +/** + * 请求返回对象 + * @ClassName:BaseResponse + * @date: 2025年04月15日 16:37 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Data +public class BaseResponse implements Serializable { + + @Schema(description = "请求处理状态", example = "1") + private Integer status; + @Schema(description = "状态码", example = "1000") + private String code; + @Schema(description = "返回消息") + private String msg; + @Schema(description = "返回数据") + private T data; + + public BaseResponse() { + } + + public BaseResponse success(T o) { + this.status = 1; + this.code = CodeMsg.SUCCESS.getCode(); + this.msg = CodeMsg.SUCCESS.getMsg(); + this.data = o; + return this; + } + + +} diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/constant/HDConstant.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/constant/HDConstant.java index 2380fc6..7dfd1ef 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/constant/HDConstant.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/constant/HDConstant.java @@ -1,13 +1,64 @@ package com.evotech.hd.common.core.constant; public interface HDConstant { - + + public static final class PermissionConstant{ + /** + * 当前登录用户的UID + */ + public static final String PERMISSION_AUTH_USER_UID = "AUTH_USER_UID"; + /** + * 运用商的组织代码 + */ + public static final String PERMISSION_PROXY_CODE = "PROXY_CODE"; + /** + * 站端code + */ + public static final String PERMISSION_STATION_CODE = "STATION_CODE"; + /** + * 站端Id + */ + public static final String PERMISSION_STATION_ID = "STATION_ID"; + /*** + * 公司的组织代码 + */ + public static final String PERMISSION_COMPANY_CODE = "COMPANY_CODE"; + /*** + * 公司的id + */ + public static final String PERMISSION_COMPANY_ID = "COMPANY_ID"; + /*** + * 车辆的车牌 + */ + public static final String PERMISSION_CAR_CODE = "CAR_CODE"; + /*** + * 车辆的Id + */ + public static final String PERMISSION_CAR_ID = "CAR_ID"; + } + + String DEFAULT_MENU_TYPE= "default_menu"; + /** * 系统管理员角色 */ String SYSTEM_MANAGER_ROLE_CODE = "SYSADMIN"; - - /** + /** + * 运营商角色 + */ + String OPERATOR_ROLE_CODE = "PROXY"; + /** + * 公司角色 + */ + String COMPANY_ROLE_CODE = "COMPANY"; + + /** + * 没有权限 + */ + String PERMISSION_NOT_CODE = "notPermission"; + + + /** * 认证请求头key */ String AUTHORIZATION_KEY = "Authorization"; diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDao.java index 448ee93..85769b7 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDao.java @@ -1,16 +1,18 @@ package com.evotech.hd.common.core.dao.cloud; -import java.util.List; - +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.entity.cloud.BatteryStationCdStrategy; +import com.evotech.hd.common.core.permission.DataScope; import org.apache.ibatis.annotations.Param; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.evotech.hd.common.core.entity.cloud.BatteryStationCdStrategy; +import java.util.List; /** * @author zrb * @since 2025-02-10 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationCdStrategyDao extends BaseMapper { List listCdStrategy(@Param("stationCode") String stationCode, @Param("status") Integer status); diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDetailDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDetailDao.java index e157755..046c772 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDetailDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/BatteryStationCdStrategyDetailDao.java @@ -1,14 +1,17 @@ package com.evotech.hd.common.core.dao.cloud; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.BatteryStationCdStrategyDetail; +import com.evotech.hd.common.core.permission.DataScope; + +import java.util.List; /** * @author zrb * @since 2025-02-10 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationCdStrategyDetailDao extends BaseMapper { List getDetailById(Integer id); diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataOrderSwapCollateDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataOrderSwapCollateDao.java index aad3750..86f97d8 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataOrderSwapCollateDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataOrderSwapCollateDao.java @@ -1,12 +1,15 @@ package com.evotech.hd.common.core.dao.cloud; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.HomeDataOrderSwapCollate; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2025-03-07 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface HomeDataOrderSwapCollateDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java index e6db676..e2b03a5 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/HomeDataTradeCollateDao.java @@ -2,12 +2,15 @@ package com.evotech.hd.common.core.dao.cloud; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.HomeDataTradeCollate; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2025-03-08 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface HomeDataTradeCollateDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/OrderSwapBatteryDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/OrderSwapBatteryDao.java index 3c816a8..80ba3a0 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/OrderSwapBatteryDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/cloud/OrderSwapBatteryDao.java @@ -1,12 +1,19 @@ package com.evotech.hd.common.core.dao.cloud; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.OrderSwapBattery; +import com.evotech.hd.common.core.permission.DataScope; +import com.evotech.hd.common.core.permission.DataScopes; /** * @author zrb * @since 2024-11-22 */ +@DataScopes({ + @DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE), + @DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "plate_num", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_CAR_CODE), +}) public interface OrderSwapBatteryDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/ProxyOperaterDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/ProxyOperaterDao.java index 2a18845..52ee7b7 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/ProxyOperaterDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/ProxyOperaterDao.java @@ -1,12 +1,15 @@ package com.evotech.hd.common.core.dao.resource; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.resource.ProxyOperater; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-10-15 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "pocode", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_PROXY_CODE) public interface ProxyOperaterDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthRoleDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthRoleDao.java index cff2009..4107ffb 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthRoleDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthRoleDao.java @@ -1,12 +1,15 @@ package com.evotech.hd.common.core.dao.resource.auth; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.resource.auth.AuthRole; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-09-04 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "creater", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_AUTH_USER_UID) public interface AuthRoleDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserDao.java index 848286f..3026ab7 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserDao.java @@ -1,12 +1,15 @@ package com.evotech.hd.common.core.dao.resource.auth; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.resource.auth.AuthUser; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-09-04 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "creater", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_AUTH_USER_UID) public interface AuthUserDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserStationDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserStationDao.java new file mode 100644 index 0000000..eedc6a9 --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/resource/auth/AuthUserStationDao.java @@ -0,0 +1,15 @@ +package com.evotech.hd.common.core.dao.resource.auth; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.entity.resource.auth.AuthUserStation; + +/** + * @desc: 用户和充电站的关联 + * @ClassName:AuthUserStationDao + * @date: 2025年04月17日 13:49 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +public interface AuthUserStationDao extends BaseMapper { +} diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/wechat/WechatUserDao.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/wechat/WechatUserDao.java index b4883f1..3314c38 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/wechat/WechatUserDao.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/dao/wechat/WechatUserDao.java @@ -1,12 +1,18 @@ package com.evotech.hd.common.core.dao.wechat; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.wechat.WechatUser; +import com.evotech.hd.common.core.permission.DataScope; +import com.evotech.hd.common.core.permission.DataScopes; /** * @author zrb * @since 2024-10-12 */ +@DataScopes({ + @DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "pcode", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_COMPANY_CODE) +}) public interface WechatUserDao extends BaseMapper { } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/BaseEntity.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/BaseEntity.java new file mode 100644 index 0000000..8d9e06d --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/BaseEntity.java @@ -0,0 +1,55 @@ +package com.evotech.hd.common.core.entity; + + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.Hidden; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; +import jakarta.validation.constraints.Min; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * 基础实体类 + * @author lhb + * @date 2023年4月13日 下午4:02:08 + */ +@Data +@Schema(name = "BaseEntity", description = "基础实体类") +public class BaseEntity implements Serializable { + + + private static final long serialVersionUID = 1L; + + @TableId(value = "pk_id", type = IdType.AUTO) + @Hidden + private Integer pkId; + + @Schema(description = "创建人", hidden = true) + @TableField(fill = FieldFill.INSERT) + private String creater; + + @Schema(description = "创建时间", hidden = true) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField(fill = FieldFill.INSERT) + private Date ctime; + + @Schema(description = "更新人", hidden = true) + @TableField(fill = FieldFill.UPDATE) + private String updater; + + @Schema(description = "更新时间", hidden = true) + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @TableField(fill = FieldFill.UPDATE) + private Date uptime; + +} diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStation.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStation.java index 91a833e..7e13f5c 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStation.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStation.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,14 +26,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_battery_station") @Schema(name = "BatteryStation", description = "换电站") -public class BatteryStation implements Serializable { +public class BatteryStation extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Hidden - private Integer pkId; - @Schema(description = "归属运营商ID", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "无关联运营商信息") private String proxyId; @@ -50,7 +47,7 @@ public class BatteryStation implements Serializable { @Schema(description = "站点类型ID") private Integer type; - + @Schema(description = "换电计费方式:1-按充电量,2-按SOC,3-按行驶公里数") private Integer feeType; @@ -74,10 +71,10 @@ public class BatteryStation implements Serializable { @Schema(description = "联系电话") private String phone; - + @Schema(description = "服务车辆类型") private String carTypeCode; - + @Schema(description = "是否适合该车辆") @TableField(exist = false) private Boolean isSuitable; @@ -109,35 +106,18 @@ public class BatteryStation implements Serializable { @Schema(description = "电池数量") private Integer dcQuantity; - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; - - @Schema(description = "电池列表", hidden = true) @TableField(exist = false) private List dcList; - + @Schema(description = "电池仓列表", hidden = true) @TableField(exist = false) private List dccList; - + @Schema(description = "电机列表", hidden = true) @TableField(exist = false) private List djList; - + @Schema(description = "机器人列表", hidden = true) @TableField(exist = false) private List robotList; @@ -151,5 +131,4 @@ public class BatteryStation implements Serializable { @Schema(description = "营业止时间") private String runEndTime; - } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategy.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategy.java index a4c4976..f70b40c 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategy.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategy.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,13 +26,9 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_battery_station_cd_strategy") @Schema(name = "电站-充电策略") -public class BatteryStationCdStrategy implements Serializable { +public class BatteryStationCdStrategy extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; @Schema(description = "策略名称", requiredMode = RequiredMode.REQUIRED) @NotBlank @@ -52,22 +49,6 @@ public class BatteryStationCdStrategy implements Serializable { @Schema(description = "状态:0-未启用,1-启用") private Integer status; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; @Schema(description = "详情", hidden = true) private List detailList; diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategyDetail.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategyDetail.java index e1371d1..80ce45f 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategyDetail.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationCdStrategyDetail.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,14 +24,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_battery_station_cd_strategy_detail") @Schema(name = "电站-充电策略详情") -public class BatteryStationCdStrategyDetail implements Serializable { +public class BatteryStationCdStrategyDetail extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "换电站编码", requiredMode = RequiredMode.REQUIRED) @NotBlank private String stationCode; @@ -53,20 +50,4 @@ public class BatteryStationCdStrategyDetail implements Serializable { @Schema(description = "充电功率") private Double chargingPower; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDc.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDc.java index 862638d..158079f 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDc.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDc.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,14 +26,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_battery_station_dc") @Schema(name = "电站-电池") -public class BatteryStationDc implements Serializable { +public class BatteryStationDc extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "电池型号编码", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "型号编码不能为空") private String typeCode; @@ -79,20 +76,4 @@ public class BatteryStationDc implements Serializable { @Schema(description = "删除标志:1-已删除,0-未删除", hidden = true) private Integer delFlag; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDcc.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDcc.java index 31994b8..9b260e9 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDcc.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDcc.java @@ -1,15 +1,7 @@ package com.evotech.hd.common.core.entity.cloud; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; - -import java.io.Serializable; -import java.util.Date; - -import org.springframework.format.annotation.DateTimeFormat; - +import com.evotech.hd.common.core.entity.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; import jakarta.validation.constraints.NotBlank; @@ -17,6 +9,8 @@ import jakarta.validation.constraints.NotNull; import lombok.Getter; import lombok.Setter; +import java.io.Serializable; + /** * @author zrb * @since 2024-10-17 @@ -25,14 +19,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_battery_station_dcc") @Schema(name = "电站-电池仓") -public class BatteryStationDcc implements Serializable { +public class BatteryStationDcc extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "换电站编码", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "换电站编码不能为空") private String stationCode; @@ -47,20 +37,4 @@ public class BatteryStationDcc implements Serializable { @Schema(description = "状态:1-正常,2-检修, 3-坏", requiredMode = RequiredMode.REQUIRED) @NotNull(message = "状态不能为空") private Integer status; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDj.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDj.java index 7230e81..5831c83 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDj.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationDj.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,14 +26,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_battery_station_dj") @Schema(name = "电站-电机") -public class BatteryStationDj implements Serializable { +public class BatteryStationDj extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "换电站编码", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "换电站编码不能为空") private String stationCode; @@ -61,20 +58,4 @@ public class BatteryStationDj implements Serializable { @Schema(description = "充电枪数量") private Integer gunNum; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandard.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandard.java index 770abb9..2d9968a 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandard.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandard.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import cn.hutool.core.date.DatePattern; @@ -29,13 +30,9 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_battery_station_hd_fee_standard") @Schema(name = "电站-换电费用标准") -public class BatteryStationHdFeeStandard implements Serializable { +public class BatteryStationHdFeeStandard extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; @Schema(description = "费用标准名称") private String name; @@ -81,22 +78,6 @@ public class BatteryStationHdFeeStandard implements Serializable { @Schema(description = "换电时电量剩余一般的服务费") private BigDecimal fewRemainFee; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; @Schema(description = "换电费用标准细节", hidden = true) @TableField(exist = false) diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandardDetail.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandardDetail.java index ef89571..5f10ba3 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandardDetail.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationHdFeeStandardDetail.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import cn.hutool.core.date.DatePattern; @@ -29,13 +30,9 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_battery_station_hd_fee_standard_detail") @Schema(name = "电站-换电费用标准细节") -public class BatteryStationHdFeeStandardDetail implements Serializable { +public class BatteryStationHdFeeStandardDetail extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; @Schema(description = "换电站编码", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "换电站编码不能为空") @@ -66,20 +63,4 @@ public class BatteryStationHdFeeStandardDetail implements Serializable { @Schema(description = "谷段服务费") private BigDecimal timeServiceFee; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationRobot.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationRobot.java index b2f4fc6..0039b28 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationRobot.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStationRobot.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,14 +26,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_battery_station_robot") @Schema(name = "电站-机器人") -public class BatteryStationRobot implements Serializable { +public class BatteryStationRobot extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "换电站编码", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "换电站编码不能为空") private String stationCode; @@ -50,20 +47,4 @@ public class BatteryStationRobot implements Serializable { @Schema(description = "运行模式:1-就地,2-远程") private Integer runMode; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryTrace.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryTrace.java index 5b16888..3dc7346 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryTrace.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryTrace.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,14 +24,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_battery_trace") @Schema(name = "电池追溯表") -public class BatteryTrace implements Serializable { +public class BatteryTrace extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "电池编码", requiredMode = RequiredMode.REQUIRED) @NotBlank private String batCode; @@ -62,20 +59,4 @@ public class BatteryTrace implements Serializable { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date endTime; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/Company.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/Company.java index 81ece0f..a83d876 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/Company.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/Company.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,14 +26,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_company") @Schema(name = "公司客户信息表") -public class Company implements Serializable { +public class Company extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(description = "ID", hidden = true) - private Integer pkId; - @Schema(description = "区划名称", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "区划名称不能为空") private String division; @@ -78,20 +75,4 @@ public class Company implements Serializable { @Schema(description = "账户余额") private BigDecimal accountBalance; - - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataOrderSwapCollate.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataOrderSwapCollate.java index 07f221b..cf0ac95 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataOrderSwapCollate.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataOrderSwapCollate.java @@ -2,6 +2,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -19,13 +20,10 @@ import lombok.Data; @Data @TableName("yt_t_home_data_order_swap_collate") @Schema(name = "首页数据-换电订单中间表") -public class HomeDataOrderSwapCollate implements Serializable { +public class HomeDataOrderSwapCollate extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId("pk_id") - private Integer pkId; - @Schema(description = "站编码") private String stationCode; @@ -40,9 +38,4 @@ public class HomeDataOrderSwapCollate implements Serializable { @Schema(description = "状态:1-进行中,未结算的,2-结算完成,3-取消的") private Integer status; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java index 65c529f..2b8aa5a 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/HomeDataTradeCollate.java @@ -3,16 +3,15 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; 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.Data; +import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; import java.util.Date; -import org.springframework.format.annotation.DateTimeFormat; - -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; - /** * @author zrb * @since 2025-03-08 @@ -20,16 +19,16 @@ import lombok.Data; @Data @TableName("yt_t_home_data_trade_collate") @Schema(name = "首页数据-交易中间表") -public class HomeDataTradeCollate implements Serializable { +public class HomeDataTradeCollate extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "日期") private String day; + @Schema(description = "交易站点") + private String stationCode; + @Schema(description = "交易类型:1-充值,2-订单消费,9-提现") private Integer tradeType; @@ -41,9 +40,4 @@ public class HomeDataTradeCollate implements Serializable { @Schema(description = "交易金额") private Integer tradeAmount; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderRecharge.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderRecharge.java index 1cfa78e..9028c04 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderRecharge.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderRecharge.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,14 +23,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_order_recharge") @Schema(name = "充值订单") -public class OrderRecharge implements Serializable { +public class OrderRecharge extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "订单时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @@ -55,20 +52,4 @@ public class OrderRecharge implements Serializable { @Schema(description = "删除状态:1-已删除,0-未删除", hidden = true) private Integer delFlag; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBattery.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBattery.java index c66f831..a25bb20 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBattery.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBattery.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -25,13 +26,9 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_order_swap_battery") @Schema(name = "换电订单信息表") -public class OrderSwapBattery implements Serializable { +public class OrderSwapBattery extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; @Schema(description = "预约订单ID") private Integer orderPreId; @@ -163,20 +160,4 @@ public class OrderSwapBattery implements Serializable { @Schema(description = "备注信息") private String remark; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryPre.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryPre.java index b21c7e9..bebacf0 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryPre.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryPre.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,13 +24,9 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_order_swap_battery_pre") @Schema(name = "换电预约订单") -public class OrderSwapBatteryPre implements Serializable { +public class OrderSwapBatteryPre extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(description = "ID", hidden = true) - private Integer pkId; @Schema(description = "来源:1-小程序,2-云端,3-站端", requiredMode = RequiredMode.REQUIRED) @NotNull @@ -73,20 +70,4 @@ public class OrderSwapBatteryPre implements Serializable { @Schema(description = "状态:1-预约成功,2-到店使用,3-取消,4-过期", hidden = true) private Integer status; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryStep.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryStep.java index b719216..de507f3 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryStep.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/OrderSwapBatteryStep.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -20,13 +21,9 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_order_swap_battery_step") @Schema(name = "换电步骤记录") -public class OrderSwapBatteryStep implements Serializable { +public class OrderSwapBatteryStep extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(description = "ID", hidden = true) - private Integer pkId; @Schema(description = "订单编码") private String orderNo; @@ -40,20 +37,4 @@ public class OrderSwapBatteryStep implements Serializable { @Schema(description = "步骤时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date stepTime; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/PreOrderRelationSwapOrder.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/PreOrderRelationSwapOrder.java index a047d32..f017922 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/PreOrderRelationSwapOrder.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/PreOrderRelationSwapOrder.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,13 +23,10 @@ import lombok.Setter; @Setter @TableName("hd_cloud_manage.yt_t_pre_order_relation_swap_order") @Schema(name = "扫码支付时关联的换电订单号") -public class PreOrderRelationSwapOrder implements Serializable { +public class PreOrderRelationSwapOrder extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "微信支付方式") private String payApiType = "NATIVE"; @@ -40,9 +38,4 @@ public class PreOrderRelationSwapOrder implements Serializable { @Schema(description = "换电订单号") private String orderNo; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/TradeDetail.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/TradeDetail.java index f0c5e5e..784805c 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/TradeDetail.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/TradeDetail.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -20,14 +21,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_trade_detail") @Schema(name = "交易信息表") -public class TradeDetail implements Serializable { +public class TradeDetail extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "换电站编码") private String stationCode; @@ -99,22 +96,6 @@ public class TradeDetail implements Serializable { @Schema(description = "删除标识,1-已删除,0-未删除", hidden = true) private Integer delFlag; - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; - @Schema(description = "退款结果: 0-未退款, 1-退款中,2-已退款, 3-退款失败") private Integer refundResult; diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleInfo.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleInfo.java index d550271..55ebad9 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleInfo.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleInfo.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -24,14 +25,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_vehicle_info") @Schema(name = "车辆信息表") -public class VehicleInfo implements Serializable { +public class VehicleInfo extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "型号编码", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "型号编码不能为空") private String typeCode; @@ -109,22 +106,6 @@ public class VehicleInfo implements Serializable { @Schema(description = "组织机构代码") private String ccode; - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; - @Schema(description = "运营商Id") private String proxyOperaterId; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleWechatUserRelation.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleWechatUserRelation.java index 1098c63..e7df048 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleWechatUserRelation.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/VehicleWechatUserRelation.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,14 +24,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_vehicle_wechat_user_relation") @Schema(name = "车辆和用户关系") -public class VehicleWechatUserRelation implements Serializable { +public class VehicleWechatUserRelation extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "用户编码", requiredMode = RequiredMode.REQUIRED) private String ucode; @@ -50,20 +47,4 @@ public class VehicleWechatUserRelation implements Serializable { @Schema(description = "关联人手机号", requiredMode = RequiredMode.REQUIRED) private String phone; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccount.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccount.java index 1fa73c3..80b787c 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccount.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccount.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,14 +24,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_wallet_account") @Schema(name = "资金钱包账户表") -public class WalletAccount implements Serializable { +public class WalletAccount extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "户主类型:1-个人,2-企业", requiredMode = RequiredMode.REQUIRED) @NotNull(message = "类型不能为空") private Integer ownerType; @@ -71,20 +68,4 @@ public class WalletAccount implements Serializable { @Schema(description = "引入站点") private String stationCode; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccountDetail.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccountDetail.java index 742693e..9ee12a1 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccountDetail.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/WalletAccountDetail.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.cloud; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,14 +24,10 @@ import lombok.Data; @Data @TableName("hd_cloud_manage.yt_t_wallet_account_detail") @Schema(name = "资金账户明细") -public class WalletAccountDetail implements Serializable { +public class WalletAccountDetail extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; - @Schema(description = "编码", requiredMode = RequiredMode.REQUIRED) @NotBlank private String code; @@ -77,20 +74,4 @@ public class WalletAccountDetail implements Serializable { @Schema(description = "交易后赠送金额,分", requiredMode = RequiredMode.REQUIRED) @NotNull private Integer afterGiftAmount; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/request/PageListSwapOrderPreRequest.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/request/PageListSwapOrderPreRequest.java index 42b5a17..afc88a7 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/request/PageListSwapOrderPreRequest.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/request/PageListSwapOrderPreRequest.java @@ -4,6 +4,7 @@ import com.evotech.hd.common.core.entity.BasePageRequest; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import org.springframework.format.annotation.DateTimeFormat; @Data @@ -19,9 +20,11 @@ public class PageListSwapOrderPreRequest extends BasePageRequest { private String plateNum; @Schema(description = "预约换电日期开始", example = "yyyyMMdd") + @DateTimeFormat(pattern = "yyyyMMdd") private String swapDayBegin; @Schema(description = "预约换电日期结束") + @DateTimeFormat(pattern = "yyyyMMdd") private String swapDayEnd; @Schema(description = "换电站编码") diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/vo/BatteryStationVO.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/vo/BatteryStationVO.java index 2c90184..86d9221 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/vo/BatteryStationVO.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/vo/BatteryStationVO.java @@ -59,4 +59,10 @@ public class BatteryStationVO implements Serializable { @Schema(description = "全天营业:1-是,0-否") private Integer openAllDay; + @Schema(description = "营业起时间") + private String runStartTime; + + @Schema(description = "营业止时间") + private String runEndTime; + } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/BatteryType.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/BatteryType.java index 7834347..8d7c334 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/BatteryType.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/BatteryType.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -24,14 +25,10 @@ import lombok.Setter; @Setter @TableName("hd_resource.yt_d_battery_type") @Schema(name = "电池型号表") -public class BatteryType implements Serializable { +public class BatteryType extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(description = "ID", hidden = true) - private Integer pkId; - @Schema(description = "型号名称", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "型号名称不能为空") private String typeName; @@ -63,20 +60,4 @@ public class BatteryType implements Serializable { @Schema(description = "尺寸,长宽高") private String size; - - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/CarType.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/CarType.java index 7a2ed83..f404e2e 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/CarType.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/CarType.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -24,14 +25,10 @@ import lombok.Setter; @Setter @TableName("hd_resource.yt_d_car_type") @Schema(name = "车辆类型") -public class CarType implements Serializable { +public class CarType extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(description = "ID", hidden = true) - private Integer pkId; - @Schema(description = "类型名称", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "类型名称不能为空") private String typeName; @@ -45,20 +42,4 @@ public class CarType implements Serializable { @Schema(description = "公告号") private String announceNum; - - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogLogin.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogLogin.java index a1cf9d0..8abcbcd 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogLogin.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogLogin.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; 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.Data; @@ -21,13 +22,10 @@ import org.springframework.format.annotation.DateTimeFormat; @EqualsAndHashCode(callSuper = false) @TableName("yt_log_login") @Schema(name = "登录日志", description = "登录日志") -public class LogLogin implements Serializable { +public class LogLogin extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "登录人ID") private String uid; @@ -62,12 +60,4 @@ public class LogLogin implements Serializable { @Schema(description = "平台") private String platForm; - @Schema(description = "创建时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "创建者") - private String creater; - } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogUpload.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogUpload.java index 614ac2f..4fbccb6 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogUpload.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/LogUpload.java @@ -1,7 +1,10 @@ package com.evotech.hd.common.core.entity.resource; +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -55,8 +58,10 @@ public class LogUpload implements Serializable { @Schema(description = "创建时间") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @TableField(fill = FieldFill.INSERT) private Date ctime; @Schema(description = "创建者") + @TableField(fill = FieldFill.INSERT) private String creater; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/ProxyOperater.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/ProxyOperater.java index 297af63..e8c99bd 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/ProxyOperater.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/ProxyOperater.java @@ -1,13 +1,13 @@ package com.evotech.hd.common.core.entity.resource; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; import java.util.Date; +import io.swagger.v3.oas.annotations.Hidden; import org.springframework.format.annotation.DateTimeFormat; import io.swagger.v3.oas.annotations.media.Schema; @@ -24,14 +24,10 @@ import lombok.Setter; @Setter @TableName("hd_resource.yt_t_proxy_operater") @Schema(name = "代理运营商信息") -public class ProxyOperater implements Serializable { +public class ProxyOperater extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "ID", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "区划名称", requiredMode = RequiredMode.REQUIRED) @NotBlank(message = "区划名称不能为空") private String division; @@ -77,20 +73,4 @@ public class ProxyOperater implements Serializable { @Schema(description = "换电站数量") private Integer stationCount; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/UploadFile.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/UploadFile.java index 0ce55f3..97f6045 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/UploadFile.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/UploadFile.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,13 +23,10 @@ import lombok.Setter; @Setter @TableName("hd_resource.hd_resource.yt_t_upload_file") @Schema(name = "上传文件表") -public class UploadFile implements Serializable { +public class UploadFile extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "公司编码") private String ccode; @@ -61,12 +59,4 @@ public class UploadFile implements Serializable { @Schema(description = "地址") private String fileUrl; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "创建者") - private String creater; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatAgreement.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatAgreement.java index 0cb6e61..0ca66fb 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatAgreement.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatAgreement.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,13 +24,9 @@ import lombok.Data; @TableName("hd_resource.yt_setting_wechat_agreement") @Schema(name = "微信协议") @Data -public class WechatAgreement implements Serializable { +public class WechatAgreement extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; private String appid; @@ -51,20 +48,4 @@ public class WechatAgreement implements Serializable { @Schema(description = "状态:1-可用,0-不可用") private Integer status; - - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatSwiper.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatSwiper.java index 98840e8..cfe6e84 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatSwiper.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/WechatSwiper.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -20,13 +21,9 @@ import lombok.Data; @Data @TableName("hd_resource.yt_setting_wechat_swiper") @Schema(name = "微信轮播图设置") -public class WechatSwiper implements Serializable { +public class WechatSwiper extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(hidden = true) - private Integer pkId; private String appid; @@ -50,20 +47,4 @@ public class WechatSwiper implements Serializable { @Schema(description = "状态:1-可用,0-不可用") private Integer status; - - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthMenu.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthMenu.java index 2ab143d..af9e9be 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthMenu.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthMenu.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -24,14 +25,10 @@ import lombok.Setter; @Setter @TableName("yt_auth_menu") @Schema(name = "菜单") -public class AuthMenu implements Serializable { +public class AuthMenu extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "主键", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "菜单名称") private String name; @@ -58,22 +55,6 @@ public class AuthMenu implements Serializable { @Schema(description = "父级菜单id") private Integer parentId; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; @Schema(description = "子目录", hidden = true) @TableField(exist = false) diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthPermission.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthPermission.java index 5eb2c52..5aec92d 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthPermission.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthPermission.java @@ -1,19 +1,13 @@ package com.evotech.hd.common.core.entity.resource.auth; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; - -import java.io.Serializable; -import java.util.Date; - -import org.springframework.format.annotation.DateTimeFormat; - +import com.evotech.hd.common.core.entity.BaseEntity; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Getter; import lombok.Setter; +import java.io.Serializable; + /** * @author zrb * @since 2024-09-04 @@ -22,14 +16,10 @@ import lombok.Setter; @Setter @TableName("yt_auth_permission") @Schema(name = "资源权限") -public class AuthPermission implements Serializable { +public class AuthPermission extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "ID", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "资源编码:页面:操作") private String code; @@ -51,19 +41,19 @@ public class AuthPermission implements Serializable { @Schema(description = "接口描述") private String mark; - @Schema(description = "创建人id") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; +// @Schema(description = "创建人id") +// private String creater; +// +// @Schema(description = "创建时间", hidden = true) +// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") +// private Date ctime; +// +// @Schema(description = "更新人", hidden = true) +// private String updater; +// +// @Schema(description = "更新时间") +// @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") +// @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") +// private Date uptime; } 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 f967976..0b47fb3 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,18 +1,15 @@ package com.evotech.hd.common.core.entity.resource.auth; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; - -import java.io.Serializable; -import java.util.Date; - -import org.springframework.format.annotation.DateTimeFormat; - 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 @@ -22,14 +19,10 @@ import lombok.Setter; @Setter @TableName("yt_auth_role") @Schema(name = "角色") -public class AuthRole implements Serializable { +public class AuthRole extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "id", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "角色名称") private String name; @@ -47,20 +40,4 @@ public class AuthRole implements Serializable { @Schema(description = "是否内置角色,内置角色不允许修改") private Integer readonly; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRoleResource.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRoleResource.java index 2e3a67f..4e11b7b 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRoleResource.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthRoleResource.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource.auth; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,14 +23,10 @@ import lombok.Setter; @Setter @TableName("yt_auth_role_resource") @Schema(name = "角色的权限") -public class AuthRoleResource implements Serializable { +public class AuthRoleResource extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "主键") - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "角色编码") private String rcode; @@ -38,12 +35,4 @@ public class AuthRoleResource implements Serializable { @Schema(description = "权限id") private Integer resourceId; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "创建人", hidden = true) - private String creater; } 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 c7858df..dbd0e34 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 @@ -1,21 +1,17 @@ package com.evotech.hd.common.core.entity.resource.auth; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.*; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; - -import java.io.Serializable; -import java.util.Date; - -import org.springframework.format.annotation.DateTimeFormat; - import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema.RequiredMode; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; /** * @author zrb @@ -24,13 +20,13 @@ import lombok.Data; @Data @TableName("yt_auth_user") @Schema(name = "账号") -public class AuthUser implements Serializable { +public class AuthUser extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "主键", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; +// @Schema(description = "主键", hidden = true) +// @TableId(value = "pk_id", type = IdType.AUTO) +// private Integer pkId; @Schema(description = "用户ID") private String uid; @@ -42,6 +38,9 @@ public class AuthUser implements Serializable { @Schema(description = "账号类型:1-开发者,2-运营方,3-客户", requiredMode = RequiredMode.REQUIRED) private Integer type; + @Schema(description = "业务code, 即公司类型,为公司统一社会信息代码, 运营商类型为运营商统一社会信用代码", hidden = true) + private String businessCode; + @Schema(description = "关联方代码") private String typeRelateCode; @@ -92,23 +91,28 @@ public class AuthUser implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date lastLoginTime; - @Schema(description = "创建人", hidden = true) + /*@Schema(description = "创建人", hidden = true) + @TableField(fill = FieldFill.INSERT) private String creater; @Schema(description = "创建时间", hidden = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") + @TableField(fill = FieldFill.INSERT) private Date ctime; @Schema(description = "更新人", hidden = true) + @TableField(fill = FieldFill.UPDATE) private String updater; @Schema(description = "更新时间", hidden = true) @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; + @TableField(fill = FieldFill.UPDATE) + private Date uptime;*/ @Schema(description = "角色编码", hidden = true) @TableField(exist = false) private String rcodes; + } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserRole.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserRole.java index 58ca0bc..120f1ce 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserRole.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserRole.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource.auth; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,13 +24,10 @@ import lombok.Setter; @Setter @TableName("yt_auth_user_role") @Schema(name = "账号角色关系") -public class AuthUserRole implements Serializable { +public class AuthUserRole extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "用户ID") @NotBlank private String uid; @@ -37,17 +35,4 @@ public class AuthUserRole implements Serializable { @Schema(description = "角色编码") @NotBlank private String rcode; - - @Schema(description = "创建人") - private String creater; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "修改时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserStation.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserStation.java new file mode 100644 index 0000000..85442cd --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/auth/AuthUserStation.java @@ -0,0 +1,43 @@ +package com.evotech.hd.common.core.entity.resource.auth; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import lombok.Getter; +import lombok.Setter; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; + +/** + * 账户和站的关系, 一般是运营端使用 + * @ClassName:AuthUserStation + * @date: 2025年04月17日 16:14 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Getter +@Setter +@TableName("yt_auth_user_station") +@Schema(name = "账号角色关系") +public class AuthUserStation implements Serializable { + + private static final long serialVersionUID = 1L; + + @Schema(description = "用户ID") + @NotBlank + private String uid; + + @Schema(description = "充电站编码") + @NotBlank + private String stationCode; + + @Schema(description = "充电站Id") + @NotBlank + private Integer stationId; +} diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/AdmdvsInfo.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/AdmdvsInfo.java index 9c30865..1b13c86 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/AdmdvsInfo.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/AdmdvsInfo.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource.dict; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -23,13 +24,10 @@ import lombok.Setter; @Setter @TableName("yt_d_admdvs_info") @Schema(name = "行政区划信息表") -public class AdmdvsInfo implements Serializable { +public class AdmdvsInfo extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId("pk_id") - private Integer pkId; - @Schema(description = "区划代码") private String admdvsNo; @@ -41,16 +39,6 @@ public class AdmdvsInfo implements Serializable { @Schema(description = "等级,1-省;2-市;3-区县") private Integer level; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; @Schema(description = "子区划", hidden = true) @TableField(exist = false) diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/Dict.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/Dict.java index 6f2d22b..a970c5b 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/Dict.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/Dict.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource.dict; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,14 +23,10 @@ import lombok.Setter; @Setter @TableName("hd_resource.yt_d_dict") @Schema(name = "字典") -public class Dict implements Serializable { +public class Dict extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "主键", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "字典名称") private String dictName; @@ -46,14 +43,4 @@ public class Dict implements Serializable { private Integer typeId; private String typeCode; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/DictType.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/DictType.java index b540a84..e258e69 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/DictType.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/resource/dict/DictType.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.resource.dict; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,14 +23,10 @@ import lombok.Setter; @Setter @TableName("hd_resource.yt_d_dict_type") @Schema(name = "字典类型") -public class DictType implements Serializable { +public class DictType extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @Schema(description = "主键", hidden = true) - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "类型名称") private String typeName; @@ -38,14 +35,4 @@ public class DictType implements Serializable { @Schema(description = "描述") private String mark; - - @Schema(description = "创建时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新时间") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatPayPreOrder.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatPayPreOrder.java index 6b4b5b7..5117c44 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatPayPreOrder.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatPayPreOrder.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.wechat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -20,13 +21,10 @@ import lombok.Data; @Data @TableName("yt_t_wechat_pay_pre_order") @Schema(name = "WechatPayPreOrder", description = "微信预支付订单") -public class WechatPayPreOrder implements Serializable { +public class WechatPayPreOrder extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - private Integer pkId; - @Schema(description = "用户编码") private String wuid; @@ -85,20 +83,4 @@ public class WechatPayPreOrder implements Serializable { @Schema(description = "支付串") private String prePayResponse; - - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatUser.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatUser.java index b120b58..b51d212 100644 --- a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatUser.java +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/wechat/WechatUser.java @@ -3,6 +3,7 @@ package com.evotech.hd.common.core.entity.wechat; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.evotech.hd.common.core.entity.BaseEntity; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serializable; @@ -22,14 +23,10 @@ import lombok.Setter; @Setter @TableName("hd_wechat.yt_t_wechat_user") @Schema(name = "小程序用户信息") -public class WechatUser implements Serializable { +public class WechatUser extends BaseEntity implements Serializable { private static final long serialVersionUID = 1L; - @TableId(value = "pk_id", type = IdType.AUTO) - @Schema(description = "id", hidden = true) - private Integer pkId; - @Schema(description = "微信用户id") private String wuid; @@ -69,22 +66,6 @@ public class WechatUser implements Serializable { @Schema(description = "公众号openid") private String gzhOpenid; - @Schema(description = "创建人", hidden = true) - private String creater; - - @Schema(description = "创建时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date ctime; - - @Schema(description = "更新人", hidden = true) - private String updater; - - @Schema(description = "更新时间", hidden = true) - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8") - private Date uptime; - @Schema(description = "审核状态:1-待审核,2-审核成功,3-审核失败") private Integer state; } diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/DataScope.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/DataScope.java new file mode 100644 index 0000000..06f5f4c --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/DataScope.java @@ -0,0 +1,40 @@ +package com.evotech.hd.common.core.permission; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target({ElementType.METHOD,ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface DataScope { + + /*** + * 是否生效 + */ + boolean enabled() default true; + + /*** + * 表别名 + */ + String tableAlias() default ""; + + /*** + * 权限对象 + * 具体参考 + * HDConstant.OPERATOR_ROLE_CODE + * HDConstant.COMPANY_ROLE_CODE + */ + String permissionObject(); + + /*** + * 权限限制的表字段 + */ + String permissionScopeName(); + + /*** + * 权限限制的redis中的key + * HDConstant.PermissionConstant中 的字段信息 + */ + String permissionScopeRedisKey(); +} diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/DataScopes.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/DataScopes.java new file mode 100644 index 0000000..419a758 --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/DataScopes.java @@ -0,0 +1,20 @@ +package com.evotech.hd.common.core.permission; + +import org.springframework.stereotype.Component; + +import java.lang.annotation.*; + +/** + * 主要用来处理一个方法中, 有多个数据表的文图 + * @DataScopes({ + * @DataScope(tableAlias = 123,companyScopeName = "",operatorScopeName=""), + * @DataScope(tableAlias = 456,companyScopeName = "",operatorScopeName=""),}) + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +@Documented +@Component +public @interface DataScopes { + + DataScope[] value(); +} diff --git a/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/PermissionScopeEnum.java b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/PermissionScopeEnum.java new file mode 100644 index 0000000..6875ca2 --- /dev/null +++ b/base-commons/common-core/src/main/java/com/evotech/hd/common/core/permission/PermissionScopeEnum.java @@ -0,0 +1,24 @@ +package com.evotech.hd.common.core.permission; + +/** + * @desc: 枚举 + * @ClassName:PermissionScopeEnum + * @date: 2025年04月15日 8:30 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +public enum PermissionScopeEnum { + + DEFAULT_NULL_TYPE(""), + INTEGER_TYPE("Integer"), + STRING_TYPE("String"), + + COMPANY_LIMIT_CAR_TYPE("car"), + COMPANY_LIMIT_COMPANY_TYPE("company"), + ; + + String type; + + PermissionScopeEnum(String type) {} +} diff --git a/base-commons/common-permission/pom.xml b/base-commons/common-permission/pom.xml new file mode 100644 index 0000000..dc4df2e --- /dev/null +++ b/base-commons/common-permission/pom.xml @@ -0,0 +1,76 @@ + + + 4.0.0 + + com.evotech.hd + base-commons + 1.0.0-SNAPSHOT + + + common-permission + + + 17 + 17 + UTF-8 + + + + com.evotech.hd + common-redis + 1.0.0-SNAPSHOT + + + + + org.springframework + spring-tx + + + org.testng + testng + RELEASE + compile + + + com.baomidou + mybatis-plus-extension + 3.5.7 + compile + + + org.springframework + spring-context + + + com.evotech.hd + common-core + 1.0.0-SNAPSHOT + compile + + + org.projectlombok + lombok + provided + + + jakarta.servlet + jakarta.servlet-api + + + cn.hutool + hutool-jwt + + + org.springframework.security + spring-security-oauth2-jose + + + com.alibaba.nacos + nacos-client + + + + \ No newline at end of file diff --git a/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/config/permission/PermissionMybatisPlusConfig.java b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/config/permission/PermissionMybatisPlusConfig.java new file mode 100644 index 0000000..a454ec8 --- /dev/null +++ b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/config/permission/PermissionMybatisPlusConfig.java @@ -0,0 +1,31 @@ +package com.evotech.hd.common.permission.config.permission; + +import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; +import com.baomidou.mybatisplus.extension.plugins.inner.DataPermissionInterceptor; +import com.evotech.hd.common.permission.handler.DataScopeHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @desc: + * @ClassName:MybatisPlusConfig + * @date: 2025年04月14日 16:14 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@EnableTransactionManagement(proxyTargetClass = true) +@Configuration +public class PermissionMybatisPlusConfig { + + @Bean("permissionMybatisPlusInterceptor") + public MybatisPlusInterceptor mybatisPlusInterceptor() { + + MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); + // 数据权限插件 + interceptor.addInnerInterceptor(new DataPermissionInterceptor(new DataScopeHandler())); + return interceptor; + } + +} diff --git a/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/handler/DataScopeHandler.java b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/handler/DataScopeHandler.java new file mode 100644 index 0000000..8e174e3 --- /dev/null +++ b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/handler/DataScopeHandler.java @@ -0,0 +1,154 @@ +package com.evotech.hd.common.permission.handler; + +import cn.hutool.core.bean.BeanUtil; +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.alibaba.nacos.common.utils.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; +import com.baomidou.mybatisplus.extension.plugins.handler.MultiDataPermissionHandler; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.entity.resource.auth.AuthUser; +import com.evotech.hd.common.core.permission.DataScope; +import com.evotech.hd.common.core.permission.DataScopes; +import com.evotech.hd.common.permission.util.RedisPermissionUtils; +import net.sf.jsqlparser.expression.Expression; +import net.sf.jsqlparser.expression.Parenthesis; +import net.sf.jsqlparser.expression.StringValue; +import net.sf.jsqlparser.expression.operators.relational.ExpressionList; +import net.sf.jsqlparser.expression.operators.relational.InExpression; +import net.sf.jsqlparser.schema.Column; +import net.sf.jsqlparser.schema.Table; + +import java.util.Arrays; +import java.util.stream.Collectors; + +/** + * @desc: + * @ClassName:DataScopeHandler + * @date: 2025年04月14日 14:54 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ + +public class DataScopeHandler implements MultiDataPermissionHandler { + + /** + * 获取数据权限 SQL 片段。 + *

旧的 {@link MultiDataPermissionHandler#getSqlSegment(Expression, String)} 方法第一个参数包含所有的 where 条件信息,如果 return 了 null 会覆盖原有的 where 数据,

+ *

新版的 {@link MultiDataPermissionHandler#getSqlSegment(Table, Expression, String)} 方法不能覆盖原有的 where 数据,如果 return 了 null 则表示不追加任何 where 条件

+ * + * @param table 所执行的数据库表信息,可以通过此参数获取表名和表别名 + * @param where 原有的 where 条件信息 + * @param mappedStatementId Mybatis MappedStatement Id 根据该参数可以判断具体执行方法 + * @return JSqlParser 条件表达式,返回的条件表达式会拼接在原有的表达式后面(不会覆盖原有的表达式) + */ + + @Override + public Expression getSqlSegment(Table table, Expression where, String mappedStatementId) { + try { + if(table != null && CollectionUtils.isNotEmpty(table.getNameParts()) && !"1".equals(RedisPermissionUtils.getRoleType()) && BeanUtil.isNotEmpty(RedisPermissionUtils.getUser())){ + String roleCode = getUserRoleType(); + Class mapperClazz = Class.forName(mappedStatementId.substring(0, mappedStatementId.lastIndexOf("."))); + //优先检查是不是单角色权限 + DataScope dataScope = mapperClazz.getAnnotation(DataScope.class); + if (ObjectUtils.isNotEmpty(dataScope) && dataScope.enabled()) { + if(dataScope.permissionObject().equals(roleCode)){ + return buildDataScopeByAnnotation(dataScope); + }else + //如果说等于没有权限 + if(HDConstant.PERMISSION_NOT_CODE.equals(roleCode)){ + return buildNotDataScopeByAnnotation(dataScope); + } + } + //如果不是, 检查多角色权限 + DataScopes dataScopesList = mapperClazz.getAnnotation(DataScopes.class); + if (ObjectUtils.isNotEmpty(dataScopesList)) { + for (DataScope dataScopes :dataScopesList.value()){ + if(dataScopes.enabled()){ + if(dataScopes.permissionObject().equals(roleCode)){ + return buildDataScopeByAnnotation(dataScopes); + }else + //如果说等于没有权限 + if(HDConstant.PERMISSION_NOT_CODE.equals(roleCode)){ + return buildNotDataScopeByAnnotation(dataScope); + } + } + } + } + } + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + return null; + } + + + private String getUserRoleType(){ + AuthUser user = RedisPermissionUtils.getUser(); + if(BeanUtil.isNotEmpty(user) && user .getType() != null){ + switch (user.getType()){ + case 1: + return ""; + case 2: + return HDConstant.OPERATOR_ROLE_CODE; + case 3: + return HDConstant.COMPANY_ROLE_CODE; + default: + return HDConstant.PERMISSION_NOT_CODE; + } + } + + return HDConstant.PERMISSION_NOT_CODE; + } + + /** + * DataScope注解方式,拼装数据权限 + * + * @param dataScope + * @return + */ + private Expression buildDataScopeByAnnotation(DataScope dataScope) { + Expression expression = buildDataScopeExpression(dataScope, RedisPermissionUtils.getPermissionValue(dataScope.permissionScopeRedisKey())); + return expression == null ? null : new Parenthesis(expression); + } + + /** + * DataScope注解方式,拼装数据权限 + * + * @param dataScope + * @return + */ + private Expression buildNotDataScopeByAnnotation(DataScope dataScope) { + Expression expression = buildDataScopeExpression(dataScope, "-1"); + return expression == null ? null : new Parenthesis(expression); + } + + + private Expression buildDataScopeExpression(DataScope dataScope, String value) { + if(StringUtils.isNotEmpty(value) && !"null".equals(value)){ + ExpressionList expressionList = new ExpressionList(Arrays.asList(value.split(",")).stream().map(StringValue::new).collect(Collectors.toList())); + // 设置左边的字段表达式,右边设置值。 + InExpression operatorInExpression = new InExpression(); + operatorInExpression.setLeftExpression(buildColumn(dataScope.tableAlias(), dataScope.permissionScopeName())); + operatorInExpression.setRightExpression(new Parenthesis(expressionList)); + return operatorInExpression; + + } + return null; + } + + /** + * 构建Column + * + * @param tableAlias 表别名 + * @param columnName 字段名称 + * @return 带表别名字段 + */ + private static Column buildColumn(String tableAlias, String columnName) { + if (StringUtils.isNotEmpty(tableAlias)) { + columnName = tableAlias + "." + columnName; + } + return new Column(columnName); + } + +} diff --git a/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/handler/InsertAndUpdateMybatisHandler.java b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/handler/InsertAndUpdateMybatisHandler.java new file mode 100644 index 0000000..6d02222 --- /dev/null +++ b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/handler/InsertAndUpdateMybatisHandler.java @@ -0,0 +1,67 @@ +package com.evotech.hd.common.permission.handler; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.evotech.hd.common.core.entity.resource.auth.AuthUser; +import com.evotech.hd.common.permission.util.RedisPermissionUtils; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.reflection.MetaObject; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * @desc: 修改和新增自定义注解 + * @ClassName:InsertAndUpdateMybatisHandler + * @date: 2025年04月17日 9:03 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Component +@Slf4j +public class InsertAndUpdateMybatisHandler implements MetaObjectHandler { + @Override + public void insertFill(MetaObject metaObject) { + try { + AuthUser user = RedisPermissionUtils.getUser(); + if(BeanUtil.isEmpty(user)){ + log.info("当前操作位登录, 无需执行"); + return; + } + if(BeanUtil.isNotEmpty(metaObject)){ + mySetFieldValByName("creater",user.getUid(),metaObject); + mySetFieldValByName("ctime",new Date(),metaObject); + } + } catch (Exception e) { + log.error("自动填充拦截器异常=====insert,对象信息:{}, 异常信息:{}", JSONUtil.toJsonStr(metaObject), e.getMessage()); + } + + } + + private void mySetFieldValByName(String filedName, Object fieldVal, MetaObject metaObject) { + Object createType = getFieldValByName(filedName,metaObject); + if(BeanUtil.isEmpty(createType)){ + setFieldValByName(filedName,fieldVal,metaObject); + } + } + + + @Override + public void updateFill(MetaObject metaObject) { + try { + AuthUser user = RedisPermissionUtils.getUser(); + if(BeanUtil.isEmpty(user)){ + log.info("当前操作未登录, 无需执行"); + return; + } + if(BeanUtil.isNotEmpty(metaObject)){ + mySetFieldValByName("updater",user.getUid(),metaObject); + mySetFieldValByName("uptime",new Date(),metaObject); + } + } catch (Exception e) { + log.error("自动填充拦截器异常=====update,对象信息:{}, 异常信息:{}", JSONUtil.toJsonStr(metaObject),e.getMessage()); + } + } +} diff --git a/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/RedisPermissionUtils.java b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/RedisPermissionUtils.java new file mode 100644 index 0000000..55c4651 --- /dev/null +++ b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/RedisPermissionUtils.java @@ -0,0 +1,177 @@ +package com.evotech.hd.common.permission.util; + +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.entity.resource.auth.AuthUser; +import com.evotech.hd.common.redis.utils.RedisUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; + +/** + * @desc: + * @ClassName:RedisCloudUtils + * @date: 2025年04月14日 15:24 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ + +@Slf4j +public class RedisPermissionUtils { + + public static AuthUser getUser(){ + AuthUser user = (AuthUser)getRedisObjectValue("user"); + return (ObjectUtils.isEmpty(user) ? null : user); + } + + public static String getRoleCode(){ + String roles = getRedisStringValue("rcodes"); + return StringUtils.isEmpty(roles) ? "" : roles; + } + + public static String getPermissionValue(String key){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + key+":"+getUserPkId()); + } + + public static String getStationCode(){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_STATION_CODE+":"+getUserPkId()); + } + public static String getStationId(){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_STATION_ID+":"+getUserPkId()); + } + + public static String getCompanyCode(){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_COMPANY_CODE+":"+getUserPkId()); + } + public static String getCompanyId(){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_COMPANY_ID+":"+getUserPkId()); + } + + public static String getCarCode(){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_CAR_CODE+":"+getUserPkId()); + } + public static String getCarId(){ + return getStringValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + HDConstant.PermissionConstant.PERMISSION_CAR_ID+":"+getUserPkId()); + } + + private static Integer getUserPkId(){ + AuthUser user = getUser(); + if(ObjectUtils.isEmpty(user) || user.getPkId() == null){ + return null; + } + return user.getPkId(); + } + + +// public static Integer getCompanyScopeId(){ +// return getUser().getPkId(); +// } + + + /** + * 获取当前登录的角色信息, 0 站端, 1 管理员, 2 运营商, 3 公司, + * @author: andy.shi + * @contact: 17330188597 + * @date: 2025/4/14/周一 14:21 + * @return: * @return: java.lang.String + */ + public static String getRoleType(){ + String roles = getRoleCode(); + if(isAdmin(roles)){ + return "1"; + } + if(isOperator(roles)){ + return "2"; + } + if(isCompany(roles)){ + return "3"; + } + return "0"; + } + + //如果不等于-1 则证明为管理员 + public static Boolean isAdmin(String roles){ + return isAuthority(roles, HDConstant.SYSTEM_MANAGER_ROLE_CODE); + } + + public static Boolean isOperator(String roles){ + return isAuthority(roles,HDConstant.OPERATOR_ROLE_CODE); + } + + public static Boolean isCompany(String roles){ + return isAuthority(roles,HDConstant.COMPANY_ROLE_CODE); + } + + private static Boolean isAuthority(String checkParamRoles, String paramRoleCode){ + if(!StringUtils.isEmpty(checkParamRoles)){ + return checkParamRoles.lastIndexOf(paramRoleCode) != -1; + } + return getRoleCode().lastIndexOf(paramRoleCode) != -1; + } + + + /*** + * 根据token拼接key, 获取String结果 + * @param key + * @return + */ + private static String getRedisStringValue(String key) { + return String.valueOf(getRedisObjectValue(key)); + } + + /*** + * 根据token拼接key, 获取Object结果 + * @param key + * @return + */ + private static Object getRedisObjectValue(String key) { + String token = SpringUtil.getToken(); + if(StringUtils.isEmpty(token)){ + log.error("SpringUtil.getRedisValue========== token is null"); + return null; + } + String jti = null; + try { + jti = TokenUtil.getJti(token); + if(StringUtils.isEmpty(jti)){ + log.error("SpringUtil.getRedisValue========== jtj is null"); + return null; + } + } catch (Exception e) { + log.error("SpringUtil.gegetRedisValuetUser========== jtj is null"); + return null; + } + return getValue(HDConstant.LOGIN_CACHE_KEY_PREFIX + jti + ":"+key); + } + + + /*** + * 根据key获取redis缓存 + * @param key + * @return + */ + private static String getStringValue(String key){ + Object obj = getValue(key); + return ObjectUtils.isEmpty(obj) ? null : String.valueOf(obj); + } + + /*** + * 根据key获取redis缓存 + * @param key + * @return + */ + private static Object getValue(String key){ + RedisUtil redisUtil = SpringUtil.getBean(RedisUtil.class); + if(ObjectUtils.isEmpty(redisUtil)){ + log.error("SpringUtil.getRedisValue========== redisUtil is null"); + } + Object obj = redisUtil.get(key); + if(ObjectUtils.isEmpty(obj)){ + log.error("SpringUtil.getRedisValue=={}========== obj is null",key); + return null; + } + log.info("SpringUtil.getRedisValue=={}===={}",key,String.valueOf(obj)); + return obj; + } + +} diff --git a/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/SpringUtil.java b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/SpringUtil.java new file mode 100644 index 0000000..8a53e3b --- /dev/null +++ b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/SpringUtil.java @@ -0,0 +1,96 @@ +package com.evotech.hd.common.permission.util; + +import com.evotech.hd.common.core.constant.HDConstant; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +/** + * @desc: + * @ClassName:SpringUtil + * @date: 2025年04月08日 12:33 + * @author: andy.shi + * @contact: 17330188597 + * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 + */ +@Slf4j +@Component +public class SpringUtil implements ApplicationContextAware { + + private static ApplicationContext applicationContext = null; + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + setGlobalApplicationContext(applicationContext); + } + + private synchronized static void setGlobalApplicationContext(ApplicationContext applicationContext) { + if(SpringUtil.applicationContext == null){ + SpringUtil.applicationContext = applicationContext; + } + } + + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + public static String getToken() { + String authorization = getRequest().getHeader(HDConstant.AUTHORIZATION_KEY); + if (StringUtils.hasLength(authorization) && authorization.contains(HDConstant.JWT_PREFIX)) { + return authorization.substring(HDConstant.JWT_PREFIX.length()); + } + return null; + } + + public static Object getBean(String name) { + return getApplicationContext().getBean(name); + } + + public static T getBean(Class clazz) { + T b = null; + try { + b=getApplicationContext().getBean(clazz); + } catch (BeansException e) { + log.info(e.getMessage()); + } + return b; + } + + public static HttpServletRequest getRequest() { + RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes(); + if(null == requestAttributes) { + log.warn("The 'RequestAttributes' object is null, so can`t get 'HttpServletRequest' object!"); + + return null; + } + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes)requestAttributes; + HttpServletRequest request = servletRequestAttributes.getRequest(); + + return request; + } + + public static HttpServletResponse getResponse() { + RequestAttributes requestAttributes = RequestContextHolder.currentRequestAttributes(); + if(requestAttributes == null) { + log.warn("The 'RequestAttributes' object is null, so can`t get 'HttpServletResponse' object!"); + + return null; + } + + ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) requestAttributes; + HttpServletResponse resp = servletRequestAttributes.getResponse(); + return resp; + } + + + + + +} diff --git a/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/TokenUtil.java b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/TokenUtil.java new file mode 100644 index 0000000..a5fc59f --- /dev/null +++ b/base-commons/common-permission/src/main/java/com/evotech/hd/common/permission/util/TokenUtil.java @@ -0,0 +1,56 @@ +package com.evotech.hd.common.permission.util; + +import cn.hutool.core.date.DateUtil; +import cn.hutool.jwt.JWT; +import cn.hutool.jwt.JWTUtil; +import org.springframework.security.oauth2.jwt.JwtClaimNames; + +import java.util.Date; + +/** + * token解析工具类 + */ +public class TokenUtil { + + + public static JWT parseToJwt(String token) { + JWT parseToken = JWTUtil.parseToken(token); + return parseToken; + } + + + /** + * 从token中获取userId + */ + public static String getUserId(String token) { + String uid = parseToJwt(token).getPayloads().getStr("uid"); + return uid; + } + + /** + * 从token中获取rcodes + */ + public static String getRcodes(String token) { + String uid = parseToJwt(token).getPayloads().getStr("rcodes"); + return uid; + } + + + /** + * 从token中获取jti + */ + public static String getJti(String token) { + String jti = parseToJwt(token).getPayloads().getStr(JwtClaimNames.JTI).replaceAll("-", ""); + return jti; + } + + + /** + * 从token中获取过期时间 + */ + public static Date getExp(String token) { + String exp = parseToJwt(token).getPayloads().getStr(JwtClaimNames.EXP).toString(); + return DateUtil.date(Long.valueOf(exp) * 1000); + } + +} diff --git a/base-commons/pom.xml b/base-commons/pom.xml index 2f51d96..7da7e1d 100644 --- a/base-commons/pom.xml +++ b/base-commons/pom.xml @@ -14,5 +14,6 @@ common-web common-mybatis common-redis + common-permission \ No newline at end of file diff --git a/cloud-manage-server/pom.xml b/cloud-manage-server/pom.xml index d8cae23..5a38262 100644 --- a/cloud-manage-server/pom.xml +++ b/cloud-manage-server/pom.xml @@ -26,13 +26,11 @@ common-mybatis 1.0.0-SNAPSHOT - - com.evotech.hd - common-redis - 1.0.0-SNAPSHOT + com.evotech.hd + common-permission + 1.0.0-SNAPSHOT - org.springframework.cloud @@ -82,8 +80,7 @@ cn.hutool hutool-crypto - - + ${project.artifactId} diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java index f9760dd..9d1268c 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/BatteryStationController.java @@ -1,24 +1,14 @@ package com.evotech.hd.cloud.controller; -import java.util.List; -import java.util.Map; - -import com.evotech.hd.cloud.mqtt.message.handle.RequestMessageService; -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - import com.evotech.hd.cloud.entity.request.PageListBatteryStationRequest; +import com.evotech.hd.cloud.mqtt.message.handle.RequestMessageService; import com.evotech.hd.cloud.service.BatteryStationService; +import com.evotech.hd.common.core.Dto.BaseResponse; 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.vo.BatteryStationVO; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; - import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -26,6 +16,11 @@ import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; @Tag(name = "换电站") @@ -103,4 +98,16 @@ public class BatteryStationController { batteryStationService.downloadQRCode2(path, width, response); } + @Operation(summary = "查询") + @GetMapping("/login/list") + public BaseResponse> loginList(@RequestParam String proxyCode) { + return batteryStationService.loginList(proxyCode); + } + + @Operation(summary = "查询") + @GetMapping("/resource/list") + public BaseResponse> resourceList(@RequestParam String pkIds) { + return batteryStationService.resourceList(pkIds); + } + } 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 ac9b9cd..17b34a3 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 @@ -1,26 +1,22 @@ package com.evotech.hd.cloud.controller.customer; -import java.util.List; -import java.util.Map; - -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - import com.evotech.hd.cloud.service.CompanyService; +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.BasePageRequest; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.Company; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Map; @Tag(name = "公司管理") @RestController @@ -66,4 +62,10 @@ public class CompanyController { return companyService.companyByCode(ccode); } + @GetMapping("/login/one") + public BaseResponse loginOne(@RequestParam String code) { + return companyService.loginOne(code); + } + + } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/VehicleController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/VehicleController.java index 33c930b..a6366c1 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/VehicleController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/customer/VehicleController.java @@ -1,27 +1,22 @@ package com.evotech.hd.cloud.controller.customer; -import java.util.List; - -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - import com.evotech.hd.cloud.entity.request.PageListVehicleRequest; import com.evotech.hd.cloud.service.VehicleService; +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.VehicleInfo; import com.evotech.hd.common.core.entity.cloud.VehicleWechatUserRelation; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @@ -107,8 +102,14 @@ public class VehicleController { public Result> listRelationUser(@NotBlank @RequestParam String PlantNo) { return vehicleService.listRelationUser(PlantNo); } - - + + + @Operation(summary = "查询") + @GetMapping("/login/list") + @ApiOperationSupport(order = 4) + public BaseResponse> loginList(@RequestParam String companyCode) { + return vehicleService.loginList(companyCode); + } } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java index 79a3f96..d13c1cb 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/controller/order/OrderSwapBatteryController.java @@ -1,27 +1,16 @@ package com.evotech.hd.cloud.controller.order; -import java.util.List; - -import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse; -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - import com.evotech.hd.cloud.entity.vo.NativePayVO; import com.evotech.hd.cloud.service.OrderSwapBatteryService; 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.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; - import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -29,6 +18,11 @@ import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.web.bind.annotation.*; + +import java.text.ParseException; +import java.util.List; @Tag(name = "换电订单") @ApiSupport(order = 22) @@ -57,7 +51,7 @@ public class OrderSwapBatteryController { @Operation(summary = "查询预约") @GetMapping("/pre/list") @ApiOperationSupport(order = 3) - public Result> listPre(@ParameterObject PageListSwapOrderPreRequest plsopr) { + public Result> listPre(@ParameterObject PageListSwapOrderPreRequest plsopr) throws ParseException { return orderSwapBatteryService.listPre(plsopr); } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDao.java index 8b0ae40..cb05fcb 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDao.java @@ -1,18 +1,24 @@ package com.evotech.hd.cloud.dao; -import java.util.List; - -import org.apache.ibatis.annotations.Param; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.evotech.hd.cloud.entity.request.PageListBatteryStationRequest; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.BatteryStation; +import com.evotech.hd.common.core.permission.DataScope; +import com.evotech.hd.common.core.permission.DataScopes; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @author zrb * @since 2024-10-15 */ +//换电站 + @DataScopes({ + @DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "pk_id", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_ID) + }) public interface BatteryStationDao extends BaseMapper { List listStation(Page page, @Param("plbsr") PageListBatteryStationRequest plbsr); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDcDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDcDao.java index 14d0c14..5985de0 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDcDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDcDao.java @@ -1,14 +1,18 @@ package com.evotech.hd.cloud.dao; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.BatteryStationDc; +import com.evotech.hd.common.core.permission.DataScope; + +import java.util.List; /** * @author zrb * @since 2024-10-17 */ + +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "source_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationDcDao extends BaseMapper { List getDcByStationCode(String stationCode); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDccDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDccDao.java index 0cfa0b5..ad802bf 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDccDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDccDao.java @@ -1,14 +1,17 @@ package com.evotech.hd.cloud.dao; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.BatteryStationDcc; +import com.evotech.hd.common.core.permission.DataScope; + +import java.util.List; /** * @author zrb * @since 2024-10-17 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationDccDao extends BaseMapper { List getDccByStationCode(String stationCode); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDjDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDjDao.java index de1d07b..ae38f01 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDjDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationDjDao.java @@ -1,14 +1,17 @@ package com.evotech.hd.cloud.dao; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.BatteryStationDj; +import com.evotech.hd.common.core.permission.DataScope; + +import java.util.List; /** * @author zrb * @since 2024-10-17 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationDjDao extends BaseMapper { List getDjByStationCode(String stationCode); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationHdFeeStandardDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationHdFeeStandardDao.java index 23bdec1..61d882e 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationHdFeeStandardDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationHdFeeStandardDao.java @@ -1,16 +1,18 @@ package com.evotech.hd.cloud.dao; -import java.util.List; - +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.entity.cloud.BatteryStationHdFeeStandard; +import com.evotech.hd.common.core.permission.DataScope; import org.apache.ibatis.annotations.Param; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.evotech.hd.common.core.entity.cloud.BatteryStationHdFeeStandard; +import java.util.List; /** * @author zrb * @since 2024-10-17 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationHdFeeStandardDao extends BaseMapper { List listFeeStandard(@Param("stationCode") String stationCode, @Param("day") String day); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationRobotDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationRobotDao.java index ce549ff..c284d8d 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationRobotDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationRobotDao.java @@ -1,14 +1,17 @@ package com.evotech.hd.cloud.dao; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.BatteryStationRobot; +import com.evotech.hd.common.core.permission.DataScope; + +import java.util.List; /** * @author zrb * @since 2024-10-17 */ +@DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationRobotDao extends BaseMapper { List getRobotByStationCode(String stationCode); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationSecretKeyDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationSecretKeyDao.java index 4818b57..3040cc8 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationSecretKeyDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/BatteryStationSecretKeyDao.java @@ -2,11 +2,14 @@ package com.evotech.hd.cloud.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.evotech.hd.cloud.entity.BatteryStationSecretKey; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-11-05 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface BatteryStationSecretKeyDao extends BaseMapper { } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/CompanyDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/CompanyDao.java index eb76caa..4b7a8c1 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/CompanyDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/CompanyDao.java @@ -1,12 +1,16 @@ package com.evotech.hd.cloud.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.Company; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-11-20 */ +//换电站 +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "pk_id", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_COMPANY_ID) public interface CompanyDao extends BaseMapper { } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderRechargeDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderRechargeDao.java index 400b138..0166256 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderRechargeDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderRechargeDao.java @@ -1,12 +1,15 @@ package com.evotech.hd.cloud.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.OrderRecharge; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-11-22 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface OrderRechargeDao extends BaseMapper { } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderSwapBatteryPreDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderSwapBatteryPreDao.java index 29f050e..96e47c2 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderSwapBatteryPreDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/OrderSwapBatteryPreDao.java @@ -1,12 +1,19 @@ package com.evotech.hd.cloud.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.OrderSwapBatteryPre; +import com.evotech.hd.common.core.permission.DataScope; +import com.evotech.hd.common.core.permission.DataScopes; /** * @author zrb * @since 2024-12-04 */ +@DataScopes({ + @DataScope(permissionObject = HDConstant.OPERATOR_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE), + @DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "plate_num", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_CAR_CODE) +}) public interface OrderSwapBatteryPreDao extends BaseMapper { } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/TradeDetailDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/TradeDetailDao.java index 967e65d..5cc0c44 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/TradeDetailDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/TradeDetailDao.java @@ -1,12 +1,15 @@ package com.evotech.hd.cloud.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.TradeDetail; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-11-22 */ +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "station_code", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_STATION_CODE) public interface TradeDetailDao extends BaseMapper { } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/VehicleInfoDao.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/VehicleInfoDao.java index 1646929..efcf97a 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/VehicleInfoDao.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/dao/VehicleInfoDao.java @@ -1,12 +1,16 @@ package com.evotech.hd.cloud.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.entity.cloud.VehicleInfo; +import com.evotech.hd.common.core.permission.DataScope; /** * @author zrb * @since 2024-11-22 */ +//换电站 +@DataScope(permissionObject = HDConstant.COMPANY_ROLE_CODE, permissionScopeName = "ccode", permissionScopeRedisKey = HDConstant.PermissionConstant.PERMISSION_COMPANY_CODE) public interface VehicleInfoDao extends BaseMapper { } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/PageListBatteryStationRequest.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/PageListBatteryStationRequest.java index d54f734..f3535ed 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/PageListBatteryStationRequest.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/request/PageListBatteryStationRequest.java @@ -29,4 +29,10 @@ public class PageListBatteryStationRequest extends BasePageRequest { @Schema(description = "站点类型ID") private Integer type; + @Schema(description = "营业起时间") + private String runStartTime; + + @Schema(description = "营业止时间") + private String runEndTime; + } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java index 4875f5c..ac10751 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/entity/vo/HomeData4.java @@ -24,10 +24,10 @@ public class HomeData4 { private Integer refundTradeQuantity; @Schema(description = "收入总钱数") - private Integer totalMoney; + private Double totalMoney; @Schema(description = "支出总钱数") - private Integer totalRefund; + private Double totalRefund; 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 b9a4134..b63eaa3 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 @@ -1,10 +1,10 @@ package com.evotech.hd.cloud.mqtt.config; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Date; -import java.util.concurrent.ConcurrentHashMap; - +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import jakarta.annotation.PreDestroy; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.MqttClient; import org.eclipse.paho.client.mqttv3.MqttConnectOptions; import org.eclipse.paho.client.mqttv3.MqttException; @@ -12,16 +12,14 @@ 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 cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; -import jakarta.annotation.PreDestroy; -import jakarta.annotation.Resource; -import lombok.extern.slf4j.Slf4j; +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/mqtt/message/processor/MqttMessageRequestExchangeProcessor.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/message/processor/MqttMessageRequestExchangeProcessor.java index b5d44e2..32ba68e 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/message/processor/MqttMessageRequestExchangeProcessor.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/mqtt/message/processor/MqttMessageRequestExchangeProcessor.java @@ -10,9 +10,8 @@ import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum; import com.evotech.hd.cloud.mqtt.message.MessageTopic; import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader; import com.evotech.hd.cloud.mqtt.message.dto.newer.req.MqttResponse; -import com.evotech.hd.cloud.mqtt.message.dto.newer.req.order.CancelOrderReq; import com.evotech.hd.cloud.mqtt.message.handle.MessageUtilService; -import com.evotech.hd.cloud.utils.SpringUtil; +import com.evotech.hd.common.permission.util.SpringUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java index 4857fb0..b0b955a 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/BatteryStationService.java @@ -1,15 +1,15 @@ package com.evotech.hd.cloud.service; -import java.util.List; -import java.util.Map; - import com.evotech.hd.cloud.entity.request.PageListBatteryStationRequest; +import com.evotech.hd.common.core.Dto.BaseResponse; 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.vo.BatteryStationVO; - import jakarta.servlet.http.HttpServletResponse; +import java.util.List; +import java.util.Map; + public interface BatteryStationService { public Result add(BatteryStation bs); @@ -29,4 +29,9 @@ public interface BatteryStationService { public void createQRCode2(String path, String width, HttpServletResponse response); public void downloadQRCode2(String path, String width, HttpServletResponse response); + + public BaseResponse> loginList(String proxyId); + + public BaseResponse> resourceList(String pkIds); + } 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 23e87d9..245d0bb 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 @@ -1,12 +1,13 @@ package com.evotech.hd.cloud.service; -import java.util.List; -import java.util.Map; - +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.BasePageRequest; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.Company; +import java.util.List; +import java.util.Map; + public interface CompanyService { public Result add(Company company); @@ -19,4 +20,5 @@ public interface CompanyService { public Result> companyByCode(String ccode); + public BaseResponse loginOne(String code); } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/OrderSwapBatteryService.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/OrderSwapBatteryService.java index 3cea7e9..f144ba0 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/OrderSwapBatteryService.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/OrderSwapBatteryService.java @@ -1,24 +1,25 @@ package com.evotech.hd.cloud.service; -import java.util.List; - -import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatusData; -import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse; import com.evotech.hd.cloud.entity.vo.NativePayVO; +import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatusData; 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 java.text.ParseException; +import java.util.List; + public interface OrderSwapBatteryService { public Result addPre(OrderSwapBatteryPre osbp); public Result cancelPre(Integer id, Integer status); - public Result> listPre(PageListSwapOrderPreRequest plsopr); + public Result> listPre(PageListSwapOrderPreRequest plsopr) throws ParseException; public Result add(OrderSwapBattery osb); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/VehicleService.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/VehicleService.java index da0820c..fae2bcc 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/VehicleService.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/VehicleService.java @@ -1,12 +1,13 @@ package com.evotech.hd.cloud.service; -import java.util.List; - import com.evotech.hd.cloud.entity.request.PageListVehicleRequest; +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.VehicleInfo; import com.evotech.hd.common.core.entity.cloud.VehicleWechatUserRelation; +import java.util.List; + public interface VehicleService { public Result add(VehicleInfo vi); @@ -28,4 +29,8 @@ public interface VehicleService { public Result> listWechatUserRelation(String openid, String plateNum); public Result> listRelationUser(String PlantNo); + public BaseResponse> loginList(String companyCode); + + + } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java index 456c0bd..a4e5f6b 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java @@ -1,17 +1,11 @@ package com.evotech.hd.cloud.service.impl; -import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.net.URLEncoder; -import java.security.KeyPair; -import java.util.*; - -import org.springframework.beans.BeanUtils; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.crypto.KeyUtil; +import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm; +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.cloud.dao.BatteryStationDao; @@ -21,20 +15,26 @@ import com.evotech.hd.cloud.entity.BatteryStationSecretKey; import com.evotech.hd.cloud.entity.request.PageListBatteryStationRequest; import com.evotech.hd.cloud.service.BatteryStationService; import com.evotech.hd.cloud.service.rpc.WechatService; +import com.evotech.hd.common.core.Dto.BaseResponse; 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.VehicleInfo; import com.evotech.hd.common.core.entity.cloud.vo.BatteryStationVO; import com.evotech.hd.common.core.enums.CodeMsg; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.io.IoUtil; -import cn.hutool.crypto.KeyUtil; -import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm; import jakarta.annotation.Resource; import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; +import org.springframework.beans.BeanUtils; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.KeyPair; +import java.util.*; @Service public class BatteryStationServiceImpl implements BatteryStationService { @@ -267,4 +267,14 @@ public class BatteryStationServiceImpl implements BatteryStationService { } } + public BaseResponse> loginList(String proxyCode) { + return new BaseResponse>().success(batteryStationDao.selectList(new LambdaQueryWrapper().eq(BatteryStation::getProxyId, proxyCode).select(BatteryStation::getPkId, BatteryStation::getCode))); + } + + @Override + public BaseResponse> resourceList(String pkIds) { + String[] pkIdArray = pkIds.split(","); + return new BaseResponse>().success(batteryStationDao.selectList(new LambdaQueryWrapper().eq((pkIdArray != null && pkIdArray.length > 0), BatteryStation::getPkId, Arrays.asList(pkIdArray)).eq(BatteryStation::getStatus, 1).eq(BatteryStation::getDelFlag, 0).select(BatteryStation::getPkId, BatteryStation::getCode))); + } + } 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 c74f2d5..4d782e4 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 @@ -1,21 +1,22 @@ package com.evotech.hd.cloud.service.impl; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.stereotype.Service; - +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.cloud.dao.CompanyDao; import com.evotech.hd.cloud.service.CompanyService; +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.BasePageRequest; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.Company; import com.evotech.hd.common.core.enums.CodeMsg; import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; @Service @@ -78,4 +79,9 @@ public class CompanyServiceImpl implements CompanyService { return new Result>().success(m); } + @Override + public BaseResponse loginOne(String code) { + return new BaseResponse().success(companyDao.selectOne(new LambdaQueryWrapper().eq(Company::getCcode, code))); + } + } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java index 9c7d723..c7ca3b2 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeDataManualCollateServiceImpl.java @@ -1,14 +1,7 @@ package com.evotech.hd.cloud.service.impl; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.evotech.hd.cloud.dao.TradeDetailDao; import com.evotech.hd.cloud.service.HomeDataManualCollateService; @@ -20,11 +13,16 @@ import com.evotech.hd.common.core.entity.cloud.HomeDataOrderSwapCollate; import com.evotech.hd.common.core.entity.cloud.HomeDataTradeCollate; import com.evotech.hd.common.core.entity.cloud.OrderSwapBattery; import com.evotech.hd.common.core.entity.cloud.TradeDetail; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +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 @@ -130,26 +128,51 @@ public class HomeDataManualCollateServiceImpl implements HomeDataManualCollateSe if (tradeList.isEmpty()) { continue; } - Map>> map = tradeList.stream().collect(Collectors.groupingBy(TradeDetail::getTradeType, Collectors.groupingBy(TradeDetail::getPayType))); + //Map>> map = tradeList.stream().collect(Collectors.groupingBy(TradeDetail::getTradeType, Collectors.groupingBy(TradeDetail::getPayType))); + + Map>>> map1 = tradeList.stream().collect(Collectors.groupingBy(TradeDetail::getStationCode,Collectors.groupingBy(TradeDetail::getTradeType, Collectors.groupingBy(TradeDetail::getPayType)))); Date d = new Date(); List tradeCollateList = new ArrayList(); - for (Map.Entry>> m : map.entrySet()) { - Integer tradeType = m.getKey(); - Map> payTypeMap = m.getValue(); - for (Map.Entry> entry : payTypeMap.entrySet()) { - Integer payType = entry.getKey(); - List dayPayTypeTradeList = entry.getValue(); - HomeDataTradeCollate tradeCollate = new HomeDataTradeCollate(); - tradeCollate.setDay(dayString); - tradeCollate.setCtime(d); - tradeCollate.setQuantity(dayPayTypeTradeList.size()); - tradeCollate.setTradeType(tradeType); - tradeCollate.setPayType(payType); - tradeCollate.setTradeAmount(dayPayTypeTradeList.stream().collect(Collectors.summingInt(item -> item.getTradeAmount()))); - tradeCollateList.add(tradeCollate); + for (Map.Entry>>> pm : map1.entrySet()) { + String stationCode = pm.getKey(); + Map>> mc = pm.getValue(); + for (Map.Entry>> m : mc.entrySet()) { + Integer tradeType = m.getKey(); + Map> payTypeMap = m.getValue(); + for (Map.Entry> entry : payTypeMap.entrySet()) { + Integer payType = entry.getKey(); + List dayPayTypeTradeList = entry.getValue(); + HomeDataTradeCollate tradeCollate = new HomeDataTradeCollate(); + tradeCollate.setDay(dayString); + tradeCollate.setCtime(d); + tradeCollate.setStationCode(stationCode); + tradeCollate.setQuantity(dayPayTypeTradeList.size()); + tradeCollate.setTradeType(tradeType); + tradeCollate.setPayType(payType); + tradeCollate.setTradeAmount(dayPayTypeTradeList.stream().collect(Collectors.summingInt(item -> item.getTradeAmount()))); + tradeCollateList.add(tradeCollate); + } } - } + + +// for (Map.Entry>> m : map.entrySet()) { +// Integer tradeType = m.getKey(); +// Map> payTypeMap = m.getValue(); +// for (Map.Entry> entry : payTypeMap.entrySet()) { +// Integer payType = entry.getKey(); +// List dayPayTypeTradeList = entry.getValue(); +// HomeDataTradeCollate tradeCollate = new HomeDataTradeCollate(); +// tradeCollate.setDay(dayString); +// tradeCollate.setCtime(d); +// tradeCollate.setQuantity(dayPayTypeTradeList.size()); +// tradeCollate.setTradeType(tradeType); +// tradeCollate.setPayType(payType); +// tradeCollate.setTradeAmount(dayPayTypeTradeList.stream().collect(Collectors.summingInt(item -> item.getTradeAmount()))); +// tradeCollateList.add(tradeCollate); +// } +// +// } // 插入数据 homeDataTradeCollateDao.delete(new QueryWrapper().eq("day", dayString)); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java index e1c30c0..3c7ffa1 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/HomeServiceImpl.java @@ -1,50 +1,32 @@ package com.evotech.hd.cloud.service.impl; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.evotech.hd.cloud.dao.BatteryStationDao; -import com.evotech.hd.cloud.dao.BatteryStationDcDao; -import com.evotech.hd.cloud.dao.BatteryStationRobotDao; -import com.evotech.hd.cloud.dao.CompanyDao; -import com.evotech.hd.cloud.dao.VehicleInfoDao; +import com.evotech.hd.cloud.dao.*; import com.evotech.hd.cloud.entity.HomeStationOrderData; import com.evotech.hd.cloud.entity.request.HomeDataRequest; -import com.evotech.hd.cloud.entity.vo.HomeData1; -import com.evotech.hd.cloud.entity.vo.HomeData2; -import com.evotech.hd.cloud.entity.vo.HomeData3; -import com.evotech.hd.cloud.entity.vo.HomeData4; -import com.evotech.hd.cloud.entity.vo.HomeData5; -import com.evotech.hd.cloud.entity.vo.HomeData6; -import com.evotech.hd.cloud.entity.vo.HomeData7; +import com.evotech.hd.cloud.entity.vo.*; import com.evotech.hd.cloud.service.HomeService; import com.evotech.hd.common.core.dao.cloud.HomeDataOrderSwapCollateDao; import com.evotech.hd.common.core.dao.cloud.HomeDataTradeCollateDao; import com.evotech.hd.common.core.dao.resource.ProxyOperaterDao; import com.evotech.hd.common.core.dao.wechat.WechatUserDao; 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.BatteryStationDc; -import com.evotech.hd.common.core.entity.cloud.BatteryStationRobot; -import com.evotech.hd.common.core.entity.cloud.Company; -import com.evotech.hd.common.core.entity.cloud.HomeDataOrderSwapCollate; -import com.evotech.hd.common.core.entity.cloud.HomeDataTradeCollate; -import com.evotech.hd.common.core.entity.cloud.VehicleInfo; +import com.evotech.hd.common.core.entity.cloud.*; import com.evotech.hd.common.core.entity.resource.ProxyOperater; import com.evotech.hd.common.core.entity.wechat.WechatUser; import com.evotech.hd.common.core.enums.PayTypeEnums; import com.evotech.hd.common.core.enums.TradeTypeEnums; - -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +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 @@ -172,6 +154,9 @@ public class HomeServiceImpl implements HomeService { data.setDayBegin(DateUtil.format(hd.getTimeBegin(), DatePattern.PURE_DATE_PATTERN)); data.setDayEnd(DateUtil.format(hd.getTimeEnd(), DatePattern.PURE_DATE_PATTERN)); // 交易 + /*** + * @TODO: 待定 + */ List collateList = homeDataTradeCollateDao.selectList(new QueryWrapper() .ge("day", data.getDayBegin()) .le("day", data.getDayEnd())); @@ -184,11 +169,11 @@ public class HomeServiceImpl implements HomeService { Integer refundTradeQuantity = collateList.stream().filter(i -> i.getTradeType() == 3).collect(Collectors.summingInt(HomeDataTradeCollate::getQuantity)); data.setRefundTradeQuantity(refundTradeQuantity); - Integer chargeAmount = collateList.stream().filter(i -> i.getTradeType() == 1).collect(Collectors.summingInt(HomeDataTradeCollate::getTradeAmount)); - Integer orderAmount = collateList.stream().filter(i -> i.getTradeType() == 2 && i.getPayType() != 1).collect(Collectors.summingInt(HomeDataTradeCollate::getTradeAmount)); + Double chargeAmount = collateList.stream().filter(i -> i.getTradeType() == 1).collect(Collectors.summingDouble(HomeDataTradeCollate::getTradeAmount)); + Double orderAmount = collateList.stream().filter(i -> i.getTradeType() == 2 && i.getPayType() != 1).collect(Collectors.summingDouble(HomeDataTradeCollate::getTradeAmount)); data.setTotalMoney(chargeAmount + orderAmount); - - int refundSum = collateList.stream().filter(i -> i.getTradeType() == 9).collect(Collectors.summingInt(HomeDataTradeCollate::getTradeAmount)); + + Double refundSum = collateList.stream().filter(i -> i.getTradeType() == 9).collect(Collectors.summingDouble(HomeDataTradeCollate::getTradeAmount)); data.setTotalRefund(refundSum); return new Result().success(data); diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java index be59bf0..a3390fa 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java @@ -1,37 +1,23 @@ package com.evotech.hd.cloud.service.impl; -import java.math.BigDecimal; -import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil; +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.cloud.dao.*; -import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatusData; -import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse; -import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.BatterySwapReq; +import com.evotech.hd.cloud.entity.vo.NativePayVO; import com.evotech.hd.cloud.mqtt.enums.MqttMessageTypeEnum; import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum; import com.evotech.hd.cloud.mqtt.message.MessageTopic; import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader; +import com.evotech.hd.cloud.mqtt.message.dto.newer.req.battery.BatterySwapReq; +import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatusData; import com.evotech.hd.cloud.mqtt.message.handle.MessageUtilService; -import com.evotech.hd.common.core.entity.cloud.*; -import com.evotech.hd.common.redis.utils.RedisUtil; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.evotech.hd.cloud.entity.vo.NativePayVO; import com.evotech.hd.cloud.service.OrderSwapBatteryService; import com.evotech.hd.cloud.service.TradeService; import com.evotech.hd.cloud.service.WalletAccountService; @@ -41,6 +27,8 @@ import com.evotech.hd.cloud.utils.components.SwapOrderBasicFeeComponent; import com.evotech.hd.common.core.dao.cloud.OrderSwapBatteryDao; import com.evotech.hd.common.core.dao.wechat.WechatUserDao; import com.evotech.hd.common.core.entity.Result; +import com.evotech.hd.common.core.entity.cloud.*; +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.common.core.entity.wechat.WechatUser; @@ -49,8 +37,22 @@ import com.evotech.hd.common.core.enums.OrderStatusEnums; import com.evotech.hd.common.core.enums.PayTypeEnums; import com.evotech.hd.common.core.enums.TradeTypeEnums; import com.evotech.hd.common.core.utils.CommonUtil; - +import com.evotech.hd.common.redis.utils.RedisUtil; import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.DateFormatUtils; +import org.apache.commons.lang3.time.DateUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; @Slf4j @Service public class OrderSwapBatteryServiceImpl implements OrderSwapBatteryService { @@ -158,16 +160,18 @@ public class OrderSwapBatteryServiceImpl implements OrderSwapBatteryService { } @Override - public Result> listPre(PageListSwapOrderPreRequest plsopr) { + public Result> listPre(PageListSwapOrderPreRequest plsopr) throws ParseException { Page page = new Page(plsopr.getPageNo(), plsopr.getPageSize()); - page = orderSwapBatteryPreDao.selectPage(page, new QueryWrapper() - .eq(StringUtils.hasText(plsopr.getUcode()), "ucode", plsopr.getUcode()) - .eq(plsopr.getStatus() != null, "status", plsopr.getStatus()) - .eq(StringUtils.hasText(plsopr.getPlateNum()), "plate_num", plsopr.getPlateNum()) - .eq(StringUtils.hasText(plsopr.getStationCode()), "station_code", plsopr.getStationCode()) - .ge(StringUtils.hasText(plsopr.getSwapDayBegin()), "swap_day", plsopr.getSwapDayBegin()) - .le(StringUtils.hasText(plsopr.getSwapDayEnd()), "swap_day", plsopr.getSwapDayEnd()) - .orderByDesc("pk_id")); + page = orderSwapBatteryPreDao.selectPage(page, new LambdaQueryWrapper() + .eq(StringUtils.hasText(plsopr.getUcode()), OrderSwapBatteryPre::getUcode, plsopr.getUcode()) + .eq(plsopr.getStatus() != null, OrderSwapBatteryPre::getStatus, plsopr.getStatus()) + .eq(StringUtils.hasText(plsopr.getPlateNum()), OrderSwapBatteryPre::getPlateNum, plsopr.getPlateNum()) + .eq(StringUtils.hasText(plsopr.getStationCode()), OrderSwapBatteryPre::getStationCode, plsopr.getStationCode()) + .apply(StringUtils.hasText(plsopr.getSwapDayBegin()), "DATE_FORMAT(swap_day,'%Y-%m-%d') >={0}", DateFormatUtils.format(DateUtils.parseDate(plsopr.getSwapDayBegin(),"yyyyMMdd","yyyy-MM-dd"), "yyyy-MM-dd")) + .apply(StringUtils.hasText(plsopr.getSwapDayEnd()), "DATE_FORMAT(swap_day,'%Y-%m-%d') <={0}", DateFormatUtils.format(DateUtils.parseDate(plsopr.getSwapDayEnd(),"yyyyMMdd","yyyy-MM-dd"), "yyyy-MM-dd")) +// .ge(StringUtils.hasText(plsopr.getSwapDayBegin()), OrderSwapBatteryPre::getSwapDay, plsopr.getSwapDayBegin()) +// .le(StringUtils.hasText(plsopr.getSwapDayEnd()), OrderSwapBatteryPre::getSwapDay, plsopr.getSwapDayEnd()) + .orderByDesc(OrderSwapBatteryPre::getPkId)); if (page.getRecords().isEmpty()) { return new Result>().error(CodeMsg.DATABASE_RESULT_NULL); } @@ -227,19 +231,19 @@ public class OrderSwapBatteryServiceImpl implements OrderSwapBatteryService { statusList = Arrays.asList(plsor.getStatus().split(",")).stream().map(Integer::valueOf).toList(); } - page = orderSwapBatteryDao.selectPage(page, new QueryWrapper() - .eq(StringUtils.hasText(plsor.getOrderNo()), "order_no", plsor.getOrderNo()) - .eq(StringUtils.hasText(plsor.getPlateNum()), "plate_num", plsor.getPlateNum()) - .in(!plateNumList.isEmpty(), "plate_num", plateNumList) - .in(!statusList.isEmpty(), "status", statusList) - .ge(plsor.getOrderTimeBegin() != null, "order_time", plsor.getOrderTimeBegin()) - .le(plsor.getOrderTimeEnd() != null, "order_time", plsor.getOrderTimeEnd()) - .eq(StringUtils.hasText(plsor.getStationCode()), "station_code", plsor.getStationCode()) - .like(StringUtils.hasText(plsor.getStationName()), "station_name", plsor.getStationName()) - .eq(StringUtils.hasText(plsor.getUserId()), "order_pre_uid", plsor.getUserId()) - .eq(StringUtils.hasText(plsor.getTradeNo()), "trade_no", plsor.getTradeNo()) - .ne("del_flag", 1) - .orderByDesc("pk_id")); + page = orderSwapBatteryDao.selectPage(page, new LambdaQueryWrapper() + .eq(StringUtils.hasText(plsor.getOrderNo()), OrderSwapBattery::getOrderNo, plsor.getOrderNo()) + .eq(StringUtils.hasText(plsor.getPlateNum()), OrderSwapBattery::getPlateNum, plsor.getPlateNum()) + .in(!plateNumList.isEmpty(), OrderSwapBattery::getPlateNum, plateNumList) + .in(!statusList.isEmpty(), OrderSwapBattery::getStatus, statusList) + .ge(plsor.getOrderTimeBegin() != null, OrderSwapBattery::getOrderTime, plsor.getOrderTimeBegin()) + .le(plsor.getOrderTimeEnd() != null, OrderSwapBattery::getOrderTime, plsor.getOrderTimeEnd()) + .eq(StringUtils.hasText(plsor.getStationCode()), OrderSwapBattery::getStationCode, plsor.getStationCode()) + .like(StringUtils.hasText(plsor.getStationName()), OrderSwapBattery::getStationName, plsor.getStationName()) + .eq(StringUtils.hasText(plsor.getUserId()), OrderSwapBattery::getOrderPreId, plsor.getUserId()) + .eq(StringUtils.hasText(plsor.getTradeNo()), OrderSwapBattery::getTradeNo, plsor.getTradeNo()) + .ne(OrderSwapBattery::getDelFlag, 1) + .orderByDesc(OrderSwapBattery::getPkId)); if (page.getRecords().isEmpty()) { return new Result>().error(CodeMsg.DATABASE_RESULT_NULL); } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/VehicleServiceImpl.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/VehicleServiceImpl.java index a9c354c..7ad6af8 100644 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/VehicleServiceImpl.java +++ b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/VehicleServiceImpl.java @@ -1,23 +1,23 @@ package com.evotech.hd.cloud.service.impl; -import java.util.Date; -import java.util.List; - -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - +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.cloud.dao.VehicleInfoDao; import com.evotech.hd.cloud.dao.VehicleWechatUserRelationDao; import com.evotech.hd.cloud.entity.request.PageListVehicleRequest; import com.evotech.hd.cloud.service.VehicleService; +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.cloud.VehicleInfo; import com.evotech.hd.common.core.entity.cloud.VehicleWechatUserRelation; import com.evotech.hd.common.core.enums.CodeMsg; - import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.Date; +import java.util.List; @Service @@ -67,6 +67,7 @@ public class VehicleServiceImpl implements VehicleService { .eq(StringUtils.hasText(plvr.getTypeCode()), "type_code", plvr.getTypeCode()) .like(StringUtils.hasText(plvr.getPlateNum()), "plate_num", plvr.getPlateNum()) .eq(plvr.getOwnerType() != null, "owner_type", plvr.getOwnerType()) + .like(StringUtils.hasText(plvr.getOwnerName()), "owner_name", plvr.getOwnerName()) .eq(StringUtils.hasText(plvr.getVinNo()), "vin_no", plvr.getVinNo()) .eq(StringUtils.hasText(plvr.getEngineNo()), "engine_no", plvr.getEngineNo()) .eq(StringUtils.hasText(plvr.getFrameworkNo()), "framework_no", plvr.getFrameworkNo()) @@ -149,6 +150,10 @@ public class VehicleServiceImpl implements VehicleService { return new Result>().success(list); } - + @Override + public BaseResponse> loginList(String companyCode) { + return new BaseResponse>().success(vehicleInfoDao.selectList(new LambdaQueryWrapper().eq(VehicleInfo::getCcode, companyCode).select(VehicleInfo::getPkId, VehicleInfo::getPlateNum))); + } + } diff --git a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/utils/SpringUtil.java b/cloud-manage-server/src/main/java/com/evotech/hd/cloud/utils/SpringUtil.java deleted file mode 100644 index 1deb3f3..0000000 --- a/cloud-manage-server/src/main/java/com/evotech/hd/cloud/utils/SpringUtil.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.evotech.hd.cloud.utils; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.BeansException; -import org.springframework.context.ApplicationContext; -import org.springframework.context.ApplicationContextAware; -import org.springframework.stereotype.Component; - -/** - * @desc: - * @ClassName:SpringUtil - * @date: 2025年04月08日 12:33 - * @author: andy.shi - * @contact: 17330188597 - * @remark: 开发人员联系方式 1042025947@qq.com/微信同步 - */ -@Slf4j -@Component -public class SpringUtil implements ApplicationContextAware { - - private static ApplicationContext applicationContext = null; - @Override - public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { - setGlobalApplicationContext(applicationContext); - } - - private synchronized static void setGlobalApplicationContext(ApplicationContext applicationContext) { - if(SpringUtil.applicationContext == null){ - SpringUtil.applicationContext = applicationContext; - } - } - - public static ApplicationContext getApplicationContext() { - return applicationContext; - } - - public static Object getBean(String name) { - return getApplicationContext().getBean(name); - } - - public static T getBean(Class clazz) { - T b = null; - try { - b=getApplicationContext().getBean(clazz); - } catch (BeansException e) { - log.info(e.getMessage()); - } - return b; - } - -} diff --git a/cloud-manage-server/src/main/resources/application.yml b/cloud-manage-server/src/main/resources/application.yml index 79362b0..dacc441 100644 --- a/cloud-manage-server/src/main/resources/application.yml +++ b/cloud-manage-server/src/main/resources/application.yml @@ -12,7 +12,7 @@ logging: spring: # 服务名称必须带上,不然nacos服务列表中没有,也不会有注册成功的信息 application: - name: cloud-server + name: cloud-server #${cloud-manage-server:cloud-server} jackson: timeZone: GMT+08:00 date-format: yyyy-MM-dd HH:mm:ss @@ -20,7 +20,10 @@ spring: write-dates-as-timestamps: false config: import: - - nacos:${spring.application.name}.yaml?refreshEnabled=true + - nacos:yt-common.properties?refreshEnabled=true + - nacos:cloud-server.yaml?refreshEnabled=true + + cloud: nacos: serverAddr: 192.168.5.213:8848 @@ -35,7 +38,8 @@ spring: metadata: management: context-path: ${server.servlet.context-path}/actuator - + config: + namespace: ${nacos.namespace:public} # boot: # admin: # client: @@ -45,6 +49,7 @@ spring: # username: jdyl # password: jdyl123 # 添加这个,客户端就显示ip,而不是主机名,我用nacos是显示的主机名 + # instance: # prefer-ip: true # 为springbootadmin开启所有检查 diff --git a/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AddTestData.java b/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AddTestData.java index 439e51a..f599e3c 100644 --- a/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AddTestData.java +++ b/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AddTestData.java @@ -1,68 +1,8 @@ package com.evotech.hd.cloud; -import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; -import java.util.stream.Collectors; - -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.evotech.hd.cloud.dao.*; -import com.evotech.hd.cloud.entity.BatteryStationSecretKey; -import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum; -import com.evotech.hd.cloud.mqtt.message.MessageTopic; -import com.evotech.hd.cloud.mqtt.message.handle.RequestMessageService; -import com.evotech.hd.cloud.service.BatteryStationCdStrategyService; -import com.evotech.hd.common.core.constant.HDConstant; -import com.evotech.hd.common.redis.utils.RedisUtil; -import org.eclipse.paho.client.mqttv3.MqttClient; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; -import com.evotech.hd.cloud.controller.test.service.MqttConfigService; -import com.evotech.hd.cloud.controller.test.service.MqttTestUtil; -import com.evotech.hd.cloud.mqtt.enums.MqttMessageTypeEnum; -import com.evotech.hd.cloud.mqtt.enums.StateFunctionTypesEnum; -import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader; -import com.evotech.hd.cloud.mqtt.message.MyMqttMessage; -import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatus; -import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatusData; -import com.evotech.hd.cloud.mqtt.message.dto.newer.state.SwapStep; -import com.evotech.hd.cloud.mqtt.message.handle.MessageUtilService; -import com.evotech.hd.cloud.service.BatteryStationDcService; -import com.evotech.hd.cloud.service.OrderSwapBatteryService; -import com.evotech.hd.cloud.service.WalletAccountService; -import com.evotech.hd.cloud.utils.components.SwapOrderBasicFeeComponent; -import com.evotech.hd.common.core.dao.cloud.OrderSwapBatteryDao; -import com.evotech.hd.common.core.dao.cloud.PreOrderRelationSwapOrderDao; -import com.evotech.hd.common.core.dao.resource.BatteryTypeDao; -import com.evotech.hd.common.core.dao.resource.CarTypeDao; -import com.evotech.hd.common.core.dao.wechat.WechatUserDao; -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.BatteryStationDc; -import com.evotech.hd.common.core.entity.cloud.Company; -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.PreOrderRelationSwapOrder; -import com.evotech.hd.common.core.entity.cloud.TradeDetail; -import com.evotech.hd.common.core.entity.cloud.VehicleInfo; -import com.evotech.hd.common.core.entity.cloud.VehicleWechatUserRelation; -import com.evotech.hd.common.core.entity.cloud.WalletAccount; -import com.evotech.hd.common.core.entity.cloud.WalletAccountDetail; -import com.evotech.hd.common.core.entity.resource.BatteryType; -import com.evotech.hd.common.core.entity.resource.CarType; -import com.evotech.hd.common.core.entity.wechat.WechatUser; -import com.evotech.hd.common.core.enums.CodeMsg; -import com.evotech.hd.common.core.enums.OrderStatusEnums; -import com.evotech.hd.common.core.enums.TradeTypeEnums; -import com.evotech.hd.common.core.utils.CommonUtil; - import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.crypto.Mode; import cn.hutool.crypto.Padding; @@ -70,7 +10,55 @@ import cn.hutool.crypto.symmetric.AES; import cn.hutool.crypto.symmetric.SymmetricCrypto; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.evotech.hd.cloud.controller.test.service.MqttConfigService; +import com.evotech.hd.cloud.controller.test.service.MqttTestUtil; +import com.evotech.hd.cloud.dao.*; +import com.evotech.hd.cloud.entity.BatteryStationSecretKey; +import com.evotech.hd.cloud.mqtt.enums.MqttMessageTypeEnum; +import com.evotech.hd.cloud.mqtt.enums.RequestFunctionTypesEnum; +import com.evotech.hd.cloud.mqtt.enums.StateFunctionTypesEnum; +import com.evotech.hd.cloud.mqtt.message.MqttMessageHeader; +import com.evotech.hd.cloud.mqtt.message.MyMqttMessage; +import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatus; +import com.evotech.hd.cloud.mqtt.message.dto.newer.state.OrderStatusData; +import com.evotech.hd.cloud.mqtt.message.dto.newer.state.SwapStep; +import com.evotech.hd.cloud.mqtt.message.handle.MessageUtilService; +import com.evotech.hd.cloud.service.BatteryStationCdStrategyService; +import com.evotech.hd.cloud.service.BatteryStationDcService; +import com.evotech.hd.cloud.service.OrderSwapBatteryService; +import com.evotech.hd.cloud.service.WalletAccountService; +import com.evotech.hd.cloud.utils.components.SwapOrderBasicFeeComponent; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.dao.cloud.OrderSwapBatteryDao; +import com.evotech.hd.common.core.dao.cloud.PreOrderRelationSwapOrderDao; +import com.evotech.hd.common.core.dao.resource.BatteryTypeDao; +import com.evotech.hd.common.core.dao.resource.CarTypeDao; +import com.evotech.hd.common.core.dao.wechat.WechatUserDao; +import com.evotech.hd.common.core.entity.Result; +import com.evotech.hd.common.core.entity.cloud.*; +import com.evotech.hd.common.core.entity.resource.BatteryType; +import com.evotech.hd.common.core.entity.resource.CarType; +import com.evotech.hd.common.core.entity.wechat.WechatUser; +import com.evotech.hd.common.core.enums.CodeMsg; +import com.evotech.hd.common.core.enums.OrderStatusEnums; +import com.evotech.hd.common.core.enums.TradeTypeEnums; +import com.evotech.hd.common.core.utils.CommonUtil; +import com.evotech.hd.common.redis.utils.RedisUtil; import jakarta.annotation.Resource; +import org.eclipse.paho.client.mqttv3.MqttClient; +import org.eclipse.paho.client.mqttv3.MqttException; +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.stream.Collectors; @SpringBootTest(classes = CloudManageServerApplication.class) public class AddTestData { @@ -140,12 +128,13 @@ public class AddTestData { // @Test - void testStrategyAndMqttM2S() { + void testStrategyAndMqttM2S() throws MqttException { testClient = mqttService.connect(); // 1. 查 站 List stationList = batteryStationDao.selectList(new LambdaUpdateWrapper().eq(BatteryStation::getPkId, 4)); BatteryStation station = stationList.get(0); sendStrategyInfo(station.getCode()); + testClient.disconnect(); } diff --git a/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AesDecryTest.java b/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AesDecryTest.java index e5225cc..df2f44d 100644 --- a/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AesDecryTest.java +++ b/cloud-manage-server/src/test/java/com/evotech/hd/cloud/AesDecryTest.java @@ -1,31 +1,23 @@ package com.evotech.hd.cloud; -import java.util.Base64; - -import javax.crypto.SecretKey; - -import cn.hutool.crypto.KeyUtil; -import cn.hutool.crypto.Mode; -import cn.hutool.crypto.Padding; -import cn.hutool.crypto.symmetric.AES; -import cn.hutool.crypto.symmetric.SymmetricAlgorithm; -import cn.hutool.crypto.symmetric.SymmetricCrypto; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; public class AesDecryTest { public static void main(String[] args) { - - String key = "94kl35k25d3t2rk2"; - String iv = "k394kf44lf1pyq8k"; - SymmetricCrypto aes = new AES(Mode.CBC, Padding.PKCS5Padding, key.getBytes(), iv.getBytes()); - // 需要加密的数据 - String data = "2yKExCzIRWg6bLwf2zsTn83XhzTAvuQtW5svhO111zihn3oX/Jrf4UFrKCA5UbZy4SWRF5vtcyYXLr8oFof2xRDBXsvFRDFHYKmmkpN6Udk7ChB0sCNTzisaM/iqAtbybD8uC9HpHYCQsSVipUc//aUhgSNvhK7CewK1UjGKnyBvOvCUJiPGVtuKzX5Pf5KIrR1ozJ+moDq01+td8Du5lA3lXaHdLZ8WbmoqYd2T6r3PDVsh/yxC327mNsQrivK0yL3QUt4ZCuLV6G/nQTsxvNgAYprSNVejGCywDD2cWuA4f90bsxJEKFLJ+XUd9/IAJR50QGhwm0qzxWwZzszWU9+EJoDyp+gUUn9bY4u9V/I="; - - byte[] decrypt = aes.decrypt(Base64.getDecoder().decode(data)); - System.out.println(new String(decrypt)); - - SecretKey key1 = KeyUtil.generateKey(SymmetricAlgorithm.AES.getValue()); - System.out.println(Base64.getEncoder().encodeToString(key1.getEncoded())); + + System.out.println(new BCryptPasswordEncoder().encode("123456")); +// String key = "94kl35k25d3t2rk2"; +// String iv = "k394kf44lf1pyq8k"; +// SymmetricCrypto aes = new AES(Mode.CBC, Padding.PKCS5Padding, key.getBytes(), iv.getBytes()); +// // 需要加密的数据 +// String data = "2yKExCzIRWg6bLwf2zsTn83XhzTAvuQtW5svhO111zihn3oX/Jrf4UFrKCA5UbZy4SWRF5vtcyYXLr8oFof2xRDBXsvFRDFHYKmmkpN6Udk7ChB0sCNTzisaM/iqAtbybD8uC9HpHYCQsSVipUc//aUhgSNvhK7CewK1UjGKnyBvOvCUJiPGVtuKzX5Pf5KIrR1ozJ+moDq01+td8Du5lA3lXaHdLZ8WbmoqYd2T6r3PDVsh/yxC327mNsQrivK0yL3QUt4ZCuLV6G/nQTsxvNgAYprSNVejGCywDD2cWuA4f90bsxJEKFLJ+XUd9/IAJR50QGhwm0qzxWwZzszWU9+EJoDyp+gUUn9bY4u9V/I="; +// +// byte[] decrypt = aes.decrypt(Base64.getDecoder().decode(data)); +// System.out.println(new String(decrypt)); +// +// SecretKey key1 = KeyUtil.generateKey(SymmetricAlgorithm.AES.getValue()); +// System.out.println(Base64.getEncoder().encodeToString(key1.getEncoded())); } diff --git a/gateway-server/src/main/java/com/evotech/hd/gateway/oauth2/AuthorizationManager.java b/gateway-server/src/main/java/com/evotech/hd/gateway/oauth2/AuthorizationManager.java index 18cbbc4..235d3f4 100644 --- a/gateway-server/src/main/java/com/evotech/hd/gateway/oauth2/AuthorizationManager.java +++ b/gateway-server/src/main/java/com/evotech/hd/gateway/oauth2/AuthorizationManager.java @@ -1,11 +1,14 @@ package com.evotech.hd.gateway.oauth2; -import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; - +import cn.hutool.core.util.StrUtil; +import cn.hutool.json.JSONUtil; +import com.evotech.hd.common.core.constant.HDConstant; +import com.evotech.hd.common.core.enums.CodeMsg; +import com.evotech.hd.common.core.utils.XCXUtil; +import com.evotech.hd.common.redis.utils.RedisUtil; +import com.evotech.hd.gateway.oauth2.service.WechatService; +import com.evotech.hd.gateway.utils.TokenUtil; +import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.http.HttpMethod; @@ -19,19 +22,15 @@ import org.springframework.security.oauth2.core.OAuth2Error; import org.springframework.security.web.server.authorization.AuthorizationContext; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; - -import com.evotech.hd.common.core.constant.HDConstant; -import com.evotech.hd.common.core.enums.CodeMsg; -import com.evotech.hd.common.core.utils.XCXUtil; -import com.evotech.hd.common.redis.utils.RedisUtil; -import com.evotech.hd.gateway.oauth2.service.WechatService; -import com.evotech.hd.gateway.utils.TokenUtil; - -import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; -import jakarta.annotation.Resource; import reactor.core.publisher.Mono; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + /** * 资源服务的权限管理器 * 鉴权时统一抛出OAuth2AuthorizationException @@ -46,9 +45,14 @@ public class AuthorizationManager implements ReactiveAuthorizationManager objectList = redisUtil.lGet(HDConstant.LOGIN_CACHE_KEY_PREFIX + jti + ":perms", 0, -1); List permList = objectList.stream().map(i -> i.toString()).toList(); String path = request.getURI().getPath().substring(8); - if (!permList.contains("gateway:" + path)) { +// if (!permList.contains("gateway:" + path)) { +// throw new OAuth2AuthorizationException(new OAuth2Error(CodeMsg.ACCESS_DENY.getCode(), CodeMsg.ACCESS_DENY.getMsg(), uri)); +// } + //已授权接口,和无需授权接口 + if (!permList.contains(path) && !Arrays.asList(notPermissionUrl.split(";")).contains(path)) { throw new OAuth2AuthorizationException(new OAuth2Error(CodeMsg.ACCESS_DENY.getCode(), CodeMsg.ACCESS_DENY.getMsg(), uri)); } return true; diff --git a/gateway-server/src/main/resources/application.yml b/gateway-server/src/main/resources/application.yml index 1f6168e..550c5e9 100644 --- a/gateway-server/src/main/resources/application.yml +++ b/gateway-server/src/main/resources/application.yml @@ -24,12 +24,15 @@ spring: max-in-memory-size: 10485760 config: import: + - nacos:yt-common.properties?refreshEnabled=true - nacos:${spring.application.name}.yaml?refreshEnabled=true cloud: nacos: serverAddr: 192.168.5.213:8848 username: nacos password: nacos + config: + namespace: ${nacos.namespace:public} discovery: namespace: ${nacos.namespace:public} register-enabled: true diff --git a/resource-server/pom.xml b/resource-server/pom.xml index b9ac9a8..47b95aa 100644 --- a/resource-server/pom.xml +++ b/resource-server/pom.xml @@ -22,7 +22,11 @@ common-web 1.0.0-SNAPSHOT - + + com.evotech.hd + common-permission + 1.0.0-SNAPSHOT + com.evotech.hd common-mybatis @@ -66,7 +70,11 @@ io.minio minio - + + org.springframework.cloud + spring-cloud-starter-openfeign + + ${project.artifactId} diff --git a/resource-server/src/main/java/com/evotech/hd/resource/ResourceServerApplication.java b/resource-server/src/main/java/com/evotech/hd/resource/ResourceServerApplication.java index 68fb669..2e05d0d 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/ResourceServerApplication.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/ResourceServerApplication.java @@ -5,12 +5,14 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.ComponentScan; @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) @EnableDiscoveryClient @ComponentScan("com.evotech.hd.**") @MapperScan({"com.evotech.hd.resource.dao.**", "com.evotech.hd.common.core.dao.**"}) +@EnableFeignClients public class ResourceServerApplication { public static void main(String[] args) { diff --git a/resource-server/src/main/java/com/evotech/hd/resource/controller/AuthUserController.java b/resource-server/src/main/java/com/evotech/hd/resource/controller/AuthUserController.java index a4ea5ea..2c83467 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/controller/AuthUserController.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/controller/AuthUserController.java @@ -1,28 +1,24 @@ package com.evotech.hd.resource.controller; -import java.util.List; - -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.Result; 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.resource.entity.request.ListUserRequest; import com.evotech.hd.resource.service.AuthUserService; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.web.bind.annotation.*; + +import java.util.List; @Tag(name = "用户管理") @RestController @@ -83,4 +79,19 @@ public class AuthUserController { return authUserService.deleteUserRole(uid, rid); } + @Operation(summary = "用户分配站") + @PostMapping("/adduserstation") + @ApiOperationSupport(order = 5) + public Result addUserRole(@RequestParam @NotBlank String uid, @RequestParam String stationIds) { + return authUserService.addUserStation(stationIds, uid); + } + + @Operation(summary = "登录查询站信息") + @GetMapping("/station") + @ApiOperationSupport(order = 4) + public BaseResponse> loadUserStation(@RequestParam @NotBlank String uid) { + return authUserService.loadUserStation(uid); + } + + } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/controller/ProxyOperaterController.java b/resource-server/src/main/java/com/evotech/hd/resource/controller/ProxyOperaterController.java index 10d51ab..18cf23f 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/controller/ProxyOperaterController.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/controller/ProxyOperaterController.java @@ -1,24 +1,22 @@ package com.evotech.hd.resource.controller; -import java.util.List; - -import org.springdoc.core.annotations.ParameterObject; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.resource.ProxyOperater; import com.evotech.hd.resource.entity.request.PageListProxyOperaterRequest; import com.evotech.hd.resource.service.ProxyOperaterService; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiSupport; - import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; import jakarta.validation.Valid; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; @Tag(name = "运营商") @ApiSupport(order = 107) @@ -59,4 +57,5 @@ public class ProxyOperaterController { } + } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/AuthUserService.java b/resource-server/src/main/java/com/evotech/hd/resource/service/AuthUserService.java index 66614f8..dadb5a2 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/AuthUserService.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/AuthUserService.java @@ -1,12 +1,14 @@ package com.evotech.hd.resource.service; -import java.util.List; - +import com.evotech.hd.common.core.Dto.BaseResponse; import com.evotech.hd.common.core.entity.Result; 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.resource.entity.request.ListUserRequest; +import java.util.List; + public interface AuthUserService { public Result userByName(String uname); @@ -23,4 +25,7 @@ public interface AuthUserService { public Result deleteUserRole(String uid, String rid); + public Result addUserStation(String stationIds, String uid); + + public BaseResponse> loadUserStation(String uid); } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/DictService.java b/resource-server/src/main/java/com/evotech/hd/resource/service/DictService.java index 3528761..5398bf0 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/DictService.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/DictService.java @@ -1,7 +1,5 @@ package com.evotech.hd.resource.service; -import java.util.List; - import com.evotech.hd.common.core.entity.Result; import com.evotech.hd.common.core.entity.request.ListDictRequest; import com.evotech.hd.common.core.entity.resource.dict.Dict; @@ -9,6 +7,8 @@ import com.evotech.hd.common.core.entity.resource.dict.DictType; import com.evotech.hd.resource.entity.DictInfo; import com.evotech.hd.resource.entity.request.ListDictTypeRequest; +import java.util.List; + public interface DictService { public Result addType(DictType dt); @@ -29,4 +29,6 @@ public interface DictService { public Result> listDictInfo(String typeCode); + public List listDictByType(String typeCode); + } 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 6c28c8c..2b622cd 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,28 +1,34 @@ package com.evotech.hd.resource.service.impl; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; - -import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - +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.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.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.resource.entity.request.ListUserRequest; import com.evotech.hd.resource.service.AuthUserService; - -import cn.hutool.core.date.DateUtil; +import com.evotech.hd.resource.service.rpc.CloudService; import jakarta.annotation.Resource; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; @Service public class AuthUserServiceImpl implements AuthUserService { @@ -31,6 +37,10 @@ public class AuthUserServiceImpl implements AuthUserService { private AuthUserDao userDao; @Resource private AuthUserRoleDao authUserRoleDao; + @Resource + private AuthUserStationDao authUserStationDao; + @Resource + private CloudService cloudService; @Override @@ -132,4 +142,31 @@ public class AuthUserServiceImpl implements AuthUserService { return new Result().success(n); } + @Override + public Result addUserStation(String stationIds, String uid) { + BaseResponse> result = cloudService.resourceList(stationIds); + if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){ + List stationlist = result.getData(); + if(!CollectionUtils.isEmpty(stationlist)){ + List list = new ArrayList(); + for (BatteryStation station : stationlist) { + AuthUserStation u = new AuthUserStation(); + u.setUid(uid); + u.setStationId(station.getPkId()); + u.setStationCode(station.getCode()); + list.add(u); + } + authUserStationDao.insert(list); + return new Result().success(list.size()); + } + } + return new Result().error("添加用户站信息失败!"); + } + + @Override + public BaseResponse> loadUserStation(String uid) { + return new BaseResponse>().success(authUserStationDao.selectList(new LambdaQueryWrapper().eq(AuthUserStation::getUid, uid).select(AuthUserStation::getStationId, AuthUserStation::getStationCode))); + } + + } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/DictServiceImpl.java b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/DictServiceImpl.java index badc42a..0eafc51 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/DictServiceImpl.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/DictServiceImpl.java @@ -1,10 +1,7 @@ package com.evotech.hd.resource.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; - +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.dao.resource.dict.DictDao; import com.evotech.hd.common.core.dao.resource.dict.DictTypeDao; @@ -16,15 +13,19 @@ import com.evotech.hd.common.core.enums.CodeMsg; import com.evotech.hd.resource.entity.DictInfo; import com.evotech.hd.resource.entity.request.ListDictTypeRequest; import com.evotech.hd.resource.service.DictService; - import jakarta.annotation.Resource; - +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.util.StringUtils; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; @Service +@Slf4j public class DictServiceImpl implements DictService { @Resource @@ -128,4 +129,14 @@ public class DictServiceImpl implements DictService { return new Result>().success(list); } + @Override + public List listDictByType(String typeCode) { + DictType dictType = dictTypeDao.selectOne(new LambdaQueryWrapper().eq(DictType::getTypeCode, typeCode)); + if(ObjectUtils.isEmpty(dictType)){ + log.info("typeCode:{}===未查询到当前类型", typeCode); + return Arrays.asList(new Dict()); + } + return dictDao.selectList(new LambdaQueryWrapper().eq(Dict::getTypeId, dictType.getPkId()).orderByAsc(Dict::getSort)); + } + } diff --git a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/MenuServiceImpl.java b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/MenuServiceImpl.java index 73d3ced..95e23b7 100644 --- a/resource-server/src/main/java/com/evotech/hd/resource/service/impl/MenuServiceImpl.java +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/impl/MenuServiceImpl.java @@ -1,12 +1,6 @@ package com.evotech.hd.resource.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import org.springframework.stereotype.Service; -import org.springframework.util.StringUtils; - +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.evotech.hd.common.core.constant.HDConstant; import com.evotech.hd.common.core.dao.resource.auth.AuthMenuDao; @@ -18,11 +12,20 @@ import com.evotech.hd.common.core.entity.resource.auth.AuthRoleResource; import com.evotech.hd.common.core.enums.CodeMsg; import com.evotech.hd.resource.service.MenuService; import com.evotech.hd.resource.utils.MenuUtil; - import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; @Service +@Slf4j public class MenuServiceImpl implements MenuService { @Resource @@ -89,9 +92,35 @@ public class MenuServiceImpl implements MenuService { if (menuList.isEmpty()) { return new Result>().error(CodeMsg.DATABASE_RESULT_NULL); } + buildParentAuthMenu(menuList); menuList = MenuUtil.treeMenuList(menuList, 0); return new Result>().success(menuList); } + + + public List buildParentAuthMenu(List menuList){ + //初始化加载父级 + try { + List pkIds = menuList.stream().map(AuthMenu::getPkId).collect(Collectors.toList()); + List lodParentIds = new ArrayList<>(); + menuList.stream().map(AuthMenu::getParentId).forEach(parentId -> { + if(!pkIds.contains(parentId) && !lodParentIds.contains(parentId)) { + lodParentIds.add(parentId); + } + }); + if(CollectionUtils.isNotEmpty(lodParentIds)) { + List parentList = authMenuDao.selectList(new QueryWrapper().in("pk_id", lodParentIds)); + if(CollectionUtils.isNotEmpty(parentList)) { + menuList.addAll(parentList); + } + } + } catch (Exception e) { + log.error("加载父级菜单出现异常: {}", e.getMessage()); + } + + return menuList; + } + } 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 1ea68c9..13619b9 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,15 +1,10 @@ package com.evotech.hd.resource.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import org.apache.ibatis.executor.BatchResult; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; - +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.constant.HDConstant; 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; @@ -17,13 +12,22 @@ import com.evotech.hd.common.core.entity.Result; 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.AuthUserRole; +import com.evotech.hd.common.core.entity.resource.dict.Dict; import com.evotech.hd.common.core.enums.CodeMsg; import com.evotech.hd.resource.entity.request.DelAddRoleSourceRequest; +import com.evotech.hd.resource.service.DictService; import com.evotech.hd.resource.service.RoleService; - -import cn.hutool.core.util.StrUtil; import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.apache.ibatis.executor.BatchResult; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; +import java.util.*; +import java.util.stream.Collectors; + +@Slf4j @Service public class RoleServiceImpl implements RoleService { @@ -33,18 +37,49 @@ public class RoleServiceImpl implements RoleService { private AuthRoleResourceDao authRoleResourceDao; @Resource private AuthUserRoleDao authUserRoleDao; - + @Resource + private DictService dictService; @Override public Result add(AuthRole r) { r.setCtime(new Date()); int n = authRoleDao.insert(r); if (n == 1) { - return new Result().success(n); + try { + addDefaultMenu(r); + } catch (Exception e) { + log.error("创建角色成功了, 但是初始化默认权限失败了",e); + } + return new Result().success(n); } return new Result().error("添加角色出错!"); } - + + public void addDefaultMenu(AuthRole r){ + List dictList = dictService.listDictByType(HDConstant.DEFAULT_MENU_TYPE); + if(CollectionUtils.isNotEmpty(dictList)){ + Map roleResourceMap = new LinkedHashMap<>(); + dictList.stream().forEach(dict ->{ + String[] codeArr = dict.getDictCode().split("_"); + String val = roleResourceMap.containsKey(codeArr[0])? roleResourceMap.get(codeArr[0]) : ""; + if(StringUtils.isEmpty(val)){ + val = dict.getDictValue(); + }else{ + val += "," + dict.getDictValue(); + } + roleResourceMap.put(codeArr[0], val); + }); + DelAddRoleSourceRequest darsr = new DelAddRoleSourceRequest(); + darsr.setRcode(r.getRcode()); + darsr.setTypes(roleResourceMap.keySet().stream().collect(Collectors.joining(";"))); + darsr.setSourceIds(roleResourceMap.values().stream().collect(Collectors.joining(";"))); + delAddRoleSource(darsr); + } + + } + + + @Override @Transactional public Result delete(Integer rid) { @@ -154,10 +189,9 @@ public class RoleServiceImpl implements RoleService { if (typeArr.length != sourceArr.length) { return new Result().error("参数格式错误"); } - // 2. 删除原来的 - authRoleResourceDao.delete(new QueryWrapper().eq("rcode", rcode)); // 3. 增加新的 Date d = new Date(); + List oldResourceIds = new ArrayList<>(); List list = new ArrayList(); for (int i = 0; i < typeArr.length; i++) { String[] sourceIdArr = sourceArr[i].split(","); @@ -167,9 +201,23 @@ public class RoleServiceImpl implements RoleService { arr.setResourceType(typeArr[i]); arr.setResourceId(Integer.valueOf(sourceIdArr[j])); arr.setCtime(d); - list.add(arr); + list.add(arr); + oldResourceIds.add(arr.getResourceId()); } } + List dictList = dictService.listDictByType(HDConstant.DEFAULT_MENU_TYPE); + List defaultIds = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(dictList)) { + dictList.stream().forEach(dict -> { + defaultIds.add(dict.getDictValue()); + }); + } + // 2. 删除原来的 + authRoleResourceDao.delete(new LambdaQueryWrapper().eq(AuthRoleResource::getRcode, rcode) + .notIn(CollectionUtils.isNotEmpty(defaultIds), AuthRoleResource::getResourceId, defaultIds) + .in(AuthRoleResource::getResourceType, typeArr).in(CollectionUtils.isNotEmpty(oldResourceIds) && darsr.getTypes().indexOf("MENU")< 0,AuthRoleResource::getResourceId, oldResourceIds) + ); + return addRoleSource(list); } 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 new file mode 100644 index 0000000..c5a6f3b --- /dev/null +++ b/resource-server/src/main/java/com/evotech/hd/resource/service/rpc/CloudService.java @@ -0,0 +1,19 @@ +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 org.springframework.cloud.openfeign.FeignClient; +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; + +import java.util.List; + +@FeignClient(name = "${CLOUD-SERVER-API-NAME}", path = "${CLOUD-SERVER-API-PATH}") +public interface CloudService { + + + @GetMapping(value = "/batterystation/resource/list", + consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE}) + public BaseResponse> resourceList(String pkIds); + +} diff --git a/resource-server/src/main/resources/application.yml b/resource-server/src/main/resources/application.yml index aa4b2a2..372b82b 100644 --- a/resource-server/src/main/resources/application.yml +++ b/resource-server/src/main/resources/application.yml @@ -12,10 +12,12 @@ logging: spring: # 服务名称必须带上,不然nacos服务列表中没有,也不会有注册成功的信息 application: - name: resource-server + name: ${resource-server:resource-server} config: import: - - nacos:${spring.application.name}.yaml?refreshEnabled=true + - nacos:yt-common.properties?refreshEnabled=true + - nacos:yt-redis.yaml?refreshEnabled=true + - nacos:resource-server.yaml?refreshEnabled=true cloud: nacos: serverAddr: 192.168.5.213:8848 @@ -30,6 +32,8 @@ spring: metadata: management: context-path: ${server.servlet.context-path}/actuator + config: + namespace: ${nacos.namespace:public} # 为springbootadmin开启所有检查 management: endpoints: diff --git a/resource-server/src/main/resources/mapper/AuthUserMapper.xml b/resource-server/src/main/resources/mapper/AuthUserMapper.xml index 634e361..8db01fc 100644 --- a/resource-server/src/main/resources/mapper/AuthUserMapper.xml +++ b/resource-server/src/main/resources/mapper/AuthUserMapper.xml @@ -26,6 +26,7 @@ + diff --git a/resource-server/src/main/resources/mapper/AuthUserStationMapper.xml b/resource-server/src/main/resources/mapper/AuthUserStationMapper.xml new file mode 100644 index 0000000..c59a81b --- /dev/null +++ b/resource-server/src/main/resources/mapper/AuthUserStationMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + pk_id, uid, station_code, station_id, creater, ctime, uptime + + + diff --git a/wechat-server/pom.xml b/wechat-server/pom.xml index ef476e8..735b6b4 100644 --- a/wechat-server/pom.xml +++ b/wechat-server/pom.xml @@ -21,12 +21,16 @@ common-web 1.0.0-SNAPSHOT - - com.evotech.hd - common-redis - 1.0.0-SNAPSHOT - - + + + + + + + com.evotech.hd + common-redis + 1.0.0-SNAPSHOT + com.evotech.hd common-mybatis @@ -80,8 +84,6 @@ core 3.5.3 - - diff --git a/wechat-server/src/main/java/com/evotech/hd/wechat/service/rpc/CloudService.java b/wechat-server/src/main/java/com/evotech/hd/wechat/service/rpc/CloudService.java index eb2757f..a1327dc 100644 --- a/wechat-server/src/main/java/com/evotech/hd/wechat/service/rpc/CloudService.java +++ b/wechat-server/src/main/java/com/evotech/hd/wechat/service/rpc/CloudService.java @@ -1,10 +1,12 @@ package com.evotech.hd.wechat.service.rpc; -import java.util.List; -import java.util.Map; - - +import com.evotech.hd.common.core.entity.Result; +import com.evotech.hd.common.core.entity.cloud.*; 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.common.core.entity.cloud.request.PageListWalletRequest; +import com.evotech.hd.common.core.entity.cloud.vo.BatteryStationVO; import com.evotech.hd.common.core.entity.wechat.WechatPayAttach; import jakarta.validation.constraints.NotBlank; import org.springframework.cloud.openfeign.FeignClient; @@ -14,20 +16,10 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; -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.TradeDetail; -import com.evotech.hd.common.core.entity.cloud.VehicleInfo; -import com.evotech.hd.common.core.entity.cloud.WalletAccount; -import com.evotech.hd.common.core.entity.cloud.WalletAccountDetail; -import com.evotech.hd.common.core.entity.cloud.request.PageListSwapOrderPreRequest; -import com.evotech.hd.common.core.entity.cloud.request.PageListSwapOrderRequest; -import com.evotech.hd.common.core.entity.cloud.request.PageListWalletRequest; -import com.evotech.hd.common.core.entity.cloud.vo.BatteryStationVO; +import java.util.List; +import java.util.Map; -@FeignClient(value = "cloud-server") +@FeignClient(value = "${CLOUD-SERVER-API-NAME}") public interface CloudService { @PostMapping(value = "/cloud/order/swap/pre/add", diff --git a/wechat-server/src/main/resources/application.yml b/wechat-server/src/main/resources/application.yml index 7f3ca00..2341794 100644 --- a/wechat-server/src/main/resources/application.yml +++ b/wechat-server/src/main/resources/application.yml @@ -12,10 +12,12 @@ logging: spring: # 服务名称必须带上,不然nacos服务列表中没有,也不会有注册成功的信息 application: - name: wechat-server + name: ${wechat-server:wechat-server} config: import: - - nacos:${spring.application.name}.yaml?refreshEnabled=true + - nacos:yt-common.properties?refreshEnabled=true + - nacos:yt-redis.yaml?refreshEnabled=true + - nacos:wechat-server.yaml?refreshEnabled=true cloud: nacos: serverAddr: 192.168.5.213:8848 @@ -30,6 +32,8 @@ spring: metadata: management: context-path: ${server.servlet.context-path}/actuator + config: + namespace: ${nacos.namespace:public} # 为springbootadmin开启所有检查 management: