瀏覽代碼

分流占比配置并记录历史配置 获取配置列表接口

王苗苗 2 月之前
父節點
當前提交
f304a25f92

+ 116 - 0
slibra-admin/src/main/java/com/slibra/web/controller/business/TBucketRecordController.java

@@ -0,0 +1,116 @@
+package com.slibra.web.controller.business;
+
+import java.util.List;
+import javax.servlet.http.HttpServletResponse;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import com.slibra.common.annotation.Log;
+import com.slibra.common.core.controller.BaseController;
+import com.slibra.common.core.domain.AjaxResult;
+import com.slibra.common.enums.BusinessType;
+import com.slibra.business.domain.TBucketRecord;
+import com.slibra.business.service.ITBucketRecordService;
+import com.slibra.common.utils.poi.ExcelUtil;
+import com.slibra.common.core.page.TableDataInfo;
+
+/**
+ * 分流策略配置记录Controller
+ * 
+ * @author slibra
+ * @date 2025-01-07
+ */
+@RestController
+@RequestMapping("/business/record")
+public class TBucketRecordController extends BaseController
+{
+    @Autowired
+    private ITBucketRecordService tBucketRecordService;
+
+    /**
+     * 查询分流策略配置记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:record:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(TBucketRecord tBucketRecord)
+    {
+        startPage();
+        List<TBucketRecord> list = tBucketRecordService.selectTBucketRecordList(tBucketRecord);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出分流策略配置记录列表
+     */
+    @PreAuthorize("@ss.hasPermi('business:record:export')")
+    @Log(title = "分流策略配置记录", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, TBucketRecord tBucketRecord)
+    {
+        List<TBucketRecord> list = tBucketRecordService.selectTBucketRecordList(tBucketRecord);
+        ExcelUtil<TBucketRecord> util = new ExcelUtil<TBucketRecord>(TBucketRecord.class);
+        util.exportExcel(response, list, "分流策略配置记录数据");
+    }
+
+    /**
+     * 获取分流策略配置记录详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('business:record:query')")
+    @GetMapping(value = "/{id}")
+    public AjaxResult getInfo(@PathVariable("id") Long id)
+    {
+        return success(tBucketRecordService.selectTBucketRecordById(id));
+    }
+
+    /**
+     * 新增分流策略配置记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:record:add')")
+    @Log(title = "分流策略配置记录", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody TBucketRecord tBucketRecord)
+    {
+        tBucketRecord.setCreateBy(getUsername());
+        return toAjax(tBucketRecordService.insertTBucketRecord(tBucketRecord));
+    }
+
+    /**
+     * 修改分流策略配置记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:record:edit')")
+    @Log(title = "分流策略配置记录", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody TBucketRecord tBucketRecord)
+    {
+        tBucketRecord.setUpdateBy(getUsername());
+        return toAjax(tBucketRecordService.updateTBucketRecord(tBucketRecord));
+    }
+
+    /**
+     * 删除分流策略配置记录
+     */
+    @PreAuthorize("@ss.hasPermi('business:record:remove')")
+    @Log(title = "分流策略配置记录", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long[] ids)
+    {
+        return toAjax(tBucketRecordService.deleteTBucketRecordByIds(ids));
+    }
+
+
+    /**
+     * 修改分流策略配置
+     */
+    @PutMapping("/editConf")
+    public AjaxResult editConf(@RequestBody TBucketRecord tBucketRecord)
+    {
+        return success(tBucketRecordService.editConf(tBucketRecord));
+    }
+}

+ 46 - 0
slibra-system/src/main/java/com/slibra/business/domain/TBucketRecord.java

@@ -0,0 +1,46 @@
+package com.slibra.business.domain;
+
+import java.math.BigDecimal;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.slibra.common.annotation.Excel;
+import com.slibra.common.core.domain.BaseEntity;
+
+/**
+ * 分流策略配置记录对象 t_bucket_record
+ * 
+ * @author slibra
+ * @date 2025-01-07
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TBucketRecord extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 传统服务占比 */
+    @Excel(name = "传统服务占比")
+    private Integer traditionPercent;
+
+    /** ai服务占比 */
+    @Excel(name = "ai服务占比")
+    private Integer aiPercent;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private Long delFlag;
+
+    /** 乐观锁 */
+    @Excel(name = "乐观锁")
+    private Long revision;
+
+}

+ 61 - 0
slibra-system/src/main/java/com/slibra/business/mapper/TBucketRecordMapper.java

@@ -0,0 +1,61 @@
+package com.slibra.business.mapper;
+
+import java.util.List;
+import com.slibra.business.domain.TBucketRecord;
+
+/**
+ * 分流策略配置记录Mapper接口
+ * 
+ * @author slibra
+ * @date 2025-01-07
+ */
+public interface TBucketRecordMapper 
+{
+    /**
+     * 查询分流策略配置记录
+     * 
+     * @param id 分流策略配置记录主键
+     * @return 分流策略配置记录
+     */
+    public TBucketRecord selectTBucketRecordById(Long id);
+
+    /**
+     * 查询分流策略配置记录列表
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 分流策略配置记录集合
+     */
+    public List<TBucketRecord> selectTBucketRecordList(TBucketRecord tBucketRecord);
+
+    /**
+     * 新增分流策略配置记录
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 结果
+     */
+    public int insertTBucketRecord(TBucketRecord tBucketRecord);
+
+    /**
+     * 修改分流策略配置记录
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 结果
+     */
+    public int updateTBucketRecord(TBucketRecord tBucketRecord);
+
+    /**
+     * 删除分流策略配置记录
+     * 
+     * @param id 分流策略配置记录主键
+     * @return 结果
+     */
+    public int deleteTBucketRecordById(Long id);
+
+    /**
+     * 批量删除分流策略配置记录
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteTBucketRecordByIds(Long[] ids);
+}

+ 63 - 0
slibra-system/src/main/java/com/slibra/business/service/ITBucketRecordService.java

@@ -0,0 +1,63 @@
+package com.slibra.business.service;
+
+import java.util.List;
+import com.slibra.business.domain.TBucketRecord;
+
+/**
+ * 分流策略配置记录Service接口
+ * 
+ * @author slibra
+ * @date 2025-01-07
+ */
+public interface ITBucketRecordService 
+{
+    /**
+     * 查询分流策略配置记录
+     * 
+     * @param id 分流策略配置记录主键
+     * @return 分流策略配置记录
+     */
+    public TBucketRecord selectTBucketRecordById(Long id);
+
+    /**
+     * 查询分流策略配置记录列表
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 分流策略配置记录集合
+     */
+    public List<TBucketRecord> selectTBucketRecordList(TBucketRecord tBucketRecord);
+
+    /**
+     * 新增分流策略配置记录
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 结果
+     */
+    public int insertTBucketRecord(TBucketRecord tBucketRecord);
+
+    /**
+     * 修改分流策略配置记录
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 结果
+     */
+    public int updateTBucketRecord(TBucketRecord tBucketRecord);
+
+    /**
+     * 批量删除分流策略配置记录
+     * 
+     * @param ids 需要删除的分流策略配置记录主键集合
+     * @return 结果
+     */
+    public int deleteTBucketRecordByIds(Long[] ids);
+
+    /**
+     * 删除分流策略配置记录信息
+     * 
+     * @param id 分流策略配置记录主键
+     * @return 结果
+     */
+    public int deleteTBucketRecordById(Long id);
+
+    String editConf(TBucketRecord tBucketRecord);
+}

+ 137 - 0
slibra-system/src/main/java/com/slibra/business/service/impl/TBucketRecordServiceImpl.java

@@ -0,0 +1,137 @@
+package com.slibra.business.service.impl;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+import com.slibra.business.domain.CBucket;
+import com.slibra.business.mapper.CBucketMapper;
+import com.slibra.common.exception.ServiceException;
+import com.slibra.common.utils.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.slibra.business.mapper.TBucketRecordMapper;
+import com.slibra.business.domain.TBucketRecord;
+import com.slibra.business.service.ITBucketRecordService;
+import org.springframework.transaction.annotation.Transactional;
+
+import static com.slibra.common.utils.SecurityUtils.getUsername;
+
+/**
+ * 分流策略配置记录Service业务层处理
+ * 
+ * @author slibra
+ * @date 2025-01-07
+ */
+@Service
+public class TBucketRecordServiceImpl implements ITBucketRecordService 
+{
+    @Autowired
+    private TBucketRecordMapper tBucketRecordMapper;
+
+    @Autowired
+    private CBucketMapper cBucketMapper;
+
+    /**
+     * 查询分流策略配置记录
+     * 
+     * @param id 分流策略配置记录主键
+     * @return 分流策略配置记录
+     */
+    @Override
+    public TBucketRecord selectTBucketRecordById(Long id)
+    {
+        return tBucketRecordMapper.selectTBucketRecordById(id);
+    }
+
+    /**
+     * 查询分流策略配置记录列表
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 分流策略配置记录
+     */
+    @Override
+    public List<TBucketRecord> selectTBucketRecordList(TBucketRecord tBucketRecord)
+    {
+        return tBucketRecordMapper.selectTBucketRecordList(tBucketRecord);
+    }
+
+    /**
+     * 新增分流策略配置记录
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 结果
+     */
+    @Override
+    public int insertTBucketRecord(TBucketRecord tBucketRecord)
+    {
+        tBucketRecord.setCreateTime(DateUtils.getNowDate());
+        return tBucketRecordMapper.insertTBucketRecord(tBucketRecord);
+    }
+
+    /**
+     * 修改分流策略配置记录
+     * 
+     * @param tBucketRecord 分流策略配置记录
+     * @return 结果
+     */
+    @Override
+    public int updateTBucketRecord(TBucketRecord tBucketRecord)
+    {
+        tBucketRecord.setUpdateTime(DateUtils.getNowDate());
+        return tBucketRecordMapper.updateTBucketRecord(tBucketRecord);
+    }
+
+    /**
+     * 批量删除分流策略配置记录
+     * 
+     * @param ids 需要删除的分流策略配置记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTBucketRecordByIds(Long[] ids)
+    {
+        return tBucketRecordMapper.deleteTBucketRecordByIds(ids);
+    }
+
+    /**
+     * 删除分流策略配置记录信息
+     * 
+     * @param id 分流策略配置记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteTBucketRecordById(Long id)
+    {
+        return tBucketRecordMapper.deleteTBucketRecordById(id);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public String editConf(TBucketRecord tBucketRecord) {
+        Integer traditionPercent = tBucketRecord.getTraditionPercent();
+//        Integer aiPercent = tBucketRecord.getAiPercent();
+//        if(Objects.isNull(traditionPercent) || Objects.isNull(aiPercent))
+        if(Objects.isNull(traditionPercent))
+            throw new ServiceException("传统服务占比配置不能为空");
+        Date nowDate = DateUtils.getNowDate();
+        tBucketRecord.setCreateBy(getUsername());
+        tBucketRecord.setCreateTime(nowDate);
+        this.tBucketRecordMapper.insertTBucketRecord(tBucketRecord);
+        //更新配置表
+        CBucket cBucketTradition = this.cBucketMapper.selectCBucketById(String.valueOf(1));
+        CBucket cBucketAI = this.cBucketMapper.selectCBucketById(String.valueOf(2));
+        if(!Objects.isNull(cBucketTradition) && !Objects.isNull(cBucketAI)){
+            cBucketTradition.setLower(0);
+            cBucketTradition.setUpper(traditionPercent);
+            cBucketTradition.setUpdateTime(nowDate);
+            this.cBucketMapper.updateCBucket(cBucketTradition);
+            cBucketAI.setLower(traditionPercent);
+            cBucketAI.setUpper(100);
+            cBucketAI.setUpdateTime(nowDate);
+            this.cBucketMapper.updateCBucket(cBucketAI);
+        }
+        return "修改成功";
+    }
+}

+ 95 - 0
slibra-system/src/main/resources/mapper/business/TBucketRecordMapper.xml

@@ -0,0 +1,95 @@
+<?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.slibra.business.mapper.TBucketRecordMapper">
+    
+    <resultMap type="TBucketRecord" id="TBucketRecordResult">
+        <result property="id"    column="id"    />
+        <result property="traditionPercent"    column="tradition_percent"    />
+        <result property="aiPercent"    column="ai_percent"    />
+        <result property="delFlag"    column="del_flag"    />
+        <result property="revision"    column="revision"    />
+        <result property="createBy"    column="create_by"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"    column="update_by"    />
+        <result property="updateTime"    column="update_time"    />
+        <result property="remark"    column="remark"    />
+    </resultMap>
+
+    <sql id="selectTBucketRecordVo">
+        select id, tradition_percent, ai_percent, del_flag, revision, create_by, create_time, update_by, update_time, remark from t_bucket_record
+    </sql>
+
+    <select id="selectTBucketRecordList" parameterType="TBucketRecord" resultMap="TBucketRecordResult">
+        <include refid="selectTBucketRecordVo"/>
+        <where>
+            1 = 1
+            <if test="traditionPercent != null "> and tradition_percent = #{traditionPercent}</if>
+            <if test="aiPercent != null "> and ai_percent = #{aiPercent}</if>
+            <if test="revision != null "> and revision = #{revision}</if>
+        </where>
+        and del_flag = 0 order by id desc
+    </select>
+    
+    <select id="selectTBucketRecordById" parameterType="Long" resultMap="TBucketRecordResult">
+        <include refid="selectTBucketRecordVo"/>
+        where id = #{id} and del_flag = 0
+    </select>
+        
+    <insert id="insertTBucketRecord" parameterType="TBucketRecord" useGeneratedKeys="true" keyProperty="id">
+        insert into t_bucket_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="traditionPercent != null">tradition_percent,</if>
+            <if test="aiPercent != null">ai_percent,</if>
+            <if test="delFlag != null">del_flag,</if>
+            <if test="revision != null">revision,</if>
+            <if test="createBy != null">create_by,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="updateBy != null">update_by,</if>
+            <if test="updateTime != null">update_time,</if>
+            <if test="remark != null">remark,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="traditionPercent != null">#{traditionPercent},</if>
+            <if test="aiPercent != null">#{aiPercent},</if>
+            <if test="delFlag != null">#{delFlag},</if>
+            <if test="revision != null">#{revision},</if>
+            <if test="createBy != null">#{createBy},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="updateBy != null">#{updateBy},</if>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="remark != null">#{remark},</if>
+         </trim>
+    </insert>
+
+    <update id="updateTBucketRecord" parameterType="TBucketRecord">
+        update t_bucket_record
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="traditionPercent != null">tradition_percent = #{traditionPercent},</if>
+            <if test="aiPercent != null">ai_percent = #{aiPercent},</if>
+            <if test="delFlag != null">del_flag = #{delFlag},</if>
+            <if test="revision != null">revision = #{revision},</if>
+            <if test="createBy != null">create_by = #{createBy},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="updateBy != null">update_by = #{updateBy},</if>
+            <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        ,revision = revision + 1
+        where id = #{id}
+    </update>
+
+    
+
+    <delete id="deleteTBucketRecordById" parameterType="Long">
+        update t_bucket_record set del_flag = 2,revision = revision + 1 where del_flag = 0 and id = #{id}
+    </delete>
+
+    <delete id="deleteTBucketRecordByIds" parameterType="String">
+        update t_bucket_record set del_flag = 2,revision = revision + 1 where del_flag = 0 and id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>