Explorar o código

站点平台费率配置

skyline hai 1 ano
pai
achega
eb652fac71

+ 1 - 1
car-wash-miniapp/src/main/java/com/kym/admin/controller/MonthStatController.java → car-wash-admin/src/main/java/com/kym/admin/controller/MonthStatController.java

@@ -1,4 +1,4 @@
-package com.kym.controller;
+package com.kym.admin.controller;
 
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;

+ 68 - 0
car-wash-admin/src/main/java/com/kym/admin/controller/PlatformFeeRateController.java

@@ -0,0 +1,68 @@
+package com.kym.admin.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.kym.common.R;
+import com.kym.common.annotation.SysLog;
+import com.kym.common.controller.IController;
+import com.kym.entity.Faq;
+import com.kym.entity.PlatformFeeRate;
+import com.kym.entity.queryParams.FaqQueryParam;
+import com.kym.entity.queryParams.PlatformFeeRateQueryParam;
+import com.kym.service.PlatformFeeRateService;
+import jakarta.validation.Valid;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * <p>
+ * 站点平台费率表 前端控制器
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+@RestController
+@RequestMapping("/platform-fee-rate")
+public class PlatformFeeRateController extends IController {
+
+    private final PlatformFeeRateService platformFeeRateService;
+
+    public PlatformFeeRateController(PlatformFeeRateService platformFeeRateService) {
+        this.platformFeeRateService = platformFeeRateService;
+    }
+
+    /**
+     * 新增平台费率配置
+     *
+     * @param platformFeeRate
+     * @return Res
+     */
+    @PostMapping("add")
+    @SysLog(value = "新增平台费率配置")
+    public R<?> add(@Valid @RequestBody PlatformFeeRate platformFeeRate) {
+        return resp(() -> platformFeeRateService.save(platformFeeRate));
+    }
+
+    /**
+     * 更新平台费率配置
+     *
+     * @return Res
+     */
+    @PostMapping("modify")
+    @SysLog(value = "更新平台费率配置")
+    public R<?> modify(@Valid @RequestBody PlatformFeeRate platformFeeRate) {
+        return resp((t) -> platformFeeRateService.updateById(platformFeeRate));
+    }
+
+
+    /**
+     * 平台费率配置列表
+     *
+     * @return Res
+     */
+    @PostMapping("list")
+    @SysLog(value = "平台费率配置列表")
+    public R<?> list(@RequestBody PlatformFeeRateQueryParam params) {
+        return resp(() -> platformFeeRateService.listPlatformFeeRate(params));
+    }
+
+}

+ 1 - 1
car-wash-miniapp/src/main/java/com/kym/admin/controller/StationAccountRecordController.java → car-wash-admin/src/main/java/com/kym/admin/controller/StationAccountRecordController.java

@@ -1,4 +1,4 @@
-package com.kym.controller;
+package com.kym.admin.controller;
 
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;

+ 43 - 0
car-wash-entity/src/main/java/com/kym/entity/PlatformFeeRate.java

@@ -0,0 +1,43 @@
+package com.kym.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.kym.entity.BaseEntity;
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 站点平台费率表
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+@Getter
+@Setter
+@TableName("t_platform_fee_rate")
+public class PlatformFeeRate extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 费率配置名称
+     */
+    private String name;
+
+    /**
+     * 平台费率(0.1代表10%)
+     */
+    private Double feeRate;
+
+    /**
+     * 充值冻结金额比例(0.3代表30%)
+     */
+    private Double frozenRatio;
+
+    /**
+     * 提现手续费率(0.006代表6‰)
+     */
+    private Double withdrawalFeeRate;
+}

+ 53 - 0
car-wash-entity/src/main/java/com/kym/entity/StationFeeRate.java

@@ -0,0 +1,53 @@
+package com.kym.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.kym.entity.BaseEntity;
+import java.io.Serializable;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 站点平台费率表
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+@Getter
+@Setter
+@TableName("t_station_fee_rate")
+public class StationFeeRate extends BaseEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 站点id
+     */
+    private String stationId;
+
+    /**
+     * 平台费率表id
+     */
+    private Long feeRateId;
+
+    /**
+     * 平台费率(0.1代表10%)
+     */
+    private Double feeRate;
+
+    /**
+     * 充值冻结金额比例(0.3代表30%)
+     */
+    private Double frozenRatio;
+
+    /**
+     * 提现手续费率(0.006代表6‰)
+     */
+    private Double withdrawalFeeRate;
+
+    /**
+     * 状态:0-无效,1有效
+     */
+    private Boolean status;
+}

+ 14 - 0
car-wash-entity/src/main/java/com/kym/entity/queryParams/PlatformFeeRateQueryParam.java

@@ -0,0 +1,14 @@
+package com.kym.entity.queryParams;
+
+import com.kym.entity.common.PageParams;
+import lombok.Data;
+
+/**
+ * 平台费率查询参数
+ * @author skyline
+ */
+@Data
+public class PlatformFeeRateQueryParam extends PageParams {
+    private String name;
+    private String stationId;
+}

+ 16 - 0
car-wash-mapper/src/main/java/com/kym/mapper/PlatformFeeRateMapper.java

@@ -0,0 +1,16 @@
+package com.kym.mapper;
+
+import com.kym.entity.PlatformFeeRate;
+import com.kym.mapper.mybatisplus.MyBaseMapper;
+
+/**
+ * <p>
+ * 站点平台费率表 Mapper 接口
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+public interface PlatformFeeRateMapper extends MyBaseMapper<PlatformFeeRate> {
+
+}

+ 16 - 0
car-wash-mapper/src/main/java/com/kym/mapper/StationFeeRateMapper.java

@@ -0,0 +1,16 @@
+package com.kym.mapper;
+
+import com.kym.entity.StationFeeRate;
+import com.kym.mapper.mybatisplus.MyBaseMapper;
+
+/**
+ * <p>
+ * 站点平台费率表 Mapper 接口
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+public interface StationFeeRateMapper extends MyBaseMapper<StationFeeRate> {
+
+}

+ 17 - 0
car-wash-mapper/src/main/resources/mappers/PlatformFeeRateMapper.xml

@@ -0,0 +1,17 @@
+<?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.kym.mapper.PlatformFeeRateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.kym.entity.PlatformFeeRate">
+        <result column="fee_rate" property="feeRate" />
+        <result column="frozen_ratio" property="frozenRatio" />
+        <result column="withdrawal_fee_rate" property="withdrawalFeeRate" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        fee_rate, frozen_ratio, withdrawal_fee_rate
+    </sql>
+
+</mapper>

+ 20 - 0
car-wash-mapper/src/main/resources/mappers/StationFeeRateMapper.xml

@@ -0,0 +1,20 @@
+<?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.kym.mapper.StationFeeRateMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.kym.entity.StationFeeRate">
+        <result column="station_id" property="stationId" />
+        <result column="fee_rate_id" property="feeRateId" />
+        <result column="fee_rate" property="feeRate" />
+        <result column="frozen_ratio" property="frozenRatio" />
+        <result column="withdrawal_fee_rate" property="withdrawalFeeRate" />
+        <result column="status" property="status" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        station_id, fee_rate_id, fee_rate, frozen_ratio, withdrawal_fee_rate, status
+    </sql>
+
+</mapper>

+ 19 - 0
car-wash-service/src/main/java/com/kym/service/PlatformFeeRateService.java

@@ -0,0 +1,19 @@
+package com.kym.service;
+
+import com.kym.entity.PlatformFeeRate;
+import com.kym.entity.common.PageBean;
+import com.kym.entity.queryParams.PlatformFeeRateQueryParam;
+import com.kym.service.mybatisplus.MyBaseService;
+
+/**
+ * <p>
+ * 站点平台费率表 服务类
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+public interface PlatformFeeRateService extends MyBaseService<PlatformFeeRate> {
+
+    PageBean<PlatformFeeRate> listPlatformFeeRate(PlatformFeeRateQueryParam params);
+}

+ 23 - 0
car-wash-service/src/main/java/com/kym/service/StationFeeRateService.java

@@ -0,0 +1,23 @@
+package com.kym.service;
+
+import com.kym.entity.StationFeeRate;
+import com.kym.entity.common.PageBean;
+import com.kym.entity.queryParams.PlatformFeeRateQueryParam;
+import com.kym.service.mybatisplus.MyBaseService;
+
+/**
+ * <p>
+ * 站点平台费率表 服务类
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+public interface StationFeeRateService extends MyBaseService<StationFeeRate> {
+
+    StationFeeRate getStationFeeRate(String stationId);
+
+    PageBean<StationFeeRate> listStationPlatformFeeRate(PlatformFeeRateQueryParam params);
+
+    void bind(StationFeeRate stationFeeRate);
+}

+ 33 - 0
car-wash-service/src/main/java/com/kym/service/impl/PlatformFeeRateServiceImpl.java

@@ -0,0 +1,33 @@
+package com.kym.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.kym.common.utils.CommUtil;
+import com.kym.entity.PlatformFeeRate;
+import com.kym.entity.common.PageBean;
+import com.kym.entity.queryParams.PlatformFeeRateQueryParam;
+import com.kym.mapper.PlatformFeeRateMapper;
+import com.kym.service.PlatformFeeRateService;
+import com.kym.service.mybatisplus.MyBaseServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 站点平台费率表 服务实现类
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+@Service
+public class PlatformFeeRateServiceImpl extends MyBaseServiceImpl<PlatformFeeRateMapper, PlatformFeeRate> implements PlatformFeeRateService {
+
+    @Override
+    public PageBean<PlatformFeeRate> listPlatformFeeRate(PlatformFeeRateQueryParam params) {
+        PageHelper.startPage(params.getPageNum(), params.getPageSize());
+        var res = lambdaQuery()
+                .like(CommUtil.isNotEmptyAndNull(params.getName()), PlatformFeeRate::getName, params.getName())
+                .orderByDesc(PlatformFeeRate::getId)
+                .list();
+        return new PageBean<>(res);
+    }
+}

+ 57 - 0
car-wash-service/src/main/java/com/kym/service/impl/StationFeeRateServiceImpl.java

@@ -0,0 +1,57 @@
+package com.kym.service.impl;
+
+import com.github.pagehelper.PageHelper;
+import com.kym.common.utils.CommUtil;
+import com.kym.entity.StationFeeRate;
+import com.kym.entity.common.PageBean;
+import com.kym.entity.queryParams.PlatformFeeRateQueryParam;
+import com.kym.mapper.StationFeeRateMapper;
+import com.kym.service.StationFeeRateService;
+import com.kym.service.mybatisplus.MyBaseServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * <p>
+ * 站点平台费率表 服务实现类
+ * </p>
+ *
+ * @author skyline
+ * @since 2025-04-18
+ */
+@Service
+public class StationFeeRateServiceImpl extends MyBaseServiceImpl<StationFeeRateMapper, StationFeeRate> implements StationFeeRateService {
+
+    @Transactional
+    @Override
+    public void bind(StationFeeRate stationFeeRate) {
+        // 查询站点的绑定数据,将历史数据置为无效,插入新的数据
+        lambdaUpdate()
+                .eq(StationFeeRate::getStationId, stationFeeRate.getStationId())
+                .set(StationFeeRate::getStatus, false)
+                .update();
+        save(stationFeeRate);
+    }
+
+    @Override
+    public StationFeeRate getStationFeeRate(String stationId) {
+        var res = lambdaQuery()
+                .eq(StationFeeRate::getStationId, stationId)
+                .eq(StationFeeRate::getStatus, true)
+                .one();
+        CommUtil.asserts(res != null, "站点费率配置不存在");
+        return res;
+    }
+
+    @Override
+    public PageBean<StationFeeRate> listStationPlatformFeeRate(PlatformFeeRateQueryParam params) {
+        PageHelper.startPage(params.getPageNum(), params.getPageSize());
+        var res = lambdaQuery()
+                .eq(CommUtil.isNotEmptyAndNull(params.getStationId()), StationFeeRate::getStationId, params.getStationId())
+                .orderByDesc(StationFeeRate::getId)
+                .list();
+        return new PageBean<>(res);
+    }
+
+
+}