package com.om.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.PageUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.om.entity.dto.DiagnosisInfoDTO; import com.om.entity.dto.UpStatusDto; import com.om.entity.po.*; import com.om.entity.vo.DiagnosisVersionVO; import com.om.entity.vo.DignosisPageVO; import com.om.mapper.DiagnosisVersionInfoMapper; import com.om.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.om.utils.Result; import com.om.utils.UserContext; import io.swagger.v3.oas.annotations.parameters.RequestBody; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; /** *

* 服务实现类 *

* * @author bmmx * @since 2024-03-06 */ @Service public class DiagnosisVersionInfoServiceImpl extends ServiceImpl implements IDiagnosisVersionInfoService { @Resource IDiagnosisVersionDescribeService describeService; @Resource IBrandService brandService; @Resource IClientService clientService; @Resource IUserService userService; @Override public Result add(DiagnosisVersionVO diagnosisVersionVO) { DiagnosisVersionInfo info = new DiagnosisVersionInfo(); //copy了文件地址和名称,品牌名称,文件大小 BeanUtil.copyProperties(diagnosisVersionVO,info); //获取user用户。保存当前操作人 Integer userId = UserContext.getUserId(); User user = userService.getById(userId); info.setUsername(user.getUsername()); info.setVersionNum("1.0"); info.setStatus(0); this.save(info); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(DiagnosisVersionInfo::getFile,diagnosisVersionVO.getFile()); queryWrapper.eq(DiagnosisVersionInfo::getDiagnosisName,diagnosisVersionVO.getDiagnosisName()); queryWrapper.eq(DiagnosisVersionInfo::getBrandCode,diagnosisVersionVO.getBrandCode()); //保存后获取 DiagnosisVersionInfo versionInfo = getOne(queryWrapper); DiagnosisVersionDescribe describe = new DiagnosisVersionDescribe(); describe.setDiagnosisId(versionInfo.getId()); describe.setDescription(diagnosisVersionVO.getDescriptionList()); describe.setLanguage(diagnosisVersionVO.getLanguage()); describeService.save(describe); return Result.ok(); } @Override public Result downloadFile(Integer id) { return null; } @Override public Result edit(DiagnosisVersionVO diagnosisVersionVO) { Integer diaId = diagnosisVersionVO.getId(); DiagnosisVersionInfo versionInfo = getById(diaId); versionInfo.setBrandCode(diagnosisVersionVO.getBrandCode()); versionInfo.setClientNumber(diagnosisVersionVO.getClientNums()); this.update(versionInfo,null); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(DiagnosisVersionDescribe::getDiagnosisId,diaId); DiagnosisVersionDescribe describe = describeService.getOne(queryWrapper); describe.setDescription(diagnosisVersionVO.getDescriptionList()); describeService.update(describe,null); return Result.ok(); } @Override public Result getByUserId(Integer id) { DiagnosisVersionInfo versionInfo = this.getById(id); if (versionInfo == null){ return Result.ok(); } DiagnosisInfoDTO diagnosisInfo = new DiagnosisInfoDTO(); diagnosisInfo.setId(id); diagnosisInfo.setBrandName(versionInfo.getBrandCode()); //根据客户端信息,获取客户端名称 LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(Client::getName,diagnosisInfo.getClientName()); Client client = clientService.getOne(queryWrapper); diagnosisInfo.setClientName(client.getName()); diagnosisInfo.setCreateTime(versionInfo.getCreateTime()); diagnosisInfo.setDiagnosisName(versionInfo.getDiagnosisName()); diagnosisInfo.setFileSize(versionInfo.getDiagnosisFileSize()); diagnosisInfo.setSecret(versionInfo.getCipherCode()); diagnosisInfo.setStatus(diagnosisInfo.getStatus()); diagnosisInfo.setUsername(diagnosisInfo.getUsername()); diagnosisInfo.setVersion(versionInfo.getVersionNum()); return Result.ok(diagnosisInfo); } @Override public Result getPageList(DignosisPageVO dignosisPageVO) { Page page = this.lambdaQuery() .like(StringUtils.isNotBlank(dignosisPageVO.getQuery()),DiagnosisVersionInfo::getUsername,dignosisPageVO.getQuery()) .page(new Page<>(dignosisPageVO.getPageIndex(),dignosisPageVO.getPageSize())); return Result.ok(page); } @Override public Result release(Integer id) { DiagnosisVersionInfo info = this.getById(id); info.setStatus(1); this.update(info,null); return Result.ok(); } @Override public Result repeal(Integer id) { DiagnosisVersionInfo info = this.getById(id); info.setStatus(0); this.update(info,null); return Result.ok(); } /* 目前用不上 */ @Override public Result upStatus(UpStatusDto upStatusDto) { return null; } @Override public Result getDesc(DiagnosisVersionVO diagnosisVersionVO) { return null; } }