perf: 添加功能

This commit is contained in:
曹鹏飞 2025-02-03 19:11:50 +08:00
parent 808efac0bc
commit 67b140318e
7 changed files with 211 additions and 0 deletions

View File

@ -48,6 +48,9 @@ public class TiketController extends ControllerBase {
@Resource
private IAppUserService appUserService;
@Resource
private ITicketEvaluateService ticketEvaluateService;
/**
* 搜索设备
*
@ -171,4 +174,15 @@ public class TiketController extends ControllerBase {
ticketService.revoked(id);
return ApiResult.success();
}
/**
* 添加工单评价
*
* @param request 请求信息
**/
@PostMapping("addTicketEvaluate")
public ApiResult<Void> addTicketEvaluate(@Valid @RequestBody TicketEvaluateAddRequest request) {
ticketEvaluateService.add(request);
return ApiResult.success();
}
}

View File

@ -0,0 +1,36 @@
package com.nflg.mobilebroken.common.pojo.request;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
@Data
public class TicketEvaluateAddRequest {
//工单id
@NotNull
private Integer ticketId;
//服务评价
@NotBlank
private String serviceEvaluation;
//服务评价选择
private List<String> serviceEvaluationSelect;
//产品评价
@NotBlank
private String productEvaluation;
//产品评价选择
private List<String> productEvaluationSelect;
//评分
private BigDecimal score;
//反馈
private String feedback;
}

View File

@ -0,0 +1,72 @@
package com.nflg.mobilebroken.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* <p>
*
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Getter
@Setter
@Accessors(chain = true)
@TableName("ticket_evaluate")
public class TicketEvaluate implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
/**
* 工单id
*/
private Integer ticketId;
/**
* 售后服务评价
*/
private String serviceEvaluation;
/**
* 售后服务评价选择
*/
private String serviceEvaluationSelect;
/**
* 产品体验评价
*/
private String productEvaluation;
/**
* 产品体验评价选择
*/
private String productEvaluationSelect;
/**
* 评分
*/
private BigDecimal score;
/**
* 反馈
*/
private String feedback;
/**
* 评价时间
*/
private LocalDateTime createTime;
}

View File

@ -0,0 +1,16 @@
package com.nflg.mobilebroken.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.mobilebroken.repository.entity.TicketEvaluate;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface TicketEvaluateMapper extends BaseMapper<TicketEvaluate> {
}

View File

@ -0,0 +1,18 @@
package com.nflg.mobilebroken.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.mobilebroken.common.pojo.request.TicketEvaluateAddRequest;
import com.nflg.mobilebroken.repository.entity.TicketEvaluate;
/**
* <p>
* 服务类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
public interface ITicketEvaluateService extends IService<TicketEvaluate> {
void add(TicketEvaluateAddRequest request);
}

View File

@ -0,0 +1,50 @@
package com.nflg.mobilebroken.repository.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.mobilebroken.common.constant.TicketState;
import com.nflg.mobilebroken.common.pojo.request.TicketEvaluateAddRequest;
import com.nflg.mobilebroken.common.util.VUtils;
import com.nflg.mobilebroken.repository.entity.Ticket;
import com.nflg.mobilebroken.repository.entity.TicketEvaluate;
import com.nflg.mobilebroken.repository.mapper.TicketEvaluateMapper;
import com.nflg.mobilebroken.repository.service.ITicketEvaluateService;
import com.nflg.mobilebroken.repository.service.ITicketService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.Objects;
/**
* <p>
* 服务实现类
* </p>
*
* @author 代码生成器生成
* @since 2025
*/
@Service
public class TicketEvaluateServiceImpl extends ServiceImpl<TicketEvaluateMapper, TicketEvaluate> implements ITicketEvaluateService {
@Resource
private ITicketService ticketService;
@Override
public void add(TicketEvaluateAddRequest request) {
Ticket ticket = ticketService.getById(request.getTicketId());
VUtils.trueThrowBusinessError(Objects.isNull(ticket)).throwMessage("工单不存在");
VUtils.trueThrowBusinessError(!Objects.equals(ticket.getState(), TicketState.ProcessingCompleted.getState())
&& !Objects.equals(ticket.getState(), TicketState.Closed.getState())).throwMessage("工单状态异常");
TicketEvaluate ticketEvaluate = new TicketEvaluate()
.setTicketId(request.getTicketId())
.setServiceEvaluation(request.getServiceEvaluation())
.setServiceEvaluationSelect(StrUtil.join(",", request.getServiceEvaluationSelect()))
.setProductEvaluation(request.getProductEvaluation())
.setProductEvaluationSelect(StrUtil.join(",", request.getProductEvaluationSelect()))
.setScore(request.getScore())
.setFeedback(request.getFeedback())
.setCreateTime(LocalDateTime.now());
save(ticketEvaluate);
}
}

View File

@ -0,0 +1,5 @@
<?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.nflg.mobilebroken.repository.mapper.TicketEvaluateMapper">
</mapper>