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/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/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/CashAuditController.java b/src/main/java/com/example/demo/controller/cash/CashAuditController.java
new file mode 100644
index 0000000..0ace10f
--- /dev/null
+++ b/src/main/java/com/example/demo/controller/cash/CashAuditController.java
@@ -0,0 +1,40 @@
+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.*;
+
+/**
+ * @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 {
+
+ @Autowired
+ private CashAuditService cashAuditService;
+
+ //收款审核
+ @Log("收款审核")
+ @PostMapping("/collectionAudit")
+ public ResponseEntity collectionAudit(
+ @RequestBody AuditRequest request){
+ 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 b1adbad..b898547 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,58 @@ 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("/selectCollection")
+ public PageInfo selectCollection(
+ @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.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/controller/coin/RefundController.java b/src/main/java/com/example/demo/controller/coin/RefundController.java
index 903d001..1a82402 100644
--- a/src/main/java/com/example/demo/controller/coin/RefundController.java
+++ b/src/main/java/com/example/demo/controller/coin/RefundController.java
@@ -128,7 +128,7 @@ public class RefundController {
return Result.success(list);
}
- //消耗金币增加
+ //消耗金币退款
@Log("新增金币退款")
@PostMapping("/add")
public Result add(@RequestBody RefundUser refundUser) {
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 1f94e13..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
@@ -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 String goodsNum; // 商品数量
+ private Integer goodNum; // 商品数量
//金额信息
private String paymentCurrency; // 付款币种
private BigDecimal paymentAmount; // 付款金额
@@ -43,16 +44,31 @@ 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 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")
private LocalDateTime 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; // 所属地区列表
+
+ }
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 270e054..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
@@ -41,5 +41,5 @@ public class Page {
private BeanUserCard beanUserCard; //客户金豆卡片
private BeanAuditInfo beanAuditInfo; //金豆审核信息
private HistoryRecord historyRecord; //历史记录
- private CashCollection cashCollection;
+ private CashCollection cashCollection; //现金收款
}
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..71d028d
--- /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/mapper/cash/CashCollectionMapper.java b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java
new file mode 100644
index 0000000..f51def2
--- /dev/null
+++ b/src/main/java/com/example/demo/mapper/cash/CashCollectionMapper.java
@@ -0,0 +1,42 @@
+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
+ * @ClassName CashCollectionMapper
+ * @description:
+ * @author: Ethan
+ * @create: 2025−09-26 17:17
+ * @Version 1.0
+ **/
+@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);
+
+ //根据订单号查询待审核的现金收款订单
+ 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
new file mode 100644
index 0000000..bfca84a
--- /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,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 63482bd..7e9e8fd 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
@@ -13,6 +15,14 @@ import com.example.demo.domain.vo.coin.Result;
**/
public interface CashCollectionService {
-
+ //新增收款订单
Result add(CashCollection cashCollection);
+ //撤回未审核的收款订单
+ Result cancel(String orderCode);
+ //编辑并重新提交收款订单
+ Result reSubmit(CashRecord cashRecord);
+ //多条件查询收款订单列表
+ 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
new file mode 100644
index 0000000..55b9bc2
--- /dev/null
+++ b/src/main/java/com/example/demo/serviceImpl/cash/CashAuditServiceImpl.java
@@ -0,0 +1,52 @@
+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;
+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 AuditMapper auditMapper;
+ @Autowired
+ private CashCollectionMapper cashCollectionMapper;
+ @Autowired
+ private CashAuditMapper cashAuditMapper;
+ @Transactional
+ @Override
+ 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);
+ }
+ else if (action==2){ //驳回
+ updateOrder.setStatus(2);
+ updateOrder.setRejectReason(rejectReason);
+ }
+ //更新订单
+ cashAuditMapper.updateOrder(updateOrder);
+ return true;
+ }
+}
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 6cb7e6c..f5c4b38 100644
--- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
+++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
@@ -4,9 +4,12 @@ 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.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;
/**
@@ -20,7 +23,12 @@ import java.util.UUID;
@Service
public class CashCollectionServiceImpl implements CashCollectionService {
+ @Autowired
+ private CashCollectionMapper cashCollectionMapper;
+ @Autowired
+ private MarketMapper marketMapper;
+ //新增收款订单
@Override
public Result add(CashCollection cashCollection) {
if (cashCollection.getJwcode()==null){
@@ -38,7 +46,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){
@@ -65,7 +73,114 @@ 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.getGoodNum()); //商品数量
+ 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-收款
+ //地区,根据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 selectCollection(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);
+ }
+ //补全手续费等内容
+ @Override
+ public Result complete(CashRecord cashRecord) {
+ int rows = cashCollectionMapper.complete(cashRecord);
+
+ return rows > 0 ? Result.success("编辑成功") : Result.error("编辑失败");
}
}
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/CashAuditMapper.xml b/src/main/resources/cashMapper/CashAuditMapper.xml
new file mode 100644
index 0000000..ea979ba
--- /dev/null
+++ b/src/main/resources/cashMapper/CashAuditMapper.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+ update cash_record
+ set status=#{status},
+ 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
new file mode 100644
index 0000000..98f288e
--- /dev/null
+++ b/src/main/resources/cashMapper/CashCollectionMapper.xml
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+ insert into
+ 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},#{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
+
+
+
+ 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)
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file