|  | @ -0,0 +1,203 @@
 | 
												
													
														
															|  | 
 |  | package com.yihu.jw.hospital.integrate.service;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.entity.hospital.integrate.BaseHospitalActivityDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.entity.hospital.integrate.BaseHospitalIntegrateDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.entity.specialist.BaseDiseaseHospitalDO;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.hospital.integrate.dao.BaseHospitalActivityDao;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.mysql.query.BaseJpaService;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.restmodel.web.MixEnvelop;
 | 
												
													
														
															|  | 
 |  | import com.yihu.jw.utils.hibernate.HibenateUtils;
 | 
												
													
														
															|  | 
 |  | import org.apache.commons.lang3.StringUtils;
 | 
												
													
														
															|  | 
 |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
												
													
														
															|  | 
 |  | import org.springframework.stereotype.Service;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | import java.util.Date;
 | 
												
													
														
															|  | 
 |  | import java.util.List;
 | 
												
													
														
															|  | 
 |  | import java.util.Map;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | @Service
 | 
												
													
														
															|  | 
 |  | public class BaseHospitalActivityService extends BaseJpaService<BaseHospitalActivityDO, BaseHospitalActivityDao> {
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private BaseHospitalActivityDao hospitalActivityDao;
 | 
												
													
														
															|  | 
 |  |     @Autowired
 | 
												
													
														
															|  | 
 |  |     private HibenateUtils hibenateUtils;
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 新增或者修改活动
 | 
												
													
														
															|  | 
 |  |      * @param hospitalActivityDO
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public BaseHospitalActivityDO insertAndUpdate(BaseHospitalActivityDO hospitalActivityDO){
 | 
												
													
														
															|  | 
 |  |         if (StringUtils.isNoneBlank(hospitalActivityDO.getId())){
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setUpdateTime(new Date());
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setDel(1);
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setCreateTime(new Date());
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setUpdateTime(new Date());
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setDel(1);
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setSort(maxSort("base_hospital_activity")+1);
 | 
												
													
														
															|  | 
 |  |             hospitalActivityDO.setStatus(0);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return hospitalActivityDao.save(hospitalActivityDO);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 根据id删除活动
 | 
												
													
														
															|  | 
 |  |      * @param id
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public void deleteById(String id){
 | 
												
													
														
															|  | 
 |  |         hospitalActivityDao.deleteById(id);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 根据id获取活动信息
 | 
												
													
														
															|  | 
 |  |      *
 | 
												
													
														
															|  | 
 |  |      * @param id
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public BaseHospitalActivityDO findById(String id){
 | 
												
													
														
															|  | 
 |  |         return hospitalActivityDao.findById(id).get();
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 查询活动列表
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public MixEnvelop selectByCondition(String title, Integer page, Integer size){
 | 
												
													
														
															|  | 
 |  |         String orderBy = "  order by sort asc,create_time desc  ";
 | 
												
													
														
															|  | 
 |  |         String condition = " ";
 | 
												
													
														
															|  | 
 |  |         String sql = "SELECT\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tid,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\ttype,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\ttitle,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tbanner,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tcount,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\torganizer_org_code AS organizerOrgCode,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\torganizer_org_name AS organizerOrgName,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\torganizer_dept_code AS organizerDeptCode,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\torganizer_dept_name AS organizerDeptName,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tlocation,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tSTATUS,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tflag,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tdel,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tinfo,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tcontent,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tparticipants_type AS participantsType,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tparticipants_area AS participantsArea,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tparticipants_code AS participantsCode,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tsort,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tdate_format(\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t\tstart_time,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t\t'%Y-%m-%d %H:%i:%S'\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t) AS startTime,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tdate_format(\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t\tend_time,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t\t'%Y-%m-%d %H:%i:%S'\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t) AS endTime,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tdate_format(\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t\tcreate_time,\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t\t'%Y-%m-%d %H:%i:%S'\n" +
 | 
												
													
														
															|  | 
 |  |                 "\t) AS createTime\n" +
 | 
												
													
														
															|  | 
 |  |                 "FROM\n" +
 | 
												
													
														
															|  | 
 |  |                 "\tbase_hospital_activity where 1=1 ";
 | 
												
													
														
															|  | 
 |  |         if (StringUtils.isNoneBlank(title)){
 | 
												
													
														
															|  | 
 |  |             condition +=" and title like '%"+title+"%' ";
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
 | 
												
													
														
															|  | 
 |  |         String sqlCount ="select COUNT(1) as total from base_hospital_activity where 1=1 ";
 | 
												
													
														
															|  | 
 |  |         List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(sqlCount+condition+orderBy);
 | 
												
													
														
															|  | 
 |  |         Long count = 0L;
 | 
												
													
														
															|  | 
 |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
												
													
														
															|  | 
 |  |             count = Long.parseLong(rstotal.get(0).get("total").toString());
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return MixEnvelop.getSuccessListWithPage("success", list, page, size, count);
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 获取排序的序号
 | 
												
													
														
															|  | 
 |  |      *
 | 
												
													
														
															|  | 
 |  |      * @param tableName
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public  Integer maxSort(String tableName){
 | 
												
													
														
															|  | 
 |  |         String sql = "SELECT MAX(sort) as sort from "+tableName+" ";
 | 
												
													
														
															|  | 
 |  |         List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |         Integer count = 0;
 | 
												
													
														
															|  | 
 |  |         if (rstotal != null && rstotal.size() > 0) {
 | 
												
													
														
															|  | 
 |  |             if (rstotal.get(0).get("sort")!=null){
 | 
												
													
														
															|  | 
 |  |                 count = Integer.parseInt(rstotal.get(0).get("sort").toString());
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         return count;
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |     /**
 | 
												
													
														
															|  | 
 |  |      * 更新启动状态或者上移下移置顶
 | 
												
													
														
															|  | 
 |  |      * @param id 活动id
 | 
												
													
														
															|  | 
 |  |      * @param status 1启动0禁止
 | 
												
													
														
															|  | 
 |  |      * @param flag  1上移2下移3置顶
 | 
												
													
														
															|  | 
 |  |      * @return
 | 
												
													
														
															|  | 
 |  |      */
 | 
												
													
														
															|  | 
 |  |     public BaseHospitalActivityDO updateFlagOrSort(String id, Integer status, Integer flag){
 | 
												
													
														
															|  | 
 |  |         BaseHospitalActivityDO baseHospitalActivityDO = hospitalActivityDao.findById(id).get();
 | 
												
													
														
															|  | 
 |  |         if (flag!=null){
 | 
												
													
														
															|  | 
 |  |             int sort = 0;
 | 
												
													
														
															|  | 
 |  |             if (flag==1){
 | 
												
													
														
															|  | 
 |  |                 String sql = "select sort from base_hospital_activity where sort<'"+baseHospitalActivityDO.getSort()+"' order by sort desc limit 1";
 | 
												
													
														
															|  | 
 |  |                 List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |                 Integer count = 0;
 | 
												
													
														
															|  | 
 |  |                 if (mapList != null && mapList.size() > 0) {
 | 
												
													
														
															|  | 
 |  |                     count = Integer.parseInt(mapList.get(0).get("sort").toString());
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 if (count==0){
 | 
												
													
														
															|  | 
 |  |                     sort = 0;
 | 
												
													
														
															|  | 
 |  |                 }else {
 | 
												
													
														
															|  | 
 |  |                     sort=count;
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 BaseHospitalActivityDO hospitalActivityDO1= hospitalActivityDao.selectBySort(sort);
 | 
												
													
														
															|  | 
 |  |                 if (hospitalActivityDO1!=null){
 | 
												
													
														
															|  | 
 |  |                     hospitalActivityDO1.setSort(baseHospitalActivityDO.getSort());
 | 
												
													
														
															|  | 
 |  |                     hospitalActivityDao.save(hospitalActivityDO1);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             }else if (flag==2){
 | 
												
													
														
															|  | 
 |  |                 String sql = "select sort from base_hospital_activity where sort>'"+baseHospitalActivityDO.getSort()+"' order by sort asc limit 1";
 | 
												
													
														
															|  | 
 |  |                 List<Map<String,Object>> mapList = hibenateUtils.createSQLQuery(sql);
 | 
												
													
														
															|  | 
 |  |                 Integer count = 0;
 | 
												
													
														
															|  | 
 |  |                 if (mapList != null && mapList.size() > 0) {
 | 
												
													
														
															|  | 
 |  |                     count = Integer.parseInt(mapList.get(0).get("sort").toString());
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 if (count==0){
 | 
												
													
														
															|  | 
 |  |                     sort = 0;
 | 
												
													
														
															|  | 
 |  |                 }else {
 | 
												
													
														
															|  | 
 |  |                     sort=count;
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |                 BaseHospitalActivityDO baseHospitalActivityDO1= hospitalActivityDao.selectBySort(sort);
 | 
												
													
														
															|  | 
 |  |                 if (baseHospitalActivityDO1!=null){
 | 
												
													
														
															|  | 
 |  |                     baseHospitalActivityDO1.setSort(baseHospitalActivityDO.getSort());
 | 
												
													
														
															|  | 
 |  |                     hospitalActivityDao.save(baseHospitalActivityDO1);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             }else if (flag==3){
 | 
												
													
														
															|  | 
 |  |                 sort = 1;
 | 
												
													
														
															|  | 
 |  |                 BaseHospitalActivityDO baseHospitalActivityDO1= hospitalActivityDao.selectBySort(sort);
 | 
												
													
														
															|  | 
 |  |                 if (baseHospitalActivityDO1!=null){
 | 
												
													
														
															|  | 
 |  |                     baseHospitalActivityDO1.setSort(baseHospitalActivityDO.getSort());
 | 
												
													
														
															|  | 
 |  |                     hospitalActivityDao.save(baseHospitalActivityDO1);
 | 
												
													
														
															|  | 
 |  |                 }
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             if (sort!=0){
 | 
												
													
														
															|  | 
 |  |                 baseHospitalActivityDO.setSort(sort);
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             return hospitalActivityDao.save(baseHospitalActivityDO);
 | 
												
													
														
															|  | 
 |  |         }else {
 | 
												
													
														
															|  | 
 |  |             baseHospitalActivityDO.setFlag(status);
 | 
												
													
														
															|  | 
 |  |             baseHospitalActivityDO.setUpdateTime(new Date());
 | 
												
													
														
															|  | 
 |  |             return hospitalActivityDao.save(baseHospitalActivityDO);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |     }
 | 
												
													
														
															|  | 
 |  | }
 |