提交 7fe202f3 authored 作者: huyufan's avatar huyufan

结算单

上级 afe0081a
package com.clx.performance.param.pc;
import com.msl.common.base.PageParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class PageNetworkAccountListParam extends PageParam {
@ApiModelProperty(value = "手机号", example = "13966554477")
private String mobile;
@ApiModelProperty(value = "车主名称")
private String driverUserName;
@ApiModelProperty(value = "司机编码")
private Long driverUserNo;
}
package com.clx.performance.vo.pc;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
public class NetworkDriverAccountVO {
private Integer id;
@ApiModelProperty("司机编码")
private String driverUserNo;
@ApiModelProperty("司机名称")
private String driverUserName;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("账户余额")
private BigDecimal accountBalance;
@ApiModelProperty("可用余额")
private BigDecimal usableBalance;
@ApiModelProperty("冻结余额")
private BigDecimal frozenBalance;
@ApiModelProperty("钱包code")
private String walletCode;
@ApiModelProperty("创建人")
private String createBy;
@ApiModelProperty("创建时间")
private String createTime;
@ApiModelProperty("修改时间")
private String modifiedTime;
}
package com.clx.performance.controller.pc.driver;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.model.OwnerTransferInfo;
import com.clx.performance.param.pc.*;
import com.clx.performance.param.pc.owner.CreteAccountParam;
import com.clx.performance.service.*;
import com.clx.performance.service.settle.NetworkDriverAccountService;
import com.clx.performance.vo.pc.*;
import com.clx.user.vo.pc.owner.OwnerBindCardVO;
import com.msl.common.base.PageData;
import com.msl.common.convertor.aspect.UnitCovert;
import com.msl.common.result.Result;
import com.msl.user.data.UserSessionData;
import com.msl.user.utils.TokenUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
@Slf4j
@RestController
@RequestMapping("/pc/driver")
@Validated
@AllArgsConstructor
@Api(tags = "PC-车主网络货运")
public class NetworkDriverAccountController {
private final NetworkDriverAccountService networkDriverAccountService;
@ApiOperation(value = "网络货运账户列表", notes = "<br>By:胡宇帆")
@PostMapping("/networkAccountList")
@UnitCovert(param = false)
public Result<PageData<NetworkDriverAccountVO>> networkAccountList(@RequestBody PageNetworkAccountListParam param) {
IPage<NetworkDriverAccountVO> page = networkDriverAccountService.networkAccountList(param);
return Result.page(page.getRecords(), page.getTotal(), page.getPages());
}
@ApiOperation(value = "创建账户", notes = "<br>By:胡宇帆")
@PostMapping("/createAccount")
public Result<Object> createAccount(CreteAccountParam param) {
//ownerAccountService.createAccount(param);
return Result.ok();
}
}
......@@ -28,7 +28,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......
package com.clx.performance.dao.impl.settle;
import com.clx.performance.dao.settle.NetworkCaseOutRecordDao;
import com.clx.performance.mapper.settle.NetworkCaseOutRecordMapper;
import com.clx.performance.model.settle.NetworkCaseOutRecord;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Repository
public class NetworkCaseOutRecordDaoImpl extends BaseDaoImpl<NetworkCaseOutRecordMapper, NetworkCaseOutRecord, Integer> implements NetworkCaseOutRecordDao {
}
package com.clx.performance.dao.impl.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.dao.settle.NetworkDriverAccountDao;
import com.clx.performance.mapper.settle.NetworkDriverAccountMapper;
import com.clx.performance.model.settle.NetworkDriverAccount;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Repository
public class NetworkDriverAccountDaoImpl extends BaseDaoImpl<NetworkDriverAccountMapper, NetworkDriverAccount, Integer> implements NetworkDriverAccountDao {
@Override
public IPage<NetworkDriverAccountVO> networkAccountList(PageNetworkAccountListParam param) {
Page<NetworkDriverAccountVO> page = Page.of(param.getPage(), param.getPageSize());
return baseMapper.networkAccountList(page, param);
}
}
package com.clx.performance.dao.impl.settle;
import com.clx.performance.dao.settle.NetworkDriverRunningWaterRecordDao;
import com.clx.performance.mapper.settle.NetworkDriverRunningWaterRecordMapper;
import com.clx.performance.model.settle.NetworkDriverRunningWaterRecord;
import com.msl.common.dao.impl.BaseDaoImpl;
import org.springframework.stereotype.Repository;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Repository
public class NetworkDriverRunningWaterRecordDaoImpl extends BaseDaoImpl<NetworkDriverRunningWaterRecordMapper, NetworkDriverRunningWaterRecord, Integer> implements NetworkDriverRunningWaterRecordDao {
}
package com.clx.performance.dao.settle;
import com.clx.performance.mapper.settle.NetworkCaseOutRecordMapper;
import com.clx.performance.model.settle.NetworkCaseOutRecord;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkCaseOutRecordDao extends BaseDao<NetworkCaseOutRecordMapper, NetworkCaseOutRecord, Integer> {
}
package com.clx.performance.dao.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.mapper.settle.NetworkDriverAccountMapper;
import com.clx.performance.model.settle.NetworkDriverAccount;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkDriverAccountDao extends BaseDao<NetworkDriverAccountMapper, NetworkDriverAccount, Integer> {
IPage<NetworkDriverAccountVO> networkAccountList(PageNetworkAccountListParam param);
}
package com.clx.performance.dao.settle;
import com.clx.performance.mapper.settle.NetworkDriverRunningWaterRecordMapper;
import com.clx.performance.model.settle.NetworkDriverRunningWaterRecord;
import com.msl.common.dao.BaseDao;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkDriverRunningWaterRecordDao extends BaseDao<NetworkDriverRunningWaterRecordMapper, NetworkDriverRunningWaterRecord, Integer> {
}
......@@ -5,8 +5,10 @@ import com.msl.common.result.Result;
import feign.Request;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
@Slf4j
public class FeignInterceptor implements RequestInterceptor {
......@@ -15,6 +17,7 @@ public class FeignInterceptor implements RequestInterceptor {
public void apply(RequestTemplate template){
// 通过template获取到请求体(已经被转成json)
String jsonBody = template.requestBody().asString();
log.info("请求参数:{}", jsonBody);
try {
//调用网络货运请求需要加密处理
jsonBody = ThirdComponent.encrypt(jsonBody);
......
package com.clx.performance.mapper.settle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.settle.NetworkCaseOutRecord;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkCaseOutRecordMapper extends BaseMapper<NetworkCaseOutRecord> {
}
package com.clx.performance.mapper.settle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.clx.performance.model.settle.NetworkDriverAccount;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.sqlProvider.settle.NetworkDriverAccountProvider;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
import org.apache.ibatis.annotations.SelectProvider;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkDriverAccountMapper extends BaseMapper<NetworkDriverAccount> {
@SelectProvider(type = NetworkDriverAccountProvider.class, method = "networkAccountList")
IPage<NetworkDriverAccountVO> networkAccountList(Page<NetworkDriverAccountVO> page, PageNetworkAccountListParam param);
}
package com.clx.performance.mapper.settle;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.clx.performance.model.settle.NetworkDriverRunningWaterRecord;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkDriverRunningWaterRecordMapper extends BaseMapper<NetworkDriverRunningWaterRecord> {
}
package com.clx.performance.model.settle;
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.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("network_case_out_record")
public class NetworkCaseOutRecord implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("case_out_no")
@ApiModelProperty("提现单号")
private Long caseOutNo;
@TableField("driver_user_no")
@ApiModelProperty("司机编码")
private String driverUserNo;
@TableField("driver_user_name")
@ApiModelProperty("司机名称")
private String driverUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("payee")
@ApiModelProperty("收款人")
private String payee;
@TableField("bank")
@ApiModelProperty("开户行")
private String bank;
@TableField("collection_bank_code")
@ApiModelProperty("收款银行账户")
private String collectionBankCode;
@TableField("status")
@ApiModelProperty("状态 10:待平台付款 20:已付款")
private Integer status;
@TableField("platform")
@ApiModelProperty("平台")
private String platform;
@TableField("relation_id")
@ApiModelProperty("")
private Long relationId;
@TableField("order_id")
@ApiModelProperty("订单ID")
private Integer orderId;
@TableField("order_no")
@ApiModelProperty("订单编号")
private String orderNo;
@TableField("order_child_id")
@ApiModelProperty("运单ID")
private Integer orderChildId;
@TableField("order_child_no")
@ApiModelProperty("运单编号")
private String orderChildNo;
@TableField("alteration_balance")
@ApiModelProperty("变动金额")
private BigDecimal alterationBalance;
@TableField("frozen_balance")
@ApiModelProperty("冻结金额")
private BigDecimal frozenBalance;
@TableField("usable_balance")
@ApiModelProperty("可用余额")
private BigDecimal usableBalance;
@TableField("account_balance")
@ApiModelProperty("账户余额")
private BigDecimal accountBalance;
@TableField("take_out_balance")
@ApiModelProperty("扣除金额")
private BigDecimal takeOutBalance;
@TableField("create_by")
@ApiModelProperty("操作人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("finish_time")
@ApiModelProperty("提现完成时间")
private LocalDateTime finishTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.settle;
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.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("network_driver_account")
public class NetworkDriverAccount implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("driver_user_no")
@ApiModelProperty("司机编码")
private String driverUserNo;
@TableField("driver_user_name")
@ApiModelProperty("司机名称")
private String driverUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("account_balance")
@ApiModelProperty("账户余额")
private BigDecimal accountBalance;
@TableField("usable_balance")
@ApiModelProperty("可用余额")
private BigDecimal usableBalance;
@TableField("frozen_balance")
@ApiModelProperty("冻结余额")
private BigDecimal frozenBalance;
@TableField("wallet_code")
@ApiModelProperty("钱包code")
private String walletCode;
@TableField("create_by")
@ApiModelProperty("创建人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.model.settle;
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.msl.common.config.KeyColumn;
import com.msl.common.model.HasKey;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("network_driver_running_water_record")
public class NetworkDriverRunningWaterRecord implements HasKey<Integer> {
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
@TableField("running_water_no")
@ApiModelProperty("流水号")
private Long runningWaterNo;
@TableField("driver_user_no")
@ApiModelProperty("司机编码")
private String driverUserNo;
@TableField("driver_user_name")
@ApiModelProperty("司机名称")
private String driverUserName;
@TableField("mobile")
@ApiModelProperty("联系电话")
private String mobile;
@TableField("running_water_type")
@ApiModelProperty("流水类型 10:运单结算 20:提现冻结 30:提现成功")
private Integer runningWaterType;
@TableField("fund_type")
@ApiModelProperty("资金类型 10:收入 20:冻结 30:支出")
private Integer fundType;
@TableField("relation_id")
@ApiModelProperty("")
private Long relationId;
@TableField("order_id")
@ApiModelProperty("订单ID")
private Integer orderId;
@TableField("order_no")
@ApiModelProperty("订单编号")
private String orderNo;
@TableField("order_child_id")
@ApiModelProperty("运单ID")
private Integer orderChildId;
@TableField("order_child_no")
@ApiModelProperty("运单编号")
private String orderChildNo;
@TableField("alteration_balance")
@ApiModelProperty("变动金额")
private BigDecimal alterationBalance;
@TableField("frozen_balance")
@ApiModelProperty("冻结金额")
private BigDecimal frozenBalance;
@TableField("usable_balance")
@ApiModelProperty("可用余额")
private BigDecimal usableBalance;
@TableField("account_balance")
@ApiModelProperty("账户余额")
private BigDecimal accountBalance;
@TableField("take_out_balance")
@ApiModelProperty("扣除金额")
private BigDecimal takeOutBalance;
@TableField("create_by")
@ApiModelProperty("操作人")
private String createBy;
@TableField("create_time")
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@TableField("modified_time")
@ApiModelProperty("修改时间")
private LocalDateTime modifiedTime;
@Override
@KeyColumn("id")
public Integer gainKey() {
return this.id;
}
}
package com.clx.performance.service.impl.settle;
import com.clx.performance.service.settle.NetworkCaseOutRecordService;
import org.springframework.stereotype.Service;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Service
public class NetworkCaseOutRecordServiceImpl implements NetworkCaseOutRecordService {
}
package com.clx.performance.service.impl.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.dao.settle.NetworkDriverAccountDao;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.service.settle.NetworkDriverAccountService;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Service
@AllArgsConstructor
public class NetworkDriverAccountServiceImpl implements NetworkDriverAccountService {
private final NetworkDriverAccountDao networkDriverAccountDao;
@Override
public IPage<NetworkDriverAccountVO> networkAccountList(PageNetworkAccountListParam param) {
return networkDriverAccountDao.networkAccountList(param);
}
}
package com.clx.performance.service.impl.settle;
import com.clx.performance.service.settle.NetworkDriverRunningWaterRecordService;
import org.springframework.stereotype.Service;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
@Service
public class NetworkDriverRunningWaterRecordServiceImpl implements NetworkDriverRunningWaterRecordService {
}
......@@ -488,7 +488,6 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
OwnerSettlementSyncParam param = new OwnerSettlementSyncParam();
param.setOwnerMobile(mobile);
List<OwnerSettlementSyncParam.SettlementItem> settlementList = new LinkedList<>();
param.setSettlementList(settlementList);
List<SettlementOwnerDetail> settlementOwnerDetailList = settlementOwnerDetailDao.getBySettlementNoAndInvoiceType(settlementNo,
SettlementDriverEnum.InvoiceType.ONLINE.getCode(),SettlementOwnerEnum.InvoiceStatus.NOT_INVOICE.getCode());
for (SettlementOwnerDetail settlementOwnerDetail : settlementOwnerDetailList) {
......@@ -498,6 +497,7 @@ public class SettlementOwnerServiceImpl implements SettlementOwnerService {
item.setSettlementNo(settlementOwnerDetail.getSettlementNo());
settlementList.add(item);
}
param.setSettlementList(settlementList);
HttpDTO httpDTO = transportFeignService.ownerSettlementSync(param);
String decrypt = ThirdComponent.decrypt(httpDTO.getData());
log.info("通知网络货运做货主计费开票标识通知请求解密后:{}", decrypt);
......
package com.clx.performance.service.settle;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkCaseOutRecordService {
}
package com.clx.performance.service.settle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.clx.performance.param.pc.PageNetworkAccountListParam;
import com.clx.performance.vo.pc.NetworkDriverAccountVO;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkDriverAccountService {
IPage<NetworkDriverAccountVO> networkAccountList(PageNetworkAccountListParam param);
}
package com.clx.performance.service.settle;
/**
* @author kavin
* Date 2023-12-19
* Time 11:34
*/
public interface NetworkDriverRunningWaterRecordService {
}
package com.clx.performance.sqlProvider.settle;
import cn.hutool.core.util.ObjectUtil;
import com.clx.performance.param.pc.PageOwnerAccountListParam;
import com.clx.performance.param.pc.PageOwnerCaseOutListParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.jdbc.SQL;
public class NetworkDriverAccountProvider {
public String networkAccountList(@Param("param") PageOwnerAccountListParam param) {
String sql = new SQL() {{
SELECT("a.id, a.owner_user_no," +
" a.owner_user_name, a.mobile, a.account_type, " +
" a.account_balance,a.usable_balance, a.frozen_balance,a.create_by,date_format(a.create_time, '%Y-%m-%d %H:%i:%s') as create_time");
FROM("owner_account a");
if (StringUtils.isNotBlank(param.getOwnerUserNo())) {
WHERE("a.owner_user_no = #{param.ownerUserNo}");
}
if (StringUtils.isNotBlank(param.getMobile())) {
WHERE("a.mobile = #{param.mobile}");
}
if (ObjectUtil.isNotNull(param.getAccountType())) {
WHERE("a.account_type = #{param.accountType}");
}
if (StringUtils.isNotBlank(param.getOwnerUserName())) {
WHERE("a.owner_user_name like CONCAT('%',#{param.ownerUserName},'%')");
}
ORDER_BY("a.create_time desc");
}}.toString();
return sql;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论