From 6416e025afd6b3d19347610b3e441ac6a12a0f8f Mon Sep 17 00:00:00 2001
From: xin <1099200748@qq.com>
Date: Thu, 25 Sep 2025 22:59:05 +0800
Subject: [PATCH] 工具:支付配置
---
oying-tools/src/main/resources/mapper/PayConfigMapper.xml | 35 +++++
oying-tools/src/main/java/com/oying/mapper/PayConfigMapper.java | 30 +++++
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java | 6 +
oying-tools/src/main/java/com/oying/rest/PayConfigController.java | 54 +++++++++
oying-tools/src/main/java/com/oying/service/PayConfigService.java | 64 ++++++++++
oying-tools/src/main/java/com/oying/service/impl/PayConfigServiceImpl.java | 105 +++++++++++++++++
oying-tools/src/main/java/com/oying/domain/PayConfig.java | 48 ++++++++
oying-tools/src/main/java/com/oying/domain/dto/PayConfigQueryCriteria.java | 18 +++
8 files changed, 360 insertions(+), 0 deletions(-)
diff --git a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
index 972bccd..a17d391 100644
--- a/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
+++ b/oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderServiceImpl.java
@@ -20,6 +20,7 @@
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.domain.vo.ProductInfo;
import com.oying.modules.sh.service.*;
+import com.oying.service.PayConfigService;
import com.oying.utils.*;
import com.oying.utils.enums.*;
import lombok.RequiredArgsConstructor;
@@ -27,6 +28,7 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.oying.modules.sh.domain.dto.OrderQueryCriteria;
import com.oying.modules.sh.mapper.OrderMapper;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -56,6 +58,9 @@
private final StoreService storeService;
private final OrderOperationLogService operationLogService;
private final ProductInventoryService productInventoryService;
+ private final PayConfigService payConfigService;
+ @Value("${oying.enabled}")
+ private Boolean oyingEnabled;
private static final String DESCRIBE = "哦应:";
private static final String ORDER_KEY = "oying:order";
private static final String ORDER_STORE_KEY = "oying:order:store";
@@ -77,6 +82,7 @@
@Override
@Transactional(rollbackFor = Exception.class)
public synchronized Order submitOrder(SubmitOrder submit, HttpServletRequest request) {
+ submit.setPayType(payConfigService.findInfo(oyingEnabled));
switch (submit.getPayType()) {
case HWC:
case HWC2:
diff --git a/oying-tools/src/main/java/com/oying/domain/PayConfig.java b/oying-tools/src/main/java/com/oying/domain/PayConfig.java
new file mode 100644
index 0000000..69a3e8f
--- /dev/null
+++ b/oying-tools/src/main/java/com/oying/domain/PayConfig.java
@@ -0,0 +1,48 @@
+package com.oying.domain;
+
+import com.oying.base.BaseEntity;
+import lombok.Getter;
+import lombok.Setter;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author lixin
+* @date 2025-09-25
+**/
+@Getter
+@Setter
+@TableName("tool_pay_config")
+public class PayConfig extends BaseEntity implements Serializable {
+
+ @TableId(value = "config_id", type = IdType.AUTO)
+ @ApiModelProperty(value = "主键")
+ private Long configId;
+
+ @NotBlank
+ @ApiModelProperty(value = "名称")
+ private String configName;
+
+ @ApiModelProperty(value = "类型")
+ private String configType;
+
+ @ApiModelProperty(value = "环境")
+ private Boolean oying;
+
+ @ApiModelProperty(value = "门店编号")
+ private String mchId;
+
+ @ApiModelProperty(value = "是否启用")
+ private Boolean enabled;
+
+ public void copy(PayConfig source){
+ BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+ }
+}
diff --git a/oying-tools/src/main/java/com/oying/domain/dto/PayConfigQueryCriteria.java b/oying-tools/src/main/java/com/oying/domain/dto/PayConfigQueryCriteria.java
new file mode 100644
index 0000000..93f720c
--- /dev/null
+++ b/oying-tools/src/main/java/com/oying/domain/dto/PayConfigQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author lixin
+* @date 2025-09-25
+**/
+@Data
+public class PayConfigQueryCriteria{
+
+ @ApiModelProperty(value = "页码", example = "1")
+ private Integer page = 1;
+
+ @ApiModelProperty(value = "每页数据量", example = "10")
+ private Integer size = 10;
+}
diff --git a/oying-tools/src/main/java/com/oying/mapper/PayConfigMapper.java b/oying-tools/src/main/java/com/oying/mapper/PayConfigMapper.java
new file mode 100644
index 0000000..bcca774
--- /dev/null
+++ b/oying-tools/src/main/java/com/oying/mapper/PayConfigMapper.java
@@ -0,0 +1,30 @@
+package com.oying.mapper;
+
+import com.oying.domain.PayConfig;
+import com.oying.domain.dto.PayConfigQueryCriteria;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * @author lixin
+ * @date 2025-09-25
+ **/
+@Mapper
+public interface PayConfigMapper extends BaseMapper<PayConfig> {
+
+ IPage<PayConfig> findAll(@Param("criteria") PayConfigQueryCriteria criteria, Page<Object> page);
+
+ List<PayConfig> findAll(@Param("criteria") PayConfigQueryCriteria criteria);
+
+ void disabled(@Param("configId") Long configId);
+
+ void using(@Param("configId") Long configId);
+
+ PayConfig findInfo(@Param("oying") Boolean oying);
+}
diff --git a/oying-tools/src/main/java/com/oying/rest/PayConfigController.java b/oying-tools/src/main/java/com/oying/rest/PayConfigController.java
new file mode 100644
index 0000000..9d481b4
--- /dev/null
+++ b/oying-tools/src/main/java/com/oying/rest/PayConfigController.java
@@ -0,0 +1,54 @@
+package com.oying.rest;
+
+import com.oying.annotation.Log;
+import com.oying.domain.PayConfig;
+import com.oying.service.PayConfigService;
+import com.oying.domain.dto.PayConfigQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author lixin
+* @date 2025-09-25
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "工具:支付配置")
+@RequestMapping("/api/payConfig")
+public class PayConfigController {
+
+ private final PayConfigService payConfigService;
+
+ @ApiOperation("导出数据")
+ @GetMapping(value = "/download")
+ @PreAuthorize("@el.check('payConfig:list')")
+ public void exportPayConfig(HttpServletResponse response, PayConfigQueryCriteria criteria) throws IOException {
+ payConfigService.download(payConfigService.queryAll(criteria), response);
+ }
+
+ @GetMapping
+ @ApiOperation("查询支付配置")
+ @PreAuthorize("@el.check('payConfig:list')")
+ public ResponseEntity<PageResult<PayConfig>> queryPayConfig(PayConfigQueryCriteria criteria){
+ Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+ return new ResponseEntity<>(payConfigService.queryAll(criteria,page),HttpStatus.OK);
+ }
+
+ @PutMapping
+ @Log("启用支付配置")
+ @ApiOperation("启用支付配置")
+ @PreAuthorize("@el.check('payConfig:edit')")
+ public ResponseEntity<Object> updatePayConfig(@Validated @RequestBody PayConfig resources){
+ payConfigService.using(resources);
+ return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+ }
+}
diff --git a/oying-tools/src/main/java/com/oying/service/PayConfigService.java b/oying-tools/src/main/java/com/oying/service/PayConfigService.java
new file mode 100644
index 0000000..a7288cc
--- /dev/null
+++ b/oying-tools/src/main/java/com/oying/service/PayConfigService.java
@@ -0,0 +1,64 @@
+package com.oying.service;
+
+import com.oying.domain.PayConfig;
+import com.oying.domain.dto.PayConfigQueryCriteria;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+import com.oying.utils.enums.PayTypeEnum;
+
+/**
+* @description 服务接口
+* @author lixin
+* @date 2025-09-25
+**/
+public interface PayConfigService extends IService<PayConfig> {
+
+ /**
+ * 查询数据分页
+ * @param criteria 条件
+ * @param page 分页参数
+ * @return PageResult
+ */
+ PageResult<PayConfig> queryAll(PayConfigQueryCriteria criteria, Page<Object> page);
+
+ /**
+ * 查询所有数据不分页
+ * @param criteria 条件参数
+ * @return List<PayConfigDto>
+ */
+ List<PayConfig> queryAll(PayConfigQueryCriteria criteria);
+
+ /**
+ * 创建
+ * @param resources /
+ */
+ void create(PayConfig resources);
+
+ /**
+ * 编辑
+ * @param resources /
+ */
+ void update(PayConfig resources);
+
+ /**
+ * 多选删除
+ * @param ids /
+ */
+ void deleteAll(List<Long> ids);
+
+ /**
+ * 导出数据
+ * @param all 待导出的数据
+ * @param response /
+ * @throws IOException /
+ */
+ void download(List<PayConfig> all, HttpServletResponse response) throws IOException;
+
+ void using(PayConfig resources);
+
+ PayTypeEnum findInfo(Boolean oying);
+}
diff --git a/oying-tools/src/main/java/com/oying/service/impl/PayConfigServiceImpl.java b/oying-tools/src/main/java/com/oying/service/impl/PayConfigServiceImpl.java
new file mode 100644
index 0000000..f0c3065
--- /dev/null
+++ b/oying-tools/src/main/java/com/oying/service/impl/PayConfigServiceImpl.java
@@ -0,0 +1,105 @@
+package com.oying.service.impl;
+
+import com.oying.domain.PayConfig;
+import com.oying.utils.FileUtil;
+import com.oying.utils.enums.PayTypeEnum;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.service.PayConfigService;
+import com.oying.domain.dto.PayConfigQueryCriteria;
+import com.oying.mapper.PayConfigMapper;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+
+import com.oying.utils.PageResult;
+
+/**
+ * @author lixin
+ * @description 服务实现
+ * @date 2025-09-25
+ **/
+@Service
+@RequiredArgsConstructor
+public class PayConfigServiceImpl extends ServiceImpl<PayConfigMapper, PayConfig> implements PayConfigService {
+
+ private final PayConfigMapper payConfigMapper;
+
+ @Value("${pay.type}")
+ private String payType;
+
+ @Override
+ public PageResult<PayConfig> queryAll(PayConfigQueryCriteria criteria, Page<Object> page) {
+ return PageUtil.toPage(payConfigMapper.findAll(criteria, page));
+ }
+
+ @Override
+ public List<PayConfig> queryAll(PayConfigQueryCriteria criteria) {
+ return payConfigMapper.findAll(criteria);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void create(PayConfig resources) {
+ payConfigMapper.insert(resources);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void update(PayConfig resources) {
+ PayConfig payConfig = getById(resources.getConfigId());
+ payConfig.copy(resources);
+ payConfigMapper.updateById(payConfig);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void using(PayConfig resources) {
+ payConfigMapper.disabled(resources.getConfigId());
+ payConfigMapper.using(resources.getConfigId());
+ }
+
+ @Override
+ public PayTypeEnum findInfo(Boolean oying) {
+ PayConfig payConfig = payConfigMapper.findInfo(oying);
+ if (payConfig != null) {
+ return PayTypeEnum.find(payConfig.getConfigType());
+ } else {
+ return PayTypeEnum.find(payType);
+ }
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public void deleteAll(List<Long> ids) {
+ payConfigMapper.deleteBatchIds(ids);
+ }
+
+ @Override
+ public void download(List<PayConfig> all, HttpServletResponse response) throws IOException {
+ List<Map<String, Object>> list = new ArrayList<>();
+ for (PayConfig payConfig : all) {
+ Map<String, Object> map = new LinkedHashMap<>();
+ map.put("名称", payConfig.getConfigName());
+ map.put("类型", payConfig.getConfigType());
+ map.put("环境", payConfig.getOying() ? "测试" : "生成");
+ map.put("门店编号", payConfig.getMchId());
+ map.put("是否启用", payConfig.getEnabled() ? "是" : "否");
+ map.put("创建者", payConfig.getCreateBy());
+ map.put("创建时间", payConfig.getCreateTime());
+ map.put("更新者", payConfig.getUpdateBy());
+ map.put("更新时间", payConfig.getUpdateTime());
+ list.add(map);
+ }
+ FileUtil.downloadExcel(list, response);
+ }
+}
diff --git a/oying-tools/src/main/resources/mapper/PayConfigMapper.xml b/oying-tools/src/main/resources/mapper/PayConfigMapper.xml
new file mode 100644
index 0000000..fdbdf94
--- /dev/null
+++ b/oying-tools/src/main/resources/mapper/PayConfigMapper.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.mapper.PayConfigMapper">
+ <resultMap id="BaseResultMap" type="com.oying.domain.PayConfig">
+ <id column="config_id" property="configId"/>
+ <result column="config_name" property="configName"/>
+ <result column="config_type" property="configType"/>
+ <result column="mch_id" property="mchId"/>
+ <result column="enabled" property="enabled"/>
+ <result column="create_by" property="createBy"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_by" property="updateBy"/>
+ <result column="update_time" property="updateTime"/>
+ </resultMap>
+
+ <sql id="Base_Column_List">
+ config_id, config_name, config_type, mch_id, enabled, create_by, create_time, update_by, update_time
+ </sql>
+ <update id="disabled">
+ update tool_pay_config set enabled = false where config_id != #{configId}
+ </update>
+ <update id="using">
+ update tool_pay_config set enabled = true where config_id = #{configId}
+ </update>
+
+ <select id="findAll" resultMap="BaseResultMap">
+ select
+ <include refid="Base_Column_List"/>
+ from tool_pay_config
+ order by config_id desc
+ </select>
+ <select id="findInfo" resultType="com.oying.domain.PayConfig">
+ select * from tool_pay_config where enabled = true and oying = #{oying} limit 1
+ </select>
+</mapper>
--
Gitblit v1.9.3