From 0aa24c09cd90a534c86b366eb34ce5190f7d64c3 Mon Sep 17 00:00:00 2001 From: huangqizhen <15552608129@163.com> Date: Sat, 11 Oct 2025 10:46:23 +0800 Subject: [PATCH] =?UTF-8?q?10.11=20=E9=80=80=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 + .../com/example/demo/Mysql/MysqlServiceImpl.java | 2 +- .../demo/controller/cash/CashRefundController.java | 92 ++++++++++++ .../demo/controller/coin/RefundController.java | 4 +- .../java/com/example/demo/domain/vo/coin/Page.java | 2 + .../example/demo/mapper/cash/CashRefundMapper.java | 22 +++ .../example/demo/service/cash/RefundService.java | 19 +++ .../cash/CashCollectionServiceImpl.java | 1 - .../serviceImpl/cash/CashRefundServiceImpl.java | 44 ++++++ src/main/resources/application-prod.yml | 4 +- src/main/resources/mapper/CashRefundMapper.xml | 167 +++++++++++++++++++++ src/main/resources/processes/work.bpmn20.xml | 132 ++++++++++++++++ 12 files changed, 484 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/example/demo/controller/cash/CashRefundController.java create mode 100644 src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java create mode 100644 src/main/java/com/example/demo/service/cash/RefundService.java create mode 100644 src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java create mode 100644 src/main/resources/mapper/CashRefundMapper.xml create mode 100644 src/main/resources/processes/work.bpmn20.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/Mysql/MysqlServiceImpl.java b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java index e51ac39..959f13a 100644 --- a/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java +++ b/src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java @@ -82,7 +82,7 @@ public class MysqlServiceImpl implements MysqlService { id, gtype, jwcode, free, core_jb, buy_jb, cz_time, cz_user, cz_bz, operation_platform, goods_name FROM hwhcGold.dbo.user_gold_records - WHERE cz_time > ? + WHERE cz_time >= ? ORDER BY cz_time ASC OFFSET ? ROWS FETCH NEXT ? ROWS ONLY; diff --git a/src/main/java/com/example/demo/controller/cash/CashRefundController.java b/src/main/java/com/example/demo/controller/cash/CashRefundController.java new file mode 100644 index 0000000..07f2bff --- /dev/null +++ b/src/main/java/com/example/demo/controller/cash/CashRefundController.java @@ -0,0 +1,92 @@ +package com.example.demo.controller.cash; + +import com.example.demo.Util.JWTUtil; +import com.example.demo.domain.entity.Admin; +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.coin.MarketService; +import com.example.demo.serviceImpl.cash.CashRefundServiceImpl; +import com.github.pagehelper.PageInfo; +import jakarta.servlet.http.HttpServletRequest; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.ObjectUtils; +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 + * @ClassName RefundController + * @description: + * @author: huangqizhen + * @create: 2025−09-26 14:15 + * @Version 1.0 + **/ +@RestController +@RequestMapping("/Money") +@RequiredArgsConstructor +@Slf4j +@CrossOrigin +public class CashRefundController { + @Autowired + private CashRefundServiceImpl cashRefundServiceImpl; + @Autowired + MarketService marketService; + @PostMapping("/select") + public Result select(@RequestBody Page page) throws Exception { + // 获取当前请求对象 + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + String token = request.getHeader("token"); + +// 解析 token 获取用户信息 + Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); + List userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); + List markets = marketService.getMarketIds(userMarkets); + +// 校验分页参数 + if (ObjectUtils.isEmpty(page.getPageNum())) { + return Result.error("页码数为空!"); + } + if (ObjectUtils.isEmpty(page.getPageSize())) { + return Result.error("页大小为空!"); + } + +// 获取传入的市场列表 + List requestedMarkets = page.getGoldDetail() != null ? page.getGoldDetail().getMarkets() : null; + +// 权限校验逻辑 + if (markets.contains("9") || markets.contains("9999")) { + // 特权市场:9 或 9999,跳过权限校验,直接放行传入的 markets + // 如果业务需要,也可以在这里做空值处理 + if (page.getGoldDetail() != null) { + // 保持 requestedMarkets 不变,原样接受 + // 可选:如果 requestedMarkets 为 null,可设为默认值或保持 null + } + } else { + // 普通用户:必须校验权限 + if (requestedMarkets == null || requestedMarkets.isEmpty()) { + page.getGoldDetail().setMarkets(requestedMarkets); + } + if (!markets.containsAll(requestedMarkets)) { + return Result.error("无权限!请求的市场不在授权范围内。"); + } + // 校验通过,保持 requestedMarkets 不变 + } + return Result.success(cashRefundServiceImpl.select(page.getPageNum(),page.getPageSize(),page.getCashCollection())); + } + @PostMapping("/add") + public Result add(@RequestBody CashCollection cashCollection){ + return Result.success(cashRefundServiceImpl.add(cashCollection)); + } + @PostMapping("/update") + public Result update(@RequestBody CashCollection cashCollection){ + return Result.success(cashRefundServiceImpl.update(cashCollection)); + } +} 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..903d001 100644 --- a/src/main/java/com/example/demo/controller/coin/RefundController.java +++ b/src/main/java/com/example/demo/controller/coin/RefundController.java @@ -129,14 +129,14 @@ public class RefundController { } //消耗金币增加 - @Log("新增金币消耗") + @Log("新增金币退款") @PostMapping("/add") public Result add(@RequestBody RefundUser refundUser) { try { return refundService.add(refundUser); } catch (Exception e) { e.printStackTrace(); - return Result.error("请检查数据的格式"); + return Result.error(e.getMessage()); } } public Result selcet(@RequestBody Page page) { 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..270e054 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/CashRefundMapper.java b/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java new file mode 100644 index 0000000..f15e4ca --- /dev/null +++ b/src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java @@ -0,0 +1,22 @@ +package com.example.demo.mapper.cash; + +import com.example.demo.domain.vo.cash.CashCollection; +import com.example.demo.domain.vo.coin.RefundUser; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @program: GOLD + * @ClassName RefundController + * @description: + * @author: huangqizhen + * @create: 2025−09-28 10:37 + * @Version 1.0 + **/ +@Mapper +public interface CashRefundMapper { + List select(CashCollection cashCollection); + int update(CashCollection cashCollection); + int insert(CashCollection cashCollection); +} diff --git a/src/main/java/com/example/demo/service/cash/RefundService.java b/src/main/java/com/example/demo/service/cash/RefundService.java new file mode 100644 index 0000000..c101715 --- /dev/null +++ b/src/main/java/com/example/demo/service/cash/RefundService.java @@ -0,0 +1,19 @@ +package com.example.demo.service.cash; + +import com.example.demo.domain.vo.cash.CashCollection; +import com.github.pagehelper.PageInfo; + +/** + * @program: GOLD + * @ClassName RefundService + * @description: + * @author: huangqizhen + * @create: 2025−09-26 14:17 + * @Version 1.0 + **/ +public interface RefundService { + PageInfo select(Integer pageNum, Integer pageSize,CashCollection cashCollection); + int add(CashCollection cashCollection); + int update(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..6cb7e6c 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -20,7 +20,6 @@ import java.util.UUID; @Service public class CashCollectionServiceImpl implements CashCollectionService { - @Autowired @Override public Result add(CashCollection cashCollection) { diff --git a/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java new file mode 100644 index 0000000..86288b6 --- /dev/null +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java @@ -0,0 +1,44 @@ +package com.example.demo.serviceImpl.cash; + +import com.example.demo.domain.vo.cash.CashCollection; +import com.example.demo.mapper.cash.CashRefundMapper; +import com.example.demo.service.cash.RefundService; +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; + +/** + * @program: GOLD + * @ClassName CashRefundServiceImpl + * @description: + * @author: huangqizhen + * @create: 2025−09-28 15:02 + * @Version 1.0 + **/ +@Service + +public class CashRefundServiceImpl implements RefundService { + + @Autowired + private CashRefundMapper cashRefundMapper; + @Override + public PageInfo select(Integer pageNum, Integer pageSize,CashCollection cashCollection) { + PageHelper.startPage(pageNum, pageSize); +// System.out.println(goldDetail.getMarkets()); + List list = cashRefundMapper.select(cashCollection); + return new PageInfo<>(list); + } + + @Override + public int add(CashCollection cashCollection) { + return cashRefundMapper.insert(cashCollection); + } + + @Override + public int update(CashCollection cashCollection) { + return cashRefundMapper.update(cashCollection); + } +} diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 614b47a..a5dbf40 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -4,7 +4,7 @@ spring: fail-on-unknown-properties: false datasource: mysql1: - jdbc-url: jdbc:mysql://localhost:3306/hwgold?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&allowMultiQueries=true&rewriteBatchedStatements=true + jdbc-url: jdbc:mysql://54.255.212.181:3306/hwgold?serverTimezone=Asia/Shanghai&useSSL=false&useUnicode=true&allowMultiQueries=true&rewriteBatchedStatements=true username: hwgold password: aDiw7MERSATdfGta driver-class-name: com.mysql.cj.jdbc.Driver @@ -45,7 +45,7 @@ spring: pool-name: mysql5HikariCP maximum-pool-size: 10 sqlserver1: - jdbc-url: jdbc:sqlserver://10.19.183.6:1433;encrypt=true;sslProtocol=TLSv1;trustServerCertificate=true; + jdbc-url: jdbc:sqlserver://52.76.43.43:1433;encrypt=true;sslProtocol=TLSv1;trustServerCertificate=true; username: gjb_test password: qweuio!@#$2 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver diff --git a/src/main/resources/mapper/CashRefundMapper.xml b/src/main/resources/mapper/CashRefundMapper.xml new file mode 100644 index 0000000..19c89a4 --- /dev/null +++ b/src/main/resources/mapper/CashRefundMapper.xml @@ -0,0 +1,167 @@ + + + + + INSERT INTO cash_record ( + order_type, + jwcode, + name, + market, + activity, + order_code, + bank_code, + goods_name, + goods_num, + payment_currency, + payment_amount, + received_currency, + received_amount, + handling_charge, + received_market, + pay_type, + pay_time, + received_time, + status, + submitter_id, + voucher, + remark, + refund_reason, + refund_model, + executor, + refund_channels, + refund_currency, + refund_amount, + refund_time, + refund_remark, + refund_voucher, + create_time, + update_time + ) VALUES ( + #{orderType}, + #{jwcode}, + #{name}, + #{market}, + #{activity}, + #{orderCode}, + #{bankCode}, + #{goodsName}, + #{goodsNum}, + #{paymentCurrency}, + #{paymentAmount}, + #{receivedCurrency}, + #{receivedAmount}, + #{handlingCharge}, + #{receivedMarket}, + #{payType}, + #{payTime}, + #{receivedTime}, + #{submitterId}, + #{voucher}, + #{remark}, + #{status}, + #{refundReason}, + #{refundModel}, + #{executor}, + #{refundChannels}, + #{refundCurrency}, + #{refundAmount}, + #{refundTime}, + #{refundRemark}, + #{refundVoucher}, + #{createTime}, + #{updateTime}, + ); + + + +update cash_record + + + status = #{status}, + + + + +status = #{status}, + + + reject_reason = #{rejectReason}, + + + refund_reason = #{refundReason}, + + + refund_currency = #{refundCurrency}, + + + refund_amount = #{refundAmount}, + + + refund_remark = #{refundRemark}, + + + + + + \ No newline at end of file diff --git a/src/main/resources/processes/work.bpmn20.xml b/src/main/resources/processes/work.bpmn20.xml new file mode 100644 index 0000000..6fb5574 --- /dev/null +++ b/src/main/resources/processes/work.bpmn20.xml @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + ${status=='12'} + + + ${status=='20'} + + + + + + + + ${status=='22'} + + + + ${status=='30'} + + + + + + + + + + + + + + + + + + + ${status=='40'} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +