framework/src/main/java/cn/lili/modules/lmk/domain/entity/KitchenType.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/modules/lmk/domain/form/KitchenTypeForm.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/modules/lmk/domain/query/KitchenTypeQuery.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/modules/lmk/domain/vo/KitchenTypeVO.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/modules/lmk/mapper/KitchenTypeMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/modules/lmk/service/KitchenTypeService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/java/cn/lili/modules/lmk/service/impl/KitchenTypeServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
framework/src/main/resources/mapper/lmk/KitchenTypeMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
manager-api/src/main/java/cn/lili/controller/lmk/KitchenTypeController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
framework/src/main/java/cn/lili/modules/lmk/domain/entity/KitchenType.java
New file @@ -0,0 +1,33 @@ package cn.lili.modules.lmk.domain.entity; import cn.lili.mybatis.BaseEntity; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; /** * 厨神类型 * * @author wp * @since 2025-06-13 */ @Data @TableName("lmk_kitchen_type") public class KitchenType extends BaseEntity { private static final long serialVersionUID = 1L; @TableField("type_name") /** 厨神类型 */ private String typeName; @TableField("use_num") /** 使用次数 */ private Long useNum; @TableField("sort_num") /** 排序字段 */ private Long sortNum; } framework/src/main/java/cn/lili/modules/lmk/domain/form/KitchenTypeForm.java
New file @@ -0,0 +1,45 @@ package cn.lili.modules.lmk.domain.form; import cn.lili.group.Update; import cn.lili.group.Add; import cn.lili.base.AbsForm; import cn.lili.modules.lmk.domain.entity.KitchenType; import org.springframework.beans.BeanUtils; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import org.springframework.lang.NonNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 厨神类型表单 * * @author wp * @since 2025-06-13 */ @Data @ApiModel(value = "KitchenType表单", description = "厨神类型表单") public class KitchenTypeForm extends AbsForm { @NotBlank(message = "厨神类型不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("厨神类型") private String typeName; @ApiModelProperty("使用次数") private Long useNum; @NotNull(message = "排序字段不能为空", groups = {Add.class, Update.class}) @ApiModelProperty("排序字段") private Long sortNum; public static KitchenType getEntityByForm(@NonNull KitchenTypeForm form, KitchenType entity) { if(entity == null) { entity = new KitchenType(); } BeanUtils.copyProperties(form, entity); return entity; } } framework/src/main/java/cn/lili/modules/lmk/domain/query/KitchenTypeQuery.java
New file @@ -0,0 +1,24 @@ package cn.lili.modules.lmk.domain.query; import cn.lili.base.AbsQuery; import java.util.List; import org.springframework.lang.NonNull; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 厨神类型查询 * * @author wp * @since 2025-06-13 */ @Data @ApiModel(value = "KitchenType查询参数", description = "厨神类型查询参数") public class KitchenTypeQuery extends AbsQuery { @ApiModelProperty("标签名称") private String typeName; } framework/src/main/java/cn/lili/modules/lmk/domain/vo/KitchenTypeVO.java
New file @@ -0,0 +1,43 @@ package cn.lili.modules.lmk.domain.vo; import cn.lili.base.AbsVo; import cn.lili.modules.lmk.domain.entity.KitchenType; import java.util.List; import org.springframework.lang.NonNull; import org.springframework.beans.BeanUtils; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; /** * 厨神类型展示 * * @author wp * @since 2025-06-13 */ @Data @ApiModel(value = "厨神类型响应数据", description = "厨神类型响应数据") public class KitchenTypeVO extends AbsVo { /** 厨神类型 */ @ApiModelProperty("厨神类型") private String typeName; /** 使用次数 */ @ApiModelProperty("使用次数") private Long useNum; /** 排序字段 */ @ApiModelProperty("排序字段") private Long sortNum; public static KitchenTypeVO getVoByEntity(@NonNull KitchenType entity, KitchenTypeVO vo) { if(vo == null) { vo = new KitchenTypeVO(); } BeanUtils.copyProperties(entity, vo); return vo; } } framework/src/main/java/cn/lili/modules/lmk/mapper/KitchenTypeMapper.java
New file @@ -0,0 +1,34 @@ package cn.lili.modules.lmk.mapper; import cn.lili.modules.lmk.domain.entity.KitchenType; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import cn.lili.modules.lmk.domain.vo.KitchenTypeVO; import cn.lili.modules.lmk.domain.form.KitchenTypeForm; import cn.lili.modules.lmk.domain.query.KitchenTypeQuery; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 厨神类型 Mapper 接口 * * @author wp * @since 2025-06-13 */ @Mapper public interface KitchenTypeMapper extends BaseMapper<KitchenType> { /** * id查找厨神类型 * @param id * @return */ KitchenTypeVO getById(String id); /** * 分页 */ IPage getPage(IPage page, @Param("query") KitchenTypeQuery query); } framework/src/main/java/cn/lili/modules/lmk/service/KitchenTypeService.java
New file @@ -0,0 +1,65 @@ package cn.lili.modules.lmk.service; import cn.lili.modules.lmk.domain.entity.KitchenType; import com.baomidou.mybatisplus.extension.service.IService; import cn.lili.base.Result; import cn.lili.modules.lmk.domain.form.KitchenTypeForm; import cn.lili.modules.lmk.domain.query.KitchenTypeQuery; import java.util.List; /** * 厨神类型 服务类 * * @author wp * @since 2025-06-13 */ public interface KitchenTypeService extends IService<KitchenType> { /** * 添加 * @param form * @return */ Result add(KitchenTypeForm form); /** * 修改 * @param form * @return */ Result update(KitchenTypeForm form); /** * 批量删除 * @param ids * @return */ Result remove(List<String> ids); /** * id删除 * @param id * @return */ Result removeById(String id); /** * 分页查询 * @param query * @return */ Result page(KitchenTypeQuery query); /** * 根据id查找 * @param id * @return */ Result detail(String id); /** * 列表 * @return */ Result all(); } framework/src/main/java/cn/lili/modules/lmk/service/impl/KitchenTypeServiceImpl.java
New file @@ -0,0 +1,135 @@ package cn.lili.modules.lmk.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import cn.lili.modules.lmk.domain.entity.KitchenType; import cn.lili.modules.lmk.mapper.KitchenTypeMapper; import cn.lili.modules.lmk.service.KitchenTypeService; import cn.lili.base.Result; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.lili.modules.lmk.domain.form.KitchenTypeForm; import cn.lili.modules.lmk.domain.vo.KitchenTypeVO; import cn.lili.modules.lmk.domain.query.KitchenTypeQuery; import org.springframework.stereotype.Service; import lombok.RequiredArgsConstructor; import cn.lili.utils.PageUtil; import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; import java.util.List; import java.util.stream.Collectors; /** * 厨神类型 服务实现类 * * @author wp * @since 2025-06-13 */ @Service @RequiredArgsConstructor public class KitchenTypeServiceImpl extends ServiceImpl<KitchenTypeMapper, KitchenType> implements KitchenTypeService { private final KitchenTypeMapper kitchenTypeMapper; /** * 添加 * @param form * @return */ @Override public Result add(KitchenTypeForm form) { KitchenType entity = KitchenTypeForm.getEntityByForm(form, null); entity.setUseNum(0L); LambdaQueryWrapper<KitchenType> wrapper = Wrappers.lambdaQuery(); wrapper.eq(KitchenType::getTypeName, form.getTypeName()); List<KitchenType> kitchenTypes = baseMapper.selectList(wrapper); if (!kitchenTypes.isEmpty()) { return Result.error("添加失败标签存在"); } baseMapper.insert(entity); return Result.ok("添加成功"); } /** * 修改 * @param form * @return */ @Override public Result update(KitchenTypeForm form) { KitchenType entity = baseMapper.selectById(form.getId()); // 为空抛IllegalArgumentException,做全局异常处理 Assert.notNull(entity, "记录不存在"); BeanUtils.copyProperties(form, entity); //校验标签是否存在 LambdaQueryWrapper<KitchenType> wrapper = Wrappers.lambdaQuery(); wrapper.eq(KitchenType::getTypeName, form.getTypeName()); List<KitchenType> kitchenTypes = baseMapper.selectList(wrapper); if (!kitchenTypes.isEmpty()) { return Result.error("修改失败标签存在"); } baseMapper.updateById(entity); return Result.ok("修改成功"); } /** * 批量删除 * @param ids * @return */ @Override public Result remove(List<String> ids) { baseMapper.deleteBatchIds(ids); return Result.ok("删除成功"); } /** * id删除 * @param id * @return */ @Override public Result removeById(String id) { baseMapper.deleteById(id); return Result.ok("删除成功"); } /** * 分页查询 * @param query * @return */ @Override public Result page(KitchenTypeQuery query) { IPage<KitchenTypeVO> page = PageUtil.getPage(query, KitchenTypeVO.class); baseMapper.getPage(page, query); return Result.ok().data(page.getRecords()).total(page.getTotal()); } /** * 根据id查找 * @param id * @return */ @Override public Result detail(String id) { KitchenTypeVO vo = baseMapper.getById(id); Assert.notNull(vo, "记录不存在"); return Result.ok().data(vo); } /** * 列表 * @return */ @Override public Result all() { List<KitchenType> entities = baseMapper.selectList(null); List<KitchenTypeVO> vos = entities.stream() .map(entity -> KitchenTypeVO.getVoByEntity(entity, null)) .collect(Collectors.toList()); return Result.ok().data(vos); } } framework/src/main/resources/mapper/lmk/KitchenTypeMapper.xml
New file @@ -0,0 +1,48 @@ <?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="cn.lili.modules.lmk.mapper.KitchenTypeMapper"> <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="cn.lili.modules.lmk.domain.vo.KitchenTypeVO"> <id column="id" property="id"/> <result column="type_name" property="typeName" /> <result column="use_num" property="useNum" /> <result column="sort_num" property="sortNum" /> </resultMap> <select id="getById" resultMap="BaseResultMap"> SELECT LKT.type_name, LKT.use_num, LKT.sort_num, LKT.id FROM lmk_kitchen_type LKT WHERE LKT.id = #{id} AND LKT.delete_flag = 0 </select> <select id="getPage" resultMap="BaseResultMap"> SELECT LKT.type_name, LKT.use_num, LKT.sort_num, LKT.id FROM lmk_kitchen_type LKT WHERE LKT.delete_flag = 0 <if test="query.typeName != null and query.typeName != ''"> AND LKT.type_name LIKE CONCAT('%', #{query.typeName},'%') </if> order by LKT.sort_num asc </select> </mapper> manager-api/src/main/java/cn/lili/controller/lmk/KitchenTypeController.java
New file @@ -0,0 +1,76 @@ package cn.lili.controller.lmk; import cn.lili.group.Update; import cn.lili.group.Add; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import lombok.RequiredArgsConstructor; import java.util.List; import org.springframework.validation.annotation.Validated; import javax.validation.constraints.NotEmpty; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import cn.lili.modules.lmk.service.KitchenTypeService; import cn.lili.base.Result; import cn.lili.modules.lmk.domain.form.KitchenTypeForm; import cn.lili.modules.lmk.domain.query.KitchenTypeQuery; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.*; /** * 厨神类型 前端控制器 * * @author wp * @since 2025-06-13 */ @Validated @RequiredArgsConstructor @Api(value = "厨神类型", tags = "厨神类型管理") @RestController @RequestMapping("/manager/lmk/kitchen-type") public class KitchenTypeController { private final KitchenTypeService kitchenTypeService; @PostMapping @ApiOperation(value = "添加", notes = "添加") public Result add(@RequestBody @Validated(Add.class) KitchenTypeForm form) { return kitchenTypeService.add(form); } @PutMapping @ApiOperation(value = "修改", notes = "修改") public Result update(@RequestBody @Validated(Update.class) KitchenTypeForm form) { return kitchenTypeService.update(form); } @DeleteMapping("/{id}") @ApiOperation(value = "ID删除", notes = "ID删除") public Result removeById(@PathVariable("id") String id) { return kitchenTypeService.removeById(id); } @DeleteMapping("/batch") @ApiOperation(value = "批量删除", notes = "批量删除") public Result remove(@RequestBody @NotEmpty(message = "请选择数据") List<String> ids) { return kitchenTypeService.remove(ids); } @GetMapping("/page") @ApiOperation(value = "分页", notes = "分页") public Result page(KitchenTypeQuery query) { return kitchenTypeService.page(query); } @GetMapping("/{id}") @ApiOperation(value = "详情", notes = "详情") public Result detail(@PathVariable("id") String id) { return kitchenTypeService.detail(id); } @GetMapping("/list") @ApiOperation(value = "列表", notes = "列表") public Result list() { return kitchenTypeService.all(); } }