This commit is contained in:
磷叶 2025-03-17 18:08:50 +08:00
parent 97e5a2e782
commit 6746af7265
8 changed files with 549 additions and 0 deletions

View File

@ -0,0 +1,64 @@
package com.ruoyi.bst.suit.domain;
import java.math.BigDecimal;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 套餐对象 bst_suit
*
* @author ruoyi
* @date 2025-03-17
*/
@Data
public class Suit extends BaseEntity
{
private static final long serialVersionUID = 1L;
private Long id;
@Excel(name = "运营商id")
@ApiModelProperty("运营商id")
private Long userId;
@Excel(name = "套餐名称")
@ApiModelProperty("套餐名称")
private String name;
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
@ApiModelProperty("状态")
private String status;
@Excel(name = "免费骑行时长(分钟)")
@ApiModelProperty("免费骑行时长(分钟)")
private Integer freeRideTime;
@Excel(name = "租赁单位", readConverterExp = "m=inutes分钟,h=ours小时,d=ay天")
@ApiModelProperty("租赁单位")
private String rentalUnit;
@Excel(name = "计费规则", readConverterExp = "1=起步价计费,2=区间计费")
@ApiModelProperty("计费规则")
private String ridingRule;
@Excel(name = "计费规则json")
@ApiModelProperty("计费规则json")
private String ridingRuleJson;
@Excel(name = "骑行价格说明")
@ApiModelProperty("骑行价格说明")
private String instructions;
@Excel(name = "显示顺序")
@ApiModelProperty("显示顺序")
private Integer orderNum;
@Excel(name = "预存款")
@ApiModelProperty("预存款")
private BigDecimal depositAmount;
}

View File

@ -0,0 +1,8 @@
package com.ruoyi.bst.suit.domain;
import lombok.Data;
@Data
public class SuitQuery extends SuitVO {
}

View File

@ -0,0 +1,11 @@
package com.ruoyi.bst.suit.domain;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class SuitVO extends Suit{
@ApiModelProperty("用户名称")
private String userName;
}

View File

@ -0,0 +1,74 @@
package com.ruoyi.bst.suit.mapper;
import java.util.List;
import com.ruoyi.bst.suit.domain.Suit;
import com.ruoyi.bst.suit.domain.SuitVO;
import com.ruoyi.bst.suit.domain.SuitQuery;
import org.apache.ibatis.annotations.Param;
/**
* 套餐Mapper接口
*
* @author ruoyi
* @date 2025-03-17
*/
public interface SuitMapper
{
/**
* 查询套餐
*
* @param id 套餐主键
* @return 套餐
*/
SuitVO selectSuitById(Long id);
/**
* 查询套餐列表
*
* @param query 套餐
* @return 套餐集合
*/
List<SuitVO> selectSuitList(@Param("query")SuitQuery query);
/**
* 新增套餐
*
* @param suit 套餐
* @return 结果
*/
int insertSuit(Suit suit);
/**
* 批量新增套餐
*/
int batchInsert(@Param("list") List<? extends Suit> list);
/**
* 批量修改套餐
*/
int batchUpdate(@Param("list") List<? extends Suit> list);
/**
* 修改套餐
*
* @param suit 套餐
* @return 结果
*/
public int updateSuit(@Param("data") Suit suit);
/**
* 删除套餐
*
* @param id 套餐主键
* @return 结果
*/
int deleteSuitById(Long id);
/**
* 批量删除套餐
*
* @param ids 需要删除的数据主键集合
* @return 结果
*/
public int deleteSuitByIds(Long[] ids);
}

View File

@ -0,0 +1,119 @@
<?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.ruoyi.bst.suit.mapper.SuitMapper">
<resultMap type="SuitVO" id="SuitResult" autoMapping="true"/>
<sql id="selectSuitVo">
select
bs.id,
bs.user_id,
bs.name,
bs.status,
bs.create_time,
bs.free_ride_time,
bs.rental_unit,
bs.riding_rule,
bs.riding_rule_json,
bs.instructions,
bs.deleted,
bs.order_num,
bs.deposit_amount,
su.nick_name as user_name
from bst_suit bs
left join sys_user su on su.user_id = bs.user_id
</sql>
<sql id="searchCondition">
<if test="query.id != null "> and bs.id = #{query.id}</if>
<if test="query.userId != null "> and bs.user_id = #{query.userId}</if>
<if test="query.name != null and query.name != ''"> and bs.name like concat('%', #{query.name}, '%')</if>
<if test="query.status != null and query.status != ''"> and bs.status = #{query.status}</if>
<if test="query.rentalUnit != null and query.rentalUnit != ''"> and bs.rental_unit = #{query.rentalUnit}</if>
<if test="query.ridingRule != null and query.ridingRule != ''"> and bs.riding_rule = #{query.ridingRule}</if>
<if test="query.deleted != null "> and bs.deleted = #{query.deleted}</if>
<if test="query.deleted == null "> and bs.deleted = false</if>
<if test="query.userName != null and query.userName != ''"> and su.nick_name like concat('%', #{query.userName}, '%')</if>
${query.params.dataScope}
</sql>
<select id="selectSuitList" parameterType="SuitQuery" resultMap="SuitResult">
<include refid="selectSuitVo"/>
<where>
<include refid="searchCondition"/>
</where>
</select>
<select id="selectSuitById" parameterType="Long" resultMap="SuitResult">
<include refid="selectSuitVo"/>
where bs.id = #{id}
</select>
<insert id="insertSuit" parameterType="Suit" useGeneratedKeys="true" keyProperty="id">
insert into bst_suit
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="userId != null">user_id,</if>
<if test="name != null and name != ''">name,</if>
<if test="status != null and status != ''">status,</if>
<if test="createTime != null">create_time,</if>
<if test="freeRideTime != null">free_ride_time,</if>
<if test="rentalUnit != null and rentalUnit != ''">rental_unit,</if>
<if test="ridingRule != null and ridingRule != ''">riding_rule,</if>
<if test="ridingRuleJson != null">riding_rule_json,</if>
<if test="instructions != null">instructions,</if>
<if test="deleted != null">deleted,</if>
<if test="orderNum != null">order_num,</if>
<if test="depositAmount != null">deposit_amount,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="userId != null">#{userId},</if>
<if test="name != null and name != ''">#{name},</if>
<if test="status != null and status != ''">#{status},</if>
<if test="createTime != null">#{createTime},</if>
<if test="freeRideTime != null">#{freeRideTime},</if>
<if test="rentalUnit != null and rentalUnit != ''">#{rentalUnit},</if>
<if test="ridingRule != null and ridingRule != ''">#{ridingRule},</if>
<if test="ridingRuleJson != null">#{ridingRuleJson},</if>
<if test="instructions != null">#{instructions},</if>
<if test="deleted != null">#{deleted},</if>
<if test="orderNum != null">#{orderNum},</if>
<if test="depositAmount != null">#{depositAmount},</if>
</trim>
</insert>
<update id="updateSuit" parameterType="Suit">
update bst_suit
<trim prefix="SET" suffixOverrides=",">
<include refid="updateColumns"/>
</trim>
where id = #{data.id}
</update>
<sql id="updateColumns">
<if test="data.userId != null">user_id = #{data.userId},</if>
<if test="data.name != null and data.name != ''">name = #{data.name},</if>
<if test="data.status != null and data.status != ''">status = #{data.status},</if>
<if test="data.createTime != null">create_time = #{data.createTime},</if>
<if test="data.freeRideTime != null">free_ride_time = #{data.freeRideTime},</if>
<if test="data.rentalUnit != null and data.rentalUnit != ''">rental_unit = #{data.rentalUnit},</if>
<if test="data.ridingRule != null and data.ridingRule != ''">riding_rule = #{data.ridingRule},</if>
<if test="data.ridingRuleJson != null">riding_rule_json = #{data.ridingRuleJson},</if>
<if test="data.instructions != null">instructions = #{data.instructions},</if>
<if test="data.deleted != null">deleted = #{data.deleted},</if>
<if test="data.orderNum != null">order_num = #{data.orderNum},</if>
<if test="data.depositAmount != null">deposit_amount = #{data.depositAmount},</if>
</sql>
<delete id="deleteSuitById" parameterType="Long">
delete from bst_suit where id = #{id}
</delete>
<delete id="deleteSuitByIds" parameterType="String">
delete from bst_suit where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
</mapper>

View File

@ -0,0 +1,64 @@
package com.ruoyi.bst.suit.service;
import java.util.List;
import com.ruoyi.bst.suit.domain.Suit;
import com.ruoyi.bst.suit.domain.SuitQuery;
import com.ruoyi.bst.suit.domain.SuitVO;
/**
* 套餐Service接口
*
* @author ruoyi
* @date 2025-03-17
*/
public interface SuitService
{
/**
* 查询套餐
*
* @param id 套餐主键
* @return 套餐
*/
public SuitVO selectSuitById(Long id);
/**
* 查询套餐列表
*
* @param suit 套餐
* @return 套餐集合
*/
public List<SuitVO> selectSuitList(SuitQuery suit);
/**
* 新增套餐
*
* @param suit 套餐
* @return 结果
*/
public int insertSuit(Suit suit);
/**
* 修改套餐
*
* @param suit 套餐
* @return 结果
*/
public int updateSuit(Suit suit);
/**
* 批量删除套餐
*
* @param ids 需要删除的套餐主键集合
* @return 结果
*/
public int deleteSuitByIds(Long[] ids);
/**
* 删除套餐信息
*
* @param id 套餐主键
* @return 结果
*/
public int deleteSuitById(Long id);
}

View File

@ -0,0 +1,99 @@
package com.ruoyi.bst.suit.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.bst.suit.domain.Suit;
import com.ruoyi.bst.suit.domain.SuitQuery;
import com.ruoyi.bst.suit.domain.SuitVO;
import com.ruoyi.bst.suit.mapper.SuitMapper;
import com.ruoyi.bst.suit.service.SuitService;
import com.ruoyi.common.utils.DateUtils;
/**
* 套餐Service业务层处理
*
* @author ruoyi
* @date 2025-03-17
*/
@Service
public class SuitServiceImpl implements SuitService
{
@Autowired
private SuitMapper suitMapper;
/**
* 查询套餐
*
* @param id 套餐主键
* @return 套餐
*/
@Override
public SuitVO selectSuitById(Long id)
{
return suitMapper.selectSuitById(id);
}
/**
* 查询套餐列表
*
* @param suit 套餐
* @return 套餐
*/
@Override
public List<SuitVO> selectSuitList(SuitQuery suit)
{
return suitMapper.selectSuitList(suit);
}
/**
* 新增套餐
*
* @param suit 套餐
* @return 结果
*/
@Override
public int insertSuit(Suit suit)
{
suit.setCreateTime(DateUtils.getNowDate());
return suitMapper.insertSuit(suit);
}
/**
* 修改套餐
*
* @param suit 套餐
* @return 结果
*/
@Override
public int updateSuit(Suit suit)
{
return suitMapper.updateSuit(suit);
}
/**
* 批量删除套餐
*
* @param ids 需要删除的套餐主键
* @return 结果
*/
@Override
public int deleteSuitByIds(Long[] ids)
{
return suitMapper.deleteSuitByIds(ids);
}
/**
* 删除套餐信息
*
* @param id 套餐主键
* @return 结果
*/
@Override
public int deleteSuitById(Long id)
{
return suitMapper.deleteSuitById(id);
}
}

View File

@ -0,0 +1,110 @@
package com.ruoyi.web.bst;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.bst.suit.domain.Suit;
import com.ruoyi.bst.suit.domain.SuitQuery;
import com.ruoyi.bst.suit.domain.SuitVO;
import com.ruoyi.bst.suit.service.SuitService;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
/**
* 套餐Controller
*
* @author ruoyi
* @date 2025-03-17
*/
@RestController
@RequestMapping("/bst/suit")
public class SuitController extends BaseController
{
@Autowired
private SuitService suitService;
/**
* 查询套餐列表
*/
@PreAuthorize("@ss.hasPermi('bst:suit:list')")
@GetMapping("/list")
public TableDataInfo list(SuitQuery query)
{
startPage();
startOrderBy();
List<SuitVO> list = suitService.selectSuitList(query);
return getDataTable(list);
}
/**
* 导出套餐列表
*/
@PreAuthorize("@ss.hasPermi('bst:suit:export')")
@Log(title = "套餐", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SuitQuery query)
{
List<SuitVO> list = suitService.selectSuitList(query);
ExcelUtil<SuitVO> util = new ExcelUtil<SuitVO>(SuitVO.class);
util.exportExcel(response, list, "套餐数据");
}
/**
* 获取套餐详细信息
*/
@PreAuthorize("@ss.hasPermi('bst:suit:query')")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return success(suitService.selectSuitById(id));
}
/**
* 新增套餐
*/
@PreAuthorize("@ss.hasPermi('bst:suit:add')")
@Log(title = "套餐", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody Suit suit)
{
return toAjax(suitService.insertSuit(suit));
}
/**
* 修改套餐
*/
@PreAuthorize("@ss.hasPermi('bst:suit:edit')")
@Log(title = "套餐", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody Suit suit)
{
return toAjax(suitService.updateSuit(suit));
}
/**
* 删除套餐
*/
@PreAuthorize("@ss.hasPermi('bst:suit:remove')")
@Log(title = "套餐", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(suitService.deleteSuitByIds(ids));
}
}