123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package com.yihu.wlyy.web.common.sms;
- import io.swagger.annotations.Api;
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- 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 com.yihu.wlyy.entity.doctor.profile.Doctor;
- import com.yihu.wlyy.entity.patient.Patient;
- import com.yihu.wlyy.repository.doctor.DoctorDao;
- import com.yihu.wlyy.repository.patient.PatientDao;
- import com.yihu.wlyy.service.common.SMSService;
- import com.yihu.wlyy.util.NetworkUtil;
- import com.yihu.wlyy.web.BaseController;
- @Controller
- @RequestMapping(value = "/common")
- @Api(description = "短信")
- public class SMSController extends BaseController {
- @Autowired
- public SMSService smsService;
- @Autowired
- private PatientDao patientDao;
- @Autowired
- private DoctorDao doctorDao;
- /**
- * 发送短信验证码接口
- * @param mobile 手机号
- * @param type 消息类型:1微信端注册,2微信端找回密码,3医生端找回密码,4患者登录,5医生登录 .6患者签约验证
- * @return
- */
- @RequestMapping(value = "captcha", method = RequestMethod.POST)
- @ResponseBody
- public String send(String mobile, int type, @RequestParam(required = false) String captchaToken) {
- try {
- if (type != 1 && type != 2 && type != 3 && type != 4 && type != 5&& type != 6) {
- return error(-1, "无效的请求!");
- }
- if (StringUtils.isEmpty(mobile)) {
- return error(-1, "手机号码不允许为空!");
- }
- if (type == 4) {
- // 登录时校验用户是否存在
- Patient patient = patientDao.findByMobile(mobile);
- if (patient == null) {
- return error(-1, "该手机号未注册!");
- }
- } else if (type == 5) {
- // 登录时校验用户是否存在
- Doctor doctor = doctorDao.findByMobile(mobile);
- if (doctor == null) {
- return error(-1, "该手机号未注册!");
- }
- }
- if (StringUtils.isNotEmpty(captchaToken)) {
- String ct = request.getSession().getAttribute("captchaToken").toString();
- if (!StringUtils.equalsIgnoreCase(captchaToken, ct)) {
- return error(-1, "图形验证码错误!");
- }
- }
- // 获取ip地址
- String ip = NetworkUtil.getIpAddress(request);
- if (StringUtils.isEmpty(ip)) {
- return error(-1, "无效的ip请求!");
- }
- String res = smsService.send(mobile, ip, type);
- if (StringUtils.equals(res, "ok")) {
- return write(200, "验证码短信已发送!");
- } else {
- return error(-1, res);
- }
- } catch (Exception e) {
- error(e);
- return error(-1, "短信发送失败!");
- }
- }
- /**
- * 验证手机验证码
- * @param type 消息类型:1微信端注册,2微信端找回密码,3医生端找回密码
- * @param mobile
- * @param captcha
- * @return
- */
- @RequestMapping(value = "check_captcha", method = RequestMethod.POST)
- @ResponseBody
- public String checkCaptcha(int type, String mobile, String captcha) {
- try {
- // 对验证码进行校验
- int res = smsService.check(mobile, type, captcha);
- switch (res) {
- case -2:
- return error(-1, "验证码已过期!");
- case -1:
- return error(-1, "验证码错误!");
- case 0:
- return error(-1, "验证码无效!");
- }
- return success("有效验证码!");
- } catch (Exception e) {
- error(e);
- return error(-1, "验证码检查失败!");
- }
- }
- }
|