Bladeren bron

问卷调查

Trick 5 jaren geleden
bovenliggende
commit
20389c1fce

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/survey/dao/SurveyUserAnswerDao.java

@ -21,4 +21,6 @@ public interface SurveyUserAnswerDao extends PagingAndSortingRepository<WlyySurv
    @Query("SELECT DISTINCT c.patient from WlyySurveyUserAnswerDO c WHERE c.tempQuestionCode = ?1")
    @Query("SELECT DISTINCT c.patient from WlyySurveyUserAnswerDO c WHERE c.tempQuestionCode = ?1")
    List<WlyySurveyUserAnswerDO> findByTempQuestionCodeDistinctPatient(String tempQuestionCode);
    List<WlyySurveyUserAnswerDO> findByTempQuestionCodeDistinctPatient(String tempQuestionCode);
}
}

+ 5 - 0
business/base-service/src/main/java/com/yihu/jw/hospital/survey/dao/SurveyUserDao.java

@ -2,8 +2,10 @@ package com.yihu.jw.hospital.survey.dao;
import com.yihu.jw.entity.hospital.survey.WlyySurveyUserDO;
import com.yihu.jw.entity.hospital.survey.WlyySurveyUserDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.Date;
import java.util.List;
import java.util.List;
/**
/**
@ -12,4 +14,7 @@ import java.util.List;
public interface SurveyUserDao extends PagingAndSortingRepository<WlyySurveyUserDO, String>, JpaSpecificationExecutor<WlyySurveyUserDO> {
public interface SurveyUserDao extends PagingAndSortingRepository<WlyySurveyUserDO, String>, JpaSpecificationExecutor<WlyySurveyUserDO> {
    List<WlyySurveyUserDO> findBySurveyTempCodeAndStatus(String surveyTempCode,Integer status);
    List<WlyySurveyUserDO> findBySurveyTempCodeAndStatus(String surveyTempCode,Integer status);
    @Query("from WlyySurveyUserDO c WHERE c.surveyTempCode = ?1 and c.patient =?2 and c.status =1 and c.createTime >= ?3")
    List<WlyySurveyUserDO> findBySurvey(String surveyTempCode,String patient,Date createTime);
}
}

+ 25 - 4
business/base-service/src/main/java/com/yihu/jw/hospital/survey/service/SurveyService.java

@ -1,6 +1,7 @@
package com.yihu.jw.hospital.survey.service;
package com.yihu.jw.hospital.survey.service;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.entity.hospital.survey.*;
import com.yihu.jw.entity.hospital.survey.*;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.survey.dao.*;
import com.yihu.jw.hospital.survey.dao.*;
@ -10,6 +11,7 @@ import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.common.IdCardUtil;
import com.yihu.jw.util.common.PercentageUtil;
import com.yihu.jw.util.common.PercentageUtil;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.jw.utils.EntityUtils;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.StringUtils;
@ -20,6 +22,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.List;
import java.util.Map;
import java.util.Map;
@ -487,11 +490,28 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        return list;
        return list;
    }
    }
    public List<Map<String,Object>> findSurveyByDeptAndPatient(String dept,String patient) {
        List<Map<String,Object>> result = findSurveyByDept(dept);
        if(result!=null&&result.size()>0){
            for(Map<String,Object> map:result){
                String tempId = (String)map.get("id");
                List<WlyySurveyUserDO> list = surveyUserDao.findBySurvey(tempId,patient, DateUtil.strToDate(DateUtil.dateToStr(new Date(),"yyyy-MM-dd")));
                if(list!=null&&list.size()>0){
                    map.put("isAnswer",true);
                }else{
                    map.put("isAnswer",false);
                }
            }
        }
        return result;
    }
    /**
    /**
     * 查询问卷下科室
     * @param tempId
     * @return
     */
    * 查询问卷下科室
    * @param tempId
    * @return
    */
    public List<Map<String,Object>> findDeptBySurvey(String tempId){
    public List<Map<String,Object>> findDeptBySurvey(String tempId){
        String sql ="SELECT " +
        String sql ="SELECT " +
                " d.survey_temp_code AS surveyTempCode," +
                " d.survey_temp_code AS surveyTempCode," +
@ -506,6 +526,7 @@ public class SurveyService extends BaseJpaService<WlyySurveyQuestionDO, SurveyQu
        return list;
        return list;
    }
    }
    /**
    /**
     *
     *
     * @param suJson
     * @param suJson

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

@ -513,6 +513,7 @@ public class BaseHospitalRequestMapping {
        public static final String saveDeptSurvey  = "/saveDeptSurvey";
        public static final String saveDeptSurvey  = "/saveDeptSurvey";
        public static final String findSurveyByDept  = "/findSurveyByDept";
        public static final String findSurveyByDept  = "/findSurveyByDept";
        public static final String findSurveyByDeptAndPatient  = "/findSurveyByDeptAndPatient";
        public static final String findDeptBySurvey  = "/findDeptBySurvey";
        public static final String findDeptBySurvey  = "/findDeptBySurvey";
        public static final String saveSurveyAnswer  = "/saveSurveyAnswer";
        public static final String saveSurveyAnswer  = "/saveSurveyAnswer";
        public static final String findAnswerBySurveyTempCode  = "/findAnswerBySurveyTempCode";
        public static final String findAnswerBySurveyTempCode  = "/findAnswerBySurveyTempCode";

+ 5 - 0
server/svr-authentication/pom.xml

@ -143,6 +143,11 @@
            <artifactId>kaptcha</artifactId>
            <artifactId>kaptcha</artifactId>
            <version>2.3</version>
            <version>2.3</version>
        </dependency>
        </dependency>
        <dependency>
            <groupId>com.yihu.jw</groupId>
            <artifactId>sms-service</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>
    </dependencies>

+ 5 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/core/redis/WlyyRedisVerifyCodeService.java

@ -55,4 +55,9 @@ public class WlyyRedisVerifyCodeService {
        return false;
        return false;
    }
    }
    //生成6位随机数
    public String getCodeNumber(){
        return (int)((Math.random()*9+1)*100000)+"";
    }
}
}

+ 37 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyLoginEndpoint.java

@ -22,6 +22,7 @@ import com.yihu.jw.security.service.OauthWlyyConfigService;
import com.yihu.jw.security.service.OauthYlzConfigService;
import com.yihu.jw.security.service.OauthYlzConfigService;
import com.yihu.jw.security.utils.DateUtil;
import com.yihu.jw.security.utils.DateUtil;
import com.yihu.jw.security.utils.SerializeUtil;
import com.yihu.jw.security.utils.SerializeUtil;
import com.yihu.jw.sms.service.ZhongShanSMSService;
import com.yihu.utils.security.RSAUtils;
import com.yihu.utils.security.RSAUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiOperation;
@ -118,6 +119,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private OauthYlzConfigService oauthYlzConfigService;
    private OauthYlzConfigService oauthYlzConfigService;
    @Autowired
    @Autowired
    private OauthWlyyConfigService oauthWlyyConfigService;
    private OauthWlyyConfigService oauthWlyyConfigService;
    @Autowired
    private ZhongShanSMSService zhongShanSMSService;
    @PostConstruct
    @PostConstruct
@ -430,6 +433,40 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);*/
        return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);*/
    }
    }
    @RequestMapping(value = "/oauth/sendZSCaptcha", method = RequestMethod.GET)
    public ResponseEntity<Oauth2Envelop<Captcha>> sendZSCaptcha(@RequestParam Map<String, String> parameters) throws Exception {
        String client_id = parameters.get("client_id");
        String username = parameters.get("username");
        if (StringUtils.isEmpty(client_id)) {
            throw new InvalidRequestException("client_id");
        }
        if (StringUtils.isEmpty(username)) {
            throw new InvalidRequestException("username");
        }
        //验证请求间隔超时,防止频繁获取验证码
        if (!wlyyRedisVerifyCodeService.isIntervalTimeout(client_id, username)) {
            throw new IllegalAccessException("SMS request frequency is too fast");
        }
        //发送短信获取验证码
        String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
        int result =  zhongShanSMSService.ZhongShangSendSMS(username,"您好,你的手机登录短信验证码是:"+captcha+",5分钟内有效。");
        if (0 == result) {
            Captcha _captcha = new Captcha();
            _captcha.setCode(captcha);
            _captcha.setExpiresIn(300);
            wlyyRedisVerifyCodeService.store(client_id, username, captcha, 300);
            Oauth2Envelop<Captcha> oauth2Envelop = new Oauth2Envelop<>("captcha", 200, _captcha);
            HttpHeaders headers = new HttpHeaders();
            headers.set("Cache-Control", "no-store");
            headers.set("Pragma", "no-cache");
            return new ResponseEntity<>(oauth2Envelop, headers, HttpStatus.OK);
        }
        throw new IllegalStateException("验证码发送失败!");
    }
    /**
    /**
     * 验证验证码
     * 验证验证码
     *
     *

+ 9 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/survey/SurveyEndpoint.java

@ -148,6 +148,15 @@ public class SurveyEndpoint extends EnvelopRestEndpoint {
        return success(surveyService.findSurveyByDept(dept));
        return success(surveyService.findSurveyByDept(dept));
    }
    }
    @GetMapping(value = BaseHospitalRequestMapping.WlyySurvey.findSurveyByDeptAndPatient)
    @ApiOperation(value = "模板-查询部门下发放的问卷用户答题情况")
    public ListEnvelop findSurveyByDeptAndPatient(@ApiParam(name = "dept", value = "科室")
                                                  @RequestParam(value = "dept",required = true)String dept,
                                                  @ApiParam(name = "patient", value = "居民code")
                                                  @RequestParam(value = "patient",required = true)String patient)throws Exception {
        return success(surveyService.findSurveyByDeptAndPatient(dept,patient));
    }
    @GetMapping(value = BaseHospitalRequestMapping.WlyySurvey.findDeptBySurvey)
    @GetMapping(value = BaseHospitalRequestMapping.WlyySurvey.findDeptBySurvey)
    @ApiOperation(value = "模板-查询模板下的科室")
    @ApiOperation(value = "模板-查询模板下的科室")
    public ListEnvelop findDeptBySurvey(@ApiParam(name = "tempId", value = "模板ID")
    public ListEnvelop findDeptBySurvey(@ApiParam(name = "tempId", value = "模板ID")