分账设置

This commit is contained in:
Jerry Yan 2025-02-13 16:53:49 +08:00
parent 8e0428e0b2
commit b4b6d93e2f
6 changed files with 63 additions and 5 deletions

View File

@ -1,5 +1,9 @@
package com.ycwl.basic.profitsharing.controller; package com.ycwl.basic.profitsharing.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.profitsharing.dto.ProfitSharingConfigReqQuery;
import com.ycwl.basic.profitsharing.dto.ProfitSharingConfigVO;
import com.ycwl.basic.profitsharing.entity.ProfitSharingConfig; import com.ycwl.basic.profitsharing.entity.ProfitSharingConfig;
import com.ycwl.basic.profitsharing.entity.ProfitSharingUser; import com.ycwl.basic.profitsharing.entity.ProfitSharingUser;
import com.ycwl.basic.profitsharing.mapper.ProfitSharingConfigMapper; import com.ycwl.basic.profitsharing.mapper.ProfitSharingConfigMapper;
@ -9,17 +13,25 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
@RestController @RestController
@RequestMapping("/api/profitSharingConfig/v1") @RequestMapping("/api/profitSharingConfig/v1")
public class ProfitSharingController { public class ProfitSharingConfigController {
@Autowired @Autowired
private ProfitSharingConfigMapper configMapper; private ProfitSharingConfigMapper configMapper;
@Autowired @Autowired
private ProfitSharingUserMapper userMapper; private ProfitSharingUserMapper userMapper;
// 新增: 分页查询接口
@PostMapping("/page")
public ApiResponse<PageInfo<ProfitSharingConfigVO>> pageQuery(@RequestBody ProfitSharingConfigReqQuery req) {
PageHelper.startPage(req.getPageNum(), req.getPageSize());
List<ProfitSharingConfigVO> list = configMapper.list(req);
PageInfo<ProfitSharingConfigVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}
// 增加: 插入新的ProfitSharingConfig记录 // 增加: 插入新的ProfitSharingConfig记录
@PostMapping("/add") @PostMapping("/add")
public ApiResponse addConfig(@RequestBody ProfitSharingConfig config) { public ApiResponse addConfig(@RequestBody ProfitSharingConfig config) {
@ -28,6 +40,8 @@ public class ProfitSharingController {
if (existingConfig != null) { if (existingConfig != null) {
return ApiResponse.fail("该景区已存在配置"); return ApiResponse.fail("该景区已存在配置");
} }
config.setCreateTime(new Date());
config.setUpdateTime(new Date());
configMapper.insert(config); configMapper.insert(config);
// 获取生成的 configId // 获取生成的 configId
Long configId = config.getId(); Long configId = config.getId();
@ -85,7 +99,7 @@ public class ProfitSharingController {
return ApiResponse.success("配置更新成功"); return ApiResponse.success("配置更新成功");
} }
@GetMapping("/findById/{id}") @GetMapping("/{id}")
public ApiResponse findById(@PathVariable Long id) { public ApiResponse findById(@PathVariable Long id) {
ProfitSharingConfig config = configMapper.findById(id); ProfitSharingConfig config = configMapper.findById(id);
config.setUsers(userMapper.findByConfigId(id)); config.setUsers(userMapper.findByConfigId(id));
@ -100,9 +114,18 @@ public class ProfitSharingController {
} }
// 查询: 根据scenicId查询单个记录 // 查询: 根据scenicId查询单个记录
@GetMapping("/findByScenicId/{scenicId}") @GetMapping("/scenicId/{scenicId}")
public ApiResponse findByScenicId(@PathVariable Long scenicId) { public ApiResponse findByScenicId(@PathVariable Long scenicId) {
ProfitSharingConfig config = configMapper.findByScenicId(scenicId); ProfitSharingConfig config = configMapper.findByScenicId(scenicId);
if (config == null) {
config = new ProfitSharingConfig();
config.setScenicId(scenicId);
config.setName("默认配置");
config.setCreateTime(new Date());
config.setUpdateTime(new Date());
configMapper.insert(config);
}
config.setUsers(userMapper.findByConfigId(config.getId()));
return ApiResponse.success(config); return ApiResponse.success(config);
} }
} }

View File

@ -0,0 +1,7 @@
package com.ycwl.basic.profitsharing.dto;
import com.ycwl.basic.model.common.BaseQueryParameterReq;
public class ProfitSharingConfigReqQuery extends BaseQueryParameterReq {
private Long scenicId;
}

View File

@ -0,0 +1,11 @@
package com.ycwl.basic.profitsharing.dto;
import com.ycwl.basic.profitsharing.entity.ProfitSharingConfig;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode
public class ProfitSharingConfigVO extends ProfitSharingConfig {
private String scenicName;
}

View File

@ -23,7 +23,6 @@ public class ProfitSharingUser {
* 实际分账比例单位为% * 实际分账比例单位为%
*/ */
private BigDecimal realRate; private BigDecimal realRate;
private BigDecimal orderAmount; // 订单金额
public void setWxPayConfig(String wxPayConfig) { public void setWxPayConfig(String wxPayConfig) {
this.wxPayConfig = JSON.parseObject(wxPayConfig, Map.class); this.wxPayConfig = JSON.parseObject(wxPayConfig, Map.class);

View File

@ -1,5 +1,8 @@
package com.ycwl.basic.profitsharing.mapper; package com.ycwl.basic.profitsharing.mapper;
import com.github.pagehelper.Page;
import com.ycwl.basic.profitsharing.dto.ProfitSharingConfigReqQuery;
import com.ycwl.basic.profitsharing.dto.ProfitSharingConfigVO;
import com.ycwl.basic.profitsharing.entity.ProfitSharingConfig; import com.ycwl.basic.profitsharing.entity.ProfitSharingConfig;
import org.apache.ibatis.annotations.*; import org.apache.ibatis.annotations.*;
@ -29,4 +32,5 @@ public interface ProfitSharingConfigMapper {
@Select("SELECT * FROM profit_sharing_config WHERE scenic_id = #{scenicId}") @Select("SELECT * FROM profit_sharing_config WHERE scenic_id = #{scenicId}")
ProfitSharingConfig findByScenicId(Long scenicId); ProfitSharingConfig findByScenicId(Long scenicId);
List<ProfitSharingConfigVO> list(ProfitSharingConfigReqQuery req);
} }

View File

@ -0,0 +1,14 @@
<?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.ycwl.basic.profitsharing.mapper.ProfitSharingConfigMapper">
<select id="list" resultType="com.ycwl.basic.profitsharing.dto.ProfitSharingConfigVO">
SELECT c.*, s.name as scenic_name
FROM profit_sharing_config c
left join scenic s on c.scenic_id = s.id
<where>
<if test="scenicId != null">
AND scenic_id = #{scenicId}
</if>
</where>
</select>
</mapper>