浏览代码

三院积分活动

wangzhinan 2 年之前
父节点
当前提交
69ff1e44c9
共有 22 个文件被更改,包括 1772 次插入5 次删除
  1. 22 0
      business/base-service/src/main/java/com/yihu/jw/article/dao/KnowledgeArticleDoctorDao.java
  2. 84 0
      business/base-service/src/main/java/com/yihu/jw/article/service/BaseMenuManageService.java
  3. 5 4
      business/base-service/src/main/java/com/yihu/jw/article/service/KnowledgeArticleDictService.java
  4. 16 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalActivityDao.java
  5. 14 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalIntegrateDao.java
  6. 13 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalMedalDao.java
  7. 14 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalUserIntegrateDao.java
  8. 203 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/service/BaseHospitalActivityService.java
  9. 174 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/service/BaseHospitalIntegrateService.java
  10. 164 0
      business/base-service/src/main/java/com/yihu/jw/hospital/integrate/service/BaseHospitalMedalService.java
  11. 67 1
      business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java
  12. 85 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleDoctorDO.java
  13. 199 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalActivityDO.java
  14. 173 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalIntegrateDO.java
  15. 78 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalMedalDO.java
  16. 106 0
      common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalUserIntegrateDO.java
  17. 42 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java
  18. 2 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java
  19. 44 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/article/BaseMenuManageEndpoint.java
  20. 92 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/integrate/BaseHospitalActivityController.java
  21. 80 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/integrate/BaseHospitalIntegrateController.java
  22. 95 0
      svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/integrate/BaseHospitalMedalController.java

+ 22 - 0
business/base-service/src/main/java/com/yihu/jw/article/dao/KnowledgeArticleDoctorDao.java

@ -0,0 +1,22 @@
package com.yihu.jw.article.dao;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDoctorDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 * 医生文章关系表
 */
public interface KnowledgeArticleDoctorDao extends JpaRepository<KnowledgeArticleDoctorDO, String>, JpaSpecificationExecutor<KnowledgeArticleDoctorDO> {
    @Query("select a from KnowledgeArticleDoctorDO a where a.baseArticleDoctorId=?1 and a.type=?2 order by a.createTime desc")
    List<KnowledgeArticleDoctorDO> findByBaseArticleDoctorIdAndType(String baseArticleDoctorId,Integer type);
    @Query("select a from KnowledgeArticleDoctorDO a where a.relationCode=?1 and a.type=?2 and a.user=?3 order by a.createTime desc")
    List<KnowledgeArticleDoctorDO> findByRelationCodeAndTypeAndUser(String relationCode,Integer type,String user);//根据业务code获取医生文章/医生关系
}

+ 84 - 0
business/base-service/src/main/java/com/yihu/jw/article/service/BaseMenuManageService.java

@ -12,6 +12,7 @@ import com.yihu.jw.entity.base.menu.BaseMenuDictUserDO;
import com.yihu.jw.entity.base.menu.BaseMenuShowDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDoctorDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
@ -56,6 +57,8 @@ public class BaseMenuManageService {
    private BaseDoctorDao doctorDao;
    @Autowired
    private KnowledgeArticleUserDao knowledgeArticleUserDao;
    @Autowired
    private KnowledgeArticleDoctorDao knowledgeArticleDoctorDao;
    /**
@ -1062,4 +1065,85 @@ public class BaseMenuManageService {
        return knowledgeArticleUserDao.findByrelationCodeAndUserAndDel(articleId,userCode);
    }
    /**
     * 新增医生文章/医生操作(评论、点赞、收藏)
     *
     * @param articleDoctorDO
     * @return
     */
    public KnowledgeArticleDoctorDO insert(KnowledgeArticleDoctorDO articleDoctorDO){
        articleDoctorDO.setCreateTime(new Date());
        articleDoctorDO.setUpdateTime(new Date());
        return knowledgeArticleDoctorDao.save(articleDoctorDO);
    }
    /**
     * 查询医生关联文章回复数据
     * @param id
     * @param type 1
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop selectArticleDoctorById(String id,Integer type,Integer page,Integer size){
        String orderBy = "  order by create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
                "\tid,\n" +
                "\tbase_article_doctor_id baseArticleDoctorId,\n" +
                "\trelation_code AS relationCode,\n" +
                "\trelation_type AS relationType,\n" +
                "\tuser,\n" +
                "\tuser_name AS userName,\n" +
                "\ttype,\n" +
                "\tcontent\n" +
                "FROM\n" +
                "\tbase_knowledge_article_doctor\n" +
                "WHERE\n" +
                "\tbase_article_doctor_id IS NULL ";
        if (org.apache.commons.lang3.StringUtils.isNoneBlank(id)){
            condition +=" and relation_code = '"+id+"' ";
        }
        if (type!=null){
            condition +=" and type ="+type+" ";
        }
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        for (Map<String,Object> map:list){
            List<KnowledgeArticleDoctorDO> knowledgeArticleDoctorDOS = knowledgeArticleDoctorDao.findByBaseArticleDoctorIdAndType(map.get("id").toString(),1);//获取评论列表
            map.put("replyList",knowledgeArticleDoctorDOS);//获取评论列表
            List<KnowledgeArticleDoctorDO> knowledgeArticleDoctorDOList = knowledgeArticleDoctorDao.findByBaseArticleDoctorIdAndType(map.get("id").toString(),2);//获取评论的点赞
            map.put("replyApoint",knowledgeArticleDoctorDOList.size());//获取评论的点赞
        }
        String sqlCount ="select COUNT(1) as total from base_knowledge_article_doctor where base_article_doctor_id IS NULL ";
        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 articleId
     * @return
     */
    public JSONObject selectArticleDoctorByArticleIdAndUser(String articleId,String user){
        boolean eulogy= false;
        boolean collect = false;
        List<KnowledgeArticleDoctorDO> knowledgeArticleDoctorDOS = knowledgeArticleDoctorDao.findByRelationCodeAndTypeAndUser(articleId,2,user);//获取点赞
        List<KnowledgeArticleDoctorDO> knowledgeArticleDoctorDOList = knowledgeArticleDoctorDao.findByRelationCodeAndTypeAndUser(articleId,3,user);//获取收藏
        JSONObject object = new JSONObject();
        if (knowledgeArticleDoctorDOS!=null&&knowledgeArticleDoctorDOS.size()>0){
            eulogy = true;
        }
        if (knowledgeArticleDoctorDOList !=null && knowledgeArticleDoctorDOList.size()>0){
            collect = true;
        }
        object.put("eulogy",eulogy);
        object.put("collect",collect);
        return object;
    }
}

+ 5 - 4
business/base-service/src/main/java/com/yihu/jw/article/service/KnowledgeArticleDictService.java

@ -2,10 +2,7 @@ package com.yihu.jw.article.service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.article.dao.BaseMenuDictDao;
import com.yihu.jw.article.dao.KnowledgeArticleDeptDao;
import com.yihu.jw.article.dao.KnowledgeArticleDictDao;
import com.yihu.jw.article.dao.KnowledgeArticleUserDao;
import com.yihu.jw.article.dao.*;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
@ -16,6 +13,7 @@ import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDeptDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDoctorDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleUserDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
import com.yihu.jw.entity.hospital.survey.WlyySurveyTemplateDO;
@ -76,6 +74,9 @@ public class KnowledgeArticleDictService extends BaseJpaService<KnowledgeArticle
	@Autowired
	private BasePatientDao patientDao;
	@Autowired
	private KnowledgeArticleDoctorDao knowledgeArticleDoctorDao;
	//查询文章列表
	public List<Map<String,Object>> findArticleList(String first,String second,Integer type ,String key,Integer page ,Integer pageSize){
		String sql ="select b.id as \"id\", " +

+ 16 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalActivityDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.hospital.integrate.dao;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalActivityDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
/**
 * wangzhinan 20230523
 */
public interface BaseHospitalActivityDao extends JpaRepository<BaseHospitalActivityDO, String>, JpaSpecificationExecutor<BaseHospitalActivityDO> {
    @Query("from BaseHospitalActivityDO p where p.sort = ?1 ")
    BaseHospitalActivityDO selectBySort(Integer sort);
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalIntegrateDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.hospital.integrate.dao;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalIntegrateDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * wangzhinan 20230523
 */
public interface BaseHospitalIntegrateDao extends JpaRepository<BaseHospitalIntegrateDO, String>, JpaSpecificationExecutor<BaseHospitalIntegrateDO> {
}

+ 13 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalMedalDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.hospital.integrate.dao;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalIntegrateDO;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalMedalDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * wangzhinan 20230523
 */
public interface BaseHospitalMedalDao extends JpaRepository<BaseHospitalMedalDO, String>, JpaSpecificationExecutor<BaseHospitalMedalDO> {
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/dao/BaseHospitalUserIntegrateDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.hospital.integrate.dao;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalUserIntegrateDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * wangzhinan 20230523
 */
public interface BaseHospitalUserIntegrateDao extends JpaRepository<BaseHospitalUserIntegrateDO, String>, JpaSpecificationExecutor<BaseHospitalUserIntegrateDO> {
}

+ 203 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/service/BaseHospitalActivityService.java

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

+ 174 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/service/BaseHospitalIntegrateService.java

@ -0,0 +1,174 @@
package com.yihu.jw.hospital.integrate.service;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalIntegrateDO;
import com.yihu.jw.hospital.integrate.dao.BaseHospitalIntegrateDao;
import com.yihu.jw.hospital.integrate.dao.BaseHospitalUserIntegrateDao;
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 BaseHospitalIntegrateService extends BaseJpaService<BaseHospitalIntegrateDO, BaseHospitalIntegrateDao> {
    @Autowired
    private BaseHospitalUserIntegrateDao hospitalUserIntegrateDao;
    @Autowired
    private BaseHospitalIntegrateDao hospitalIntegrateDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    /**
     * 新增或者修改积分配置
     *
     * @param hospitalIntegrateDO
     * @return
     */
    public BaseHospitalIntegrateDO insertAndUpdate(BaseHospitalIntegrateDO hospitalIntegrateDO){
        if (StringUtils.isNoneBlank(hospitalIntegrateDO.getId())){
            hospitalIntegrateDO.setUpdateTime(new Date());
        }else {
            hospitalIntegrateDO.setCreateTime(new Date());
            hospitalIntegrateDO.setUpdateTime(new Date());
        }
        return hospitalIntegrateDao.save(hospitalIntegrateDO);
    }
    /**
     * 根据id删除积分配置
     * @param id
     */
    public void deleteById(String id){
        hospitalIntegrateDao.deleteById(id);
    }
    /**
     * 根据id获取积分配置
     *
     * @param id
     * @return
     */
    public BaseHospitalIntegrateDO findById(String id){
        return hospitalIntegrateDao.findById(id).get();
    }
    /**
     * 查询积分规则
     * @param name 积分配置名称
     * @param type 积分类型
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop selectByCondition(String name, String type, Integer page, Integer size){
        String orderBy = "  order by create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
                "\tid,\n" +
                "\ttype,\n" +
                "\ttype_name AS typeName,\n" +
                "\tname,\n" +
                "\titem,\n" +
                "\titem_name AS itemName,\n" +
                "\tbelong,\n" +
                "\tstatus,\n" +
                "\tflag,\n" +
                "\tconditions,\n" +
                "\tcontinuity_flag AS continuityFlag,\n" +
                "\tdays,\n" +
                "\tintegrate,\n" +
                "\tdaily_limit AS dailyLimit,\n" +
                "\tvalidity,\n" +
                "\tdate_format(\n" +
                "\t\tstart_validity,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS startValidity,\n" +
                "\tdate_format(\n" +
                "\t\tend_validity,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS endValidity,\n" +
                "\tdate_format(\n" +
                "\t\tcreate_time,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS createTime,\n" +
                "\tdescription\n" +
                "FROM\n" +
                "\tbase_hospital_integrate\n" +
                "WHERE\n" +
                "\t1 = 1  ";
        if (StringUtils.isNoneBlank(name)){
            condition +=" and name like '%"+name+"%' ";
        }
        if (StringUtils.isNoneBlank(type)){
            condition +=" and type ='"+type+"' ";
        }
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        String sqlCount ="select COUNT(1) as total from base_hospital_integrate 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);
    }
 /*   public JSONObject selectIntegrateByUser(String user,Integer page,Integer size){
        String orderBy = "  order by create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
                "\tid,\n" +
                "\ttype,\n" +
                "\ttype_name AS typeName,\n" +
                "\tname,\n" +
                "\titem,\n" +
                "\titem_name AS itemName,\n" +
                "\tbelong,\n" +
                "\tstatus,\n" +
                "\tflag,\n" +
                "\tconditions,\n" +
                "\tcontinuity_flag AS continuityFlag,\n" +
                "\tdays,\n" +
                "\tintegrate,\n" +
                "\tdaily_limit AS dailyLimit,\n" +
                "\tvalidity,\n" +
                "\tdate_format(\n" +
                "\t\tstart_validity,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS startValidity,\n" +
                "\tdate_format(\n" +
                "\t\tend_validity,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS endValidity,\n" +
                "\tdate_format(\n" +
                "\t\tcreate_time,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS createTime,\n" +
                "\tdescription\n" +
                "FROM\n" +
                "\tbase_hospital_integrate\n" +
                "WHERE\n" +
                "\t1 = 1  ";
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        String sqlCount ="select COUNT(1) as total from base_hospital_integrate 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());
        }
    }*/
/*
    public insertIntegrate(String user){
    }*/
}

+ 164 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/integrate/service/BaseHospitalMedalService.java

@ -0,0 +1,164 @@
package com.yihu.jw.hospital.integrate.service;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalActivityDO;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalMedalDO;
import com.yihu.jw.hospital.integrate.dao.BaseHospitalActivityDao;
import com.yihu.jw.hospital.integrate.dao.BaseHospitalMedalDao;
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 BaseHospitalMedalService extends BaseJpaService<BaseHospitalMedalDO, BaseHospitalMedalDao> {
    @Autowired
    private BaseHospitalMedalDao hospitalMedalDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    /**
     * 新增或者修改勋章
     * @param hospitalMedalDO
     * @return
     */
    public BaseHospitalMedalDO insertAndUpdate(BaseHospitalMedalDO hospitalMedalDO){
        if (StringUtils.isNoneBlank(hospitalMedalDO.getId())){
            hospitalMedalDO.setUpdateTime(new Date());
        }else {
            hospitalMedalDO.setCreateTime(new Date());
            hospitalMedalDO.setUpdateTime(new Date());
        }
        return hospitalMedalDao.save(hospitalMedalDO);
    }
    /**
     * 根据id删除勋章
     * @param id
     */
    public void deleteById(String id){
        hospitalMedalDao.deleteById(id);
    }
    /**
     * 根据id获取勋章信息
     *
     * @param id
     * @return
     */
    public BaseHospitalMedalDO findById(String id){
        return hospitalMedalDao.findById(id).get();
    }
    /**
     * 查询勋章列表
     */
    public MixEnvelop selectByCondition(String name, Integer page, Integer size){
        String orderBy = "  order by create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
                "\tid,\n" +
                "\tname,\n" +
                "\tbanner,\n" +
                "\tintegrate_type AS integrateType,\n" +
                "\tintegrate_type_name AS integrateTypeName,\n" +
                "\tintegrate,\n" +
                "\tbelong,\n" +
                "\tdate_format(\n" +
                "\t\tcreate_time,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS createTime,\n" +
                "\tstatus\n" +
                "FROM\n" +
                "\tbase_hospital_medal  where 1=1  ";
        if (StringUtils.isNoneBlank(name)){
            condition +=" and name like '%"+name+"%' ";
        }
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        String sqlCount ="select COUNT(1) as total from base_hospital_medal 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 doctorId
     * @param page
     * @param size
     * @return
     */
    public JSONObject selectMedalByUserId(String doctorId, Integer page, Integer size){
        JSONObject object = new JSONObject();
        String integrateSql ="SELECT\n" +
                "\tIFNULL(SUM(integrate), 0) AS total\n" +
                "FROM\n" +
                "\tbase_hospital_user_integrate\n" +
                "WHERE\n" +
                "\tuser = '"+doctorId+"' and status=1 ";
        List<Map<String, Object>> rstotal1 = hibenateUtils.createSQLQuery(integrateSql);
        Double integrateTotal = 0.0;
        if (rstotal1 != null && rstotal1.size() > 0) {
            integrateTotal = Double.parseDouble(rstotal1.get(0).get("total").toString());
        }
        String medalCount ="select COUNT(1) as total from base_hospital_medal where 1=1 and integrate<='"+integrateTotal+"'";
        List<Map<String, Object>> rstotal2 = hibenateUtils.createSQLQuery(medalCount);
        Long medalTotal = 0L;
        if (rstotal2 != null && rstotal2.size() > 0) {
            medalTotal = Long.parseLong(rstotal2.get(0).get("total").toString());
        }
        object.put("medalTotal",medalTotal);//医生勋章数量
        String orderBy = "  order by create_time desc  ";
        String condition = " ";
        String sql = "SELECT\n" +
                "\tid,\n" +
                "\tname,\n" +
                "\tbanner,\n" +
                "\tintegrate_type AS integrateType,\n" +
                "\tintegrate_type_name AS integrateTypeName,\n" +
                "\tintegrate,\n" +
                "\tbelong,\n" +
                "\tdate_format(\n" +
                "\t\tcreate_time,\n" +
                "\t\t'%Y-%m-%d %H:%i:%S'\n" +
                "\t) AS createTime,\n" +
                "\tstatus\n" +
                "FROM\n" +
                "\tbase_hospital_medal  where 1=1  ";
        List<Map<String, Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderBy, page, size);
        for (Map<String,Object> map:list){
            Double integrate = Double.parseDouble(map.get("integrate").toString());
            if (integrateTotal>=integrate){
                map.put("isShow",1);
            }else {
                map.put("isShow",0);
            }
        }
        String sqlCount ="select COUNT(1) as total from base_hospital_medal 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());
        }
        object.put("list",list);
        object.put("page",page);
        object.put("size",size);
        object.put("total",count);
        return object;
    }
}

+ 67 - 1
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -4596,10 +4596,76 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
                }
            }
            //医生获取积分数据
            String integrateSql ="SELECT\n" +
                    "\tIFNULL(SUM(integrate), 0) AS total\n" +
                    "FROM\n" +
                    "\tbase_hospital_user_integrate\n" +
                    "WHERE\n" +
                    "\tuser = '"+doctor+"' and status=1 ";
            List<Map<String, Object>> rstotal = hibenateUtils.createSQLQuery(integrateSql);
            Double integrateTotal = 0.0;
            if (rstotal != null && rstotal.size() > 0) {
                integrateTotal = Double.parseDouble(rstotal.get(0).get("total").toString());
            }
            rs.put("integrateTotal",integrateTotal.intValue());
            //粉丝、点赞、收藏
            String followSql= " SELECT IFNULL(COUNT(1), 0) AS total FROM base_doctor_patient_follow where doctor= '"+doctor+"' ";
            List<Map<String, Object>> followRstotal = hibenateUtils.createSQLQuery(followSql);
            Long followTotal = 0L;
            if (followRstotal != null && followRstotal.size() > 0) {
                followTotal = Long.parseLong(followRstotal.get(0).get("total").toString());
            }
            rs.put("followTotal",followTotal);//粉丝数量
            String eulogySql= " SELECT\n" +
                    "\tIFNULL(COUNT(1), 0)  AS total\n" +
                    "FROM\n" +
                    "\tbase_knowledge_article_doctor\n" +
                    "WHERE\n" +
                    "\t(relation_code IN (\n" +
                    "\t\tSELECT\n" +
                    "\t\t\tid\n" +
                    "\t\tFROM\n" +
                    "\t\t\tbase_knowledge_dict\n" +
                    "\t\tWHERE\n" +
                    "\t\t\tcreate_user = '"+doctor+"'\n" +
                    "\t) OR relation_code ='"+doctor+"' )\n" +
                    "\tand base_article_doctor_id IS NULL\n" +
                    "\tand type=2  ";
            List<Map<String, Object>> eulogyRstotal = hibenateUtils.createSQLQuery(eulogySql);
            Long eulogyTotal = 0L;
            if (eulogyRstotal != null && eulogyRstotal.size() > 0) {
                eulogyTotal = Long.parseLong(eulogyRstotal.get(0).get("total").toString());
            }
            rs.put("eulogyTotal",eulogyTotal);//点赞数量
            String collectSql= " SELECT\n" +
                    "\tIFNULL(COUNT(1), 0)  AS total\n" +
                    "FROM\n" +
                    "\tbase_knowledge_article_doctor\n" +
                    "WHERE\n" +
                    "\trelation_code IN (\n" +
                    "\t\tSELECT\n" +
                    "\t\t\tid\n" +
                    "\t\tFROM\n" +
                    "\t\t\tbase_knowledge_dict\n" +
                    "\t\tWHERE\n" +
                    "\t\t\tcreate_user = '"+doctor+"'\n" +
                    "\t) \n" +
                    "\tand base_article_doctor_id IS NULL and type=3  ";
            List<Map<String, Object>> collectRstotal = hibenateUtils.createSQLQuery(collectSql);
            Long collectTotal = 0L;
            if (collectRstotal != null && collectRstotal.size() > 0) {
                collectTotal = Long.parseLong(collectRstotal.get(0).get("total").toString());
            }
            rs.put("collectTotal",collectTotal);//收藏数量
            //专家咨询
            String zjCountsql = "SELECT id AS \"id\" FROM wlyy_consult_team WHERE doctor='" + doctorDO.getId() + "' AND (type=1 OR type=15)";
            String zjCountsql = "SELECT id AS \"id\" FROM wlyy_consult_team WHERE doctor='" + doctorDO.getId() + "' AND (type=1 OR type=15) ";
            List<Map<String, Object>> zjList = jdbcTemplate.queryForList(zjCountsql);
            if (zjList != null && zjList.size() > 0) {
                rs.put("zjCount", zjList.size());

+ 85 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/article/KnowledgeArticleDoctorDO.java

@ -0,0 +1,85 @@
package com.yihu.jw.entity.hospital.article;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 医生文章关系表
 */
@Entity
@Table(name = "base_knowledge_article_doctor")
public class KnowledgeArticleDoctorDO extends UuidIdentityEntityWithOperator {
	
	private String baseArticleDoctorId;//回复关联
	private String relationCode;//文章id/医生code
	private Integer relationType;//1文章2医生
	private String user;//用户code
	private String userName;//用户名称
	private Integer type;//1评论2点赞3收藏
	private String content;//评论内容及回复内容
	public String getBaseArticleDoctorId() {
		return baseArticleDoctorId;
	}
	public void setBaseArticleDoctorId(String baseArticleDoctorId) {
		this.baseArticleDoctorId = baseArticleDoctorId;
	}
	public String getRelationCode() {
		return relationCode;
	}
	public void setRelationCode(String relationCode) {
		this.relationCode = relationCode;
	}
	public Integer getRelationType() {
		return relationType;
	}
	public void setRelationType(Integer relationType) {
		this.relationType = relationType;
	}
	public String getUser() {
		return user;
	}
	public void setUser(String user) {
		this.user = user;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public Integer getType() {
		return type;
	}
	public void setType(Integer type) {
		this.type = type;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
}

+ 199 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalActivityDO.java

@ -0,0 +1,199 @@
package com.yihu.jw.entity.hospital.integrate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_hospital_activity")
public class BaseHospitalActivityDO extends UuidIdentityEntityWithOperator {
    private String type;//活动类型(字典HOSPITAL_ACTIVITY_TYPE)
    private String title;//活动标题
    private String banner;//活动图片
    private Integer count;//人数
    private String organizerOrgCode;//主办方机构code
    private String organizerOrgName;//主办机构名称
    private String organizerDeptCode;//主办科室code
    private String organizerDeptName;//主办科室名称
    private String location;//活动地点
    private Integer status;//活动状态(0未开始1开始2结束)
    private Integer flag;//0禁用1启用
    private Integer del;//0删除1正常
    private Date startTime;//开始时间
    private Date endTime;//结束时间
    private String info;//报名信息
    private String content;//活动详情
    private Integer participantsType;//参与对象类型:0全部1医生2患者
    private String participantsArea;//参与对象区域0全院1部分科室
    private String participantsCode;//参与对象code 多个逗号隔开
    private Integer sort;//排序
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getBanner() {
        return banner;
    }
    public void setBanner(String banner) {
        this.banner = banner;
    }
    public Integer getCount() {
        return count;
    }
    public void setCount(Integer count) {
        this.count = count;
    }
    public String getOrganizerOrgCode() {
        return organizerOrgCode;
    }
    public void setOrganizerOrgCode(String organizerOrgCode) {
        this.organizerOrgCode = organizerOrgCode;
    }
    public String getOrganizerOrgName() {
        return organizerOrgName;
    }
    public void setOrganizerOrgName(String organizerOrgName) {
        this.organizerOrgName = organizerOrgName;
    }
    public String getOrganizerDeptCode() {
        return organizerDeptCode;
    }
    public void setOrganizerDeptCode(String organizerDeptCode) {
        this.organizerDeptCode = organizerDeptCode;
    }
    public String getOrganizerDeptName() {
        return organizerDeptName;
    }
    public void setOrganizerDeptName(String organizerDeptName) {
        this.organizerDeptName = organizerDeptName;
    }
    public String getLocation() {
        return location;
    }
    public void setLocation(String location) {
        this.location = location;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getFlag() {
        return flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "start_time", nullable = false, length = 0,updatable = false)
    public Date getStartTime() {
        return startTime;
    }
    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "end_time", nullable = false, length = 0,updatable = false)
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public String getInfo() {
        return info;
    }
    public void setInfo(String info) {
        this.info = info;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public Integer getParticipantsType() {
        return participantsType;
    }
    public void setParticipantsType(Integer participantsType) {
        this.participantsType = participantsType;
    }
    public String getParticipantsArea() {
        return participantsArea;
    }
    public void setParticipantsArea(String participantsArea) {
        this.participantsArea = participantsArea;
    }
    public String getParticipantsCode() {
        return participantsCode;
    }
    public void setParticipantsCode(String participantsCode) {
        this.participantsCode = participantsCode;
    }
}

+ 173 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalIntegrateDO.java

@ -0,0 +1,173 @@
package com.yihu.jw.entity.hospital.integrate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_hospital_integrate")
public class BaseHospitalIntegrateDO extends UuidIdentityEntityWithOperator {
    private Integer type;//积分类型(HOSPITAL_INTEGRATE_TYPE_ITEM1任务积分2服务积分3活动积分)
    private String typeName;//类型名称
    private String name;//积分名称
    private String item;//积分事项(HOSPITAL_INTEGRATE_TYPE_ITEM)
    private String itemName;//积分事项名称
    private Integer belong;//1医生2患者
    private Integer status;//0禁用1启用
    private Integer flag;//1一次性2重复3连续
    private String conditions;//连续天数对应获取的积分(格式["1","2","3"])
    private Integer continuityFlag;//是否连续完成0是1否
    private Integer days;//完成天数
    private Double integrate;//获取积分
    private Integer dailyLimit;//0不限,大于0 限制次数
    private Integer validity;//0不限1自定义
    private Date startValidity;//自定义开始时间
    private Date endValidity;//自定义结束时间
    private String description;//积分说明
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getTypeName() {
        return typeName;
    }
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getItem() {
        return item;
    }
    public void setItem(String item) {
        this.item = item;
    }
    public String getItemName() {
        return itemName;
    }
    public void setItemName(String itemName) {
        this.itemName = itemName;
    }
    public Integer getBelong() {
        return belong;
    }
    public void setBelong(Integer belong) {
        this.belong = belong;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public Integer getFlag() {
        return flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
    public String getConditions() {
        return conditions;
    }
    public void setConditions(String conditions) {
        this.conditions = conditions;
    }
    public Integer getContinuityFlag() {
        return continuityFlag;
    }
    public void setContinuityFlag(Integer continuityFlag) {
        this.continuityFlag = continuityFlag;
    }
    public Integer getDays() {
        return days;
    }
    public void setDays(Integer days) {
        this.days = days;
    }
    public Double getIntegrate() {
        return integrate;
    }
    public void setIntegrate(Double integrate) {
        this.integrate = integrate;
    }
    public Integer getDailyLimit() {
        return dailyLimit;
    }
    public void setDailyLimit(Integer dailyLimit) {
        this.dailyLimit = dailyLimit;
    }
    public Integer getValidity() {
        return validity;
    }
    public void setValidity(Integer validity) {
        this.validity = validity;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "start_validity", nullable = false, length = 0,updatable = false)
    public Date getStartValidity() {
        return startValidity;
    }
    public void setStartValidity(Date startValidity) {
        this.startValidity = startValidity;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    @Column(name = "end_validity", nullable = false, length = 0,updatable = false)
    public Date getEndValidity() {
        return endValidity;
    }
    public void setEndValidity(Date endValidity) {
        this.endValidity = endValidity;
    }
}

+ 78 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalMedalDO.java

@ -0,0 +1,78 @@
package com.yihu.jw.entity.hospital.integrate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_hospital_medal")
public class BaseHospitalMedalDO extends UuidIdentityEntityWithOperator {
    private String name;//勋章名称
    private String banner;//勋章图片
    private String integrateType;//积分类型
    private String integrateTypeName;//积分类型名称
    private Double integrate;//积分
    private String belong;//获取对象1医生2患者
    private Integer status;//0禁用1启用
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getBanner() {
        return banner;
    }
    public void setBanner(String banner) {
        this.banner = banner;
    }
    public String getIntegrateType() {
        return integrateType;
    }
    public void setIntegrateType(String integrateType) {
        this.integrateType = integrateType;
    }
    public String getIntegrateTypeName() {
        return integrateTypeName;
    }
    public void setIntegrateTypeName(String integrateTypeName) {
        this.integrateTypeName = integrateTypeName;
    }
    public Double getIntegrate() {
        return integrate;
    }
    public void setIntegrate(Double integrate) {
        this.integrate = integrate;
    }
    public String getBelong() {
        return belong;
    }
    public void setBelong(String belong) {
        this.belong = belong;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
}

+ 106 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/hospital/integrate/BaseHospitalUserIntegrateDO.java

@ -0,0 +1,106 @@
package com.yihu.jw.entity.hospital.integrate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
@Entity
@Table(name = "base_hospital_user_integrate")
public class BaseHospitalUserIntegrateDO extends UuidIdentityEntityWithOperator {
    private Integer type;//1医生2患者
    private String user;//用户code
    private String name;//用户名称
    private Double integrate;//获取积分
    private Integer integrateType;//1增加2兑换
    private String relationType;//积分类型对应积分配置的类型
    private String relationItem;//积分类型对应积分配置的事项
    private String relaitonCode;//积分code
    private String relationName;//积分配置名称
    private Integer status;//0失效1生效
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Double getIntegrate() {
        return integrate;
    }
    public void setIntegrate(Double integrate) {
        this.integrate = integrate;
    }
    public Integer getIntegrateType() {
        return integrateType;
    }
    public void setIntegrateType(Integer integrateType) {
        this.integrateType = integrateType;
    }
    public String getRelationType() {
        return relationType;
    }
    public void setRelationType(String relationType) {
        this.relationType = relationType;
    }
    public String getRelationItem() {
        return relationItem;
    }
    public void setRelationItem(String relationItem) {
        this.relationItem = relationItem;
    }
    public String getRelaitonCode() {
        return relaitonCode;
    }
    public void setRelaitonCode(String relaitonCode) {
        this.relaitonCode = relaitonCode;
    }
    public String getRelationName() {
        return relationName;
    }
    public void setRelationName(String relationName) {
        this.relationName = relationName;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
}

+ 42 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -1239,6 +1239,12 @@ public class BaseHospitalRequestMapping {
        public static final String selectArticleListByCategory= "/selectArticleListByCategory";
        public static final String findArticleUserById= "/findArticleUserById";
        public static final String insertArticleOperate= "/insertArticleOperate";
        public static final String selectArticleDoctorById= "/selectArticleDoctorById";
        public static final String selectArticleDoctorByArticleIdAndUser= "/selectArticleDoctorByArticleIdAndUser";
    }
    /**
@ -1642,4 +1648,40 @@ public class BaseHospitalRequestMapping {
        public static final String insterAndUpdateSystemDialogSetting = "/insterAndUpdateSystemDialogSetting";
        public static final String selectBySystemType = "/selectBySystemType";
    }
    /**
     * 活动配置
     */
    public static class BaseHospitalActivity extends Basic{
        public static final String PREFIX  = "/baseHospitalActivity";
        public static final String insertAndUpdate = "/insertAndUpdate";
        public static final String deleteById = "/deleteById";
        public static final String findById = "/findById";
        public static final String selectByCondition = "/selectByCondition";
        public static final String updateFlagOrSort = "/updateFlagOrSort";
    }
    /**
     * 积分配置
     */
    public static class BaseHospitalIntegrate extends Basic{
        public static final String PREFIX  = "/baseHospitalIntegrate";
        public static final String insertAndUpdate = "/insertAndUpdate";
        public static final String deleteById = "/deleteById";
        public static final String findById = "/findById";
        public static final String selectByCondition = "/selectByCondition";
    }
    /**
     * 积分配置
     */
    public static class BaseHospitalMedal extends Basic{
        public static final String PREFIX  = "/baseHospitalMedal";
        public static final String insertAndUpdate = "/insertAndUpdate";
        public static final String deleteById = "/deleteById";
        public static final String findById = "/findById";
        public static final String selectByCondition = "/selectByCondition";
        public static final String selectMedalByUserId="/selectMedalByUserId";
    }
}

+ 2 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/article/ArticleEndpoint.java

@ -10,6 +10,7 @@ import com.yihu.jw.entity.base.patient.BasePatientBusinessDO;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDoctorDO;
import com.yihu.jw.entity.hospital.article.KnowledgeCategoryDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
@ -375,4 +376,5 @@ public class ArticleEndpoint extends EnvelopRestEndpoint {
	}
}

+ 44 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/article/BaseMenuManageEndpoint.java

@ -2,6 +2,7 @@ package com.yihu.jw.hospital.endpoint.article;
import com.yihu.jw.article.service.BaseMenuManageService;
import com.yihu.jw.entity.base.menu.BaseMenuDictDO;
import com.yihu.jw.entity.hospital.article.KnowledgeArticleDoctorDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
@ -213,4 +214,47 @@ public class BaseMenuManageEndpoint extends EnvelopRestEndpoint {
            return failedException2(e);
        }
    }
    @PostMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.insertArticleOperate)
    @ApiOperation(value = "新增医生文章/医生操作(评论、点赞、收藏)")
    public Envelop insert(@ApiParam(name = "json", value = "json实体")
                          @RequestParam(value = "json",required = false)String json)throws Exception {
        try {
            KnowledgeArticleDoctorDO knowledgeArticleDoctorDO = toEntity(json,KnowledgeArticleDoctorDO.class);
            return success(menuService.insert(knowledgeArticleDoctorDO));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.selectArticleDoctorById)
    @ApiOperation(value = "查询医生关联文章回复数据")
    public Envelop selectArticleDoctorById(@ApiParam(name = "id", value = "文章id")
                                           @RequestParam(value = "id",required = false)String id,
                                           @ApiParam(name = "page", value = "当前页")
                                           @RequestParam(value = "page",required = false)Integer page,
                                           @ApiParam(name = "size", value = "分页大小)")
                                           @RequestParam(value = "size",required = false)Integer size)throws Exception {
        try {
            return success(menuService.selectArticleDoctorById(id,1,page,size));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @GetMapping(value = BaseHospitalRequestMapping.KnowledgeArticle.selectArticleDoctorByArticleIdAndUser)
    @ApiOperation(value = "判断该文章当前医生是否点赞或者收藏")
    public Envelop selectArticleDoctorByArticleIdAndUser(@ApiParam(name = "id", value = "文章id")
                                                         @RequestParam(value = "id",required = false)String id,
                                                         @ApiParam(name = "user", value = "用户编码")
                                                         @RequestParam(value = "user",required = false)String user)throws Exception {
        try {
            return success(menuService.selectArticleDoctorByArticleIdAndUser(id,user));
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 92 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/integrate/BaseHospitalActivityController.java

@ -0,0 +1,92 @@
package com.yihu.jw.hospital.endpoint.integrate;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalActivityDO;
import com.yihu.jw.hospital.integrate.service.BaseHospitalActivityService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.BaseHospitalActivity.PREFIX)
@Api(value = "活动管理", description = "活动管理", tags = {"活动管理"})
public class BaseHospitalActivityController extends EnvelopRestEndpoint {
    @Autowired
    private BaseHospitalActivityService hospitalActivityService;
    @ApiOperation("新增或者修改")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalActivity.insertAndUpdate)
    public Envelop insertAndUpdate(@ApiParam(name = "json", value = "json活动实体", required = true)
                                       @RequestParam(value = "json", required = true) String json) {
        try {
            BaseHospitalActivityDO hospitalActivityDO = toEntity(json,BaseHospitalActivityDO.class);
            return success(hospitalActivityService.insertAndUpdate(hospitalActivityDO));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id删除活动")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalActivity.deleteById)
    public Envelop deleteById(@ApiParam(name = "id", value = "活动id", required = true)
                                   @RequestParam(value = "id", required = true) String id) {
        try {
            hospitalActivityService.deleteById(id);
            return success();
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id查询活动详情")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalActivity.findById)
    public Envelop findById(@ApiParam(name = "id", value = "活动id", required = true)
                              @RequestParam(value = "id", required = true) String id) {
        try {
            return success(hospitalActivityService.findById(id));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("查询活动列表")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalActivity.selectByCondition)
    public Envelop selectByCondition(@ApiParam(name = "page", value = "页码", required = true)
                                     @RequestParam(value = "page", required = true) Integer page,
                                     @ApiParam(name = "size", value = "大小", required = true)
                                    @RequestParam(value = "size", required = true) Integer size,
                                     @ApiParam(name = "title", value = "活动标题", required = false)
                                         @RequestParam(value = "title", required = false) String title) {
        try {
            return success(hospitalActivityService.selectByCondition(title,page,size));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("更新启动状态或者上移下移置顶")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalActivity.updateFlagOrSort)
    public Envelop updateFlagOrSort(@ApiParam(name = "id", value = "活动id", required = true)
                              @RequestParam(value = "id", required = true) String id,
                                    @ApiParam(name = "status", value = "1启动0禁止", required = false)
                                    @RequestParam(value = "status", required = false) Integer status,
                                    @ApiParam(name = "flag", value = "1上移2下移3置顶", required = false)
                                        @RequestParam(value = "flag", required = false) Integer flag) {
        try {
            return success(hospitalActivityService.updateFlagOrSort(id,status,flag));
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 80 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/integrate/BaseHospitalIntegrateController.java

@ -0,0 +1,80 @@
package com.yihu.jw.hospital.endpoint.integrate;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalActivityDO;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalIntegrateDO;
import com.yihu.jw.hospital.integrate.service.BaseHospitalActivityService;
import com.yihu.jw.hospital.integrate.service.BaseHospitalIntegrateService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.BaseHospitalIntegrate.PREFIX)
@Api(value = "积分配置", description = "积分配置", tags = {"积分配置"})
public class BaseHospitalIntegrateController extends EnvelopRestEndpoint {
    @Autowired
    private BaseHospitalIntegrateService hospitalIntegrateService;
    @ApiOperation("新增或者修改")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalIntegrate.insertAndUpdate)
    public Envelop insertAndUpdate(@ApiParam(name = "json", value = "json积分实体", required = true)
                                       @RequestParam(value = "json", required = true) String json) {
        try {
            BaseHospitalIntegrateDO hospitalIntegrateDO = toEntity(json,BaseHospitalIntegrateDO.class);
            return success(hospitalIntegrateService.insertAndUpdate(hospitalIntegrateDO));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id删除积分配置")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalIntegrate.deleteById)
    public Envelop deleteById(@ApiParam(name = "id", value = "积分配置id", required = true)
                                   @RequestParam(value = "id", required = true) String id) {
        try {
            hospitalIntegrateService.deleteById(id);
            return success();
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id查询积分配置详情")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalIntegrate.findById)
    public Envelop findById(@ApiParam(name = "id", value = "积分配置id", required = true)
                              @RequestParam(value = "id", required = true) String id) {
        try {
            return success(hospitalIntegrateService.findById(id));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("查询积分配置列表")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalIntegrate.selectByCondition)
    public Envelop selectByCondition(@ApiParam(name = "page", value = "页码", required = true)
                                     @RequestParam(value = "page", required = true) Integer page,
                                     @ApiParam(name = "size", value = "大小", required = true)
                                    @RequestParam(value = "size", required = true) Integer size,
                                     @ApiParam(name = "name", value = "积分配置名称", required = false)
                                         @RequestParam(value = "name", required = false) String name,
                                     @ApiParam(name = "type", value = "积分配置类型", required = false)
                                         @RequestParam(value = "type", required = false) String type) {
        try {
            return success(hospitalIntegrateService.selectByCondition(name,type,page,size));
        }catch (Exception e){
            return failedException(e);
        }
    }
}

+ 95 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/integrate/BaseHospitalMedalController.java

@ -0,0 +1,95 @@
package com.yihu.jw.hospital.endpoint.integrate;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalIntegrateDO;
import com.yihu.jw.entity.hospital.integrate.BaseHospitalMedalDO;
import com.yihu.jw.hospital.integrate.dao.BaseHospitalMedalDao;
import com.yihu.jw.hospital.integrate.service.BaseHospitalIntegrateService;
import com.yihu.jw.hospital.integrate.service.BaseHospitalMedalService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping(value = BaseHospitalRequestMapping.BaseHospitalMedal.PREFIX)
@Api(value = "勋章配置", description = "勋章配置", tags = {"勋章配置"})
public class BaseHospitalMedalController extends EnvelopRestEndpoint {
    @Autowired
    private BaseHospitalMedalService hospitalMedalService;
    @ApiOperation("新增或者修改")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalMedal.insertAndUpdate)
    public Envelop insertAndUpdate(@ApiParam(name = "json", value = "json积分实体", required = true)
                                       @RequestParam(value = "json", required = true) String json) {
        try {
            BaseHospitalMedalDO hospitalMedalDO = toEntity(json, BaseHospitalMedalDO.class);
            return success(hospitalMedalService.insertAndUpdate(hospitalMedalDO));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id删除勋章配置")
    @PostMapping(value = BaseHospitalRequestMapping.BaseHospitalMedal.deleteById)
    public Envelop deleteById(@ApiParam(name = "id", value = "勋章配置id", required = true)
                                   @RequestParam(value = "id", required = true) String id) {
        try {
            hospitalMedalService.deleteById(id);
            return success();
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("根据id查询勋章配置详情")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalMedal.findById)
    public Envelop findById(@ApiParam(name = "id", value = "勋章配置id", required = true)
                              @RequestParam(value = "id", required = true) String id) {
        try {
            return success(hospitalMedalService.findById(id));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("查询勋章配置列表")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalMedal.selectByCondition)
    public Envelop selectByCondition(@ApiParam(name = "page", value = "页码", required = true)
                                     @RequestParam(value = "page", required = true) Integer page,
                                     @ApiParam(name = "size", value = "大小", required = true)
                                    @RequestParam(value = "size", required = true) Integer size,
                                     @ApiParam(name = "name", value = "勋章名称", required = false)
                                         @RequestParam(value = "name", required = false) String name) {
        try {
            return success(hospitalMedalService.selectByCondition(name,page,size));
        }catch (Exception e){
            return failedException(e);
        }
    }
    @ApiOperation("医生端勋章列表")
    @GetMapping(value = BaseHospitalRequestMapping.BaseHospitalMedal.selectMedalByUserId)
    public Envelop selectMedalByUserId(@ApiParam(name = "page", value = "页码", required = true)
                                     @RequestParam(value = "page", required = true) Integer page,
                                     @ApiParam(name = "size", value = "大小", required = true)
                                     @RequestParam(value = "size", required = true) Integer size,
                                     @ApiParam(name = "doctorId", value = "医生id", required = false)
                                     @RequestParam(value = "doctorId", required = false) String doctorId) {
        try {
            return success(hospitalMedalService.selectMedalByUserId(doctorId,page,size));
        }catch (Exception e){
            return failedException(e);
        }
    }
}