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 1e6ac4d..1a82402 100644 --- a/src/main/java/com/example/demo/controller/coin/RefundController.java +++ b/src/main/java/com/example/demo/controller/coin/RefundController.java @@ -136,7 +136,7 @@ public class RefundController { 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/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 7a572e6..f5c4b38 100644 --- a/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java +++ b/src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java @@ -3,8 +3,6 @@ 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.mapper.coin.MarketMapper; import com.example.demo.service.cash.CashCollectionService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; 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'} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +