From cd74e4910f2960c0a380690ae4a7da80f79a8aa5 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Sun, 28 Sep 2025 17:17:33 +0800 Subject: [PATCH 1/5] =?UTF-8?q?9-28=20=E6=96=B0=E5=A2=9E=E6=94=B6=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/demo/DemoApplication.java | 1 + .../demo/controller/coin/RefundController.java | 4 +- .../demo/domain/vo/cash/CashCollection.java | 210 ++++++++++++++++++++- .../demo/mapper/cash/CashCollectionMapper.java | 19 ++ .../demo/service/cash/CashCollectionService.java | 2 +- .../cash/CashCollectionServiceImpl.java | 26 ++- .../resources/cashMapper/CashCollectionMapper.xml | 18 ++ 7 files changed, 274 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java create mode 100644 src/main/resources/cashMapper/CashCollectionMapper.xml diff --git a/src/main/java/com/example/demo/DemoApplication.java b/src/main/java/com/example/demo/DemoApplication.java index 93e87f5..cd49fb5 100644 --- a/src/main/java/com/example/demo/DemoApplication.java +++ b/src/main/java/com/example/demo/DemoApplication.java @@ -17,6 +17,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @MapperScan(basePackages = "com.example.demo.mapper.cms", sqlSessionTemplateRef = "mysql4SqlSessionTemplate") @MapperScan(basePackages = "com.example.demo.mapper.live", sqlSessionTemplateRef = "mysql5SqlSessionTemplate") @MapperScan(basePackages = "com.example.demo.mapper.sqlserver", sqlSessionTemplateRef = "sqlserver1SqlSessionTemplate") +@MapperScan(basePackages = "com.example.demo.mapper.cash", sqlSessionTemplateRef = "mysql1SqlSessionTemplate") public class DemoApplication { public static void main(String[] args) { diff --git a/src/main/java/com/example/demo/controller/coin/RefundController.java b/src/main/java/com/example/demo/controller/coin/RefundController.java index 5197077..1e6ac4d 100644 --- a/src/main/java/com/example/demo/controller/coin/RefundController.java +++ b/src/main/java/com/example/demo/controller/coin/RefundController.java @@ -128,8 +128,8 @@ public class RefundController { return Result.success(list); } - //消耗金币增加 - @Log("新增金币消耗") + //消耗金币退款 + @Log("新增金币退款") @PostMapping("/add") public Result add(@RequestBody RefundUser refundUser) { try { diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java index 1f94e13..57a73ac 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java @@ -33,7 +33,7 @@ public class CashCollection implements Serializable { private String orderCode; // 金币订单号 private String bankCode; // 银行流水订单号 private String goodsName; // 商品名称 - private String goodsNum; // 商品数量 + private Integer goodsNum; // 商品数量 //金额信息 private String paymentCurrency; // 付款币种 private BigDecimal paymentAmount; // 付款金额 @@ -55,4 +55,212 @@ public class CashCollection implements Serializable { private LocalDateTime createTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime updateTime; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getOrderType() { + return orderType; + } + + public void setOrderType(Integer orderType) { + this.orderType = orderType; + } + + public Integer getJwcode() { + return jwcode; + } + + public void setJwcode(Integer jwcode) { + this.jwcode = jwcode; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getMarket() { + return market; + } + + public void setMarket(String market) { + this.market = market; + } + + public String getActivity() { + return activity; + } + + public void setActivity(String activity) { + this.activity = activity; + } + + public String getOrderCode() { + return orderCode; + } + + public void setOrderCode(String orderCode) { + this.orderCode = orderCode; + } + + public String getBankCode() { + return bankCode; + } + + public void setBankCode(String bankCode) { + this.bankCode = bankCode; + } + + public String getGoodsName() { + return goodsName; + } + + public void setGoodsName(String goodsName) { + this.goodsName = goodsName; + } + + public Integer getGoodsNum() { + return goodsNum; + } + + public void setGoodsNum(Integer goodsNum) { + this.goodsNum = goodsNum; + } + + public String getPaymentCurrency() { + return paymentCurrency; + } + + public void setPaymentCurrency(String paymentCurrency) { + this.paymentCurrency = paymentCurrency; + } + + public BigDecimal getPaymentAmount() { + return paymentAmount; + } + + public void setPaymentAmount(BigDecimal paymentAmount) { + this.paymentAmount = paymentAmount; + } + + public String getReceivedCurrency() { + return receivedCurrency; + } + + public void setReceivedCurrency(String receivedCurrency) { + this.receivedCurrency = receivedCurrency; + } + + public BigDecimal getReceivedAmount() { + return receivedAmount; + } + + public void setReceivedAmount(BigDecimal receivedAmount) { + this.receivedAmount = receivedAmount; + } + + public BigDecimal getHandlingCharge() { + return handlingCharge; + } + + public void setHandlingCharge(BigDecimal handlingCharge) { + this.handlingCharge = handlingCharge; + } + + public String getReceivedMarket() { + return receivedMarket; + } + + public void setReceivedMarket(String receivedMarket) { + this.receivedMarket = receivedMarket; + } + + public String getPayType() { + return payType; + } + + public void setPayType(String payType) { + this.payType = payType; + } + + public LocalDateTime getPayTime() { + return payTime; + } + + public void setPayTime(LocalDateTime payTime) { + this.payTime = payTime; + } + + public LocalDateTime getReceivedTime() { + return receivedTime; + } + + public void setReceivedTime(LocalDateTime receivedTime) { + this.receivedTime = receivedTime; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public Integer getSubmitterId() { + return submitterId; + } + + public void setSubmitterId(Integer submitterId) { + this.submitterId = submitterId; + } + + public String getVoucher() { + return voucher; + } + + public void setVoucher(String voucher) { + this.voucher = voucher; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } + + public String getRejectReason() { + return rejectReason; + } + + public void setRejectReason(String rejectReason) { + this.rejectReason = rejectReason; + } + + public LocalDateTime getCreateTime() { + return createTime; + } + + public void setCreateTime(LocalDateTime createTime) { + this.createTime = createTime; + } + + public LocalDateTime getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(LocalDateTime updateTime) { + this.updateTime = updateTime; + } } diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java new file mode 100644 index 0000000..786d4d2 --- /dev/null +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -0,0 +1,19 @@ +package com.example.demo.mapper.cash; + +import com.example.demo.domain.entity.CashRecord; +import org.apache.ibatis.annotations.Mapper; + +/** + * @program: gold-java + * @ClassName CashCollectionMapper + * @description: + * @author: Ethan + * @create: 2025−09-26 17:17 + * @Version 1.0 + **/ +@Mapper +public interface CashCollectionMapper { + + //新增收款订单 + void add(CashRecord cashRecord); +} diff --git a/src/main/java/com/example/demo/service/cash/CashCollectionService.java b/src/main/java/com/example/demo/service/cash/CashCollectionService.java index 63482bd..a944b37 100644 --- a/src/main/java/com/example/demo/service/cash/CashCollectionService.java +++ b/src/main/java/com/example/demo/service/cash/CashCollectionService.java @@ -13,6 +13,6 @@ import com.example.demo.domain.vo.coin.Result; **/ public interface CashCollectionService { - + //新增收款订单 Result add(CashCollection cashCollection); } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 3b89ddb..9511e79 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -3,6 +3,7 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.coin.Result; +import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.service.cash.CashCollectionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -21,7 +22,9 @@ import java.util.UUID; public class CashCollectionServiceImpl implements CashCollectionService { @Autowired + private CashCollectionMapper cashCollectionMapper; + //新增收款订单 @Override public Result add(CashCollection cashCollection) { if (cashCollection.getJwcode()==null){ @@ -66,7 +69,26 @@ public class CashCollectionServiceImpl implements CashCollectionService { //生成订单号后半部分 String orderNumber = UUID.randomUUID().toString().replaceAll("-", ""); CashRecord cashRecord = new CashRecord(); - cashRecord.setOrderCode("XJ_" + orderNumber); - return Result.success("添加成功",cashRecord); + //构建订单信息 + cashRecord.setOrderCode("XJ_" + orderNumber); //订单号 + cashRecord.setJwcode(cashCollection.getJwcode()); //精网号 + cashRecord.setName(cashCollection.getName()); //客户姓名 + cashRecord.setActivity(cashCollection.getActivity()); // 活动 + cashRecord.setGoodsName(cashCollection.getGoodsName()); //商品名称 + cashRecord.setGoodNum(cashCollection.getGoodsNum()); //商品数量 + cashRecord.setPaymentCurrency(cashCollection.getPaymentCurrency()); //付款币种 + cashRecord.setPaymentAmount(cashCollection.getPaymentAmount()); //付款金额 + cashRecord.setReceivedMarket(cashCollection.getReceivedMarket()); //到账地区 + cashRecord.setPayType(cashCollection.getPayType()); //支付方式 + cashRecord.setPayTime(cashCollection.getPayTime()); //付款时间 + cashRecord.setVoucher(cashCollection.getVoucher()); //转账凭证 + cashRecord.setRemark(cashCollection.getRemark()); //备注 + cashRecord.setStatus(0); //订单状态:付款线下财务待审核 + cashRecord.setSubmitterId(cashCollection.getSubmitterId()); //提交人ID + cashRecord.setOrderType(1); //订单类型:1-收款 + //插入新收款订单 + cashCollectionMapper.add(cashRecord); + + return Result.success("添加成功"); } } diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml new file mode 100644 index 0000000..00b9ad3 --- /dev/null +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -0,0 +1,18 @@ + + + + + + + insert into + cash_collection(order_type,jwcode,name,market,activity, + order_code,goods_name,goods_num, + payment_currency,payment_amount,received_market, + pay_type,pay_time,status,submitter_id, + voucher,remark) + values(#{orderType},#{jwcode},#{name},#{market},#{activity}, + #{orderCode},#{goodsName},#{goodsNum},#{paymentCurrency}, + #{paymentAmount},#{receivedMarket},#{payType},#{payTime}, + #{status},#{submitterId},#{voucher},#{remark}) + + \ No newline at end of file From 67106e4511b4b152cfadc2f8ce76ffa22fec9d86 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 8 Oct 2025 09:46:54 +0800 Subject: [PATCH 2/5] =?UTF-8?q?10-08-=E6=94=B6=E6=AC=BE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=EF=BC=8C=E6=94=B6=E6=AC=BE=E6=92=A4=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 16 ++ .../demo/config/FlowableDataSourceConfig.java | 3 + .../demo/config/Mysql1DataSourceConfig.java | 2 +- .../controller/cash/CashCollectionController.java | 50 ++++- .../demo/domain/vo/cash/CashCollection.java | 220 ++------------------- .../java/com/example/demo/domain/vo/coin/Page.java | 2 + .../demo/mapper/cash/CashCollectionMapper.java | 18 ++ .../demo/service/cash/CashCollectionService.java | 8 + .../cash/CashCollectionServiceImpl.java | 91 ++++++++- src/main/resources/application.yml | 2 + .../resources/cashMapper/CashCollectionMapper.xml | 105 +++++++++- 11 files changed, 302 insertions(+), 215 deletions(-) diff --git a/pom.xml b/pom.xml index 27623e8..215085e 100644 --- a/pom.xml +++ b/pom.xml @@ -209,6 +209,22 @@ src/main/resources true + + + src/main/resources + + **/*.xml + **/*.yml + **/*.properties + + + + + src/main/java + + **/*.xml + + diff --git a/src/main/java/com/example/demo/config/FlowableDataSourceConfig.java b/src/main/java/com/example/demo/config/FlowableDataSourceConfig.java index 1fe189b..4183be8 100644 --- a/src/main/java/com/example/demo/config/FlowableDataSourceConfig.java +++ b/src/main/java/com/example/demo/config/FlowableDataSourceConfig.java @@ -7,6 +7,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager; @@ -16,6 +17,7 @@ import javax.sql.DataSource; public class FlowableDataSourceConfig { @Bean(name = "flowableDataSource") + @Primary @ConfigurationProperties(prefix = "spring.datasource.flowable") public DataSource flowableDataSource() { HikariDataSource ds = DataSourceBuilder @@ -27,6 +29,7 @@ public class FlowableDataSourceConfig { } @Bean(name = "flowableTransactionManager") + @Primary public PlatformTransactionManager flowableTransactionManager( @Qualifier("flowableDataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); diff --git a/src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java b/src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java index 9253a9b..717a28b 100644 --- a/src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java +++ b/src/main/java/com/example/demo/config/Mysql1DataSourceConfig.java @@ -48,7 +48,7 @@ public DataSource mysql1DataSource() { @Qualifier("globalConfiguration1") org.apache.ibatis.session.Configuration globalConfiguration1) throws Exception { SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource); - sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); + sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:{mapper,cashMapper}/*.xml")); sessionFactory.setConfiguration(globalConfiguration1); return sessionFactory.getObject(); } diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index b1adbad..4ba119f 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -1,12 +1,23 @@ package com.example.demo.controller.cash; +import com.example.demo.Util.JWTUtil; +import com.example.demo.domain.entity.Admin; +import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.vo.cash.CashCollection; +import com.example.demo.domain.vo.coin.Page; import com.example.demo.domain.vo.coin.Result; import com.example.demo.service.cash.CashCollectionService; +import com.github.pagehelper.PageInfo; +import jakarta.servlet.http.HttpServletRequest; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import java.util.Arrays; +import java.util.List; /** * @program: gold-java @@ -25,12 +36,49 @@ public class CashCollectionController { @Autowired private CashCollectionService cashCollectionService; + //新增收款订单 @PostMapping("/add") public Result add(@RequestBody CashCollection cashCollection) { try { return cashCollectionService.add(cashCollection); } catch (Exception e) { - return Result.error("请检查数据的格式"); + return Result.error(e.getMessage()); + } + } + //撤回未审核的收款订单 + @PostMapping("/cancel") + public Result cancel(@RequestBody CashRecord cashRecord) { + try { + return cashCollectionService.cancel(cashRecord.getOrderCode()); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + //重新提交审核的收款订单 + @PostMapping("/reSubmit") + public Result reSubmit(@RequestBody CashRecord cashRecord) { + try { + return cashCollectionService.reSubmit(cashRecord); + }catch (Exception e){ + return Result.error(e.getMessage()); + } + } + //多条件查询收款订单列表----客服版 + @PostMapping("/selectCollection1") + public PageInfo selectCollection1( + @RequestBody Page page) throws Exception{ + Integer pageNum = page.getPageNum(); + Integer pageSize = page.getPageSize(); + CashCollection cashCollection = page.getCashCollection(); + //解token权限 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + if (admin != null) { + List list = Arrays.asList(admin.getMarkets().split(",")); + cashCollection.setMarkets(list); + } + return cashCollectionService.selectCollection1(pageNum, pageSize, cashCollection); } } diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java index 57a73ac..8787f46 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java @@ -8,6 +8,7 @@ import lombok.NoArgsConstructor; import java.io.Serializable; import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.List; /** * @program: gold-java @@ -33,7 +34,7 @@ public class CashCollection implements Serializable { private String orderCode; // 金币订单号 private String bankCode; // 银行流水订单号 private String goodsName; // 商品名称 - private Integer goodsNum; // 商品数量 + private Integer goodNum; // 商品数量 //金额信息 private String paymentCurrency; // 付款币种 private BigDecimal paymentAmount; // 付款金额 @@ -43,11 +44,14 @@ public class CashCollection implements Serializable { private String receivedMarket; //到账地区 // 支付信息 private String payType; // 支付方式 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime payTime; // 付款日期(秒级) + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime receivedTime; // 到账日期(秒级) //状态 操作人 private Integer status; // 订单状态 private Integer submitterId; // 提交人 id + private String submitterName; // 提交人 姓名 private String voucher; // 转账凭证 private String remark; // 备注 private String rejectReason; // 驳回理由 @@ -56,211 +60,13 @@ public class CashCollection implements Serializable { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime updateTime; - public Integer getId() { - return id; - } - - public void setId(Integer id) { - this.id = id; - } - - public Integer getOrderType() { - return orderType; - } - - public void setOrderType(Integer orderType) { - this.orderType = orderType; - } - - public Integer getJwcode() { - return jwcode; - } - - public void setJwcode(Integer jwcode) { - this.jwcode = jwcode; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getMarket() { - return market; - } - - public void setMarket(String market) { - this.market = market; - } - - public String getActivity() { - return activity; - } - - public void setActivity(String activity) { - this.activity = activity; - } - - public String getOrderCode() { - return orderCode; - } - - public void setOrderCode(String orderCode) { - this.orderCode = orderCode; - } - - public String getBankCode() { - return bankCode; - } - - public void setBankCode(String bankCode) { - this.bankCode = bankCode; - } - - public String getGoodsName() { - return goodsName; - } - - public void setGoodsName(String goodsName) { - this.goodsName = goodsName; - } - - public Integer getGoodsNum() { - return goodsNum; - } - - public void setGoodsNum(Integer goodsNum) { - this.goodsNum = goodsNum; - } - - public String getPaymentCurrency() { - return paymentCurrency; - } - - public void setPaymentCurrency(String paymentCurrency) { - this.paymentCurrency = paymentCurrency; - } - - public BigDecimal getPaymentAmount() { - return paymentAmount; - } - - public void setPaymentAmount(BigDecimal paymentAmount) { - this.paymentAmount = paymentAmount; - } - - public String getReceivedCurrency() { - return receivedCurrency; - } - - public void setReceivedCurrency(String receivedCurrency) { - this.receivedCurrency = receivedCurrency; - } - - public BigDecimal getReceivedAmount() { - return receivedAmount; - } - - public void setReceivedAmount(BigDecimal receivedAmount) { - this.receivedAmount = receivedAmount; - } - - public BigDecimal getHandlingCharge() { - return handlingCharge; - } - - public void setHandlingCharge(BigDecimal handlingCharge) { - this.handlingCharge = handlingCharge; - } - - public String getReceivedMarket() { - return receivedMarket; - } - - public void setReceivedMarket(String receivedMarket) { - this.receivedMarket = receivedMarket; - } - - public String getPayType() { - return payType; - } - - public void setPayType(String payType) { - this.payType = payType; - } - - public LocalDateTime getPayTime() { - return payTime; - } - - public void setPayTime(LocalDateTime payTime) { - this.payTime = payTime; - } - - public LocalDateTime getReceivedTime() { - return receivedTime; - } - - public void setReceivedTime(LocalDateTime receivedTime) { - this.receivedTime = receivedTime; - } - - public Integer getStatus() { - return status; - } - - public void setStatus(Integer status) { - this.status = status; - } - - public Integer getSubmitterId() { - return submitterId; - } - - public void setSubmitterId(Integer submitterId) { - this.submitterId = submitterId; - } - - public String getVoucher() { - return voucher; - } - - public void setVoucher(String voucher) { - this.voucher = voucher; - } - - public String getRemark() { - return remark; - } - - public void setRemark(String remark) { - this.remark = remark; - } - - public String getRejectReason() { - return rejectReason; - } - - public void setRejectReason(String rejectReason) { - this.rejectReason = rejectReason; - } - - public LocalDateTime getCreateTime() { - return createTime; - } - - public void setCreateTime(LocalDateTime createTime) { - this.createTime = createTime; - } - - public LocalDateTime getUpdateTime() { - return updateTime; - } + //搜索筛条件 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime startTime; // 付款时间起 + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") + private LocalDateTime endTime; // 付款时间止 + private String sortField; //排序字段 + private String sortOrder; //排序顺序 + private List markets; // 所属地区列表 - public void setUpdateTime(LocalDateTime updateTime) { - this.updateTime = updateTime; } -} diff --git a/src/main/java/com/example/demo/domain/vo/coin/Page.java b/src/main/java/com/example/demo/domain/vo/coin/Page.java index 1fd6576..6b2a982 100644 --- a/src/main/java/com/example/demo/domain/vo/coin/Page.java +++ b/src/main/java/com/example/demo/domain/vo/coin/Page.java @@ -2,6 +2,7 @@ package com.example.demo.domain.vo.coin; import com.example.demo.domain.entity.User; import com.example.demo.domain.vo.bean.*; +import com.example.demo.domain.vo.cash.CashCollection; import lombok.Data; import lombok.NoArgsConstructor; @@ -40,4 +41,5 @@ public class Page { private BeanUserCard beanUserCard; //客户金豆卡片 private BeanAuditInfo beanAuditInfo; //金豆审核信息 private HistoryRecord historyRecord; //历史记录 + private CashCollection cashCollection; //现金收款 } diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index 786d4d2..4fcd777 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -1,7 +1,11 @@ package com.example.demo.mapper.cash; import com.example.demo.domain.entity.CashRecord; +import com.example.demo.domain.vo.cash.CashCollection; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @program: gold-java @@ -14,6 +18,20 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface CashCollectionMapper { + //根据jwcode获取所属地区 + String getMarketByJwcode(@Param("jwcode") Integer jwcode); //新增收款订单 void add(CashRecord cashRecord); + //根据订单号获取订单id,状态 + CashRecord selectByOrderCode(@Param("orderCode") String orderCode); + //更新订单状态 + int updateStatus(@Param("orderCode") String orderCode, + @Param("status") Integer status); + //编辑订单 + // 编辑订单(状态=5)后重新提交 + int updateByOrderCode(@Param("cashRecord") CashRecord cashRecord); + //多条件查询收款订单列表 + List selectCollection1(@Param("pageNum") Integer pageNum, + @Param("pageSize") Integer pageSize, + @Param("cashCollection") CashCollection cashCollection); } diff --git a/src/main/java/com/example/demo/service/cash/CashCollectionService.java b/src/main/java/com/example/demo/service/cash/CashCollectionService.java index a944b37..ce136a1 100644 --- a/src/main/java/com/example/demo/service/cash/CashCollectionService.java +++ b/src/main/java/com/example/demo/service/cash/CashCollectionService.java @@ -1,7 +1,9 @@ package com.example.demo.service.cash; +import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.coin.Result; +import com.github.pagehelper.PageInfo; /** * @program: gold-java @@ -15,4 +17,10 @@ import com.example.demo.domain.vo.coin.Result; public interface CashCollectionService { //新增收款订单 Result add(CashCollection cashCollection); + //撤回未审核的收款订单 + Result cancel(String orderCode); + //编辑并重新提交收款订单 + Result reSubmit(CashRecord cashRecord); + //多条件查询收款订单列表 + PageInfo selectCollection1(Integer pageNum, Integer pageSize, CashCollection cashCollection); } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 9511e79..2e01654 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -4,10 +4,14 @@ import com.example.demo.domain.entity.CashRecord; import com.example.demo.domain.vo.cash.CashCollection; import com.example.demo.domain.vo.coin.Result; import com.example.demo.mapper.cash.CashCollectionMapper; +import com.example.demo.mapper.coin.MarketMapper; import com.example.demo.service.cash.CashCollectionService; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; import java.util.UUID; /** @@ -23,6 +27,8 @@ public class CashCollectionServiceImpl implements CashCollectionService { @Autowired private CashCollectionMapper cashCollectionMapper; + @Autowired + private MarketMapper marketMapper; //新增收款订单 @Override @@ -42,7 +48,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { if(cashCollection.getGoodsName()== null){ return Result.error("商品名不能为空"); } - if(cashCollection.getGoodsNum()== null){ + if(cashCollection.getGoodNum()== null){ return Result.error("商品数量不能为空"); } if(cashCollection.getPaymentCurrency()== null){ @@ -75,7 +81,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { cashRecord.setName(cashCollection.getName()); //客户姓名 cashRecord.setActivity(cashCollection.getActivity()); // 活动 cashRecord.setGoodsName(cashCollection.getGoodsName()); //商品名称 - cashRecord.setGoodNum(cashCollection.getGoodsNum()); //商品数量 + cashRecord.setGoodNum(cashCollection.getGoodNum()); //商品数量 cashRecord.setPaymentCurrency(cashCollection.getPaymentCurrency()); //付款币种 cashRecord.setPaymentAmount(cashCollection.getPaymentAmount()); //付款金额 cashRecord.setReceivedMarket(cashCollection.getReceivedMarket()); //到账地区 @@ -86,9 +92,90 @@ public class CashCollectionServiceImpl implements CashCollectionService { cashRecord.setStatus(0); //订单状态:付款线下财务待审核 cashRecord.setSubmitterId(cashCollection.getSubmitterId()); //提交人ID cashRecord.setOrderType(1); //订单类型:1-收款 + //地区,根据jwcode插入 + cashRecord.setMarket(cashCollectionMapper.getMarketByJwcode(cashRecord.getJwcode())); //插入新收款订单 cashCollectionMapper.add(cashRecord); return Result.success("添加成功"); } + //撤回未审核的订单 + @Override + public Result cancel(String orderCode) { + CashRecord cashRecord = cashCollectionMapper.selectByOrderCode(orderCode); + if (cashRecord == null) { + return Result.error("订单不存在"); + } + if (cashRecord.getStatus() != 0){ + return Result.error("订单状态不符合条件"); + } + //修改订单状态 + int rows = cashCollectionMapper.updateStatus(orderCode, 5); + return rows > 0 ? Result.success("撤回成功") : Result.error("撤回失败"); + } + + //编辑并重新提交收款订单 + @Override + public Result reSubmit(CashRecord cashRecord) { + if (cashRecord.getJwcode()==null){ + return Result.error("精网号不能为空"); + } + if(cashRecord.getJwcode()<10000000||cashRecord.getJwcode()>99999999){ + return Result.error("精网号必须为8位"); + } + if(cashRecord.getName()== null){ + return Result.error("客户姓名不能为空"); + } + if(cashRecord.getActivity()== null){ + return Result.error("活动不能为空"); + } + if(cashRecord.getGoodsName()== null){ + return Result.error("商品名不能为空"); + } + if(cashRecord.getGoodNum()== null){ + return Result.error("商品数量不能为空"); + } + if(cashRecord.getPaymentCurrency()== null){ + return Result.error("支付币种不能为空"); + } + if(cashRecord.getPaymentAmount()== null){ + return Result.error("支付金额不能为空"); + } + if (cashRecord.getPayType()== null){ + return Result.error("支付方式不能为空"); + } + if (cashRecord.getReceivedMarket()== null){ + return Result.error("到账地区不能为空"); + } + if(cashRecord.getPayTime()== null){ + return Result.error("付款时间不能为空"); + } + if (cashRecord.getVoucher()== null){ + return Result.error("转账凭证不能为空"); + } + if (cashRecord.getRemark()==null){ + return Result.error("备注不能为空"); + } + CashRecord status=cashCollectionMapper.selectByOrderCode(cashRecord.getOrderCode()); + if (!status.getStatus().equals(5)){ + return Result.error("只允许编辑已撤回订单"); + } + //地区,根据jwcode插入 + cashRecord.setMarket(cashCollectionMapper.getMarketByJwcode(cashRecord.getJwcode())); + int rows = cashCollectionMapper.updateByOrderCode(cashRecord); + return rows > 0 ? Result.success("重新提交成功") : Result.error("重新提交失败"); + } + //多条件查询收款订单列表 + @Override + public PageInfo selectCollection1(Integer pageNum, Integer pageSize, CashCollection cashCollection) { + //将操作人的地区列表改为id + List markets = marketMapper.getMarketIds(cashCollection.getMarkets()); + if (markets.contains("9") || markets.contains("9999")){ + markets=null; + } + cashCollection.setMarkets(markets); + PageHelper.startPage(pageNum, pageSize); + List cashCollections = cashCollectionMapper.selectCollection1(pageNum, pageSize, cashCollection); + return new PageInfo<>(cashCollections); + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index efd57a2..71be8c5 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -15,6 +15,8 @@ spring: name: demo mybatis: type-handlers-package: com.example.demo.Util + mapper-locations: classpath*:**/*Mapper.xml + type-aliases-package: com.example.demo.domain.entity configuration: mysql1: map-underscore-to-camel-case: true diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 00b9ad3..840d0fb 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -3,16 +3,113 @@ - + insert into - cash_collection(order_type,jwcode,name,market,activity, - order_code,goods_name,goods_num, + cash_record(order_type,jwcode,name,market,activity, + order_code,goods_name,good_num, payment_currency,payment_amount,received_market, pay_type,pay_time,status,submitter_id, voucher,remark) values(#{orderType},#{jwcode},#{name},#{market},#{activity}, - #{orderCode},#{goodsName},#{goodsNum},#{paymentCurrency}, + #{orderCode},#{goodsName},#{goodNum},#{paymentCurrency}, #{paymentAmount},#{receivedMarket},#{payType},#{payTime}, #{status},#{submitterId},#{voucher},#{remark}) + + + update cash_record + set status=#{status} + where order_code=#{orderCode} + + + + UPDATE cash_record + + jwcode = #{cashRecord.jwcode}, + name = #{cashRecord.name}, + market = #{cashRecord.market}, + activity = #{cashRecord.activity}, + goods_name = #{cashRecord.goodsName}, + good_num = #{cashRecord.goodNum}, + payment_currency = #{cashRecord.paymentCurrency}, + payment_amount = #{cashRecord.paymentAmount}, + received_market = #{cashRecord.receivedMarket}, + pay_type = #{cashRecord.payType}, + pay_time = #{cashRecord.payTime}, + voucher = #{cashRecord.voucher}, + remark = #{cashRecord.remark}, + status = 0, + + WHERE order_code = #{cashRecord.orderCode} + AND status = 5 + + + + + + + \ No newline at end of file From ff23da676ac569fdf80ac5a40d3bf1e58b78dfa1 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 8 Oct 2025 13:33:40 +0800 Subject: [PATCH 3/5] =?UTF-8?q?10-08-=E7=8E=B0=E9=87=91=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=EF=BC=88=E9=83=A8=E5=88=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashAuditController.java | 34 ++++++++++++++++++++++ .../demo/mapper/cash/CashCollectionMapper.java | 3 ++ .../demo/service/cash/CashAuditService.java | 15 ++++++++++ .../serviceImpl/cash/CashAuditServiceImpl.java | 29 ++++++++++++++++++ .../resources/cashMapper/CashCollectionMapper.xml | 3 ++ 5 files changed, 84 insertions(+) create mode 100644 src/main/java/com/example/demo/controller/cash/CashAuditController.java create mode 100644 src/main/java/com/example/demo/service/cash/CashAuditService.java create mode 100644 src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java diff --git a/src/main/java/com/example/demo/controller/cash/CashAuditController.java b/src/main/java/com/example/demo/controller/cash/CashAuditController.java new file mode 100644 index 0000000..de1a222 --- /dev/null +++ b/src/main/java/com/example/demo/controller/cash/CashAuditController.java @@ -0,0 +1,34 @@ +package com.example.demo.controller.cash; + +import com.example.demo.config.interfac.Log; +import com.example.demo.domain.vo.coin.AuditRequest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +/** + * @program: gold-java + * @ClassName CashAuditController + * @description: + * @author: Ethan + * @create: 2025−10-08 10:02 + * @Version 1.0 + **/ + +@RestController +@RequestMapping("/cashAudit") +@RequiredArgsConstructor +@Slf4j + +@CrossOrigin +public class CashAuditController { + //收款审核 + // @Log("收款审核") + // @PostMapping("collectionAudit") + // public ResponseEntity collectionAudit( + // @RequestBody AuditRequest request){ + // boolean result = cashAuditService.collectionAudit(request.getToken(),request.getOrderCode(), request.getAction(),request.getRejectReason()); + //return ResponseEntity.ok(result); + // } +} diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index 4fcd777..8673abf 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -34,4 +34,7 @@ public interface CashCollectionMapper { List selectCollection1(@Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize, @Param("cashCollection") CashCollection cashCollection); + + //根据订单号查询待审核的现金收款订单 + CashRecord selectUnAuditByOrderCode(@Param("orderCode") String orderCode); } diff --git a/src/main/java/com/example/demo/service/cash/CashAuditService.java b/src/main/java/com/example/demo/service/cash/CashAuditService.java new file mode 100644 index 0000000..006195b --- /dev/null +++ b/src/main/java/com/example/demo/service/cash/CashAuditService.java @@ -0,0 +1,15 @@ +package com.example.demo.service.cash; + +/** + * @program: gold-java + * @ClassName CashAuditService + * @description: + * @author: Ethan + * @create: 2025−10-08 10:08 + * @Version 1.0 + **/ + +public interface CashAuditService { + //审核收款订单 + boolean auditCollection(String token, String orderCode, Integer action, String rejectReason); +} diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java new file mode 100644 index 0000000..8795031 --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -0,0 +1,29 @@ +package com.example.demo.serviceImpl.cash; + +import com.example.demo.domain.entity.CashRecord; +import com.example.demo.mapper.cash.CashCollectionMapper; +import com.example.demo.service.cash.CashAuditService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +/** + * @program: gold-java + * @ClassName CashAuditServiceImpl + * @description: + * @author: Ethan + * @create: 2025−10-08 10:09 + * @Version 1.0 + **/ +@Service +public class CashAuditServiceImpl implements CashAuditService { + @Autowired + private CashCollectionMapper cashCollectionMapper; + + @Transactional + @Override + public boolean auditCollection(String token, String orderCode, Integer action, String rejectReason) { + CashRecord order = cashCollectionMapper.selectUnAuditByOrderCode(orderCode); + return false; + } +} diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 840d0fb..a72329c 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -112,4 +112,7 @@ + \ No newline at end of file From 403fac44275710b6edbee656809890b97d68aa97 Mon Sep 17 00:00:00 2001 From: lijianlin Date: Wed, 8 Oct 2025 16:31:02 +0800 Subject: [PATCH 4/5] =?UTF-8?q?10-08-=E7=8E=B0=E9=87=91=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/example/demo/Util/BaseDES.java | 2 +- .../demo/controller/cash/CashAuditController.java | 20 +++++++++++++------- .../example/demo/mapper/cash/CashAuditMapper.java | 19 +++++++++++++++++++ .../demo/serviceImpl/cash/CashAuditServiceImpl.java | 21 +++++++++++++++++++-- src/main/resources/cashMapper/CashAuditMapper.xml | 12 ++++++++++++ .../resources/cashMapper/CashCollectionMapper.xml | 2 +- 6 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java create mode 100644 src/main/resources/cashMapper/CashAuditMapper.xml diff --git a/src/main/java/com/example/demo/Util/BaseDES.java b/src/main/java/com/example/demo/Util/BaseDES.java index aeb930e..0ed4dd0 100644 --- a/src/main/java/com/example/demo/Util/BaseDES.java +++ b/src/main/java/com/example/demo/Util/BaseDES.java @@ -91,7 +91,7 @@ public class BaseDES { public static void main(String args[]) { try { BaseDES d = new BaseDES(); - String encryptedText = d.encrypt("94616995"); + String encryptedText = d.encrypt("90048130"); System.out.println("加密结果:" + encryptedText); System.out.println("加密字符串:90005179》"+d.encrypt("90005179")); System.out.println("解密字符串:6aaef5277c050f7ae383f816651098ff》"+d.decrypt("6aaef5277c050f7ae383f816651098ff")); diff --git a/src/main/java/com/example/demo/controller/cash/CashAuditController.java b/src/main/java/com/example/demo/controller/cash/CashAuditController.java index de1a222..f4571c9 100644 --- a/src/main/java/com/example/demo/controller/cash/CashAuditController.java +++ b/src/main/java/com/example/demo/controller/cash/CashAuditController.java @@ -2,8 +2,10 @@ package com.example.demo.controller.cash; import com.example.demo.config.interfac.Log; import com.example.demo.domain.vo.coin.AuditRequest; +import com.example.demo.service.cash.CashAuditService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @@ -23,12 +25,16 @@ import org.springframework.web.bind.annotation.*; @CrossOrigin public class CashAuditController { + + @Autowired + private CashAuditService cashAuditService; + //收款审核 - // @Log("收款审核") - // @PostMapping("collectionAudit") - // public ResponseEntity collectionAudit( - // @RequestBody AuditRequest request){ - // boolean result = cashAuditService.collectionAudit(request.getToken(),request.getOrderCode(), request.getAction(),request.getRejectReason()); - //return ResponseEntity.ok(result); - // } + @Log("收款审核") + @PostMapping("/collectionAudit") + public ResponseEntity collectionAudit( + @RequestBody AuditRequest request){ + boolean result = cashAuditService.auditCollection(request.getToken(),request.getOrderCode(), request.getAction(),request.getRejectReason()); + return ResponseEntity.ok(result); + } } diff --git a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java new file mode 100644 index 0000000..94db695 --- /dev/null +++ b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java @@ -0,0 +1,19 @@ +package com.example.demo.mapper.cash; + +import com.example.demo.domain.entity.CashRecord; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @program: gold-java + * @ClassName cashAuditMapper + * @description: + * @author: Ethan + * @create: 2025−10-08 15:02 + * @Version 1.0 + **/ +@Mapper +public interface CashAuditMapper { + //更新订单 + void updateOrder (CashRecord updateOrder); +} diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java index 8795031..86948fc 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -1,6 +1,7 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.domain.entity.CashRecord; +import com.example.demo.mapper.cash.CashAuditMapper; import com.example.demo.mapper.cash.CashCollectionMapper; import com.example.demo.service.cash.CashAuditService; import org.springframework.beans.factory.annotation.Autowired; @@ -19,11 +20,27 @@ import org.springframework.transaction.annotation.Transactional; public class CashAuditServiceImpl implements CashAuditService { @Autowired private CashCollectionMapper cashCollectionMapper; - + @Autowired + private CashAuditMapper cashAuditMapper; @Transactional @Override public boolean auditCollection(String token, String orderCode, Integer action, String rejectReason) { CashRecord order = cashCollectionMapper.selectUnAuditByOrderCode(orderCode); - return false; + if (order==null || order.getStatus()!=0){ + throw new IllegalArgumentException("订单不存在或已被审核"); + } + //判断是通过还是驳回,更新审核状态 + CashRecord updateOrder = new CashRecord(); + updateOrder.setOrderCode(orderCode); + if (action==1){ //通过 + updateOrder.setStatus(1); + } + else if (action==2){ //驳回 + updateOrder.setStatus(2); + updateOrder.setRejectReason(rejectReason); + } + //更新订单 + cashAuditMapper.updateOrder(updateOrder); + return true; } } diff --git a/src/main/resources/cashMapper/CashAuditMapper.xml b/src/main/resources/cashMapper/CashAuditMapper.xml new file mode 100644 index 0000000..9de8075 --- /dev/null +++ b/src/main/resources/cashMapper/CashAuditMapper.xml @@ -0,0 +1,12 @@ + + + + + + + update cash_record + set status=#{status}, + reject_reason=#{rejectReason} + where order_code=#{orderCode} and status=0 + + \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index a72329c..48f68de 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -113,6 +113,6 @@ \ No newline at end of file From e382e77cdad56022a313f3d1ac2b4983f8251ddd Mon Sep 17 00:00:00 2001 From: lijianlin Date: Thu, 9 Oct 2025 15:49:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?10-09-=E7=8E=B0=E9=87=91=E6=94=B6=E6=AC=BE?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=89=8B=E7=BB=AD=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../demo/controller/cash/CashAuditController.java | 2 +- .../controller/cash/CashCollectionController.java | 17 ++++++++++++---- .../com/example/demo/domain/entity/CashRecord.java | 4 +++- .../demo/domain/vo/cash/CashCollection.java | 2 ++ .../example/demo/mapper/cash/CashAuditMapper.java | 2 +- .../demo/mapper/cash/CashCollectionMapper.java | 2 ++ .../demo/service/cash/CashAuditService.java | 2 +- .../demo/service/cash/CashCollectionService.java | 4 +++- .../serviceImpl/cash/CashAuditServiceImpl.java | 10 ++++++++-- .../cash/CashCollectionServiceImpl.java | 9 ++++++++- src/main/resources/cashMapper/CashAuditMapper.xml | 8 +++++--- .../resources/cashMapper/CashCollectionMapper.xml | 23 ++++++++++++++++++---- 12 files changed, 66 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/example/demo/controller/cash/CashAuditController.java b/src/main/java/com/example/demo/controller/cash/CashAuditController.java index f4571c9..0ace10f 100644 --- a/src/main/java/com/example/demo/controller/cash/CashAuditController.java +++ b/src/main/java/com/example/demo/controller/cash/CashAuditController.java @@ -34,7 +34,7 @@ public class CashAuditController { @PostMapping("/collectionAudit") public ResponseEntity collectionAudit( @RequestBody AuditRequest request){ - boolean result = cashAuditService.auditCollection(request.getToken(),request.getOrderCode(), request.getAction(),request.getRejectReason()); + boolean result = cashAuditService.auditCollection(request.getToken(),request.getAuditId(),request.getOrderCode(), request.getAction(),request.getRejectReason()); return ResponseEntity.ok(result); } } diff --git a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java index 4ba119f..b898547 100644 --- a/src/main/java/com/example/demo/controller/cash/CashCollectionController.java +++ b/src/main/java/com/example/demo/controller/cash/CashCollectionController.java @@ -63,9 +63,9 @@ public class CashCollectionController { return Result.error(e.getMessage()); } } - //多条件查询收款订单列表----客服版 - @PostMapping("/selectCollection1") - public PageInfo selectCollection1( + //多条件查询收款订单列表 + @PostMapping("/selectCollection") + public PageInfo selectCollection( @RequestBody Page page) throws Exception{ Integer pageNum = page.getPageNum(); Integer pageSize = page.getPageSize(); @@ -79,6 +79,15 @@ public class CashCollectionController { cashCollection.setMarkets(list); } - return cashCollectionService.selectCollection1(pageNum, pageSize, cashCollection); + return cashCollectionService.selectCollection(pageNum, pageSize, cashCollection); + } + //补全手续费等 + @PostMapping("/complete") + public Result complete(@RequestBody CashRecord cashRecord) { + try { + return cashCollectionService.complete(cashRecord); + }catch (Exception e){ + return Result.error(e.getMessage()); + } } } diff --git a/src/main/java/com/example/demo/domain/entity/CashRecord.java b/src/main/java/com/example/demo/domain/entity/CashRecord.java index 690cc3e..36de1fe 100644 --- a/src/main/java/com/example/demo/domain/entity/CashRecord.java +++ b/src/main/java/com/example/demo/domain/entity/CashRecord.java @@ -57,9 +57,11 @@ public class CashRecord implements Serializable { private String voucher; // 转账凭证 private String remark; // 备注 private String rejectReason; // 驳回理由 + private Integer auditId; //审核人Id + private String receivedRemark; // 到账备注 // 退款专用字段 - private String refundReason; // 退款备注(客服填写) + private String refundReason; // 退款原因(客服填写) private Integer refundModel; // 退款方式:0-全额,1-部分 private Integer executor; // 退款执行人 OA 号 private String refundChannels; // 退款途径 diff --git a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java index 8787f46..f01ba91 100644 --- a/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java +++ b/src/main/java/com/example/demo/domain/vo/cash/CashCollection.java @@ -54,7 +54,9 @@ public class CashCollection implements Serializable { private String submitterName; // 提交人 姓名 private String voucher; // 转账凭证 private String remark; // 备注 + private String receivedRemark; //到账备注 private String rejectReason; // 驳回理由 + private String auditId; //审核人id @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") private LocalDateTime createTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai") diff --git a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java index 94db695..71d028d 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashAuditMapper.java @@ -14,6 +14,6 @@ import org.apache.ibatis.annotations.Param; **/ @Mapper public interface CashAuditMapper { - //更新订单 + //审核收款订单 void updateOrder (CashRecord updateOrder); } diff --git a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java index 8673abf..f51def2 100644 --- a/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java +++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java @@ -37,4 +37,6 @@ public interface CashCollectionMapper { //根据订单号查询待审核的现金收款订单 CashRecord selectUnAuditByOrderCode(@Param("orderCode") String orderCode); + //补全手续费等信息 + int complete(@Param("cashRecord") CashRecord cashRecord); } diff --git a/src/main/java/com/example/demo/service/cash/CashAuditService.java b/src/main/java/com/example/demo/service/cash/CashAuditService.java index 006195b..bfca84a 100644 --- a/src/main/java/com/example/demo/service/cash/CashAuditService.java +++ b/src/main/java/com/example/demo/service/cash/CashAuditService.java @@ -11,5 +11,5 @@ package com.example.demo.service.cash; public interface CashAuditService { //审核收款订单 - boolean auditCollection(String token, String orderCode, Integer action, String rejectReason); + boolean auditCollection(String token,Integer auditId, String orderCode, Integer action, String rejectReason); } diff --git a/src/main/java/com/example/demo/service/cash/CashCollectionService.java b/src/main/java/com/example/demo/service/cash/CashCollectionService.java index ce136a1..7e9e8fd 100644 --- a/src/main/java/com/example/demo/service/cash/CashCollectionService.java +++ b/src/main/java/com/example/demo/service/cash/CashCollectionService.java @@ -22,5 +22,7 @@ public interface CashCollectionService { //编辑并重新提交收款订单 Result reSubmit(CashRecord cashRecord); //多条件查询收款订单列表 - PageInfo selectCollection1(Integer pageNum, Integer pageSize, CashCollection cashCollection); + PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection); + //补全手续费等 + Result complete(CashRecord cashRecord); } diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java index 86948fc..55b9bc2 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java @@ -3,6 +3,7 @@ package com.example.demo.serviceImpl.cash; import com.example.demo.domain.entity.CashRecord; import com.example.demo.mapper.cash.CashAuditMapper; import com.example.demo.mapper.cash.CashCollectionMapper; +import com.example.demo.mapper.coin.AuditMapper; import com.example.demo.service.cash.CashAuditService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -19,18 +20,23 @@ import org.springframework.transaction.annotation.Transactional; @Service public class CashAuditServiceImpl implements CashAuditService { @Autowired + private AuditMapper auditMapper; + @Autowired private CashCollectionMapper cashCollectionMapper; @Autowired private CashAuditMapper cashAuditMapper; @Transactional @Override - public boolean auditCollection(String token, String orderCode, Integer action, String rejectReason) { + public boolean auditCollection(String token,Integer auditId, String orderCode, Integer action, String rejectReason) { CashRecord order = cashCollectionMapper.selectUnAuditByOrderCode(orderCode); + if (order==null || order.getStatus()!=0){ throw new IllegalArgumentException("订单不存在或已被审核"); } - //判断是通过还是驳回,更新审核状态 CashRecord updateOrder = new CashRecord(); + //设置审核人 + updateOrder.setAuditId(auditId); + //判断是通过还是驳回,更新审核状态 updateOrder.setOrderCode(orderCode); if (action==1){ //通过 updateOrder.setStatus(1); diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java index 2e01654..7a572e6 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -167,7 +167,7 @@ public class CashCollectionServiceImpl implements CashCollectionService { } //多条件查询收款订单列表 @Override - public PageInfo selectCollection1(Integer pageNum, Integer pageSize, CashCollection cashCollection) { + public PageInfo selectCollection(Integer pageNum, Integer pageSize, CashCollection cashCollection) { //将操作人的地区列表改为id List markets = marketMapper.getMarketIds(cashCollection.getMarkets()); if (markets.contains("9") || markets.contains("9999")){ @@ -178,4 +178,11 @@ public class CashCollectionServiceImpl implements CashCollectionService { List cashCollections = cashCollectionMapper.selectCollection1(pageNum, pageSize, cashCollection); return new PageInfo<>(cashCollections); } + //补全手续费等内容 + @Override + public Result complete(CashRecord cashRecord) { + int rows = cashCollectionMapper.complete(cashRecord); + + return rows > 0 ? Result.success("编辑成功") : Result.error("编辑失败"); + } } diff --git a/src/main/resources/cashMapper/CashAuditMapper.xml b/src/main/resources/cashMapper/CashAuditMapper.xml index 9de8075..ea979ba 100644 --- a/src/main/resources/cashMapper/CashAuditMapper.xml +++ b/src/main/resources/cashMapper/CashAuditMapper.xml @@ -2,11 +2,13 @@ - + update cash_record set status=#{status}, - reject_reason=#{rejectReason} - where order_code=#{orderCode} and status=0 + reject_reason=#{rejectReason}, + audit_id=#{auditId}, + audit_time=now() + where order_code=#{orderCode} and status=0 \ No newline at end of file diff --git a/src/main/resources/cashMapper/CashCollectionMapper.xml b/src/main/resources/cashMapper/CashCollectionMapper.xml index 48f68de..98f288e 100644 --- a/src/main/resources/cashMapper/CashCollectionMapper.xml +++ b/src/main/resources/cashMapper/CashCollectionMapper.xml @@ -16,6 +16,7 @@ #{paymentAmount},#{receivedMarket},#{payType},#{payTime}, #{status},#{submitterId},#{voucher},#{remark}) + update cash_record @@ -44,6 +45,19 @@ WHERE order_code = #{cashRecord.orderCode} AND status = 5 + + + update cash_record + set handling_charge=#{cashRecord.handlingCharge}, + received_currency=#{cashRecord.receivedCurrency}, + received_amount=#{cashRecord.receivedAmount}, + received_time=#{cashRecord.receivedTime}, + received_remark= #{cashRecord.receivedRemark}, + status=4, + bank_code= #{cashRecord.bankCode} + where order_code=#{cashRecord.orderCode} and status in (1,3) + +