Merge remote-tracking branch 'remotes/origin/permission_dev'

# Conflicts:
#	base-commons/common-core/src/main/java/com/evotech/hd/common/core/entity/cloud/BatteryStation.java
#	cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/OrderSwapBatteryService.java
#	cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/BatteryStationServiceImpl.java
#	cloud-manage-server/src/main/java/com/evotech/hd/cloud/service/impl/OrderSwapBatteryServiceImpl.java
#	gateway-server/src/main/java/com/evotech/hd/gateway/oauth2/AuthorizationManager.java
This commit is contained in:
andy 2025-04-18 10:09:04 +08:00
commit 204b814994
127 changed files with 2013 additions and 1354 deletions

View File

@ -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<List<BatteryStation>> loadBatteryStation(@RequestParam("proxyCode") String proxyCode);
@GetMapping(value = "/company/login/one", consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public BaseResponse<Company> loadCompany(@RequestParam("code") String code);
@GetMapping(value = "/vehicle/login/list", consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public BaseResponse<List<VehicleInfo>> loadVehicleInfo(@RequestParam("companyCode") String companyCode);
}

View File

@ -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<LoginCacheInfo> loginInfo(@RequestParam("uid") String uid);
@GetMapping(value = "/resource/user/station",consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE})
public BaseResponse<List<AuthUserStation>> loadBatteryStation(@RequestParam("uid") String uid);
}

View File

@ -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<List<BatteryStation>> result = cloudService.loadBatteryStation(user.getBusinessCode());
if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){
List<BatteryStation> 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<List<AuthUserStation>> result = resourceService.loadBatteryStation(user.getUid());
if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){
List<AuthUserStation> 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<Company> 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<List<VehicleInfo>> vehicleInfoResult = cloudService.loadVehicleInfo(company.getCcode());
if(CodeMsg.SUCCESS.getCode().equals(vehicleInfoResult.getCode())){
List<VehicleInfo> 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;
}

View File

@ -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

View File

@ -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<T> 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<T> success(T o) {
this.status = 1;
this.code = CodeMsg.SUCCESS.getCode();
this.msg = CodeMsg.SUCCESS.getMsg();
this.data = o;
return this;
}
}

View File

@ -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";

View File

@ -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<BatteryStationCdStrategy> {
List<BatteryStationCdStrategy> listCdStrategy(@Param("stationCode") String stationCode, @Param("status") Integer status);

View File

@ -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<BatteryStationCdStrategyDetail> {
List<BatteryStationCdStrategyDetail> getDetailById(Integer id);

View File

@ -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<HomeDataOrderSwapCollate> {
}

View File

@ -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<HomeDataTradeCollate> {
}

View File

@ -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<OrderSwapBattery> {
}

View File

@ -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<ProxyOperater> {
}

View File

@ -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<AuthRole> {
}

View File

@ -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<AuthUser> {
}

View File

@ -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<AuthUserStation> {
}

View File

@ -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<WechatUser> {
}

View File

@ -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;
}

View File

@ -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-按SOC3-按行驶公里数")
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<BatteryStationDc> dcList;
@Schema(description = "电池仓列表", hidden = true)
@TableField(exist = false)
private List<BatteryStationDcc> dccList;
@Schema(description = "电机列表", hidden = true)
@TableField(exist = false)
private List<BatteryStationDj> djList;
@Schema(description = "机器人列表", hidden = true)
@TableField(exist = false)
private List<BatteryStationRobot> robotList;
@ -151,5 +131,4 @@ public class BatteryStation implements Serializable {
@Schema(description = "营业止时间")
private String runEndTime;
}

View File

@ -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<BatteryStationCdStrategyDetail> detailList;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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 = "换电站编码")

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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)

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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();
}

View File

@ -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();
}

View File

@ -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) {}
}

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.evotech.hd</groupId>
<artifactId>base-commons</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>common-permission</artifactId>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.evotech.hd</groupId>
<artifactId>common-redis</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-extension</artifactId>
<version>3.5.7</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
</dependency>
<dependency>
<groupId>com.evotech.hd</groupId>
<artifactId>common-core</artifactId>
<version>1.0.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-jwt</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-oauth2-jose</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -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;
}
}

View File

@ -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 片段
* <p>旧的 {@link MultiDataPermissionHandler#getSqlSegment(Expression, String)} 方法第一个参数包含所有的 where 条件信息如果 return null 会覆盖原有的 where 数据</p>
* <p>新版的 {@link MultiDataPermissionHandler#getSqlSegment(Table, Expression, String)} 方法不能覆盖原有的 where 数据如果 return null 则表示不追加任何 where 条件</p>
*
* @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);
}
}

View File

@ -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());
}
}
}

View File

@ -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;
}
}

View File

@ -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> T getBean(Class<T> 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;
}
}

View File

@ -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);
}
}

View File

@ -14,5 +14,6 @@
<module>common-web</module>
<module>common-mybatis</module>
<module>common-redis</module>
<module>common-permission</module>
</modules>
</project>

View File

@ -26,13 +26,11 @@
<artifactId>common-mybatis</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.evotech.hd</groupId>
<artifactId>common-redis</artifactId>
<version>1.0.0-SNAPSHOT</version>
<groupId>com.evotech.hd</groupId>
<artifactId>common-permission</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
<!-- openfein -->
<dependency>
<groupId>org.springframework.cloud</groupId>
@ -82,8 +80,7 @@
<groupId>cn.hutool</groupId>
<artifactId>hutool-crypto</artifactId>
</dependency>
</dependencies>
</dependencies>
<build>
<finalName>${project.artifactId}</finalName>

View File

@ -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<List<BatteryStation>> loginList(@RequestParam String proxyCode) {
return batteryStationService.loginList(proxyCode);
}
@Operation(summary = "查询")
@GetMapping("/resource/list")
public BaseResponse<List<BatteryStation>> resourceList(@RequestParam String pkIds) {
return batteryStationService.resourceList(pkIds);
}
}

View File

@ -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<Company> loginOne(@RequestParam String code) {
return companyService.loginOne(code);
}
}

View File

@ -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<List<VehicleWechatUserRelation>> listRelationUser(@NotBlank @RequestParam String PlantNo) {
return vehicleService.listRelationUser(PlantNo);
}
@Operation(summary = "查询")
@GetMapping("/login/list")
@ApiOperationSupport(order = 4)
public BaseResponse<List<VehicleInfo>> loginList(@RequestParam String companyCode) {
return vehicleService.loginList(companyCode);
}
}

View File

@ -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<List<OrderSwapBatteryPre>> listPre(@ParameterObject PageListSwapOrderPreRequest plsopr) {
public Result<List<OrderSwapBatteryPre>> listPre(@ParameterObject PageListSwapOrderPreRequest plsopr) throws ParseException {
return orderSwapBatteryService.listPre(plsopr);
}

View File

@ -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<BatteryStation> {
List<BatteryStation> listStation(Page<BatteryStation> page, @Param("plbsr") PageListBatteryStationRequest plbsr);

View File

@ -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<BatteryStationDc> {
List<BatteryStationDc> getDcByStationCode(String stationCode);

View File

@ -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<BatteryStationDcc> {
List<BatteryStationDcc> getDccByStationCode(String stationCode);

View File

@ -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<BatteryStationDj> {
List<BatteryStationDj> getDjByStationCode(String stationCode);

View File

@ -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<BatteryStationHdFeeStandard> {
List<BatteryStationHdFeeStandard> listFeeStandard(@Param("stationCode") String stationCode, @Param("day") String day);

View File

@ -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<BatteryStationRobot> {
List<BatteryStationRobot> getRobotByStationCode(String stationCode);

View File

@ -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<BatteryStationSecretKey> {
}

View File

@ -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<Company> {
}

View File

@ -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<OrderRecharge> {
}

View File

@ -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<OrderSwapBatteryPre> {
}

View File

@ -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<TradeDetail> {
}

View File

@ -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<VehicleInfo> {
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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<Integer> 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<List<BatteryStation>> loginList(String proxyId);
public BaseResponse<List<BatteryStation>> resourceList(String pkIds);
}

View File

@ -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<Integer> add(Company company);
@ -19,4 +20,5 @@ public interface CompanyService {
public Result<Map<String, String>> companyByCode(String ccode);
public BaseResponse<Company> loginOne(String code);
}

View File

@ -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<Integer> addPre(OrderSwapBatteryPre osbp);
public Result<Integer> cancelPre(Integer id, Integer status);
public Result<List<OrderSwapBatteryPre>> listPre(PageListSwapOrderPreRequest plsopr);
public Result<List<OrderSwapBatteryPre>> listPre(PageListSwapOrderPreRequest plsopr) throws ParseException;
public Result<Integer> add(OrderSwapBattery osb);

View File

@ -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<Integer> add(VehicleInfo vi);
@ -28,4 +29,8 @@ public interface VehicleService {
public Result<List<VehicleInfo>> listWechatUserRelation(String openid, String plateNum);
public Result<List<VehicleWechatUserRelation>> listRelationUser(String PlantNo);
public BaseResponse<List<VehicleInfo>> loginList(String companyCode);
}

View File

@ -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<List<BatteryStation>> loginList(String proxyCode) {
return new BaseResponse<List<BatteryStation>>().success(batteryStationDao.selectList(new LambdaQueryWrapper<BatteryStation>().eq(BatteryStation::getProxyId, proxyCode).select(BatteryStation::getPkId, BatteryStation::getCode)));
}
@Override
public BaseResponse<List<BatteryStation>> resourceList(String pkIds) {
String[] pkIdArray = pkIds.split(",");
return new BaseResponse<List<BatteryStation>>().success(batteryStationDao.selectList(new LambdaQueryWrapper<BatteryStation>().eq((pkIdArray != null && pkIdArray.length > 0), BatteryStation::getPkId, Arrays.asList(pkIdArray)).eq(BatteryStation::getStatus, 1).eq(BatteryStation::getDelFlag, 0).select(BatteryStation::getPkId, BatteryStation::getCode)));
}
}

View File

@ -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<Map<String, String>>().success(m);
}
@Override
public BaseResponse<Company> loginOne(String code) {
return new BaseResponse<Company>().success(companyDao.selectOne(new LambdaQueryWrapper<Company>().eq(Company::getCcode, code)));
}
}

Some files were not shown because too many files have changed in this diff Show More