Procházet zdrojové kódy

Merge branch 'dev' of zd_123/patient-co-management into dev

chenweida před 7 roky
rodič
revize
aa3db4c2d4

+ 117 - 0
common/common-entity/src/main/java/com/yihu/edu/entity/dataClean/NewArticleStatisticsModel.java

@ -0,0 +1,117 @@
package com.yihu.edu.entity.dataClean;
import javax.persistence.*;
import java.util.Date;
/**
 * Created by zhangdan on 2017/9/29.
 */
@Entity
@Table(name = "user_articlestatistics")
public class NewArticleStatisticsModel {
    private  int ID;
    private String articleId;
    private int browseNumber;
    private int pointNumber;
    private int commentNumber;
    private int shareNumber;
    private int collectionNumber;
    private int pushNumber;
    private Date insertTime;
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    public int getID() {
        return ID;
    }
    public void setID(int ID) {
        this.ID = ID;
    }
    @Column(name = "ArticleId")
    public String getArticleId() {
        return articleId;
    }
    public void setArticleId(String articleId) {
        this.articleId = articleId;
    }
    @Column(name = "BrowseNumber")
    public int getBrowseNumber() {
        return browseNumber;
    }
    public void setBrowseNumber(int browseNumber) {
        this.browseNumber = browseNumber;
    }
    @Column(name = "PointNumber")
    public int getPointNumber() {
        return pointNumber;
    }
    public void setPointNumber(int pointNumber) {
        this.pointNumber = pointNumber;
    }
    @Column(name = "CommentNumber")
    public int getCommentNumber() {
        return commentNumber;
    }
    public void setCommentNumber(int commentNumber) {
        this.commentNumber = commentNumber;
    }
    @Column(name = "ShareNumber")
    public int getShareNumber() {
        return shareNumber;
    }
    public void setShareNumber(int shareNumber) {
        this.shareNumber = shareNumber;
    }
    @Column(name = "CollectionNumber")
    public int getCollectionNumber() {
        return collectionNumber;
    }
    public void setCollectionNumber(int collectionNumber) {
        this.collectionNumber = collectionNumber;
    }
    @Column(name = "PushNumber")
    public int getPushNumber() {
        return pushNumber;
    }
    public void setPushNumber(int pushNumber) {
        this.pushNumber = pushNumber;
    }
    @Column(name = "InsertTime")
    public Date getInsertTime() {
        return insertTime;
    }
    public void setInsertTime(Date insertTime) {
        this.insertTime = insertTime;
    }
}

+ 22 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/jkedu/repository/JkeduStatisticsArticleDao.java

@ -0,0 +1,22 @@
package com.yihu.wlyy.jkedu.repository;
import com.yihu.edu.entity.dataClean.NewArticleStatisticsModel;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
public interface JkeduStatisticsArticleDao
		extends PagingAndSortingRepository<NewArticleStatisticsModel, Long>, JpaSpecificationExecutor<NewArticleStatisticsModel> {
	@Modifying
	@Transactional
	@Query("update NewArticleStatisticsModel s set s.shareNumber=?2,s.collectionNumber=?3," +
			"s.pushNumber=?4 where s.articleId=?1")
	int modifyStatics(String articleId, int shareNumber,int collectionNumber,int pushNumber);
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/repository/questionnaire/QuestionnaireUsersDao.java

@ -18,6 +18,6 @@ public interface QuestionnaireUsersDao extends PagingAndSortingRepository<Questi
    @Modifying
    @Query("update QuestionnaireUsers t set t.name=?2,t.idcard=?3," +
            "t.mobile=?4,t.census=?5,t.address=?6,t.updateTime = ?7  where  t.code=?1")
    int modifyOption(String code, String name, String idCard, String mobile, String census, String address, Date updateTime);
    int modifyUser(String code, String name, String idCard, String mobile, String census, String address, Date updateTime);
}

+ 61 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/questionnaire/QuestionnaireUsersService.java

@ -1,11 +1,14 @@
package com.yihu.wlyy.service.questionnaire;
import com.yihu.es.entity.QuestionnaireWinningESDO;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.repository.questionnaire.QuestionnaireUsersDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.IdcardValidator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import java.util.*;
@ -17,16 +20,70 @@ import java.util.*;
public class QuestionnaireUsersService extends BaseService {
    @Autowired
    private QuestionnaireUsersDao questionnaireUsersDao;
    @Autowired
    private QuestionnaireService questionnaireService;
    public void userInfo(String openId){
    public Map<String,Object> userInfo(String openId)throws Exception{
        Map<String,Object> map = new HashMap<>();
        QuestionnaireUsers questionnaireUsers = questionnaireUsersDao.findByOpoenId(openId);
        Map<String,Object> userMap = new HashMap<>();
        if (questionnaireUsers!=null){
            //TODO 根据身份证判断是否抽过奖,去es里查询,如果有抽过奖则返回code,没有返回实体类。
            //根据身份证判断是否抽过奖,去es里查询,如果有抽过奖则返回false,没有返回实体类。
            List<QuestionnaireWinningESDO> questionnaireWinningESDO = questionnaireService.getQuestionnaireWinningESDOByIdcardAndOpenid(questionnaireUsers.getIdcard(),openId);
            if (questionnaireUsers!=null){
                userMap.put("code",questionnaireUsers.getCode());
                userMap.put("name",questionnaireUsers.getName());
                userMap.put("idCard",questionnaireUsers.getIdcard());
                userMap.put("mobile",questionnaireUsers.getMobile());
                userMap.put("census",questionnaireUsers.getCensus());
                userMap.put("address",questionnaireUsers.getAddress());
                map.put("user",userMap);
                map.put("flag",false);
            }else {
                map.put("flag",true);
            }
        }else{
            map.put("flag",true);
        }
        return map;
    }
    public void SaveUser(QuestionnaireUsers questionnaireUsers){
    public Map<String,Object> SaveUpdateUser(QuestionnaireUsers questionnaireUsers)throws Exception{
        Map<String,Object> resultMap = new HashMap<>();
        String code = questionnaireUsers.getCode();
        String idCard= questionnaireUsers.getIdcard();
        String census = questionnaireUsers.getCensus();
        IdcardValidator idcardValidator = new IdcardValidator();
        boolean id18Flag = true;
        boolean id15Flag = true;
        boolean idFlag = true;
        id18Flag = idcardValidator.is18Idcard(idCard);
        id15Flag = idcardValidator.is15Idcard(idCard);
        if (!StringUtils.isEmpty(idCard) && "3502".equals(idCard.substring(0,4))){
            idFlag = false;
        }
        if (!id15Flag || !id18Flag || !idFlag){
            resultMap.put("flag",false);
            resultMap.put("msg","您的身份证不符合规定或者您是厦门户口,无法参加抽奖!");
            return  resultMap;
        }
        if (!StringUtils.isEmpty(census) && census.contains("厦门")){
            resultMap.put("flag",false);
            resultMap.put("msg","您的户籍是厦门,无法参加抽奖!");
            return resultMap;
        }
        Date date = new Date();
        if (StringUtils.isEmpty(code)){
            code = getCode();
            questionnaireUsers.setCode(code);
            questionnaireUsers.setCreateTime(date);
            questionnaireUsersDao.save(questionnaireUsers);
        }else{
            questionnaireUsersDao.modifyUser(code,questionnaireUsers.getName(),questionnaireUsers.getIdcard(),questionnaireUsers.getMobile(),questionnaireUsers.getCensus(),questionnaireUsers.getAddress(),date);
        }
        resultMap.put("flag",true);
        resultMap.put("msg","保存用户信息完成!");
        return resultMap;
    }
}

+ 7 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/survey/PatientQuestionnaireService.java

@ -1,9 +1,12 @@
package com.yihu.wlyy.service.survey;
import com.yihu.es.entity.QuestionnaireWinningESDO;
import com.yihu.wlyy.entity.doctor.survey.*;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.repository.doctor.*;
import com.yihu.wlyy.repository.questionnaire.QuestionnaireUsersDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.questionnaire.QuestionnaireService;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
@ -41,7 +44,7 @@ public class PatientQuestionnaireService extends BaseService {
    @Autowired
    private SurveyTemplateOptionsDao surveyTemplateOptionsDao;
    @Autowired
    private QuestionnaireUsersDao questionnaireUsersDao;
    private QuestionnaireService questionnaireService;
    private Logger logger = LoggerFactory.getLogger(this.getClass());
@ -256,7 +259,7 @@ public class PatientQuestionnaireService extends BaseService {
        return  json;
    }
    public String saveAnswerAndLotto(JSONObject jsonData) throws Exception {
    public QuestionnaireWinningESDO saveAnswerAndLotto(JSONObject jsonData, QuestionnaireUsers questionnaireUsers) throws Exception {
        System.out.println("********jsonData********* " + jsonData);
        //解析json保存各种答案
        String surveyCode = jsonData.get("surveyCode").toString();
@ -296,7 +299,8 @@ public class PatientQuestionnaireService extends BaseService {
            }
        }
        return  UUID.randomUUID().toString();
        return  questionnaireService.questionnaireLottery(questionnaireUsers).get(0);
    }
}

+ 13 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandlingController.java

@ -197,6 +197,19 @@ public class DataHandlingController extends BaseController {
        return write(200, "数据更新成功!", "data", flag);
    }
    @RequestMapping(value = "/getArticleStatics",method = RequestMethod.GET)
    @ResponseBody
    @ApiOperation("将旧数据文章的相关统计数据转移到新数据库")
    public String getArticleStatics(){
        try{
            eduArticleService.getArticleStatics();
            return write(200, "数据更新成功!");
        }catch (Exception e){
            e.printStackTrace();
            return write(200, "数据更新失败!"+e.getMessage());
        }
    }
    @RequestMapping(value = "/addBatchNo", method = RequestMethod.GET)
    @ResponseBody
    @Deprecated

+ 27 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/questionnaire/QuestionnaireUsersController.java

@ -1,5 +1,6 @@
package com.yihu.wlyy.web.patient.questionnaire;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.service.questionnaire.QuestionnaireUsersService;
import com.yihu.wlyy.service.survey.PatientQuestionnaireService;
import com.yihu.wlyy.web.BaseController;
@ -9,6 +10,7 @@ import io.swagger.annotations.ApiParam;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
@ -21,7 +23,7 @@ import java.util.concurrent.ConcurrentHashMap;
 * Created by Reece on 2017/3/14.
 */
@Controller
@RequestMapping(value = "/questionnaireUser/")
@RequestMapping(value = "/patient/questionnaireUser/")
@Api(description = "居民端问卷调查用户信息")
public class QuestionnaireUsersController extends BaseController {
@ -32,8 +34,30 @@ public class QuestionnaireUsersController extends BaseController {
    @ApiOperation(value = "获取用户信息并且判断是否已经抽过奖")
    @ResponseBody
    public String getSurveySummary(@ApiParam(name = "openId")@RequestParam(value = "openId")String openId) {
    return "";
        try {
            Map<String,Object> map = questionnaireUsersService.userInfo(openId);
            return write(200,"查询成功!","data",map);
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"查询失败!");
        }
    }
    @RequestMapping(value = "saveUpdateUser", method = RequestMethod.POST)
    @ApiOperation(value = "保存更新用户信息")
    @ResponseBody
    public String saveUpdateUser(@ApiParam(name = "questionnaireUsers")@RequestParam(value = "questionnaireUsers")QuestionnaireUsers questionnaireUsers) {
        try {
            Map<String,Object> map = questionnaireUsersService.SaveUpdateUser(questionnaireUsers);
            boolean flag = (Boolean) map.get("flag");
            if (flag){
                return write(200,"用户信息保存成功!");
            }else{
                return write(-1,map.get("msg").toString());
            }
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"用户信息保存失败!");
        }
    }
}

+ 48 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/survey/PatientQuestionnaireController.java

@ -1,7 +1,12 @@
package com.yihu.wlyy.web.patient.survey;
import com.google.gson.JsonObject;
import com.yihu.es.entity.QuestionnaireWinningESDO;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.repository.questionnaire.QuestionnaireUsersDao;
import com.yihu.wlyy.rest.model.common.SimpleResult;
import com.yihu.wlyy.service.questionnaire.QuestionnaireService;
import com.yihu.wlyy.service.questionnaire.QuestionnaireUsersService;
import com.yihu.wlyy.service.survey.PatientQuestionnaireService;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
@ -16,6 +21,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -29,9 +35,12 @@ import java.util.concurrent.ConcurrentHashMap;
public class PatientQuestionnaireController extends BaseController {
    @Autowired
    private PatientQuestionnaireService patientQuestionnaireService;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Autowired
    private QuestionnaireService questionnaireService;
    @Autowired
    private QuestionnaireUsersDao questionnaireUsersDao;
    @RequestMapping(value = "getSurveySummary", method = RequestMethod.GET)
    @ApiOperation(value = "居民端获取问卷概述")
@ -85,6 +94,33 @@ public class PatientQuestionnaireController extends BaseController {
    }
    //----------------------电影票活动抽奖-------------------------------//
    @RequestMapping(value = "/checkLotto",method = RequestMethod.POST)
    @ApiOperation(value = "进入活动页面判断是否已经抽过奖")
    @ResponseBody
    public String checkLotto(@ApiParam(name = "checkParam")@RequestParam(value = "checkParam",required = true)String checkParam){
        Map<String,Object> resultMap = new HashMap<>();
        try{
            List<QuestionnaireWinningESDO> result = questionnaireService.getQuestionnaireWinningESDOByIdcardAndOpenid(checkParam,checkParam);
            if (result!= null){
                resultMap.put("flag",false);
                if (result!=null && result.size()>0){
                    resultMap.put("result",result.get(0));
                }else{
                    resultMap.put("result",null);
                }
                return write(200,"您已经抽过奖了!","data",resultMap);
            }else{
                resultMap.put("flag",true);
                return write(200,"您还未抽过奖!","data",resultMap);
            }
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"操作失败!");
        }
    }
    @RequestMapping(value = "/getAllQuestions",method = RequestMethod.GET)
    @ApiOperation(value = "电影票抽奖获取所有问卷题目")
    @ResponseBody
@ -116,9 +152,19 @@ public class PatientQuestionnaireController extends BaseController {
                pass = true;
                redisTemplate.delete(key);
            }
            //openid和身份证验证是否已经抽过奖
            QuestionnaireUsers questionnaireUsers = questionnaireUsersDao.findByOpoenId(openId);
            if (questionnaireUsers!=null){
                List<QuestionnaireWinningESDO> questionnaireWinningESDO = questionnaireService.getQuestionnaireWinningESDOByIdcardAndOpenid(questionnaireUsers.getIdcard(),openId);
                if (questionnaireWinningESDO!=null){
                    return write(-1,"您已经抽过奖了!");
                }
            }else {
                return write(-1,"请先填写个人信息!");
            }
            //验证成功,保存问卷进行抽奖
            if (pass){
                return write(200, "操作成功!","data",patientQuestionnaireService.saveAnswerAndLotto(json));
                return write(200, "操作成功!","data",patientQuestionnaireService.saveAnswerAndLotto(json,questionnaireUsers));
            }else{
                return write(-1, "验证码错误!");
            }

+ 52 - 4
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/third/jkedu/service/EduArticleService.java

@ -12,16 +12,14 @@ import com.yihu.wlyy.entity.doctor.team.admin.AdminTeam;
import com.yihu.wlyy.entity.education.HealthEduArticle;
import com.yihu.wlyy.entity.education.HealthEduArticlePatient;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.jkedu.repository.JkeduArticleDao;
import com.yihu.wlyy.jkedu.repository.JkeduBehaviorArticleDao;
import com.yihu.wlyy.jkedu.repository.JkeduCategoryDao;
import com.yihu.wlyy.jkedu.repository.JkeduCollectionArticleDao;
import com.yihu.wlyy.jkedu.repository.*;
import com.yihu.wlyy.repository.doctor.DoctorAdminTeamDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.doctor.DoctorRoleDao;
import com.yihu.wlyy.repository.education.HealthEduArticleDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.service.common.account.RoleService;
import com.yihu.wlyy.service.third.jkEduArticle.ThirdJkEduArticleService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.ElasticsearchUtil;
import com.yihu.wlyy.util.MapListUtils;
@ -83,6 +81,10 @@ public class EduArticleService {
    @Autowired
    private GcLabelService gcLabelService;
    @Autowired
    private ThirdJkEduArticleService thirdJkEduArticleService;
    @Autowired
    private JkeduStatisticsArticleDao jkeduStatisticsArticleDao;
    @Autowired
    private RoleService roleService;
    @Autowired
    private DoctorRoleDao doctorRoleDao;
@ -1263,4 +1265,50 @@ public class EduArticleService {
        return resultMap;
    }
    public void getArticleStatics()throws Exception{
        thirdJkEduArticleService.insertArticleStatistic();
        String articleSql = "SELECT code FROM wlyy_health_edu_article GROUP BY code";
        String collectSql ="SELECT article,COUNT(*) AS collectNumber FROM wlyy_health_edu_article_doctor GROUP BY article";
        String ophistorySql ="SELECT code,status,COUNT(*) AS statusCount FROM wlyy_health_edu_article_op_history GROUP BY code,status";
        String esSql = "SELECT articleId,count(*) as sendCount FROM "+esIndex+" where userType=1 group by articleId";
        List<Map<String,Object>> articleList = jdbcTemplate.queryForList(articleSql);
        List<Map<String,Object>> collectList = jdbcTemplate.queryForList(collectSql);
        List<Map<String,Object>> opList = jdbcTemplate.queryForList(ophistorySql);
        List<Map<String, Object>> esList = elasticsearchUtil.excuteDataModel(esSql);
        for (Map<String,Object> map : articleList){
            int collection = 0;
            int share = 0;
            int push = 0;
            map.put("collection",0);
            map.put("share",0);
            map.put("push",0);
            //循环收藏人数
            for (Map<String,Object> cmap : collectList){
                if (map.get("code").toString().equals(cmap.get("article").toString())){
                    collection = Integer.valueOf(String.valueOf(cmap.get("collectNumber")));
                }
            }
            //循环1.阅读3.转发
            for (Map<String,Object> omap : opList){
                if (map.get("code").toString().equals(omap.get("code").toString())){
                    if ("3".equals(omap.get("status").toString())){
                        share = Integer.valueOf(String.valueOf(omap.get("statusCount")));
                    }
                }
            }
            //循环发送数目
            for (Map<String,Object> emap : esList){
                if (map.get("code").toString().equals(emap.get("articleId").toString())){
                    push = Integer.valueOf(String.valueOf(emap.get("sendCount")));
                }
            }
            //执行更新.
            jkeduStatisticsArticleDao.modifyStatics(String.valueOf(map.get("code")),share,collection,push);
        }
    }
}