快捷餐饮之店家后台厨艺秀实现

简介: 快捷餐饮之店家后台厨艺秀实现


一、创建用于显示到前端的厨艺秀DTO


名称:CookingSkillImagesDTO


/**
 * @Package: cn.liuliang.quickdinesysstore.entity.dto
 * @Author: liuliang
 * @CreateTime: 2020/10/28 - 13:56
 * @Description: 厨艺秀展示dto
 */
@Data
@ApiModel(value="厨艺秀展示dto", description="")
public class CookingSkillImagesDTO implements Serializable {
    private static final long serialVersionUID=1L;
    @ApiModelProperty(value = "ID")
    private Long id;
    @ApiModelProperty(value = "照片url")
    private String imageUrl;
}


image.png


二、编写Controller


名称:CookingSkillImagesController


/**
 * <p>
 * 前端控制器:图片秀管理控制器
 * </p>
 *
 * @author j3_liuliang
 * @since 2020-10-24
 */
@Api(value = "厨艺秀图片管理", tags = "厨艺秀图片管理")
@CrossOrigin
@RestController
@RequestMapping("/cooking-skill-images")
public class CookingSkillImagesController {
    @Autowired
    private CookingSkillImagesService cookingSkillImagesService;
    @ApiOperation(value = "分页查看所有厨艺秀图片", notes = "分页查看所有厨艺秀图片")
    @ApiResponses({@ApiResponse(code = 200, message = "请求成功!", response = CookingSkillImagesDTO.class)})
    @GetMapping("/select-all")
    public ResultDTO selectAllCookingSkillImages(
        @ApiParam("当前页码") @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
        @ApiParam("每页显示条数") @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize) {
        return cookingSkillImagesService.selectPage(pageNum, pageSize);
    }
    @ApiOperation(value = "添加厨艺秀照片", notes = "添加厨艺秀照片")
    @PostMapping("/add")
    public ResultDTO addCookingSkillImages(
        @ApiParam("图片url数组") @RequestParam(value = "imageUrls", required = true) String[] imageUrls) {
        return cookingSkillImagesService.addCookingSkillImages(imageUrls);
    }
    @ApiOperation(value = "删除厨艺秀照片", notes = "删除厨艺秀照片")
    @PostMapping("/delete")
    public ResultDTO delete(
        @ApiParam("图片id") @RequestParam(value = "id", required = true) Long id,
        @ApiParam("图片url") @RequestParam(value = "url", required = true) String url) {
        return cookingSkillImagesService.delete(id, url);
    }
}


image.png


三、编写Service


名称:CookingSkillImagesService


/**
 * <p>
 *  服务类
 * </p>
 *
 * @author j3_liuliang
 * @since 2020-10-24
 */
public interface CookingSkillImagesService extends IService<CookingSkillImages> {
    /**
     * 分页查询厨艺秀图片列表
     * @param pageNum   当前页
     * @param pageSize  每页数量
     * @return
     */
    ResultDTO selectPage(Integer pageNum, Integer pageSize);
    /**
     * 添加图片url数组
     * @param imageUrls 图片url数组
     * @return
     */
    ResultDTO addCookingSkillImages(String[] imageUrls);
    /**
     * 删除图片
     * @param id    图片id
     * @param url   图片url
     * @return
     */
    ResultDTO delete(Long id, String url);
}


实现类:CookingSkillImagesServiceImpl


/**
 * <p>
 * 服务实现类
 * </p>
 *
 * @author j3_liuliang
 * @since 2020-10-24
 */
@Service
public class CookingSkillImagesServiceImpl extends ServiceImpl<CookingSkillImagesMapper, CookingSkillImages> implements CookingSkillImagesService {
    @Autowired
    private CookingSkillImagesMapper cookingSkillImagesMapper;
    @Autowired
    private OSSFileService ossFileService;
    @Override
    public ResultDTO selectPage(Integer pageNum, Integer pageSize) {
        // 定义分页
        Page<CookingSkillImages> cookingSkillImagesPage = new Page<>(pageNum, pageSize);
        // 开始分页查询
        IPage<CookingSkillImages> cookingSkillImagesPageModel = cookingSkillImagesMapper.selectPage(cookingSkillImagesPage, null);
        // 获取分页数据和总条数
        List<CookingSkillImages> records = cookingSkillImagesPageModel.getRecords();
        long total = cookingSkillImagesPageModel.getTotal();
        // 转化数据传输对象
        List<CookingSkillImagesDTO> cookingSkillImagesDTOList = new ArrayList<>(records.size());
        records.forEach(CookingSkillImages -> {
            CookingSkillImagesDTO cookingSkillImagesDTO = new CookingSkillImagesDTO();
            BeanUtils.copyProperties(CookingSkillImages, cookingSkillImagesDTO);
            cookingSkillImagesDTOList.add(cookingSkillImagesDTO);
        });
        // 返回结果
        return ResultDTO.success().data("tital", total).data("rows", cookingSkillImagesDTOList);
    }
    @Override
    public ResultDTO addCookingSkillImages(String[] imageUrls) {
        // 遍历url数组,依次插入数据库中
        Arrays.asList(imageUrls).forEach(imageUrl -> {
            CookingSkillImages cookingSkillImages = new CookingSkillImages();
            cookingSkillImages.setImageUrl(imageUrl);
            cookingSkillImagesMapper.insert(cookingSkillImages);
        });
        return ResultDTO.success();
    }
    @Override
    public ResultDTO delete(Long id, String url) {
        // 先删除数据库中的图片
        cookingSkillImagesMapper.deleteById(id);
        // 再删除OSS服务器上的图片
        ossFileService.removeFile(url);
        return ResultDTO.success();
    }
}


image.png


四、编写mapper及相关mapper映射文件


名称:CookingSkillImagesMapper


/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author j3_liuliang
 * @since 2020-10-24
 */
public interface CookingSkillImagesMapper extends BaseMapper<CookingSkillImages> {
}


名称:CookingSkillImagesMapper.xml


<?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.liuliang.quickdinesysstore.mapper.CookingSkillImagesMapper">
</mapper>


image.png


这里面持久成都不用编写相关的代码,是因为用来MyBatisPlus可以简化我们很多的简单访问数据库操作,实我们可以更多的关注到业务逻辑上而不是持久化上


五、启动项目swagger测试


访问:http://localhost:9110/swagger-ui.html#!


厨艺秀的相关功能就写的差不多了,下次开始些菜品管理相关的内容


结束语


  • 由于博主才疏学浅,难免会有纰漏,假如你发现了错误或偏见的地方,还望留言给我指出来,我会对其加以修正。
  • 如果你觉得文章还不错,你的转发、分享、点赞、留言就是对我最大的鼓励。
  • 感谢您的阅读,十分欢迎并感谢您的关注。


目录
相关文章
|
10月前
|
小程序 安全
【实训项目】“优品果园”-线上水果商城小程序
【实训项目】“优品果园”-线上水果商城小程序
|
SQL 安全 JavaScript
基于JavaWeb的电影院在线选座订票管理系统
基于JavaWeb的电影院在线选座订票管理系统
642 0
基于JavaWeb的电影院在线选座订票管理系统
|
1月前
|
搜索推荐 API 定位技术
解锁携程美食与景点数据接口:打造个性化旅行体验的秘密武器
携程API助您探索旅游信息,虽无专门“美食列表”接口,但可通过景点详情接口获取周边美食推荐。结合地图或餐饮API,丰富美食数据一手掌握。景点列表接口帮助搜索景点详情,包括名称、位置等。使用流程包括注册账号、获取密钥、构造请求及解析响应数据。记得查阅最新文档,确保合规使用。体验API:[链接]。
|
2月前
|
小程序 安全 数据安全/隐私保护
理发店预约小程序开发:随时随地,省时省力
理发店预约小程序开发要点:集成预约系统,用户填写信息并自动匹配时间及理发师;包含充值功能,支持安全支付及多种折扣;用户评价系统确保服务质量透明;发型展示帮助用户选择,支持模拟试戴;重视用户体验,界面友好,加载速度快;确保数据安全,兼容多平台,定期更新以优化性能和响应用户需求。寻求开发合作可联系相关人员。
|
4月前
|
小程序 JavaScript Java
影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
影院购票|电影院订票选座小程序|基于微信小程序的电影院购票系统设计与实现(源码+数据库+文档)
118 0
|
小程序
【带源码】基于微信小程序的旅游订票旅游预订小程序酒店预订项目
重要的事情说三遍,可白嫖,可白嫖,可白嫖!!! 源码下载链接:docs.qq.com/doc/DYm5DSlBWZEplalBP 随着移动互联网的迅速发展,人们对于旅游信息获取和旅行订票的需求也逐渐增加。传统的旅游指南和订票方式往往不够便捷和灵活,而微信作为一种广泛使用的社交媒体平台,拥有巨大的用户群体和强大的社交属性,成为了传递信息和服务的重要渠道。
|
设计模式 数据可视化 Java
肯德基点餐系统
肯德基点餐系统
肯德基点餐系统
|
区块链 数据安全/隐私保护 开发者
字画拍卖竞拍系统开发(开发详情)丨字画拍卖竞拍开发源码案例
数字藏品,是指使用区块链技术,对应特定的作品、艺术品生成的唯一数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行,购买,收藏和使用。
字画拍卖竞拍系统开发(开发详情)丨字画拍卖竞拍开发源码案例
J3
快捷餐饮之店家后台员工管理实现
快捷餐饮之店家后台员工管理实现
J3
101 0
快捷餐饮之店家后台员工管理实现
J3
快捷餐饮之店家后台系统管理实现
快捷餐饮之店家后台系统管理实现
J3
142 0
快捷餐饮之店家后台系统管理实现
下一篇
DDNS