forked from kidgrow-microservices-platform

luliqiang
2020-12-28 f41b3b53dad6a8468fc1ae9babb85a0270124d01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
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<br>
 *
 * @version 1.0
 * @Description: 筛查医院信息表-未完待续<br>
 * @Project: 用户中心<br>
 * @CreateDate: Created in 2020-04-01 09:37:05 <br>
 * @Author: <a href="4345453@kidgrow.com">liuke</a>
 */
@Slf4j
@Service
public class HospitalScreeningServiceImpl extends SuperServiceImpl<HospitalScreeningMapper, HospitalScreening> implements IHospitalScreeningService {
 
    @Autowired
    private ReportService reportService;
    @Autowired
    private RedisUtils redisUtils;
 
    private static final String CUSOTMERHOSPITAL = "CUSOTMER_HOSPITAL";
 
    /**
     * 列表
     *
     * @param params
     * @return
     */
    @Override
    public PageResult<HospitalScreening> findList(Map<String, Object> params) {
        Page<HospitalScreening> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
        List<HospitalScreening> list = baseMapper.findList(page, params);
        return PageResult.<HospitalScreening>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<String, Object> 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<HospitalScreening> findByName(String hospitalName) {
        return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功");
    }
 
    /**
     * 医院数据导出
     *
     * @param param 参数
     * @return
     */
    @Override
    public List<ScreeningHospitalDataExcel> export(Map<String, Object> param) {
        List<ScreeningHospitalDataExcel> 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<HospitalScreening> 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);
        }
    }
}