|
@ -0,0 +1,98 @@
|
|
|
package com.yihu.jw.team.service;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.jw.entity.base.team.BaseTeamDO;
|
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
|
import com.yihu.jw.restmodel.web.Envelop;
|
|
|
import com.yihu.jw.team.BaseDoctorTeamDao;
|
|
|
import com.yihu.jw.team.BaseDoctorTeamMemberDao;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* 团队管理
|
|
|
* Created by yeshijie on 2023/4/21.
|
|
|
*/
|
|
|
@Service
|
|
|
public class TeamService {
|
|
|
|
|
|
@Autowired
|
|
|
private BaseDoctorTeamDao teamDao;
|
|
|
@Autowired
|
|
|
private BaseDoctorTeamMemberDao teamMemberDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
|
|
|
//保存团队
|
|
|
public BaseTeamDO saveTeam(String jsonData){
|
|
|
BaseTeamDO teamDO = JSONObject.parseObject(jsonData,BaseTeamDO.class);
|
|
|
if(teamDO.getCreateTime()==null){
|
|
|
teamDO.setCreateTime(new Date());
|
|
|
}
|
|
|
return teamDao.save(teamDO);
|
|
|
}
|
|
|
|
|
|
public Envelop getTeamList(String teamName, String leadName, Integer page, Integer pageSize, String hospital) {
|
|
|
String countSql = " select count(t.id) ";
|
|
|
String sql = "SELECT t.id,t.`name`,t.org_code orgCode,t.org_name orgName,t.leader_code leaderCode,d.`name` leaderName," +
|
|
|
"DATE_FORMAT(t.create_time,'%Y-%m-%d %H:%i:%S') createTime,t.intro,t.recommend ";
|
|
|
String filter = " from base_team t LEFT JOIN base_doctor d on t.leader_code = d.id WHERE t.del ='1' ";
|
|
|
if(StringUtils.isNotEmpty(hospital)){
|
|
|
filter += " and t.org_code = '"+hospital+"' ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(teamName)){
|
|
|
filter += " and t.name like '%"+teamName+"%' ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(leadName)){
|
|
|
filter += " and d.`name` like '%"+leadName+"%' ";
|
|
|
}
|
|
|
if (pageSize==null||pageSize <= 0) {
|
|
|
pageSize = 10;
|
|
|
}
|
|
|
if(page==null||page<=0){
|
|
|
page = 1;
|
|
|
}
|
|
|
String orderBy = " order by t.id limit "+(page-1)*pageSize+","+pageSize;
|
|
|
Long count = jdbcTemplate.queryForObject(countSql+filter,Long.class);
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+filter+orderBy);
|
|
|
|
|
|
return PageEnvelop.getSuccessListWithPage("获取成功",list,page,pageSize,count);
|
|
|
}
|
|
|
|
|
|
|
|
|
//获取团队成员列表
|
|
|
public Envelop getAdminTeamMemberList(String teamId, String doctorName, Integer page, Integer pageSize, String mobile) {
|
|
|
String countSql = " select count(t.id) ";
|
|
|
String sql = "SELECT d.code,d.`name`,d.idcard,d.job_title_name hospitalName,d.mobile,d.job_name jobName,d.level," +
|
|
|
" DATE_FORMAT(t.create_time,'%Y-%m-%d %H:%i:%S') createTime ";
|
|
|
String filter = " from base_team_member t,base_doctor d WHERE t.del ='1' and t.doctor_code = d.id";
|
|
|
if(StringUtils.isNotEmpty(teamId)){
|
|
|
filter += " and t.team_id = "+teamId+" ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(doctorName)){
|
|
|
filter += " and d.`name` like '%"+doctorName+"%' ";
|
|
|
}
|
|
|
if(StringUtils.isNotEmpty(mobile)){
|
|
|
filter += " and d.mobile like '%"+mobile+"%' ";
|
|
|
}
|
|
|
if (pageSize==null||pageSize <= 0) {
|
|
|
pageSize = 10;
|
|
|
}
|
|
|
if(page==null||page<=0){
|
|
|
page = 1;
|
|
|
}
|
|
|
String orderBy = " order by t.id limit "+(page-1)*pageSize+","+pageSize;
|
|
|
Long count = jdbcTemplate.queryForObject(countSql+filter,Long.class);
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+filter+orderBy);
|
|
|
|
|
|
return PageEnvelop.getSuccessListWithPage("获取成功",list,page,pageSize,count);
|
|
|
}
|
|
|
|
|
|
}
|