Browse Source

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

trick9191 7 năm trước cách đây
mục cha
commit
5f1cb5b22f

+ 93 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/questionnaire/QuestionnaireService.java

@ -5,10 +5,18 @@ import com.yihu.es.entity.QuestionnaireWinningESDO;
import com.yihu.wlyy.config.SystemConfig;
import com.yihu.wlyy.config.es.ElasticFactory;
import com.yihu.wlyy.config.es.ElastricSearchSave;
import com.yihu.wlyy.entity.doctor.survey.SurveyOptionAnswers;
import com.yihu.wlyy.entity.doctor.survey.SurveyTemplateOptions;
import com.yihu.wlyy.entity.doctor.survey.SurveyTemplateQuestions;
import com.yihu.wlyy.entity.questionnaire.QuestionnairePrize;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireWinning;
import com.yihu.wlyy.repository.doctor.SurveyOptionAnswersDao;
import com.yihu.wlyy.repository.doctor.SurveyStatisticsDao;
import com.yihu.wlyy.repository.doctor.SurveyTemplateOptionsDao;
import com.yihu.wlyy.repository.doctor.SurveyTemplateQuestionsDao;
import com.yihu.wlyy.repository.questionnaire.QuestionnairePrizeDao;
import com.yihu.wlyy.repository.questionnaire.QuestionnaireUsersDao;
import com.yihu.wlyy.repository.questionnaire.QuestionnaireWinningDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.ElasticsearchUtil;
@ -16,6 +24,8 @@ import com.yihu.wlyy.util.random.LotteryUtils;
import com.yihu.wlyy.util.random.dto.LotteryItem;
import io.searchbox.client.JestClient;
import org.apache.commons.lang3.StringUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -54,6 +64,16 @@ public class QuestionnaireService extends BaseService {
	private QuestionnairePrizeDao questionnairePrizeDao;
	@Autowired
	private StringRedisTemplate redisTemplate;
	@Autowired
	private SurveyTemplateQuestionsDao surveyTemplateQuestionsDao;
	@Autowired
	private SurveyTemplateOptionsDao surveyTemplateOptionsDao;
	@Autowired
	private SurveyOptionAnswersDao surveyOptionAnswersDao;
	@Autowired
	private QuestionnaireUsersDao questionnaireUsersDao;
	@Autowired
	SurveyStatisticsDao surveyStatisticsDao;
	
	/**
@ -290,4 +310,77 @@ public class QuestionnaireService extends BaseService {
			}
		}
	}
	/**
	 * 抽奖问卷调查获取所有的问卷题目
	 * @param surveyTemplateCode
	 * @return
	 * @throws Exception
	 */
	public JSONObject getAllQuestions(String surveyTemplateCode)throws Exception{
		JSONObject json = new JSONObject();
		List<SurveyTemplateQuestions> questionList = surveyTemplateQuestionsDao.findById(surveyTemplateCode);
		List<SurveyTemplateOptions> optionsList = surveyTemplateOptionsDao.findByQuestionCode(surveyTemplateCode);
		for (SurveyTemplateQuestions surveyTemplateQuestions : questionList){
			Map<String,Object> map = new HashMap<>();
			String qusCode = surveyTemplateQuestions.getCode();
			List<SurveyTemplateOptions>  resultOptionList = new ArrayList<>();
			for (SurveyTemplateOptions option : optionsList){
				if (option.getTemplateQuestionCode().equals(qusCode)){
					resultOptionList.add(option);
				}
			}
			map.put("question",surveyTemplateQuestions);
			map.put("option",resultOptionList);
			json.put(surveyTemplateQuestions.getSort()+"",map);
		}
		return  json;
	}
	public QuestionnaireWinningESDO saveAnswerAndLotto(JSONObject jsonData, QuestionnaireUsers questionnaireUsers) throws Exception {
		System.out.println("********jsonData********* " + jsonData);
		//解析json保存各种答案
		String surveyCode = jsonData.get("surveyCode").toString();
		String openId = jsonData.get("openId").toString();
		String userCode = "";
		QuestionnaireUsers questionnaireUsers1 = questionnaireUsersDao.findByOpoenId(openId);
		if (questionnaireUsers1!=null){
			userCode = questionnaireUsers1.getCode();
		}
		Date createTime = new Date();
		//获取一维数组
		JSONArray questions = jsonData.getJSONArray("questions");
		for (int i = 0; i < questions.length(); i++) {
			//获取每一道题的信息
			JSONObject question = new JSONObject(questions.get(i).toString());
			String qstCode = question.get("qstCode").toString();
			int type = Integer.parseInt(question.get("type").toString());
			if (type != 2) {
				if (question.has("options")) {
					//获取每道题的所有选项
					JSONArray options = question.getJSONArray("options");
					for (int j = 0; j < options.length(); j++) {
						JSONObject option = new JSONObject(options.get(j).toString());
						String code = getCode();
						String optionCode = option.get("optionCode").toString();
						String comment = null;
						int haveComment = 0;
						if (option.has("comment")) {
							comment = option.get("comment").toString();
							haveComment = 1;
						}
						//保存到选择题答案表
						SurveyOptionAnswers optionAnswer = new SurveyOptionAnswers(code, userCode, surveyCode, qstCode, optionCode, comment, type, createTime,openId);
						surveyOptionAnswersDao.save(optionAnswer);
						//选择题修改统计表数量
						surveyStatisticsDao.modifyAmount(surveyCode, qstCode, optionCode);
					}
				}
			}
		}
		return  questionnaireLottery(questionnaireUsers).get(0);
	}
}

+ 11 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/questionnaire/QuestionnaireUsersService.java

@ -1,10 +1,19 @@
package com.yihu.wlyy.service.questionnaire;
import com.yihu.es.entity.QuestionnaireWinningESDO;
import com.yihu.wlyy.entity.doctor.survey.SurveyOptionAnswers;
import com.yihu.wlyy.entity.doctor.survey.SurveyTemplateOptions;
import com.yihu.wlyy.entity.doctor.survey.SurveyTemplateQuestions;
import com.yihu.wlyy.entity.questionnaire.QuestionnaireUsers;
import com.yihu.wlyy.repository.doctor.SurveyOptionAnswersDao;
import com.yihu.wlyy.repository.doctor.SurveyStatisticsDao;
import com.yihu.wlyy.repository.doctor.SurveyTemplateOptionsDao;
import com.yihu.wlyy.repository.doctor.SurveyTemplateQuestionsDao;
import com.yihu.wlyy.repository.questionnaire.QuestionnaireUsersDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.util.IdcardValidator;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -22,6 +31,8 @@ public class QuestionnaireUsersService extends BaseService {
    private QuestionnaireUsersDao questionnaireUsersDao;
    @Autowired
    private QuestionnaireService questionnaireService;
    @Autowired
    SurveyStatisticsDao surveyStatisticsDao;
    public Map<String,Object> userInfo(String openId)throws Exception{
        Map<String,Object> map = new HashMap<>();

+ 1 - 81
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/survey/PatientQuestionnaireService.java

@ -39,14 +39,7 @@ public class PatientQuestionnaireService extends BaseService {
    private SurveyAnswersDao surveyAnswersDao;
    @Autowired
    SurveyStatisticsDao surveyStatisticsDao;
    @Autowired
    private  SurveyTemplateQuestionsDao surveyTemplateQuestionsDao;
    @Autowired
    private SurveyTemplateOptionsDao surveyTemplateOptionsDao;
    @Autowired
    private QuestionnaireService questionnaireService;
    @Autowired
    private QuestionnaireUsersDao questionnaireUsersDao;
    private Logger logger = LoggerFactory.getLogger(this.getClass());
@ -235,77 +228,4 @@ public class PatientQuestionnaireService extends BaseService {
        surveyUserDao.modifyStatus(surveyCode, patient);
    }
    /**
     * 抽奖问卷调查获取所有的问卷题目
     * @param surveyTemplateCode
     * @return
     * @throws Exception
     */
    public JSONObject getAllQuestions(String surveyTemplateCode)throws Exception{
        JSONObject json = new JSONObject();
        List<SurveyTemplateQuestions> questionList = surveyTemplateQuestionsDao.findById(surveyTemplateCode);
        List<SurveyTemplateOptions> optionsList = surveyTemplateOptionsDao.findByQuestionCode(surveyTemplateCode);
        for (SurveyTemplateQuestions surveyTemplateQuestions : questionList){
            Map<String,Object> map = new HashMap<>();
            String qusCode = surveyTemplateQuestions.getCode();
            List<SurveyTemplateOptions>  resultOptionList = new ArrayList<>();
            for (SurveyTemplateOptions option : optionsList){
                if (option.getTemplateQuestionCode().equals(qusCode)){
                    resultOptionList.add(option);
                }
            }
            map.put("question",surveyTemplateQuestions);
            map.put("option",resultOptionList);
            json.put(surveyTemplateQuestions.getSort()+"",map);
        }
        return  json;
    }
    public QuestionnaireWinningESDO saveAnswerAndLotto(JSONObject jsonData, QuestionnaireUsers questionnaireUsers) throws Exception {
        System.out.println("********jsonData********* " + jsonData);
        //解析json保存各种答案
        String surveyCode = jsonData.get("surveyCode").toString();
        String openId = jsonData.get("openId").toString();
        String userCode = "";
        QuestionnaireUsers questionnaireUsers1 = questionnaireUsersDao.findByOpoenId(openId);
        if (questionnaireUsers1!=null){
            userCode = questionnaireUsers1.getCode();
        }
        Date createTime = new Date();
        //获取一维数组
        JSONArray questions = jsonData.getJSONArray("questions");
        for (int i = 0; i < questions.length(); i++) {
            //获取每一道题的信息
            JSONObject question = new JSONObject(questions.get(i).toString());
            String qstCode = question.get("qstCode").toString();
            int type = Integer.parseInt(question.get("type").toString());
            if (type != 2) {
                if (question.has("options")) {
                    //获取每道题的所有选项
                    JSONArray options = question.getJSONArray("options");
                    for (int j = 0; j < options.length(); j++) {
                        JSONObject option = new JSONObject(options.get(j).toString());
                        String code = getCode();
                        String optionCode = option.get("optionCode").toString();
                        String comment = null;
                        int haveComment = 0;
                        if (option.has("comment")) {
                            comment = option.get("comment").toString();
                            haveComment = 1;
                        }
                        //保存到选择题答案表
                        SurveyOptionAnswers optionAnswer = new SurveyOptionAnswers(code, userCode, surveyCode, qstCode, optionCode, comment, type, createTime,openId);
                        surveyOptionAnswersDao.save(optionAnswer);
                        //选择题修改统计表数量
                        surveyStatisticsDao.modifyAmount(surveyCode, qstCode, optionCode);
                    }
                }
            }
        }
        return  questionnaireService.questionnaireLottery(questionnaireUsers).get(0);
    }
}

+ 184 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/questionnaire/QuestionnaireCaptchaController.java

@ -0,0 +1,184 @@
package com.yihu.wlyy.web.patient.questionnaire;
import com.google.code.kaptcha.impl.DefaultKaptcha;
import com.google.code.kaptcha.util.Config;
import com.yihu.wlyy.web.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import sun.misc.BASE64Encoder;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;
/**
 * 微信端非app用户可参与活动,获取验证码
 *
 * @author Sand
 * @created 2016/09/28
 */
@Api(description = "验证码")
@RestController
@RequestMapping(value = "/questionnaire/captcha", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public class QuestionnaireCaptchaController extends BaseController {
    @Autowired
    private StringRedisTemplate redisTemplate;
    private Map<String, String> captchaCache = new ConcurrentHashMap<>();
    private DefaultKaptcha captchaProducer = new DefaultKaptcha();
    public QuestionnaireCaptchaController() {
        Properties properties = new Properties();
        properties.put("kaptcha.textproducer.font.color", "blue");
        properties.put("kaptcha.textproducer.font.size", "45");
        properties.put("kaptcha.textproducer.char.length", "4");
        properties.put("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
        Config config = new Config(properties);
        captchaProducer.setConfig(config);
    }
    @RequestMapping(method = RequestMethod.GET)
    @ApiOperation("生成验证码,用于第一次请求")
    public String createCaptcha(){
        try{
            return generateCaptcha();
        } catch (Exception e){
            error(e);
            return error(500, e.getMessage());
        }
    }
    @RequestMapping(value = "/{legacy_key}", method = RequestMethod.POST)
    @ApiOperation("刷新验证码,需提供第一次生成验证码返回的key")
    public String refreshCaptcha(@PathVariable("legacy_key") String legacyKey){
        try{
            cleanCaptcha(legacyKey);
            return generateCaptcha();
        } catch (Exception e){
            error(e);
            return error(500, e.getMessage());
        }
    }
    @RequestMapping(value = "/{key}", method = RequestMethod.GET)
    @ApiOperation("校验证码,提供key及用户输入的验证码")
    public String verifyCaptcha(@PathVariable("key") String key,
                                @RequestParam("text") String text){
        try{
            boolean pass = false;
            String captcha = captchaCache.get(key);
            if (captcha != null && captcha.equals(text.toLowerCase())){
                pass = true;
                cleanCaptcha(key);
            }
            return write(200, "ok", "pass", pass);
        } catch (Exception e){
            error(e);
            return error(500, e.getMessage());
        }
    }
    private String generateCaptcha() throws IOException {
        String captchaText = captchaProducer.createText();
        BufferedImage image = captchaProducer.createImage(captchaText);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ImageIO.write(image, "png", outputStream);
        String base64Img = new BASE64Encoder().encode(outputStream.toByteArray());
        String key = "captcha:" + UUID.randomUUID().toString() + ":text";
        Map<String, String> data = new HashMap<>();
        data.put("key", key);
        data.put("image", base64Img);
        data.put("format", "png");
        captchaCache.put(key, captchaText.toLowerCase());
        return write(200, "ok", "data", data);
    }
    private void cleanCaptcha(String key){
        captchaCache.remove(key);
    }
    //=======================抽奖活动要结合openid生成验证码和校验验证码==========================//
    @RequestMapping(value = "/withOpenId/{openId}",method = RequestMethod.POST)
    @ApiOperation("结合openid生成验证码,用于第一次请求")
    public String createCaptchaOpenId(@PathVariable("openId") String openId){
        try{
            return generatiCaptchaOpenId(openId);
        } catch (Exception e){
            error(e);
            return error(500, e.getMessage());
        }
    }
    private String generatiCaptchaOpenId(String openId)throws Exception{
        String captchaText = captchaProducer.createText();
        BufferedImage image = captchaProducer.createImage(captchaText);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        ImageIO.write(image, "png", outputStream);
        String base64Img = new BASE64Encoder().encode(outputStream.toByteArray());
        String uuid = UUID.randomUUID().toString();
        String key = "captcha:" + openId +"_"+uuid + ":text";
        Map<String, String> data = new HashMap<>();
        data.put("key", "captcha:" +uuid + ":text");
        data.put("image", base64Img);
        data.put("format", "png");
        redisTemplate.opsForValue().set(key,captchaText.toLowerCase());
        return write(200, "ok", "data", data);
    }
    @RequestMapping(value = "/refresh/{legacy_key}", method = RequestMethod.POST)
    @ApiOperation("刷新验证码,需提供第一次生成验证码返回的key")
    public String refreshCaptchaOpenId(@PathVariable("legacy_key") String legacyKey,
                                       @RequestParam("openId") String openId){
        try{
            legacyKey = legacyKey.replaceFirst(":",":"+openId+"_");
            redisTemplate.delete(legacyKey);
            return generatiCaptchaOpenId(openId);
        } catch (Exception e){
            error(e);
            return error(500, e.getMessage());
        }
    }
    @RequestMapping(value = "/verifyWithOpenId/{key}", method = RequestMethod.POST)
    @ApiOperation("校验证码,提供key及用户输入的验证码")
    public String verifyCaptcha(@PathVariable("key") String key,
                                @RequestParam("openId") String openId,
                                @RequestParam("text") String text){
        try{
            boolean pass = false;
            key = key.replaceFirst(":",":"+openId+"_");
            String captcha = redisTemplate.opsForValue().get(key);
            if (captcha != null && captcha.equals(text.toLowerCase())){
                pass = true;
                redisTemplate.delete(key);
            }
            return write(200, "ok", "pass", pass);
        } catch (Exception e){
            error(e);
            return error(500, e.getMessage());
        }
    }
}

+ 156 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/questionnaire/QuestionnaireController.java

@ -0,0 +1,156 @@
package com.yihu.wlyy.web.patient.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.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;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
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;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
 * Created by Reece on 2017/3/14.
 */
@Controller
@RequestMapping(value = "/questionnaire")
@Api(description = "居民端问卷调查用户信息")
public class QuestionnaireController extends BaseController {
    @Autowired
    private QuestionnaireUsersService questionnaireUsersService;
    @Autowired
    private QuestionnaireService questionnaireService;
    @Autowired
    private StringRedisTemplate redisTemplate;
    @Autowired
    private QuestionnaireUsersDao questionnaireUsersDao;
    @RequestMapping(value = "/getUserInfo", method = RequestMethod.POST)
    @ApiOperation(value = "获取用户信息并且判断是否已经抽过奖")
    @ResponseBody
    public String getSurveySummary(@ApiParam(name = "openId")@RequestParam(value = "openId")String openId) {
        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,"用户信息保存失败!");
        }
    }
    //----------------------电影票活动抽奖-------------------------------//
    @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
    public String getAllQuestions(@ApiParam(name = "surveyTemplateCode",value = "问卷模板id")@RequestParam(value = "surveyTemplateCode",required = true)String surveyTemplateCode){
        try {
            JSONObject jsonObject = questionnaireService.getAllQuestions(surveyTemplateCode);
            return write(200, "查询成功!", "data", jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
            return write(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/saveAnswerAndLotto", method = RequestMethod.POST)
    @ApiOperation(value = "保存用户答案并且参与抽奖")
    @ResponseBody
    public String saveAnswerAndLotto(
            @RequestParam(value = "jsonData") String jsonData) {
        try {
            JSONObject json = new JSONObject(jsonData);
            //验证码验证
            String key = String.valueOf(json.get("key"));
            String text = String.valueOf(json.get("text"));
            String openId = String.valueOf(json.get("openId"));
            boolean pass = false;
            key = key.replaceFirst(":",":"+openId+"_");
            String captcha = redisTemplate.opsForValue().get(key);
            if (captcha != null && captcha.equals(text.toLowerCase())){
                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",questionnaireService.saveAnswerAndLotto(json,questionnaireUsers));
            }else{
                return write(-1, "验证码错误!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return write(-1, "操作失败!");
        }
    }
}

+ 0 - 63
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/questionnaire/QuestionnaireUsersController.java

@ -1,63 +0,0 @@
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;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
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;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
 * Created by Reece on 2017/3/14.
 */
@Controller
@RequestMapping(value = "/patient/questionnaireUser/")
@Api(description = "居民端问卷调查用户信息")
public class QuestionnaireUsersController extends BaseController {
    @Autowired
    private QuestionnaireUsersService questionnaireUsersService;
    @RequestMapping(value = "getUserInfo", method = RequestMethod.POST)
    @ApiOperation(value = "获取用户信息并且判断是否已经抽过奖")
    @ResponseBody
    public String getSurveySummary(@ApiParam(name = "openId")@RequestParam(value = "openId")String openId) {
        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,"用户信息保存失败!");
        }
    }
}

+ 0 - 81
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/patient/survey/PatientQuestionnaireController.java

@ -93,85 +93,4 @@ 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
    public String getAllQuestions(@ApiParam(name = "surveyTemplateCode",value = "问卷模板id")@RequestParam(value = "surveyTemplateCode",required = true)String surveyTemplateCode){
        try {
            JSONObject jsonObject = patientQuestionnaireService.getAllQuestions(surveyTemplateCode);
            return write(200, "查询成功!", "data", jsonObject);
        } catch (Exception e) {
            e.printStackTrace();
            return write(-1, "查询失败!");
        }
    }
    @RequestMapping(value = "/saveAnswerAndLotto", method = RequestMethod.POST)
    @ApiOperation(value = "保存用户答案并且参与抽奖")
    @ResponseBody
    public String saveAnswerAndLotto(
            @RequestParam(value = "jsonData") String jsonData) {
        try {
            JSONObject json = new JSONObject(jsonData);
            //验证码验证
            String key = String.valueOf(json.get("key"));
            String text = String.valueOf(json.get("text"));
            String openId = String.valueOf(json.get("openId"));
            boolean pass = false;
            key = key.replaceFirst(":",":"+openId+"_");
            String captcha = redisTemplate.opsForValue().get(key);
            if (captcha != null && captcha.equals(text.toLowerCase())){
                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,questionnaireUsers));
            }else{
                return write(-1, "验证码错误!");
            }
        } catch (Exception e) {
            e.printStackTrace();
            return write(-1, "操作失败!");
        }
    }
}