forked from kidgrow-microservices-platform

zhaoxiaohao
2020-11-16 f30a977b18541d2f1b9a7863b1377e5f366df9dc
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
package com.kidgrow.usercenter.service.impl;
 
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.SysOrganization;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import com.kidgrow.common.utils.DateUtils;
import com.kidgrow.usercenter.mapper.SysDepartmentMapper;
import com.kidgrow.usercenter.model.SysDepartment;
import com.kidgrow.usercenter.model.SysHospital;
import com.kidgrow.usercenter.service.ISysDepartmentService;
import com.kidgrow.usercenter.service.ISysHospitalService;
import com.kidgrow.usercenter.service.ISysOrganizationService;
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.*;
import java.util.stream.Collectors;
 
/**
 * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br>
 * @Description: 科室表<br>
 * @Project: 用户中心<br>
 * @CreateDate: Created in 2020-04-02 14:02:50 <br>
 * @Author: <a href="4345453@kidgrow.com">liuke</a>
 * @version 1.0
 */
@Slf4j
@Service
public class SysDepartmentServiceImpl extends SuperServiceImpl<SysDepartmentMapper, SysDepartment> implements ISysDepartmentService {
 
    @Autowired
    private ISysOrganizationService iSysOrganizationService;
    @Autowired
    private ISysHospitalService iSysHospitalService;
    /**
     * 列表
     * @param params
     * @return
     */
    @Override
    public PageResult<SysDepartment> findList(Map<String, Object> params){
        Page<SysDepartment> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
        List<SysDepartment> list  =  baseMapper.findList(page, params);
        return PageResult.<SysDepartment>builder().data(list).code(0).count(page.getTotal()).build();
    }
 
    /**
   * 根据SysDepartment对象当做查询条件进行查询
   * @param sysDepartment
   * @return SysDepartment
   */
    @Override
    public SysDepartment findByObject(SysDepartment sysDepartment){
        return baseMapper.findByObject(sysDepartment);
    }
 
    @Override
    public boolean updatePay(Long departmentId, boolean isPay) {
        return baseMapper.updatePay(departmentId,isPay);
    }
 
    @Override
    public ResultBody findAll(Map<String, Object> params) {
        return  ResultBody.ok().data(baseMapper.selectByMap(params));
    }
 
    @Override
    public ResultBody findListByHospitalId(Map<String, Object> params) {
        //查询组织
        Long id = MapUtils.getLong(params, "id");
        List<SysDepartment> sysDepartments=new ArrayList<>();
        SysHospital byId = iSysHospitalService.getById(id);
        if(byId!=null){
            params=new HashMap<>();
            params.put("org_parent_id",byId.getOrgId());
            List<SysOrganization> sysOrganizations = iSysOrganizationService.listByMap(params);
            if (sysOrganizations.size()>0) {
                List<Long> collect = sysOrganizations.stream().map(e -> e.getId()).collect(Collectors.toList());
                QueryWrapper<SysDepartment> queryWrapper=new QueryWrapper();
                queryWrapper.in("org_id",collect );
                sysDepartments= baseMapper.selectList(queryWrapper);
            }
        }
        return ResultBody.ok().data(sysDepartments);
    }
 
    @Override
    public String checkDepartmentName(Long hosId, String departmentName) {
        String departName=baseMapper.checkDepartmentName(hosId,departmentName);
        return departName;
    }
 
    @Override
    public ResultBody getHealth(SysDepartment sysDepartment) {
        SysDepartment department = baseMapper.selectById(sysDepartment.getId());
        if(department==null){
            return ResultBody.failed("该数据为空");
        }else {
            if(department.getIsHealth()){
                Date now= new Date();
                Date endDate = DateUtils.addDays(department.getHealthEndTime(), 1);
                if(now.getTime()<department.getHealthBeginTime().getTime()){
                    department.setIsHealth(false);
                    return ResultBody.ok().data(department);
                }else if(department.getHealthBeginTime().getTime()<=now.getTime()&&now.getTime()<=endDate.getTime()){
                    return ResultBody.ok().data(department);
                }else if(endDate.getTime()<now.getTime()) {
                    department.setIsHealth(false);
                    return ResultBody.ok().data(department);
                }
                return ResultBody.ok();
            }else {
                return ResultBody.ok().data(false);
            }
        }
    }
}