package com.kidgrow.oprationcenter.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.model.PageResult;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.common.model.SysDoctor;
import com.kidgrow.common.model.SysUser;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.oprationcenter.mapper.DataNeedMapper;
import com.kidgrow.oprationcenter.model.DataNeed;
import com.kidgrow.oprationcenter.service.IDataNeedService;
import com.kidgrow.oprationcenter.vo.DataNeedExcel;
import com.kidgrow.usercenter.feign.SysDoctorService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* @Description: 医生的数据需求
* @Project: 用户中心
* @CreateDate: Created in 2020-04-01 09:37:04
* @Author: liuke
* @version 1.0
*/
@Slf4j
@Service
public class DataNeedServiceImpl extends SuperServiceImpl implements IDataNeedService {
@Autowired
private SysDoctorService sysDoctorService;
/**
* 列表
* @param params
* @return
*/
@Override
public PageResult findList(Map params){
Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
List list = baseMapper.findList(page, params);
return PageResult.builder().data(list).code(0).count(page.getTotal()).build();
}
/**
* 根据DataNeed对象当做查询条件进行查询
* @param dataNeed
* @return DataNeed
*/
@Override
public DataNeed findByObject(DataNeed dataNeed){
return baseMapper.findByObject(dataNeed);
}
@Override
public List findListExportByParam(Map params) {
QueryWrapper queryWrapper=new QueryWrapper();
String doctor_name = MapUtils.getString(params, "doctor_name");
if(doctor_name!=null){
queryWrapper.like("doctor_name","%"+doctor_name+"%");
}
String need_begintime = MapUtils.getString(params, "need_begintime");
if(need_begintime!=null){
queryWrapper.gt("need_begintime",need_begintime);
}
String need_endtime = MapUtils.getString(params, "need_endtime");
if(need_endtime!=null){
queryWrapper.gt("need_endtime",need_endtime);
}
queryWrapper.eq("is_del",0);
List dataNeeds = baseMapper.selectList(queryWrapper);
List voList=new ArrayList<>();
dataNeeds.forEach(e ->{
DataNeedExcel vo=new DataNeedExcel();
BeanCopier beanCopier = BeanCopier.create(DataNeed.class, DataNeedExcel.class, false);
beanCopier.copy(e,vo,null);
voList.add(vo);
});
return voList;
}
@Override
public ResultBody updateEnabled(Map map) {
Long id = MapUtils.getLong(map, "id");
if(id==null){
return ResultBody.failed("请选择一条数据");
}else {
DataNeed dataNeed = baseMapper.selectById(id);
if (dataNeed != null) {
Boolean enabled = MapUtils.getBoolean(map, "enabled");
String dataFile = MapUtils.getString(map, "dataFile");
dataNeed.setDataFile(dataFile);
dataNeed.setEnabled(enabled);
baseMapper.updateById(dataNeed);
}else {
return ResultBody.failed("查找数据失败");
}
return ResultBody.ok();
}
}
@Override
public ResultBody updateDelete(Long id,SysUser sysUser) {
if(id==null){
return ResultBody.failed("请选择一条数据");
}else {
DataNeed dataNeed = baseMapper.selectById(id);
if (dataNeed != null) {
dataNeed.setIsDel(true);
dataNeed.setUpdateTime(new Date());
dataNeed.setUpdateUserId(sysUser.getId());
dataNeed.setUpdateUserName(sysUser.getUsername());
int u=baseMapper.updateById(dataNeed);
return ResultBody.ok().data(u>0);
}else {
return ResultBody.failed("查找数据失败");
}
}
}
@Override
public ResultBody FindAllByHId(Map map, SysUser sysUser) {
Map doctoerMap =new HashMap<>();
doctoerMap.put("user_id",sysUser.getId());
ResultBody listByMap = sysDoctorService.getListByMap(doctoerMap);
List sysDoctors = JSON.parseArray(JSON.toJSONString(listByMap.getData()), SysDoctor.class);
if (sysDoctors!=null&&sysDoctors.size()>0){
Page page = new Page<>(MapUtils.getInteger(map, "page"), MapUtils.getInteger(map, "limit"));
// List dataNeedList=baseMapper.findHList(map);
List list = baseMapper.findList(page, map);
PageResult build = PageResult.builder().data(list).code(0).count(page.getTotal()).build();
return ResultBody.ok().data(build);
}else {
return ResultBody.failed("非管理用户无权查看");
}
}
}