Browse Source

眼科通修改密码

wangjun 4 năm trước cách đây
mục cha
commit
82a60395cd

+ 56 - 18
business/base-service/src/main/java/com/yihu/jw/doctor/service/BaseDoctorInfoService.java

@ -13,11 +13,14 @@ import com.yihu.jw.entity.hospital.dict.WlyyChargeDictDO;
import com.yihu.jw.entity.hospital.message.BaseBannerDoctorDO;
import com.yihu.jw.hospital.dict.WlyyChargeDictDao;
import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao;
import com.yihu.jw.hospital.ykyy.service.YkyyService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.util.http.HttpClientUtil;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.security.MD5;
@ -29,14 +32,12 @@ import org.checkerframework.checker.units.qual.A;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.*;
@Service
public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoctorDao> {
@ -59,6 +60,11 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
    private BaseDoctorRoleDao baseDoctorRoleDao;
    @Autowired
    private WlyyChargeDictDao wlyyChargeDictDao;
    @Value("${wechat.id}")
    private String wechatId;
    @Autowired
    private HttpClientUtil httpClientUtil;
    private static String yktUrl_90 = "http://www.yanketong.com:90/";
    /**
     * 查询医生信息分页列表.
     * @param city
@ -309,25 +315,57 @@ public class BaseDoctorInfoService extends BaseJpaService<BaseDoctorDO, BaseDoct
    public void updateStatus(String doctorId,String status)throws Exception{
        baseDoctorDao.updateStatus(doctorId,status);
    }
    /**修改眼科通密码信息
     *
     * @param doctorId
     * @param password
     * @param oldpassword
     * @return
     */
    public String resetYktPwdByPwd(String doctorId,String password,String oldpassword,String vercode){
        String response="";
        Map headermap = new HashMap();
        headermap.put("verifyCode",vercode);
        String url = yktUrl_90+"api/Share/PasswordReset?doctorId="+doctorId+"&password="+password+"&oldpassword="+oldpassword;
        response = httpClientUtil.get(url,"GBK",headermap);
        logger.info("修改眼科同密码后的信息:"+response);
        return response;
    }
    public Boolean updateDoctorPw(String id,String pw,String orgPw){
        BaseDoctorDO doctorDO = baseDoctorDao.findOne(id);
        if("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
            String res =resetYktPwdByPwd(null,id,pw,orgPw);
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(res)) {
                com.alibaba.fastjson.JSONObject object = com.alibaba.fastjson.JSONObject.parseObject(res);
                if (object.getString("code").equalsIgnoreCase("10000")) {
                    return true;
                } else {
                    return false;
                }
            }else {
                return false;
            }
        }else if ("xm_zsyy_wx".equalsIgnoreCase(wechatId)){
            BaseDoctorDO doctorDO = baseDoctorDao.findOne(id);
        String orgPwMd5 = MD5.md5Hex(orgPw + "{" + doctorDO.getSalt() + "}");
        if(!orgPwMd5.equals(doctorDO.getPassword())){
            return false;
        }
        //认证信息设置
        String salt = randomString(5);
        doctorDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
        doctorDO.setSalt(salt);
            String orgPwMd5 = MD5.md5Hex(orgPw + "{" + doctorDO.getSalt() + "}");
            if(!orgPwMd5.equals(doctorDO.getPassword())){
                return false;
            }
            //认证信息设置
            String salt = randomString(5);
            doctorDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
            doctorDO.setSalt(salt);
        baseDoctorDao.save(doctorDO);
            baseDoctorDao.save(doctorDO);
        //设置更新时间
        saveDoctorPwlimitDate(id);
            //设置更新时间
            saveDoctorPwlimitDate(id);
            return true;
        }else {
            return false;
        }
        return true;
    }
    public String randomString(int length) {

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

@ -60,7 +60,7 @@ public interface PrescriptionDao extends PagingAndSortingRepository<WlyyPrescrip
    List<WlyyPrescriptionDO> findByOutPatientIdList(String outpatientId);
    List<WlyyPrescriptionDO> findByDoctorAndCreateTimeAndRemark(String doctor,Date createTime,String remark);
    @Query("select a from WlyyPrescriptionDO a where a.checkStatus in (0,1,3) and a.createTime <?1")
    @Query("select a from WlyyPrescriptionDO a where a.checkStatus in (0,1,3) and a.createTime <?1 and a.status <30 and a.status>=0")
    List<WlyyPrescriptionDO> findListByCheckStatus(Date createTime);
}

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

@ -32,6 +32,7 @@ import com.yihu.utils.security.MD5;
import com.yihu.utils.security.RSAUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.collections.map.HashedMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -1382,17 +1383,33 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    }
    @RequestMapping(value = "/oauth/findDoctorPw", method = RequestMethod.POST)
    public Envelop findDoctorPw(String mobile,String client_id,String captcha,String pw){
        if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
            //验证码正确
        } else {
            return ObjEnvelop.getError("验证码错误!");
        }
        String rs = registerService.updateDoctorPw(mobile,pw);
        if("ok".equals(rs)){
            return ObjEnvelop.getSuccess("修改成功!");
        }
        if("xm_ykyy_wx".equalsIgnoreCase(wechatId)){
            String response = ykyyService.resetYktPwd(mobile,pw,captcha);
            if (org.apache.commons.lang3.StringUtils.isNoneBlank(response)){
                JSONObject object = JSONObject.parseObject(response);
                if (object.getString("code").equalsIgnoreCase("10000")){
                    return ObjEnvelop.getSuccess("修改成功!");
                }else {
                    return ObjEnvelop.getSuccess("修改失败!");
                }
            }else {
                return ObjEnvelop.getError("手机号未注册!");
            }
        }else if ("xm_zsyy-wx".equalsIgnoreCase(wechatId)){
            if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
                //验证码正确
            } else {
                return ObjEnvelop.getError("验证码错误!");
            }
            String rs = registerService.updateDoctorPw(mobile,pw);
            if("ok".equals(rs)){
                return ObjEnvelop.getSuccess("修改成功!");
            }
        return ObjEnvelop.getError("手机号未注册!");
            return ObjEnvelop.getError("手机号未注册!");
        }else {
            return ObjEnvelop.getError("暂未开放");
        }
    }
    @RequestMapping(value = "/oauth/updateDoctorMoble", method = RequestMethod.POST)
@ -1619,5 +1636,19 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        }
        return ObjEnvelop.getError("手机号未注册!");
    }
    /*
     *眼科通修改密码发送的验证码
     */
    @RequestMapping(value = "/oauth/yktGetResetCode", method = RequestMethod.POST)
    public ObjEnvelop yktGetResetCode(@ApiParam(name = "loginid", value = "注册的电话号码", required = true)
                                      @RequestParam(value = "loginid",required = true)String loginid,
                                      @ApiParam(name = "type", value = "验证码类型 1、患者注册 2、患者找回密码 3、医生注册 4、医生找回密码", required = true)
                                      @RequestParam(value = "type",required = false)String type){
        try {
            return ObjEnvelop.getSuccess("ok",ykyyService.getResetCode(type,loginid));
        } catch (Exception e) {
            return ObjEnvelop.getError(e.getMessage());
        }
    }
}

+ 39 - 0
server/svr-authentication/src/main/java/com/yihu/jw/security/service/YkyyService.java

@ -16,6 +16,9 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.Map;
/**
 * 眼科医院
 * Created by yeshijie on 2020/4/24.
@ -35,6 +38,7 @@ public class YkyyService {
    @Autowired
    private BasePatientDao patientDao;
    private static String yktUrl = "http://www.yanketong.com:133/api/";
    /**
@ -106,6 +110,41 @@ public class YkyyService {
        logger.info("眼科通验证码:"+response);
        return response;
    }
    /**
     * 获取眼科通修改密码验证码
     * @param type
     * @param phone
     * @return
     */
    public String getResetCode(String type,String phone) throws  Exception{
        String response="";
        String url = yktUrl1+"api/Doctor/GetVerificationCode";
        Map param = new HashMap();
        param.put("loginid",phone);
        param.put("type",type);
        logger.info("请求参数:"+param.toString());
        response = httpClientUtil.httpPost(url,param);
        logger.info("眼科通验证码:"+response);
        return response;
    }
    /**修改眼科通密码信息
     *
     * @param tel
     * @param password
     * @param vercode
     * @return
     */
    public String resetYktPwd(String tel,String password,String vercode){
        String response="";
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("loginid",tel);
        jsonObject.put("password",password);
        jsonObject.put("verCode",vercode);
        String url = yktUrl1+"api/Doctor/ResetPassword";
        response = httpClientUtil.sendPost(url,jsonObject.toJSONString());
        logger.info("修改眼科同密码后的信息:"+response);
        return response;
    }
    /**
     * 增加家庭成员