分账信息生成
This commit is contained in:
parent
93e47c4233
commit
a3f357ba55
@ -15,7 +15,7 @@ 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.Dto.ResponseUtil;
|
||||
import com.evotech.hd.common.core.constant.HDConstant;
|
||||
import com.evotech.hd.common.core.entity.LoginCacheInfo;
|
||||
import com.evotech.hd.common.core.entity.Result;
|
||||
@ -178,59 +178,47 @@ public class LoginServiceImpl implements LoginService {
|
||||
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(","));
|
||||
}
|
||||
if(Integer.valueOf(2).equals(user.getType())) {
|
||||
if (rcodeList.contains(HDConstant.OPERATOR_ROLE_CODE)) {
|
||||
List<BatteryStation> list = ResponseUtil.getValue(cloudService.loadBatteryStation(user.getBusinessCode()));
|
||||
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{
|
||||
} 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(","));
|
||||
}
|
||||
List<AuthUserStation> list = ResponseUtil.getValue(resourceService.loadBatteryStation(user.getUid()));
|
||||
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);
|
||||
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(","));
|
||||
}
|
||||
}
|
||||
String companyId = "-1", companyCode = "-1", carIds = "-1", carPlateNums = "-1";
|
||||
if (Integer.valueOf(3).equals(user.getType())) {
|
||||
if (rcodeList.contains(HDConstant.COMPANY_ROLE_CODE)) {
|
||||
Company company = ResponseUtil.getValue(cloudService.loadCompany(user.getBusinessCode()));
|
||||
if (!ObjectUtils.isEmpty(company)) {
|
||||
companyId = String.valueOf(company.getPkId());
|
||||
companyCode = company.getCcode();
|
||||
List<VehicleInfo> list = ResponseUtil.getValue(cloudService.loadVehicleInfo(company.getCcode()));
|
||||
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);
|
||||
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;
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
package com.evotech.hd.common.core.Dto;
|
||||
|
||||
import com.evotech.hd.common.core.enums.CodeMsg;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 类
|
||||
*
|
||||
* @ClassName:ResponseUtil
|
||||
* @date: 2025年04月22日 16:38
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Slf4j
|
||||
public class ResponseUtil {
|
||||
|
||||
|
||||
public static <T> T getValue(BaseResponse<T> result){
|
||||
if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){
|
||||
return result.getData();
|
||||
}
|
||||
log.error("当前请求出现异常{}", result.getMsg());
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,97 @@
|
||||
package com.evotech.hd.common.core.entity.cloud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 分账表
|
||||
* @ClassName:IndependentAccount
|
||||
* @date: 2025年04月22日 11:46
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
|
||||
@Data
|
||||
@TableName(value = "yt_t_independent_account", schema = "hd_cloud_manage")
|
||||
public class IndependentAccount {
|
||||
|
||||
|
||||
@TableId(value = "pk_id", type = IdType.AUTO)
|
||||
@Hidden
|
||||
private Integer pkId;
|
||||
/***
|
||||
* 运营商id
|
||||
*/
|
||||
private Integer porxyId;
|
||||
/***
|
||||
* 运营商Code
|
||||
*/
|
||||
private String porxyCode;
|
||||
/***
|
||||
* 运营商名称
|
||||
*/
|
||||
private String porxyName;
|
||||
/***
|
||||
* 订单数量
|
||||
*/
|
||||
private Integer orderCount;
|
||||
/***
|
||||
* 分账总金额
|
||||
*/
|
||||
private Double accountTotalAmount;
|
||||
|
||||
/***
|
||||
* 应分金额
|
||||
*/
|
||||
private Double orderTotalAmount;
|
||||
/***
|
||||
* 税点金额(总)
|
||||
*/
|
||||
private Double taxPointTotalAmount;
|
||||
/***
|
||||
* 手续费
|
||||
* 当前商户承担的手续费
|
||||
* 应分金额/提现总额*总手续费=当前商户承担手续费
|
||||
*/
|
||||
private Double handlingFee;
|
||||
|
||||
/***
|
||||
* 手续费
|
||||
* 当前操作产生的所有手续费
|
||||
*/
|
||||
private Double totalHandlingFee;
|
||||
/***
|
||||
* 实分金额
|
||||
*/
|
||||
private Double totalAmount;
|
||||
/***
|
||||
* 分账开始时间
|
||||
*/
|
||||
private Date independentAccountBegin;
|
||||
/***
|
||||
* 分账结束时间
|
||||
*/
|
||||
private Date independentAccountEnd;
|
||||
|
||||
/***
|
||||
* 分账状态 0待分账. 1已分账
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/***
|
||||
* 分账人uid
|
||||
*/
|
||||
private String creater;
|
||||
|
||||
@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;
|
||||
|
||||
}
|
||||
@ -0,0 +1,58 @@
|
||||
package com.evotech.hd.common.core.entity.cloud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 分账详情表
|
||||
* @ClassName:IndependentAccountDetail
|
||||
* @date: 2025年04月22日 11:58
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "yt_t_independent_account_detail", schema = "hd_cloud_manage")
|
||||
public class IndependentAccountDetail {
|
||||
|
||||
@TableId(value = "pk_id", type = IdType.AUTO)
|
||||
@Hidden
|
||||
private Integer pkId;
|
||||
/***
|
||||
* 分账表id
|
||||
*/
|
||||
private Integer independentAccountId;
|
||||
/***
|
||||
* 订单Id
|
||||
*/
|
||||
private Integer orderId;
|
||||
/***
|
||||
* 订单号
|
||||
*/
|
||||
private String orderNo;
|
||||
/***
|
||||
* 订单金额
|
||||
*/
|
||||
private Double orderAmount;
|
||||
|
||||
/***
|
||||
* 税点Id
|
||||
*/
|
||||
private Integer taxPointId;
|
||||
/***
|
||||
* 税点金额
|
||||
*/
|
||||
private Double taxPointAmount;
|
||||
|
||||
@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;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
package com.evotech.hd.common.core.entity.cloud;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.Hidden;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 税点表
|
||||
* @ClassName:TaxPoint
|
||||
* @date: 2025年04月22日 11:28
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Data
|
||||
@TableName(value = "yt_t_tax_point", schema = "hd_cloud_manage")
|
||||
public class TaxPoint {
|
||||
|
||||
@TableId(value = "pk_id", type = IdType.AUTO)
|
||||
@Hidden
|
||||
private Integer pkId;
|
||||
/***
|
||||
* 税点金额
|
||||
*/
|
||||
private Double taxPoint;
|
||||
/***
|
||||
* 税点金额, 具体参考 数据字典TAX_POINT
|
||||
*/
|
||||
private String taxPointRatio;
|
||||
/***
|
||||
* 订单id
|
||||
*/
|
||||
private Integer orderId;
|
||||
/***
|
||||
* 订单号
|
||||
*/
|
||||
private String orderNo;
|
||||
/***
|
||||
* 订单金额
|
||||
*/
|
||||
private Double orderAmount;
|
||||
|
||||
@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;
|
||||
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package com.evotech.hd.cloud.controller;
|
||||
|
||||
import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
|
||||
import com.evotech.hd.cloud.service.IndependentAccountService;
|
||||
import com.evotech.hd.common.core.entity.Result;
|
||||
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 org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 类
|
||||
*
|
||||
* @ClassName:IndependentAccountController
|
||||
* @date: 2025年04月23日 8:43
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Tag(name = "分账管理")
|
||||
@ApiSupport(order = 60)
|
||||
@RestController
|
||||
@RequestMapping("/independent/account")
|
||||
public class IndependentAccountController {
|
||||
|
||||
@Resource
|
||||
IndependentAccountService independentAccountService;
|
||||
|
||||
@Operation(summary = "查询")
|
||||
@GetMapping("/list")
|
||||
@ApiOperationSupport(order = 4)
|
||||
public Result<Map<String, Object>> list(@ParameterObject IndependentAccountRequest params) {
|
||||
return independentAccountService.pageList(params);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.evotech.hd.cloud.controller.adapter;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* @desc: 第三方推送请求
|
||||
* @ClassName:DHNoticeController
|
||||
* @date: 2025年04月19日 11:10
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/notice")
|
||||
public class NoticeController {
|
||||
|
||||
|
||||
|
||||
@PostMapping("/dh")
|
||||
public void dh(@RequestParam String info) {
|
||||
System.out.println(info);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.evotech.hd.cloud.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
|
||||
import com.evotech.hd.common.core.entity.cloud.IndependentAccount;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分账DAO接口
|
||||
* @ClassName:IndependentAccountDao
|
||||
* @date: 2025年04月22日 16:16
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface IndependentAccountDao extends BaseMapper<IndependentAccount> {
|
||||
|
||||
List<IndependentAccount> pageList(Page<IndependentAccount> page, @Param("params") IndependentAccountRequest params);
|
||||
|
||||
IndependentAccount countAmount(@Param("params") IndependentAccountRequest params);
|
||||
}
|
||||
@ -0,0 +1,16 @@
|
||||
package com.evotech.hd.cloud.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.evotech.hd.common.core.entity.cloud.IndependentAccountDetail;
|
||||
|
||||
/**
|
||||
* 接口
|
||||
*
|
||||
* @ClassName:IndependentAccountDetailDao
|
||||
* @date: 2025年04月22日 17:19
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface IndependentAccountDetailDao extends BaseMapper<IndependentAccountDetail> {
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.evotech.hd.cloud.dao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.evotech.hd.common.core.entity.cloud.TaxPoint;
|
||||
|
||||
/**
|
||||
* 接口
|
||||
* @ClassName:TaxPoint
|
||||
* @date: 2025年04月22日 13:42
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface TaxPointDao extends BaseMapper<TaxPoint> {
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.evotech.hd.cloud.entity.request;
|
||||
|
||||
import com.evotech.hd.common.core.entity.BasePageRequest;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
/**
|
||||
* 分账管理请求参数类
|
||||
*
|
||||
* @ClassName:IndependentAccountRequest
|
||||
* @date: 2025年04月23日 10:02
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Data
|
||||
@Schema(name = "分账管理请求参数", hidden = true)
|
||||
@EqualsAndHashCode(callSuper=false)
|
||||
public class IndependentAccountRequest extends BasePageRequest {
|
||||
|
||||
@Schema(description = "分账状态")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "运营商ID")
|
||||
private Integer porxyId;
|
||||
}
|
||||
@ -12,14 +12,13 @@ import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
|
||||
import org.springframework.boot.ApplicationArguments;
|
||||
import org.springframework.boot.ApplicationRunner;
|
||||
import org.springframework.core.annotation.Order;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.Date;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
@Component
|
||||
//@Component
|
||||
@Order(value = 20)
|
||||
@Slf4j
|
||||
public class MqttConnectInit implements ApplicationRunner {
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
package com.evotech.hd.cloud.service;
|
||||
|
||||
import com.evotech.hd.common.core.entity.cloud.TaxPoint;
|
||||
|
||||
/**
|
||||
* 分账详情接口
|
||||
*
|
||||
* @ClassName:IndependentAccountDetailService
|
||||
* @date: 2025年04月22日 17:17
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface IndependentAccountDetailService {
|
||||
|
||||
void addIndependentAccountDetail(TaxPoint taxPoint, Integer independentAccountId);
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.evotech.hd.cloud.service;
|
||||
|
||||
import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
|
||||
import com.evotech.hd.common.core.entity.Result;
|
||||
import com.evotech.hd.common.core.entity.cloud.TaxPoint;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 分账接口
|
||||
* @ClassName:IndependentAccountService
|
||||
* @date: 2025年04月22日 16:13
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface IndependentAccountService {
|
||||
|
||||
|
||||
void addIndependentAccount(TaxPoint taxPoint, String stationCode);
|
||||
|
||||
public Result<Map<String, Object>> pageList(IndependentAccountRequest params);
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.evotech.hd.cloud.service;
|
||||
|
||||
/**
|
||||
* 接口
|
||||
*
|
||||
* @ClassName:TaxPointService
|
||||
* @date: 2025年04月22日 13:29
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
public interface TaxPointService {
|
||||
|
||||
/***
|
||||
* 新增税点信息,
|
||||
* @param orderId 订单Id
|
||||
* @param orderNo 订单编号
|
||||
* @param totalAmount 订单金额
|
||||
* @param stationCode 换电站编码
|
||||
*/
|
||||
void addTaxPoint(Integer orderId, String orderNo, Double totalAmount, String stationCode);
|
||||
|
||||
|
||||
}
|
||||
@ -6,12 +6,11 @@ import com.evotech.hd.cloud.device.dh.DHRequestUtil;
|
||||
import com.evotech.hd.cloud.service.BatteryStationService;
|
||||
import com.evotech.hd.cloud.service.DHDeviceService;
|
||||
import com.evotech.hd.cloud.service.rpc.ResourceService;
|
||||
import com.evotech.hd.common.core.Dto.BaseResponse;
|
||||
import com.evotech.hd.common.core.Dto.DeviceDto;
|
||||
import com.evotech.hd.common.core.Dto.ResponseUtil;
|
||||
import com.evotech.hd.common.core.constant.HDConstant;
|
||||
import com.evotech.hd.common.core.entity.Result;
|
||||
import com.evotech.hd.common.core.entity.resource.ProxyOperater;
|
||||
import com.evotech.hd.common.core.enums.CodeMsg;
|
||||
import com.evotech.hd.common.core.utils.Collections;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -44,9 +43,9 @@ public class DHDeviceServiceImpl implements DHDeviceService {
|
||||
@Override
|
||||
public Result<List<DeviceDto>> findList() {
|
||||
List<DeviceDto> result = new ArrayList<>();
|
||||
BaseResponse<List<ProxyOperater>> proxyResult = resourceService.deviceList();
|
||||
if(CodeMsg.SUCCESS.getCode().equals(proxyResult.getCode())){
|
||||
proxyResult.getData().forEach(proxy ->{
|
||||
List<ProxyOperater> proxyResult = ResponseUtil.getValue(resourceService.deviceList());
|
||||
if(Collections.isNotEmpty(proxyResult)){
|
||||
proxyResult.forEach(proxy ->{
|
||||
result.add(new DeviceDto(proxy.getPocode(),"0", proxy.getPoname(),"","", buildStation(proxy.getPocode())));
|
||||
});
|
||||
}
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
package com.evotech.hd.cloud.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.evotech.hd.cloud.dao.IndependentAccountDetailDao;
|
||||
import com.evotech.hd.cloud.service.IndependentAccountDetailService;
|
||||
import com.evotech.hd.common.core.entity.cloud.IndependentAccountDetail;
|
||||
import com.evotech.hd.common.core.entity.cloud.TaxPoint;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* 分账详情接口实现类
|
||||
*
|
||||
* @ClassName:IndependentAccountDetailServiceImpl
|
||||
* @date: 2025年04月22日 17:18
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
public class IndependentAccountDetailServiceImpl implements IndependentAccountDetailService {
|
||||
|
||||
@Resource
|
||||
IndependentAccountDetailDao independentAccountDetailDao;
|
||||
|
||||
@Override
|
||||
public void addIndependentAccountDetail(TaxPoint taxPoint, Integer independentAccountId) {
|
||||
try {
|
||||
IndependentAccountDetail detail = new IndependentAccountDetail();
|
||||
detail.setOrderId(taxPoint.getOrderId());
|
||||
detail.setOrderNo(taxPoint.getOrderNo());
|
||||
detail.setOrderAmount(taxPoint.getOrderAmount());
|
||||
detail.setTaxPointId(taxPoint.getPkId());
|
||||
detail.setTaxPointAmount(taxPoint.getTaxPoint());
|
||||
detail.setIndependentAccountId(independentAccountId);
|
||||
independentAccountDetailDao.insert(detail);
|
||||
} catch (Exception e) {
|
||||
log.error("生成分账详情表出现错误, 税点信息为:{}; 分账ID为:{}, 错误信息为:{}", JSON.toJSONString(taxPoint), independentAccountId, e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
package com.evotech.hd.cloud.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.evotech.hd.cloud.dao.BatteryStationDao;
|
||||
import com.evotech.hd.cloud.dao.IndependentAccountDao;
|
||||
import com.evotech.hd.cloud.entity.request.IndependentAccountRequest;
|
||||
import com.evotech.hd.cloud.service.IndependentAccountDetailService;
|
||||
import com.evotech.hd.cloud.service.IndependentAccountService;
|
||||
import com.evotech.hd.cloud.service.rpc.ResourceService;
|
||||
import com.evotech.hd.common.core.Dto.ResponseUtil;
|
||||
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.IndependentAccount;
|
||||
import com.evotech.hd.common.core.entity.cloud.TaxPoint;
|
||||
import com.evotech.hd.common.core.entity.resource.ProxyOperater;
|
||||
import com.evotech.hd.common.core.enums.CodeMsg;
|
||||
import com.evotech.hd.common.core.utils.Collections;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 分账接口实现类
|
||||
*
|
||||
* @ClassName:IndependentAccountServiceImpl
|
||||
* @date: 2025年04月22日 16:15
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Service
|
||||
@Slf4j
|
||||
public class IndependentAccountServiceImpl implements IndependentAccountService {
|
||||
|
||||
@Resource
|
||||
IndependentAccountDao independentAccountDao;
|
||||
@Resource
|
||||
private BatteryStationDao batteryStationDao;
|
||||
@Resource
|
||||
private ResourceService resourceService;
|
||||
@Resource
|
||||
IndependentAccountDetailService independentAccountDetailService;
|
||||
@Override
|
||||
public void addIndependentAccount(TaxPoint taxPoint, String stationCode) {
|
||||
try {
|
||||
//获取没有删除的站点信息
|
||||
BatteryStation batteryStation = batteryStationDao.selectOne(new LambdaQueryWrapper<BatteryStation>().eq(BatteryStation::getCode, stationCode).eq(BatteryStation::getDelFlag, 0).select(BatteryStation::getProxyId), false);
|
||||
if(ObjectUtils.isEmpty(batteryStation)){
|
||||
log.error("未找到对应的站点信息. 站点code{}", stationCode);
|
||||
return;
|
||||
}
|
||||
ProxyOperater proxyOperater = ResponseUtil.getValue(resourceService.basicInfo(batteryStation.getProxyId()));
|
||||
if(ObjectUtils.isEmpty(proxyOperater)){
|
||||
log.error("未找到对应的运营商信息. 站点code{}", stationCode);
|
||||
return;
|
||||
}
|
||||
|
||||
IndependentAccount independentAccount = independentAccountDao.selectOne(new LambdaQueryWrapper<IndependentAccount>().eq(IndependentAccount::getPorxyId, proxyOperater.getPkId()).eq(IndependentAccount::getStatus, 0), false);
|
||||
if(ObjectUtils.isEmpty(proxyOperater)){
|
||||
independentAccount = new IndependentAccount();
|
||||
independentAccount.setIndependentAccountBegin(new Date());
|
||||
independentAccount.setStatus(0);
|
||||
}
|
||||
//更新信息
|
||||
independentAccount.setPorxyId(proxyOperater.getPkId());
|
||||
independentAccount.setPorxyCode(proxyOperater.getPocode());
|
||||
independentAccount.setPorxyName(proxyOperater.getPoname());
|
||||
independentAccount.setOrderCount(calculate(independentAccount.getOrderCount(), 1));
|
||||
independentAccount.setOrderTotalAmount(calculate(independentAccount.getOrderTotalAmount(), taxPoint.getOrderAmount()));
|
||||
independentAccount.setTaxPointTotalAmount(calculate(independentAccount.getTaxPointTotalAmount(), taxPoint.getTaxPoint()));
|
||||
independentAccount.setTotalAmount(calculate(independentAccount.getTotalAmount(), new BigDecimal(taxPoint.getOrderAmount()).subtract(new BigDecimal(taxPoint.getTaxPoint())).doubleValue()));
|
||||
int up = 0;
|
||||
//如果为空, 则新增
|
||||
if(independentAccount.getPkId() == null){
|
||||
up = independentAccountDao.insert(independentAccount);
|
||||
}else{
|
||||
//不为空, 修改
|
||||
up = independentAccountDao.updateById(independentAccount);
|
||||
}
|
||||
//修改或者新增成功, 处理详情信息
|
||||
if(up > 0){
|
||||
independentAccountDetailService.addIndependentAccountDetail(taxPoint, independentAccount.getPkId());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("生成分账表出现错误, 税点信息为:{}; 站点CODE为:{}, 错误信息为:{}", JSON.toJSONString(taxPoint), stationCode, e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<Map<String, Object>> pageList(IndependentAccountRequest params) {
|
||||
Page<IndependentAccount> page = new Page<IndependentAccount>(params.getPageNo(), params.getPageSize());
|
||||
List<IndependentAccount> list = independentAccountDao.pageList(page, params);
|
||||
if (list.isEmpty()) {
|
||||
return new Result<Map<String, Object>>().error(CodeMsg.DATABASE_RESULT_NULL);
|
||||
}
|
||||
|
||||
IndependentAccount totalAmount = independentAccountDao.countAmount(params);
|
||||
|
||||
return new Result<Map<String, Object>>().success(Collections.asMap("pageList", page.setRecords(list), "totalAmount", totalAmount));
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static <T> T calculate(T baseNum, T addNum){
|
||||
BigDecimal va = new BigDecimal(String.valueOf((ObjectUtils.isEmpty(baseNum) ? 0 : baseNum))).add(new BigDecimal(String.valueOf(addNum)));
|
||||
if(baseNum instanceof Integer){
|
||||
return (T)Integer.valueOf(va.intValue());
|
||||
}
|
||||
if(baseNum instanceof Double){
|
||||
return (T)Double.valueOf(va.doubleValue());
|
||||
}
|
||||
return baseNum;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package com.evotech.hd.cloud.service.impl;
|
||||
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.evotech.hd.cloud.dao.TaxPointDao;
|
||||
import com.evotech.hd.cloud.service.IndependentAccountService;
|
||||
import com.evotech.hd.cloud.service.TaxPointService;
|
||||
import com.evotech.hd.cloud.service.rpc.ResourceService;
|
||||
import com.evotech.hd.common.core.entity.Result;
|
||||
import com.evotech.hd.common.core.entity.cloud.TaxPoint;
|
||||
import com.evotech.hd.common.core.entity.resource.dict.Dict;
|
||||
import com.evotech.hd.common.core.enums.CodeMsg;
|
||||
import com.evotech.hd.common.core.utils.Collections;
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 税点表serviceImpl
|
||||
* @ClassName:TaxPointServiceImpl
|
||||
* @date: 2025年04月22日 13:41
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class TaxPointServiceImpl implements TaxPointService {
|
||||
|
||||
@Resource
|
||||
TaxPointDao taxPointDao;
|
||||
@Resource
|
||||
private ResourceService resourceService;
|
||||
|
||||
@Resource
|
||||
IndependentAccountService independentAccountService;
|
||||
|
||||
@Override
|
||||
public void addTaxPoint(Integer orderId, String orderNo, Double totalAmount, String stationCode) {
|
||||
try {
|
||||
//检查当前订单是否生成过税点信息
|
||||
if(taxPointDao.exists(new LambdaQueryWrapper<TaxPoint>().eq(TaxPoint::getOrderId, orderId).eq(TaxPoint::getOrderNo, orderNo).select(TaxPoint::getPkId))){
|
||||
log.error("当前订单信息的税点信息已经存在; 订单ID{}, 订单编号{}, 订单金额{}, 站点CODE:{};", orderId, orderNo, totalAmount, stationCode);
|
||||
return;
|
||||
}
|
||||
//设置默认税点比例为3%
|
||||
String taxPointRatio = "3";
|
||||
//获取税点比例信息
|
||||
Result<List<Dict>> res = resourceService.listDict("TAX_POINT");
|
||||
if (CodeMsg.SUCCESS.getCode().equals(res.getCode())) {
|
||||
List<Dict> list = JSONUtil.toList(JSONUtil.parseArray(res.getData()), Dict.class);
|
||||
if(Collections.isNotEmpty(list)){
|
||||
taxPointRatio = list.get(0).getDictValue();
|
||||
}
|
||||
}
|
||||
//计算税点金额
|
||||
Double taxPointAmount = new BigDecimal(taxPointRatio).divide(new BigDecimal(100)).multiply(new BigDecimal(totalAmount)).doubleValue();
|
||||
|
||||
TaxPoint taxPoint = new TaxPoint();
|
||||
taxPoint.setTaxPoint(taxPointAmount);
|
||||
taxPoint.setTaxPointRatio(taxPointRatio);
|
||||
taxPoint.setOrderId(orderId);
|
||||
taxPoint.setOrderNo(orderNo);
|
||||
taxPoint.setOrderAmount(totalAmount);
|
||||
log.info("记录订单的税点信息:{}", JSON.toJSONString(taxPoint));
|
||||
if(taxPointDao.insert(taxPoint) > 0){
|
||||
//生成待分账信息
|
||||
independentAccountService.addIndependentAccount(taxPoint, stationCode);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("生成税点信息出现错误, 订单ID{}, 订单编号{}, 订单金额{}, 站点CODE:{}, 错误信息:{};", orderId, orderNo, totalAmount, stationCode, e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,27 +1,23 @@
|
||||
package com.evotech.hd.cloud.service.newthread;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.evotech.hd.cloud.dao.WalletAccountDao;
|
||||
import com.evotech.hd.cloud.dao.WalletAccountDetailDao;
|
||||
import com.evotech.hd.cloud.service.TaxPointService;
|
||||
import com.evotech.hd.common.core.dao.cloud.OrderSwapBatteryDao;
|
||||
import com.evotech.hd.common.core.dao.cloud.PreOrderRelationSwapOrderDao;
|
||||
import com.evotech.hd.common.core.entity.cloud.OrderSwapBattery;
|
||||
import com.evotech.hd.common.core.entity.cloud.PreOrderRelationSwapOrder;
|
||||
import com.evotech.hd.common.core.entity.cloud.TradeDetail;
|
||||
import com.evotech.hd.common.core.entity.cloud.WalletAccount;
|
||||
import com.evotech.hd.common.core.entity.cloud.WalletAccountDetail;
|
||||
import com.evotech.hd.common.core.entity.cloud.*;
|
||||
import com.evotech.hd.common.core.enums.OrderStatusEnums;
|
||||
import com.evotech.hd.common.core.enums.TradeResultEnums;
|
||||
import com.evotech.hd.common.core.enums.WechatPayApiTypeEnums;
|
||||
|
||||
import jakarta.annotation.Resource;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@ -37,9 +33,11 @@ public class WechatPayNotifyHandleService {
|
||||
private OrderSwapBatteryDao orderSwapBatteryDao;
|
||||
@Resource
|
||||
private PreOrderRelationSwapOrderDao preOrderRelationSwapOrderDao;
|
||||
|
||||
|
||||
// @Async("taskExecutor")
|
||||
@Resource
|
||||
TaxPointService taxPointService;
|
||||
|
||||
|
||||
// @Async("taskExecutor")
|
||||
public void payNotifyBussinessHandle(TradeDetail tradeDetail) {
|
||||
if (tradeDetail.getTradeType() == 1) {
|
||||
// 充值
|
||||
@ -107,7 +105,13 @@ public class WechatPayNotifyHandleService {
|
||||
if (TradeResultEnums.SUCCESS.getName().equals(tradeDetail.getPayResult())) {
|
||||
// 支付成功,修改订单
|
||||
afterPayAlterOrder(tradeDetail, one);
|
||||
// 发送公众号消息
|
||||
//税点信息记录
|
||||
try {
|
||||
taxPointService.addTaxPoint(one.getPkId(), one.getOrderNo(), Double.valueOf(one.getAmount()), one.getStationCode());
|
||||
} catch (Exception e) {
|
||||
log.error("jsapiPay=====生成税点信息异常,订单信息{}; 异常信息{}", JSON.toJSONString(one), e.getMessage());
|
||||
}
|
||||
// 发送公众号消息
|
||||
templateMessageService.orderMessageSend(one, 3);
|
||||
}
|
||||
} else {
|
||||
@ -133,7 +137,20 @@ public class WechatPayNotifyHandleService {
|
||||
orderSwapBatteryDao.update(new UpdateWrapper<OrderSwapBattery>().in("pk_id", idList)
|
||||
.set("status", OrderStatusEnums.FINISH.getCode())
|
||||
.set("trade_no", tradeDetail.getOutTradeNo()));
|
||||
// 发送公众号消息,发给企业绑定的微信号
|
||||
|
||||
try {
|
||||
orderList.stream().forEach(order->{
|
||||
//税点信息记录
|
||||
try {
|
||||
taxPointService.addTaxPoint(order.getPkId(), order.getOrderNo(), Double.valueOf(order.getAmount()), order.getStationCode());
|
||||
} catch (Exception e) {
|
||||
log.error("生成税点信息异常,订单信息{}; 异常信息{}", JSON.toJSONString(order), e.getMessage());
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
log.error("nativePay 生成税点信息异常,异常信息{}", e.getMessage());
|
||||
}
|
||||
// 发送公众号消息,发给企业绑定的微信号
|
||||
// templateMessageService.orderMessageSend(one, 3);
|
||||
}
|
||||
|
||||
|
||||
@ -13,8 +13,8 @@ import java.util.List;
|
||||
|
||||
@FeignClient(name = "${RESOURCE-SERVER-API-NAME}", path = "${RESOURCE-SERVER-API-PATH}")
|
||||
public interface ResourceService {
|
||||
|
||||
|
||||
|
||||
|
||||
@GetMapping(value = "/dict/listdict",
|
||||
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
|
||||
public Result<List<Dict>> listDict(@RequestParam String typeCode);
|
||||
@ -22,5 +22,8 @@ public interface ResourceService {
|
||||
@GetMapping(value = "/proxyoperater/device/list",
|
||||
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
|
||||
public BaseResponse<List<ProxyOperater>> deviceList();
|
||||
|
||||
|
||||
@GetMapping(value = "/proxyoperater/basic/info",
|
||||
consumes = {MediaType.APPLICATION_FORM_URLENCODED_VALUE})
|
||||
public BaseResponse<ProxyOperater> basicInfo(@RequestParam String proxyCode);
|
||||
}
|
||||
|
||||
@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.evotech.hd.cloud.dao.IndependentAccountDao">
|
||||
|
||||
<!-- 通用查询映射结果 -->
|
||||
<resultMap id="BaseResultMap" type="com.evotech.hd.common.core.entity.cloud.IndependentAccount">
|
||||
<id column="pk_id" property="pkId" />
|
||||
<result column="proxy_id" property="proxyId" />
|
||||
<result column="porxy_code" property="porxyCode" />
|
||||
<result column="porxy_name" property="porxyName" />
|
||||
<result column="order_count" property="orderCount" />
|
||||
<result column="account_total_amount" property="accountTotalAmount" />
|
||||
<result column="order_total_amount" property="orderTotalAmount" />
|
||||
<result column="tax_point_total_amount" property="taxPointTotalAmount" />
|
||||
<result column="total_amount" property="totalAmount" />
|
||||
<result column="handling_fee" property="handlingFee" />
|
||||
<result column="total_handling_fee" property="totalHandlingFee" />
|
||||
<result column="independent_account_begin" property="independentAccountBegin" />
|
||||
<result column="independent_account_end" property="independentAccountEnd" />
|
||||
<result column="status" property="status" />
|
||||
<result column="ctime" property="ctime" />
|
||||
<result column="creater" property="creater" />
|
||||
</resultMap>
|
||||
|
||||
|
||||
<select id="pageList" resultMap="BaseResultMap">
|
||||
select
|
||||
account.pk_id,
|
||||
account.proxy_id,
|
||||
account.porxy_name,
|
||||
ifnull(account.order_count, 0) as order_count,
|
||||
ifnull(account.account_total_amount, 0) as account_total_amount,
|
||||
ifnull(account.order_total_amount, 0) as order_total_amount,
|
||||
ifnull(account.tax_point_total_amount, 0) as tax_point_total_amount,
|
||||
ifnull(account.total_amount, 0) as total_amount,
|
||||
ifnull(account.handling_fee, 0) as handling_fee,
|
||||
ifnull(account.total_handling_fee, 0) as total_handling_fee,
|
||||
account.independent_account_begin,
|
||||
account.independent_account_end,
|
||||
account.status
|
||||
from hd_resource.yt_t_proxy_operater proxy
|
||||
left join yt_t_independent_account account on account.porxy_id = proxy.pk_id
|
||||
where
|
||||
account.status = #{params.status}
|
||||
<if test="params.proxyId != null ">
|
||||
and account.proxy_id = #{params.proxyId}
|
||||
</if>
|
||||
order by account.pk_id desc
|
||||
</select>
|
||||
|
||||
<select id="countAmount" resultMap="BaseResultMap">
|
||||
select
|
||||
account.pk_id,
|
||||
account.proxy_id,
|
||||
account.porxy_name,
|
||||
sum(ifnull(account.order_count, 0)) as order_count,
|
||||
sum(ifnull(account.account_total_amount, 0)) as account_total_amount,
|
||||
sum(ifnull(account.order_total_amount, 0)) as order_total_amount,
|
||||
sum(ifnull(account.tax_point_total_amount, 0)) as tax_point_total_amount,
|
||||
sum(ifnull(account.total_amount, 0)) as total_amount,
|
||||
sum(ifnull(account.handling_fee, 0)) as handling_fee,
|
||||
sum(ifnull(account.total_handling_fee, 0)) as total_handling_fee,
|
||||
account.independent_account_begin,
|
||||
account.independent_account_end,
|
||||
account.status
|
||||
from hd_resource.yt_t_proxy_operater proxy
|
||||
left join yt_t_independent_account account on account.porxy_id = proxy.pk_id
|
||||
where
|
||||
account.status = #{params.status}
|
||||
<if test="params.proxyId != null ">
|
||||
and account.proxy_id = #{params.proxyId}
|
||||
</if>
|
||||
order by account.pk_id desc
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -12,10 +12,7 @@ import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
import org.springdoc.core.annotations.ParameterObject;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -57,11 +54,17 @@ public class ProxyOperaterController {
|
||||
return proxyOperaterService.list(plpor);
|
||||
}
|
||||
|
||||
@Operation(summary = "查询")
|
||||
@GetMapping("/device/list")
|
||||
@ApiOperationSupport(order = 4)
|
||||
public BaseResponse<List<ProxyOperater>> deviceList() {
|
||||
return proxyOperaterService.deviceList();
|
||||
}
|
||||
|
||||
@GetMapping("/basic/info")
|
||||
public BaseResponse<ProxyOperater> basicInfo(@RequestParam String proxyCode) {
|
||||
return proxyOperaterService.basicInfo(proxyCode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -18,4 +18,6 @@ public interface ProxyOperaterService {
|
||||
public Result<List<ProxyOperater>> list(PageListProxyOperaterRequest plpor);
|
||||
|
||||
public BaseResponse<List<ProxyOperater>> deviceList();
|
||||
|
||||
BaseResponse<ProxyOperater> basicInfo(String proxyCode);
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.evotech.hd.common.core.Dto.BaseResponse;
|
||||
import com.evotech.hd.common.core.Dto.ResponseUtil;
|
||||
import com.evotech.hd.common.core.dao.resource.ProxyOperaterDao;
|
||||
import com.evotech.hd.common.core.dao.resource.auth.AuthUserDao;
|
||||
import com.evotech.hd.common.core.dao.resource.auth.AuthUserRoleDao;
|
||||
@ -18,6 +19,7 @@ import com.evotech.hd.common.core.entity.resource.auth.AuthUser;
|
||||
import com.evotech.hd.common.core.entity.resource.auth.AuthUserRole;
|
||||
import com.evotech.hd.common.core.entity.resource.auth.AuthUserStation;
|
||||
import com.evotech.hd.common.core.enums.CodeMsg;
|
||||
import com.evotech.hd.common.core.utils.Collections;
|
||||
import com.evotech.hd.common.core.utils.SnowflakeUtil;
|
||||
import com.evotech.hd.common.permission.util.RedisPermissionUtils;
|
||||
import com.evotech.hd.resource.entity.request.ListUserRequest;
|
||||
@ -131,9 +133,9 @@ public class AuthUserServiceImpl implements AuthUserService {
|
||||
}
|
||||
|
||||
Map<String, String> businessNames = proxyOperaterDao.selectList(new LambdaQueryWrapper<ProxyOperater>().select(ProxyOperater::getPocode, ProxyOperater::getPoname)).stream().collect(Collectors.toMap(ProxyOperater::getPocode, ProxyOperater::getPoname, (k1, k2)->k1));
|
||||
BaseResponse<List<Company>> companyResult = cloudService.resourceCompanyList();
|
||||
if(CodeMsg.SUCCESS.getCode().equals(companyResult.getCode())){
|
||||
businessNames.putAll(companyResult.getData().stream().collect(Collectors.toMap(Company::getCcode, Company::getCname, (k1,k2)->k1)));
|
||||
List<Company> companyList = ResponseUtil.getValue(cloudService.resourceCompanyList());
|
||||
if(Collections.isNotEmpty(companyList)){
|
||||
businessNames.putAll(companyList.stream().collect(Collectors.toMap(Company::getCcode, Company::getCname, (k1,k2)->k1)));
|
||||
}
|
||||
page.getRecords().stream().forEach(user ->{
|
||||
if(StringUtils.hasText(user.getBusinessCode())){
|
||||
@ -176,9 +178,8 @@ public class AuthUserServiceImpl implements AuthUserService {
|
||||
|
||||
@Override
|
||||
public Result<Integer> addUserStation(String stationIds, String uid) {
|
||||
BaseResponse<List<BatteryStation>> result = cloudService.resourceList(stationIds);
|
||||
if(CodeMsg.SUCCESS.getCode().equals(result.getCode())){
|
||||
List<BatteryStation> stationlist = result.getData();
|
||||
List<BatteryStation> stationlist = ResponseUtil.getValue(cloudService.resourceList(stationIds));
|
||||
if(Collections.isNotEmpty(stationlist)){
|
||||
if(!CollectionUtils.isEmpty(stationlist)){
|
||||
List<AuthUserStation> list = new ArrayList<AuthUserStation>();
|
||||
for (BatteryStation station : stationlist) {
|
||||
|
||||
@ -76,4 +76,9 @@ public class ProxyOperaterServiceImpl implements ProxyOperaterService {
|
||||
return new BaseResponse<List<ProxyOperater>>().success(proxyOperaterDao.selectList(new LambdaQueryWrapper<ProxyOperater>().eq(ProxyOperater::getStatus, 1).eq(ProxyOperater::getDelFlag, 0).select(ProxyOperater::getPkId, ProxyOperater::getPoname,ProxyOperater::getPocode)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public BaseResponse<ProxyOperater> basicInfo(String proxyCode) {
|
||||
return new BaseResponse<ProxyOperater>().success(proxyOperaterDao.selectOne(new LambdaQueryWrapper<ProxyOperater>().eq(ProxyOperater::getPocode, proxyCode).select(ProxyOperater::getPkId, ProxyOperater::getPoname,ProxyOperater::getPocode), false));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.nacos.common.utils.CollectionUtils;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.evotech.hd.common.core.Dto.BaseResponse;
|
||||
import com.evotech.hd.common.core.Dto.ResponseUtil;
|
||||
import com.evotech.hd.common.core.constant.HDConstant;
|
||||
import com.evotech.hd.common.core.dao.resource.ProxyOperaterDao;
|
||||
import com.evotech.hd.common.core.dao.resource.auth.AuthRoleDao;
|
||||
@ -138,9 +138,9 @@ public class RoleServiceImpl implements RoleService {
|
||||
return new Result<List<AuthRole>>().error(CodeMsg.DATABASE_RESULT_NULL);
|
||||
}
|
||||
Map<String, String> businessNames = proxyOperaterDao.selectList(new LambdaQueryWrapper<ProxyOperater>().select(ProxyOperater::getPocode, ProxyOperater::getPoname)).stream().collect(Collectors.toMap(ProxyOperater::getPocode, ProxyOperater::getPoname, (k1,k2)->k1));
|
||||
BaseResponse<List<Company>> companyResult = cloudService.resourceCompanyList();
|
||||
if(CodeMsg.SUCCESS.getCode().equals(companyResult.getCode())){
|
||||
businessNames.putAll(companyResult.getData().stream().collect(Collectors.toMap(Company::getCcode, Company::getCname, (k1,k2)->k1)));
|
||||
List<Company> companyList = ResponseUtil.getValue(cloudService.resourceCompanyList());
|
||||
if(CollectionUtils.isNotEmpty(companyList)){
|
||||
businessNames.putAll(companyList.stream().collect(Collectors.toMap(Company::getCcode, Company::getCname, (k1,k2)->k1)));
|
||||
}
|
||||
roleList.stream().forEach(role ->{
|
||||
if(StringUtils.hasText(role.getBusinessCode())){
|
||||
|
||||
Loading…
Reference in New Issue
Block a user