package com.kidgrow.oprationcenter.service.impl; import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.oprationcenter.mapper.HospitalScreeningMapper; import com.kidgrow.oprationcenter.model.HospitalScreening; import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; import com.kidgrow.oprationcenter.service.IHospitalScreeningService; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.report.feign.ReportService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @version 1.0 * @Description: 筛查医院信息表-未完待续
* @Project: 用户中心
* @CreateDate: Created in 2020-04-01 09:37:05
* @Author: liuke */ @Slf4j @Service public class HospitalScreeningServiceImpl extends SuperServiceImpl implements IHospitalScreeningService { @Autowired private ReportService reportService; @Autowired private RedisUtils redisUtils; private static final String CUSOTMERHOSPITAL = "CUSOTMER_HOSPITAL"; /** * 列表 * * @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(); } /** * 根据HospitalScreening对象当做查询条件进行查询 * * @param hospitalScreening * @return HospitalScreening */ @Override public HospitalScreening findByObject(HospitalScreening hospitalScreening) { return baseMapper.findByObject(hospitalScreening); } /** * 更新状态:推送装填,启停状态 * * @param params 包含:1、type:0推送,1启停 * 2、ID :ID * 3、val:对用的值 * @return */ @Override public ResultBody updateEnabled(Map params) { int type = MapUtils.getInteger(params, "type"); int val = MapUtils.getInteger(params, "objVal"); long id = MapUtils.getLong(params, "objId"); HospitalScreening hospitalScreening = baseMapper.selectById(id); if (hospitalScreening == null) { return ResultBody.failed("医院数据不存在!"); } switch (type) { case 0: hospitalScreening.setIsScreeningPush(val); break; case 1: hospitalScreening.setEnabled(val); break; default: break; } int count = baseMapper.updateById(hospitalScreening); updateRedisById(hospitalScreening); return count > 0 ? ResultBody.ok().msg("更新成功") : ResultBody.failed("更新失败"); } /** * 根据医院名称模糊查询医院数据列表 * * @param hospitalName * @return */ @Override public ResultBody findByName(String hospitalName) { return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功"); } /** * 医院数据导出 * * @param param 参数 * @return */ @Override public List export(Map param) { List list = null; ResultBody resultBody = reportService.exportData(param); if (resultBody.getCode() == 0 && resultBody.getData() != null) { list = JSONArray.parseArray(JSONArray.toJSONString(resultBody.getData()), ScreeningHospitalDataExcel.class); } return list; } /** * 初始化,将表中的数据放入redis中 */ @Override public void tableToRedis() { List list = baseMapper.findAll(); if (list.size() > 0) { if (redisUtils.hasKey(CUSOTMERHOSPITAL)) { redisUtils.del(CUSOTMERHOSPITAL); } for (HospitalScreening hs : list) { redisUtils.hset(CUSOTMERHOSPITAL, String.valueOf(hs.getId()), hs); } } } /** * 更新redis * * @param hospitalScreening */ @Override public void updateRedisById(HospitalScreening hospitalScreening) { if (redisUtils.hasKey(CUSOTMERHOSPITAL)) { redisUtils.hset(CUSOTMERHOSPITAL, String.valueOf(hospitalScreening.getId()), hospitalScreening); } } }