菜谱收藏

This commit is contained in:
sxu 2025-06-05 16:57:51 +08:00
parent 5e18ff152c
commit 49c1d2b427
6 changed files with 75 additions and 11 deletions

View File

@ -68,9 +68,9 @@ public class CookCollectionDishesController extends BaseController {
*/ */
@ApiOperation(value = "获取菜品收藏详细信息") @ApiOperation(value = "获取菜品收藏详细信息")
//@RequiresPermissions("cook:dishes:query") //@RequiresPermissions("cook:dishes:query")
@GetMapping(value = "/{id}") @GetMapping(value = "/{dishesId}")
public AjaxResult getInfo(@PathVariable("id") Long id) { public AjaxResult getInfo(@PathVariable("dishesId") Long dishesId) {
return success(cookCollectionDishesService.selectCookCollectionDishesById(id)); return success(cookCollectionDishesService.selectCookCollectionDishesByDishesId(dishesId));
} }
/** /**

View File

@ -1,11 +1,14 @@
package com.bonus.canteen.core.cook.domain; package com.bonus.canteen.core.cook.domain;
import com.bonus.canteen.core.common.utils.FileUrlUtil;
import com.bonus.common.core.annotation.Excel; import com.bonus.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.ToString; import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity; import com.bonus.common.core.web.domain.BaseEntity;
import java.math.BigDecimal;
/** /**
* 菜品收藏对象 cook_collection_dishes * 菜品收藏对象 cook_collection_dishes
* *
@ -37,5 +40,23 @@ public class CookCollectionDishes extends BaseEntity {
@ApiModelProperty(value = "菜品id") @ApiModelProperty(value = "菜品id")
private Long dishesId; private Long dishesId;
@ApiModelProperty(value = "菜品名称")
private String dishesName;
@ApiModelProperty(value = "图片地址")
private String imageUrl;
@ApiModelProperty(value = "价格")
private BigDecimal price;
@ApiModelProperty(value = "售出数量")
private Integer saleNum;
@ApiModelProperty("是否收藏(1-收藏,2-未收藏)")
private Integer isFavorites;
public String getImageUrl() {
return FileUrlUtil.getFileUrl(this.imageUrl);
}
} }

View File

@ -2,6 +2,7 @@ package com.bonus.canteen.core.cook.mapper;
import java.util.List; import java.util.List;
import com.bonus.canteen.core.cook.domain.CookCollectionDishes; import com.bonus.canteen.core.cook.domain.CookCollectionDishes;
import org.apache.ibatis.annotations.Param;
/** /**
* 菜品收藏Mapper接口 * 菜品收藏Mapper接口
@ -18,6 +19,10 @@ public interface CookCollectionDishesMapper {
*/ */
public CookCollectionDishes selectCookCollectionDishesById(Long id); public CookCollectionDishes selectCookCollectionDishesById(Long id);
public CookCollectionDishes selectCookCollectionDishesByDishesId(Long dishesId);
public int getCollectionCountByUserIdAndDishesId(@Param("userId") Long userId, @Param("dishesId") Long dishesId);
/** /**
* 查询菜品收藏列表 * 查询菜品收藏列表
* *

View File

@ -18,6 +18,8 @@ public interface ICookCollectionDishesService {
*/ */
public CookCollectionDishes selectCookCollectionDishesById(Long id); public CookCollectionDishes selectCookCollectionDishesById(Long id);
public CookCollectionDishes selectCookCollectionDishesByDishesId(Long dishesId);
/** /**
* 查询菜品收藏列表 * 查询菜品收藏列表
* *

View File

@ -1,8 +1,12 @@
package com.bonus.canteen.core.cook.service.impl; package com.bonus.canteen.core.cook.service.impl;
import java.util.List; import java.util.List;
import java.util.Objects;
import com.bonus.canteen.core.common.enums.YesOrNoEnum;
import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.security.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.bonus.canteen.core.cook.mapper.CookCollectionDishesMapper; import com.bonus.canteen.core.cook.mapper.CookCollectionDishesMapper;
@ -20,15 +24,28 @@ public class CookCollectionDishesServiceImpl implements ICookCollectionDishesSer
@Autowired @Autowired
private CookCollectionDishesMapper cookCollectionDishesMapper; private CookCollectionDishesMapper cookCollectionDishesMapper;
public CookCollectionDishes selectCookCollectionDishesById(Long id) {
return cookCollectionDishesMapper.selectCookCollectionDishesByDishesId(id);
}
/** /**
* 查询菜品收藏 * 查询菜品收藏
* *
* @param id 菜品收藏主键 * @param dishesId 菜品收藏主键
* @return 菜品收藏 * @return 菜品收藏
*/ */
@Override @Override
public CookCollectionDishes selectCookCollectionDishesById(Long id) { public CookCollectionDishes selectCookCollectionDishesByDishesId(Long dishesId) {
return cookCollectionDishesMapper.selectCookCollectionDishesById(id); CookCollectionDishes result = cookCollectionDishesMapper.selectCookCollectionDishesByDishesId(dishesId);
if (Objects.nonNull(result)) {
int countDishes = this.cookCollectionDishesMapper.getCollectionCountByUserIdAndDishesId(SecurityUtils.getUserId(), dishesId);
if (countDishes > 0) {
result.setIsFavorites(YesOrNoEnum.YES.key());
} else {
result.setIsFavorites(YesOrNoEnum.NO.key());
}
}
return result;
} }
/** /**

View File

@ -12,24 +12,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="createTime" column="create_time" /> <result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" /> <result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" /> <result property="updateTime" column="update_time" />
<result property="dishesName" column="dishes_name" />
<result property="imageUrl" column="image_url" />
<result property="price" column="price" />
<result property="saleNum" column="sale_num" />
</resultMap> </resultMap>
<sql id="selectCookCollectionDishesVo"> <sql id="selectCookCollectionDishesVo">
select id, user_id, stall_id, dishes_id, create_by, create_time, update_by, update_time from cook_collection_dishes select ccd.id, ccd.user_id, ccd.stall_id, ccd.dishes_id, ccd.create_by, ccd.create_time, ccd.update_by,
ccd.update_time, cd.dishes_name, cd.image_url, cd.price, cdsr.sale_num
from cook_collection_dishes ccd
left join cook_dishes cd on cd.dishes_id = ccd.dishes_id
left join cook_dishes_sale_record cdsr on ccd.dishes_id = cdsr.dishes_id
</sql> </sql>
<select id="selectCookCollectionDishesList" parameterType="com.bonus.canteen.core.cook.domain.CookCollectionDishes" resultMap="CookCollectionDishesResult"> <select id="selectCookCollectionDishesList" parameterType="com.bonus.canteen.core.cook.domain.CookCollectionDishes" resultMap="CookCollectionDishesResult">
<include refid="selectCookCollectionDishesVo"/> <include refid="selectCookCollectionDishesVo"/>
<where> <where>
<if test="userId != null "> and user_id = #{userId}</if> <if test="userId != null "> and ccd.user_id = #{userId}</if>
<if test="stallId != null "> and stall_id = #{stallId}</if> <if test="stallId != null "> and ccd.stall_id = #{stallId}</if>
<if test="dishesId != null "> and dishes_id = #{dishesId}</if> <if test="dishesId != null "> and ccd.dishes_id = #{dishesId}</if>
</where> </where>
</select> </select>
<select id="selectCookCollectionDishesById" parameterType="Long" resultMap="CookCollectionDishesResult"> <select id="selectCookCollectionDishesById" parameterType="Long" resultMap="CookCollectionDishesResult">
<include refid="selectCookCollectionDishesVo"/> <include refid="selectCookCollectionDishesVo"/>
where id = #{id} where ccd.id = #{id}
</select>
<select id="selectCookCollectionDishesByDishesId" parameterType="Long" resultMap="CookCollectionDishesResult">
<include refid="selectCookCollectionDishesVo"/>
where ccd.dishes_id = #{dishesId}
</select>
<select id = "getCollectionCountByUserIdAndDishesId" resultType="Integer">
select count(1)
from cook_collection_dishes
where user_id = #{userId} and dishes_id = #{dishesId}
</select> </select>
<insert id="insertCookCollectionDishes" parameterType="com.bonus.canteen.core.cook.domain.CookCollectionDishes" useGeneratedKeys="true" keyProperty="id"> <insert id="insertCookCollectionDishes" parameterType="com.bonus.canteen.core.cook.domain.CookCollectionDishes" useGeneratedKeys="true" keyProperty="id">