订单评价

This commit is contained in:
sxu 2025-06-05 14:50:04 +08:00
parent 5fb63050a4
commit e9b9c8ff4f
7 changed files with 246 additions and 28 deletions

View File

@ -2,6 +2,8 @@ package com.bonus.canteen.core.cook.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.bonus.canteen.core.cook.dto.CookEvaluaOrderDTO;
import com.bonus.common.log.enums.OperaType;
//import com.bonus.canteen.core.cook.common.annotation.PreventRepeatSubmit;
import io.swagger.annotations.Api;
@ -49,6 +51,16 @@ public class CookEvaluaOrderController extends BaseController {
return getDataTable(list);
}
/**
* 获取订单评价详细信息
*/
@ApiOperation(value = "获取订单评价详细信息")
//@RequiresPermissions("menu:order:query")
@GetMapping(value = "/orderId/{orderId}")
public AjaxResult getInfoByOrderId(@PathVariable("orderId") Long orderId) {
return success(cookEvaluaOrderService.selectCookEvaluaOrderById(orderId));
}
/**
* 导出订单评价列表
*/
@ -81,9 +93,9 @@ public class CookEvaluaOrderController extends BaseController {
//@RequiresPermissions("cook:order:add")
@SysLog(title = "订单评价", businessType = OperaType.INSERT, logType = 1,module = "仓储管理->新增订单评价")
@PostMapping
public AjaxResult add(@RequestBody CookEvaluaOrder cookEvaluaOrder) {
public AjaxResult add(@RequestBody CookEvaluaOrderDTO cookEvaluaOrderDTO) {
try {
return toAjax(cookEvaluaOrderService.insertCookEvaluaOrder(cookEvaluaOrder));
return toAjax(cookEvaluaOrderService.insertCookEvaluaOrder(cookEvaluaOrderDTO));
} catch (Exception e) {
return error(e.getMessage());
}

View File

@ -0,0 +1,77 @@
package com.bonus.canteen.core.cook.dto;
import com.bonus.canteen.core.cook.domain.CookEvaluaDetail;
import com.bonus.common.core.annotation.Excel;
import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
import java.util.List;
/**
* 订单评价对象 cook_evalua_order
*
* @author xsheng
* @date 2025-05-25
*/
@Data
@ToString
public class CookEvaluaOrderDTO extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 菜品评价id */
private Long evaluaId;
/** 订单编号 */
@Excel(name = "订单编号")
@ApiModelProperty(value = "订单编号")
private Long orderId;
/** 星级 */
@Excel(name = "星级")
@ApiModelProperty(value = "星级")
private Long starLevel;
/** 描述 */
@Excel(name = "描述")
@ApiModelProperty(value = "描述")
private String description;
/** 描述回复 */
@Excel(name = "描述回复")
@ApiModelProperty(value = "描述回复")
private String reply;
/** 描述回复时间 */
@ApiModelProperty(value = "描述回复时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "描述回复时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date replyTime;
/** 档口或店铺id */
@Excel(name = "档口或店铺id")
@ApiModelProperty(value = "档口或店铺id")
private Long stallId;
/** 展示状态(1-展示,2-不展示) */
@Excel(name = "展示状态(1-展示,2-不展示)")
@ApiModelProperty(value = "展示状态(1-展示,2-不展示)")
private Long showFlag;
/** 订单评价类型1食堂2商超 */
@Excel(name = "订单评价类型1食堂2商超")
@ApiModelProperty(value = "订单评价类型1食堂2商超")
private Long orderEvaluaType;
@ApiModelProperty("评价图片")
private List<String> pictureList;
@ApiModelProperty("订单详情")
List<CookEvaluaDetail> detailList;
}

View File

@ -2,6 +2,7 @@ package com.bonus.canteen.core.cook.mapper;
import java.util.List;
import com.bonus.canteen.core.cook.domain.CookEvaluaOrder;
import com.bonus.canteen.core.cook.dto.CookEvaluaOrderDTO;
/**
* 订单评价Mapper接口
@ -18,6 +19,8 @@ public interface CookEvaluaOrderMapper {
*/
public CookEvaluaOrder selectCookEvaluaOrderByEvaluaId(Long evaluaId);
public CookEvaluaOrder selectCookEvaluaOrderByOrderId(Long orderId);
/**
* 查询订单评价列表
*
@ -29,10 +32,10 @@ public interface CookEvaluaOrderMapper {
/**
* 新增订单评价
*
* @param cookEvaluaOrder 订单评价
* @param cookEvaluaOrderDTO 订单评价
* @return 结果
*/
public int insertCookEvaluaOrder(CookEvaluaOrder cookEvaluaOrder);
public int insertCookEvaluaOrder(CookEvaluaOrderDTO cookEvaluaOrderDTO);
/**
* 修改订单评价

View File

@ -2,6 +2,8 @@ package com.bonus.canteen.core.cook.service;
import java.util.List;
import com.bonus.canteen.core.cook.domain.CookEvaluaOrder;
import com.bonus.canteen.core.cook.dto.CookEvaluaOrderDTO;
import com.bonus.canteen.core.cook.vo.CookEvaluaOrderVo;
/**
* 订单评价Service接口
@ -18,6 +20,8 @@ public interface ICookEvaluaOrderService {
*/
public CookEvaluaOrder selectCookEvaluaOrderByEvaluaId(Long evaluaId);
public CookEvaluaOrderVo selectCookEvaluaOrderById(Long orderId);
/**
* 查询订单评价列表
*
@ -29,10 +33,10 @@ public interface ICookEvaluaOrderService {
/**
* 新增订单评价
*
* @param cookEvaluaOrder 订单评价
* @param cookEvaluaOrderDTO 订单评价
* @return 结果
*/
public int insertCookEvaluaOrder(CookEvaluaOrder cookEvaluaOrder);
public int insertCookEvaluaOrder(CookEvaluaOrderDTO cookEvaluaOrderDTO);
/**
* 修改订单评价

View File

@ -2,14 +2,18 @@ package com.bonus.canteen.core.cook.service.impl;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import com.bonus.canteen.core.cook.domain.CookEvaluaDetail;
import com.bonus.canteen.core.cook.domain.CookEvaluaPicture;
import com.bonus.canteen.core.cook.dto.CookEvaluaOrderDTO;
import com.bonus.canteen.core.cook.mapper.CookEvaluaDetailMapper;
import com.bonus.canteen.core.cook.mapper.CookEvaluaPictureMapper;
import com.bonus.canteen.core.cook.vo.CookEvaluaOrderVo;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.security.utils.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.bonus.canteen.core.cook.mapper.CookEvaluaOrderMapper;
@ -42,6 +46,32 @@ public class CookEvaluaOrderServiceImpl implements ICookEvaluaOrderService {
return cookEvaluaOrderMapper.selectCookEvaluaOrderByEvaluaId(evaluaId);
}
/**
* 查询订单评价
*
* @param orderId 订单评价主键
* @return 订单评价
*/
@Override
public CookEvaluaOrderVo selectCookEvaluaOrderById(Long orderId) {
CookEvaluaOrder cookEvaluaOrder = cookEvaluaOrderMapper.selectCookEvaluaOrderByOrderId(orderId);
CookEvaluaOrderVo cookEvaluaOrderVo = new CookEvaluaOrderVo();
BeanUtils.copyProperties(cookEvaluaOrder, cookEvaluaOrderVo);
CookEvaluaDetail menuEvaluaDetail = new CookEvaluaDetail();
menuEvaluaDetail.setEvaluaId(cookEvaluaOrder.getEvaluaId());
List<CookEvaluaDetail> menuEvaluaDetails = cookEvaluaDetailMapper.selectCookEvaluaDetailList(menuEvaluaDetail);
cookEvaluaOrderVo.setDetailList(menuEvaluaDetails);
CookEvaluaPicture menuEvaluaPicture = new CookEvaluaPicture();
menuEvaluaPicture.setEvaluaId(cookEvaluaOrder.getEvaluaId());
List<CookEvaluaPicture> menuEvaluaPictures = cookEvaluaPictureMapper.selectCookEvaluaPictureList(menuEvaluaPicture);
List<String> pictures = menuEvaluaPictures.stream().map(CookEvaluaPicture::getImgUrl).collect(Collectors.toList());
cookEvaluaOrderVo.setPictureList(pictures);
return cookEvaluaOrderVo;
}
/**
* 查询订单评价列表
*
@ -56,37 +86,37 @@ public class CookEvaluaOrderServiceImpl implements ICookEvaluaOrderService {
/**
* 新增订单评价
*
* @param cookEvaluaOrder 订单评价
* @param cookEvaluaOrderDTO 订单评价
* @return 结果
*/
@Override
public int insertCookEvaluaOrder(CookEvaluaOrder cookEvaluaOrder) {
if (Objects.isNull(cookEvaluaOrder.getOrderId())) {
public int insertCookEvaluaOrder(CookEvaluaOrderDTO cookEvaluaOrderDTO) {
if (Objects.isNull(cookEvaluaOrderDTO.getOrderId())) {
throw new ServiceException("订单编号不能为空");
}
cookEvaluaOrder.setCreateTime(DateUtils.getNowDate());
cookEvaluaOrder.setCreateBy(SecurityUtils.getUsername());
cookEvaluaOrderDTO.setCreateTime(DateUtils.getNowDate());
cookEvaluaOrderDTO.setCreateBy(SecurityUtils.getUsername());
try {
int count = cookEvaluaOrderMapper.insertCookEvaluaOrder(cookEvaluaOrder);
long evaluaId = cookEvaluaOrder.getEvaluaId();
List<String> pictureList = cookEvaluaOrder.getPictureList();
int count = cookEvaluaOrderMapper.insertCookEvaluaOrder(cookEvaluaOrderDTO);
long evaluaId = cookEvaluaOrderDTO.getEvaluaId();
List<String> pictureList = cookEvaluaOrderDTO.getPictureList();
for (int i = 0; i < pictureList.size(); i++) {
CookEvaluaPicture menuEvaluaPicture = new CookEvaluaPicture();
menuEvaluaPicture.setEvaluaId(evaluaId);
menuEvaluaPicture.setImgUrl(pictureList.get(i));
menuEvaluaPicture.setCreateTime(DateUtils.getNowDate());
menuEvaluaPicture.setCreateBy(SecurityUtils.getUsername());
cookEvaluaPictureMapper.insertCookEvaluaPicture(menuEvaluaPicture);
CookEvaluaPicture cookEvaluaPicture = new CookEvaluaPicture();
cookEvaluaPicture.setEvaluaId(evaluaId);
cookEvaluaPicture.setImgUrl(pictureList.get(i));
cookEvaluaPicture.setCreateTime(DateUtils.getNowDate());
cookEvaluaPicture.setCreateBy(SecurityUtils.getUsername());
cookEvaluaPictureMapper.insertCookEvaluaPicture(cookEvaluaPicture);
}
List<CookEvaluaDetail> detailList = cookEvaluaOrder.getDetailList();
List<CookEvaluaDetail> detailList = cookEvaluaOrderDTO.getDetailList();
for (int i = 0; i < detailList.size(); i++) {
CookEvaluaDetail menuEvaluaDetail = detailList.get(i);
menuEvaluaDetail.setEvaluaId(evaluaId);
menuEvaluaDetail.setCreateTime(DateUtils.getNowDate());
menuEvaluaDetail.setCreateBy(SecurityUtils.getUsername());
cookEvaluaDetailMapper.insertCookEvaluaDetail(menuEvaluaDetail);
CookEvaluaDetail cookEvaluaDetail = detailList.get(i);
cookEvaluaDetail.setEvaluaId(evaluaId);
cookEvaluaDetail.setCreateTime(DateUtils.getNowDate());
cookEvaluaDetail.setCreateBy(SecurityUtils.getUsername());
cookEvaluaDetailMapper.insertCookEvaluaDetail(cookEvaluaDetail);
}
cookEvaluaOrderMapper.updateOrderEvaluaStatus(cookEvaluaOrder.getOrderId());
cookEvaluaOrderMapper.updateOrderEvaluaStatus(cookEvaluaOrderDTO.getOrderId());
return count;
} catch (Exception e) {
throw new ServiceException("新增订单评价异常, " + e.getMessage());

View File

@ -0,0 +1,85 @@
package com.bonus.canteen.core.cook.vo;
import com.bonus.canteen.core.cook.domain.CookEvaluaDetail;
import com.bonus.common.core.annotation.Excel;
import com.bonus.common.core.web.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import java.util.Date;
import java.util.List;
/**
* 订单评价对象 cook_evalua_order
*
* @author xsheng
* @date 2025-04-20
*/
@Data
@ToString
public class CookEvaluaOrderVo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 评价id */
@Excel(name = "评价id")
@ApiModelProperty(value = "评价id")
private Long evaluaId;
/** 订单编号 */
@Excel(name = "订单编号")
@ApiModelProperty(value = "订单编号")
private Long orderId;
/** 星级 */
@Excel(name = "星级")
@ApiModelProperty(value = "星级")
private Long starLevel;
/** 描述 */
@Excel(name = "描述")
@ApiModelProperty(value = "描述")
private String description;
/** 描述回复 */
@Excel(name = "描述回复")
@ApiModelProperty(value = "描述回复")
private String reply;
/** 描述回复时间 */
@ApiModelProperty(value = "描述回复时间")
@JsonFormat(pattern = "yyyy-MM-dd")
@Excel(name = "描述回复时间", width = 30, dateFormat = "yyyy-MM-dd")
private Date replyTime;
/** 档口或店铺id */
@Excel(name = "档口或店铺id")
@ApiModelProperty(value = "档口或店铺id")
private Long shopstallId;
/** 展示状态(1-展示,2-不展示) */
@Excel(name = "展示状态(1-展示,2-不展示)")
@ApiModelProperty(value = "展示状态(1-展示,2-不展示)")
private Long showFlag;
/** 删除标识(0-正常,2-删除) */
private Long delFlag;
/** 乐观锁 */
@Excel(name = "乐观锁")
@ApiModelProperty(value = "乐观锁")
private Long revision;
/** 订单评价类型1食堂2商超 */
@Excel(name = "订单评价类型1食堂2商超")
@ApiModelProperty(value = "订单评价类型1食堂2商超")
private Long orderEvaluaType;
@ApiModelProperty("评价图片")
private List<String> pictureList;
@ApiModelProperty("订单详情")
List<CookEvaluaDetail> detailList;
}

View File

@ -20,7 +20,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</resultMap>
<sql id="selectCookEvaluaOrderVo">
select evalua_id, order_id, star_level, description, reply, reply_time, stall_id, show_flag, order_evalua_type, create_by, create_time, update_by, update_time from cook_evalua_order
select evalua_id, order_id, star_level, description, reply, reply_time, stall_id,
show_flag, order_evalua_type, create_by, create_time, update_by, update_time
from cook_evalua_order
</sql>
<select id="selectCookEvaluaOrderList" parameterType="com.bonus.canteen.core.cook.domain.CookEvaluaOrder" resultMap="CookEvaluaOrderResult">
@ -41,6 +43,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectCookEvaluaOrderVo"/>
where evalua_id = #{evaluaId}
</select>
<select id="selectCookEvaluaOrderByOrderId" parameterType="Long" resultMap="CookEvaluaOrderResult">
<include refid="selectCookEvaluaOrderVo"/>
where meo.ord_id = #{orderId}
</select>
<insert id="insertCookEvaluaOrder" parameterType="com.bonus.canteen.core.cook.domain.CookEvaluaOrder" useGeneratedKeys="true" keyProperty="evaluaId">
insert into cook_evalua_order