package com.project.enforce.service.impl; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.project.common.exception.base.BaseException; import com.project.common.utils.JsonUtils; import com.project.common.utils.StringUtils; import com.project.enforce.domain.EnforceEvaluateLog; import com.project.enforce.domain.bo.editBo.EnforceEvaluateLogBo; import com.project.enforce.domain.bo.queryBo.EnforceEvaluateLogQueryBo; import com.project.enforce.domain.vo.EnforceEvaluateLogVo; import com.project.enforce.domain.vo.EnforceEvaluateVo; import com.project.enforce.mapper.EnforceEvaluateLogMapper; import com.project.enforce.service.IEnforceEvaluateLogService; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; import java.util.List; /** * 执法评价记录Service业务层处理 * * @author manton */ @Service @RequiredArgsConstructor(onConstructor_ = @Autowired) public class EnforceEvaluateLogServiceImpl extends ServiceImpl implements IEnforceEvaluateLogService { @Override//列表查询 public List queryList(EnforceEvaluateLogQueryBo bo) { QueryWrapper qw = getQw(bo); List list = this.list(qw); return Convert.toList(EnforceEvaluateLogVo.class , list); } @Override//id查询 public EnforceEvaluateLogVo queryById(Long id) { EnforceEvaluateLog db = this.baseMapper.selectById(id); EnforceEvaluateLogVo vo = Convert.convert(EnforceEvaluateLogVo.class, db); String questionStatic = vo.getQuestionStatic(); try { EnforceEvaluateVo evaluateVo = JsonUtils.jsonToPojo(questionStatic, EnforceEvaluateVo.class); vo.setEvaluateVo(evaluateVo); } catch (Exception e) { throw new BaseException("评价问券解析异常!"); } return vo; } @Override//添加 @Transactional public Boolean insertByBo(EnforceEvaluateLogBo bo) { EnforceEvaluateLog add = Convert.convert(EnforceEvaluateLog.class, bo); validEntityBeforeSave(bo); String questionStatic = JsonUtils.objectToJson(bo.getEvaluateVo()); add.setQuestionStatic(questionStatic); return this.save(add); } @Override//修改 @Transactional public Boolean updateByBo(EnforceEvaluateLogBo bo) { EnforceEvaluateLog update = Convert.convert(EnforceEvaluateLog.class, bo); validEntityBeforeSave(bo); String questionStatic = JsonUtils.objectToJson(bo.getEvaluateVo()); update.setQuestionStatic(questionStatic); return this.updateById(update); } @Override//删除 @Transactional public Boolean deleteByIds(Collection ids) { //做一些业务上的校验,判断是否需要校验 return this.removeByIds(ids); } //------------------------------------------------------------------------------------- //保存前校验 private void validEntityBeforeSave(EnforceEvaluateLogBo bo) { if (bo.getEvaluateVo()==null) { throw new BaseException("请上传评价问券内容!"); } } //获取查询参数 private QueryWrapper getQw(EnforceEvaluateLogQueryBo bo) { QueryWrapper qw = Wrappers.query(); qw.eq(StringUtils.isNotEmpty(bo.getOrderId()), "order_id", bo.getOrderId()); qw.eq(StringUtils.isNotEmpty(bo.getOrderNo()), "order_no", bo.getOrderNo()); qw.eq(bo.getCompanyId() != null, "company_id", bo.getCompanyId()); qw.like(StringUtils.isNotEmpty(bo.getCompanyName()), "company_name", bo.getCompanyName()); qw.eq(StringUtils.isNotEmpty(bo.getCompanyUser()), "company_user", bo.getCompanyUser()); qw.eq(StringUtils.isNotEmpty(bo.getCompanyPhone()), "company_phone", bo.getCompanyPhone()); qw.eq(bo.getExecuteUser() != null, "execute_user", bo.getExecuteUser()); qw.eq(bo.getExecutePhone() != null, "execute_phone", bo.getExecutePhone()); qw.like(bo.getExecuteDeptName() != null, "execute_dept_name", bo.getExecuteDeptName()); qw.eq(StringUtils.isNotEmpty(bo.getQuestionRemark()), "question_remark", bo.getQuestionRemark()); qw.eq(StringUtils.isNotEmpty(bo.getQuestionStatic()), "question_static", bo.getQuestionStatic()); qw.eq(bo.getTotalScore() != null, "total_score", bo.getTotalScore()); if (StringUtils.isNotEmpty(bo.getIsAsc()) && StringUtils.isNotEmpty(bo.getOrderByColumn())){ if ("acs".equals(bo.getIsAsc())) { qw.orderByAsc(bo.getOrderByColumn()); } else if ("desc".equals(bo.getIsAsc())) { qw.orderByDesc(bo.getOrderByColumn()); } } return qw; } }