package com.panzhihua.service_community.service.impl;
import com.panzhihua.service_community.dao.ComActEasyPhotoDAO;
import com.panzhihua.service_community.dao.ComActMicroWishDAO;
import com.panzhihua.service_community.entity.ComActEasyPhotoEvaluate;
import com.panzhihua.service_community.dao.ComActEasyPhotoEvaluateMapper;
import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
import com.panzhihua.service_community.service.ComActEasyPhotoEvaluateService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.service_community.service.ComActMicroWishOperationRecordService;
import org.springframework.beans.BeanUtils;
import com.panzhihua.common.model.dtos.common.*;
import com.panzhihua.common.model.vos.R;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Date;
/**
* title: 随手拍、微心愿评价表表服务实现类
*
* projectName 成都呐喊信息技术有限公司-智慧社区项目
*
* description: 随手拍、微心愿评价表表服务实现类
*
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Service("comActEasyPhotoEvaluateService")
public class ComActEasyPhotoEvaluateServiceImpl extends ServiceImpl implements ComActEasyPhotoEvaluateService {
@Resource
private ComActEasyPhotoDAO easyPhotoDAO;
@Resource
private ComActMicroWishDAO microWishDAO;
@Resource
private ComActMicroWishOperationRecordService microWishOperationRecordService;
/**
* description queryByPage 分页查询
*
* @param comActEasyPhotoEvaluate 请求参数
* @return 分页查询列表数据
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Override
public R queryByPage(PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
return R.ok(this.baseMapper.queryAllByLimit(comActEasyPhotoEvaluate, new Page(comActEasyPhotoEvaluate.getPageNum(), comActEasyPhotoEvaluate.getPageSize())));
}
/**
* description insert 新增数据
*
* @param comActEasyPhotoEvaluate 请求参数
* @return 新增结果
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Override
public R insert(AddComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
ComActEasyPhotoEvaluate entity = new ComActEasyPhotoEvaluate();
BeanUtils.copyProperties(comActEasyPhotoEvaluate, entity);
if (this.baseMapper.insert(entity) > 0) {
return R.ok();
}
return R.fail("添加失败");
}
/**
* description update 修改数据
*
* @param editDto 请求参数
* @return 修改结果
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Override
public R update(EditComActEasyPhotoEvaluateDto editDto) {
ComActEasyPhotoEvaluate entity = this.baseMapper.selectById(editDto.getId());
if (entity == null) {
return R.fail("未查询到该记录");
}
BeanUtils.copyProperties(editDto, entity);
if (this.baseMapper.updateById(entity) > 0) {
return R.ok();
}
return R.fail("修改失败");
}
/**
* description deleteById 通过主键删除数据
*
* @param id 主键id
* @return 删除结果
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Override
public R deleteById(Long id) {
if (this.baseMapper.deleteById(id) > 0) {
return R.ok();
}
return R.fail("删除失败");
}
/**
* description detailById 查询详情
*
* @param id 主键id
* @return 详情数据
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Override
public R detailById(Long id) {
return R.ok(this.baseMapper.queryById(id));
}
/**
* description queryByPage 查询列表
*
* @param comActEasyPhotoEvaluate 请求参数
* @return 列表数据
* @author lyq
* @date 2022-03-01 13:44:24
*/
@Override
public R queryByList(PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
return R.ok(this.baseMapper.queryAllByList(comActEasyPhotoEvaluate));
}
@Override
@Transactional(rollbackFor = Exception.class)
public R evaluateEasyApplets(EvaluateEasyDto whistleDto) {
ComActEasyPhotoDO easyPhotoDO = easyPhotoDAO.selectById(whistleDto.getId());
if(easyPhotoDO == null){
return R.fail("未查询到该记录");
}
if(!easyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dpj)){
return R.fail("当前状态不可进行评价");
}
Date nowDate = new Date();
//新增评价记录
this.addEasyPhotoEvaluateRecord(easyPhotoDO.getCommunityId(),whistleDto.getUserId(),easyPhotoDO.getId(),whistleDto.getScore()
,whistleDto.getContent(),nowDate,ComActEasyPhotoEvaluate.ServiceType.SSP);
//更新随手拍状态
easyPhotoDO.setStatus(ComActEasyPhotoDO.status.ypj);
easyPhotoDO.setEvaluateDate(nowDate);
easyPhotoDAO.updateById(easyPhotoDO);
return R.ok();
}
/**
* 添加随手拍、微心愿评价记录
* @param communityId 社区id
* @param userId 用户id
* @param serviceId 业务记录id
* @param score 评价分数
* @param content 评价内容
* @param nowDate 评价时间
* @param serviceType 业务类型(1.随手拍 2.微心愿)
*/
@Override
public void addEasyPhotoEvaluateRecord(Long communityId, Long userId, Long serviceId, Integer score, String content, Date nowDate, Integer serviceType) {
ComActEasyPhotoEvaluate easyPhotoEvaluate = new ComActEasyPhotoEvaluate();
easyPhotoEvaluate.setCommunityId(communityId);
easyPhotoEvaluate.setUserId(userId);
easyPhotoEvaluate.setServiceId(serviceId);
easyPhotoEvaluate.setScore(score);
easyPhotoEvaluate.setContent(content);
easyPhotoEvaluate.setCreateAt(nowDate);
easyPhotoEvaluate.setServiceType(serviceType);
this.baseMapper.insert(easyPhotoEvaluate);
}
}