|
@ -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);
|
|
|
}
|
|
|
}
|
|
|
}
|