Explorar o código

物联网bug修复

liubing %!s(int64=2) %!d(string=hai) anos
pai
achega
11b68eb1aa

+ 12 - 3
gateway/ag-basic/src/main/java/com/yihu/jw/gateway/filter/BasicZuulFilter.java

@ -273,7 +273,10 @@ public class BasicZuulFilter extends ZuulFilter {
            if (resourceId.equals("/**")) {
                System.out.println("/**"+true);
                //判断用户操作间隔
                if (null!=platform&&"city-ihealth-admin-web".equalsIgnoreCase(platform)){
                if (null!=platform&&(
                        "city-ihealth-admin-web".equalsIgnoreCase(platform)||
                        "wlyy-iot-web".equalsIgnoreCase(platform)
                )){
                    //判断用户操作间隔
                    String userId = userAgent.getUID();
                    System.out.println(userId);
@ -293,7 +296,10 @@ public class BasicZuulFilter extends ZuulFilter {
                    && (path.length() == resourceId.length() || path.charAt(resourceId.length()) == '/')) {
                System.out.println("158"+true);
                //判断用户操作间隔
                if (null!=platform&&"city-ihealth-admin-web".equalsIgnoreCase(platform)){
                if (null!=platform&&(
                        "city-ihealth-admin-web".equalsIgnoreCase(platform)||
                        "wlyy-iot-web".equalsIgnoreCase(platform)
                )){
                    //判断用户操作间隔
                    String userId = userAgent.getUID();
                    System.out.println(userId);
@ -307,7 +313,10 @@ public class BasicZuulFilter extends ZuulFilter {
            }
        }
        if (null!=platform&&"city-ihealth-admin-web".equalsIgnoreCase(platform)){
        if (null!=platform&&(
                "city-ihealth-admin-web".equalsIgnoreCase(platform)||
                "wlyy-iot-web".equalsIgnoreCase(platform)
        )){
            //判断用户操作间隔
            String userId = userAgent.getUID();
            System.out.println(userId);

+ 1 - 1
server/svr-authentication/src/main/java/com/yihu/jw/security/oauth2/provider/endpoint/WlyyIotLoginEndpoint.java

@ -78,7 +78,7 @@ public class WlyyIotLoginEndpoint {
        }
        //发送短信获取验证码
        String captcha = wlyyRedisVerifyCodeService.getCodeNumber();
        String result = iotSMSService.IotSendSMS(mobile, "您好,你的手机注册短信验证码是:" + captcha + ",5分钟内有效。");
        String result = iotSMSService.IotSendSMS(mobile, "您好,你的手机短信验证码是:" + captcha + ",5分钟内有效。");
        if (result.equals("success")) {
            Captcha _captcha = new Captcha();

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

@ -168,6 +168,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private String wechatId;
    @Value("${wechat.id}")
    private String wxId;//微信id
    @Value("${spring.profiles}")
    private String springProfile;//环境
    @Value("${kick.eachOther}")
    private String kickEachOther;
    @Autowired
@ -188,6 +190,8 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
    private BaseDoctorDao baseDoctorDao;
    @Resource
    private WechatService wechatService;
    @Autowired
    private UserService userService;
    @PostConstruct
    private void init() {
@ -429,7 +433,11 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
            }
            //账户密码登录的才验证密码强度
        if ("hz_yyyzh_wx".equals(wechatId)) {
        if ("hz_yyyzh_wx".equals(wechatId)||
                "iottest".equals(springProfile)||//物联网
                "iotprod".equals(springProfile)||//物联网
                "iotprodIn".equals(springProfile)//物联网
        ) {
            String grant_type = parameters.get("grant_type");
            if ("password".equals(grant_type)) {
                if (!testPwd(parameters.get("password"))) {
@ -3095,6 +3103,37 @@ public class WlyyLoginEndpoint extends AbstractEndpoint {
        }
    }
    @RequestMapping(value = "/oauth/updateUserPw", method = RequestMethod.POST)
    @ApiOperation("修改后台管理员密码")
    public Envelop updateUserPw(String mobile,String client_id,String captcha,String pw) throws Exception{
        if ("iottest".equals(springProfile)||//物联网
                "iotprod".equals(springProfile)||//物联网
                "iotprodIn".equals(springProfile)//物联网
        ){
            WlyyHospitalSysDictDO wlyyHospitalSysDictDO = wlyyhospitalSysdictDao.findDictById("isNeedSMS");
            if (wlyyHospitalSysDictDO!=null&&!StringUtils.isEmpty(wlyyHospitalSysDictDO.getDictValue())){
                if (captcha.equalsIgnoreCase(wlyyHospitalSysDictDO.getDictValue())){
                }else {
                    return ObjEnvelop.getError("验证码错误!");
                }
            }else if (wlyyRedisVerifyCodeService.verification(client_id, mobile, captcha)) {
                    //验证码正确
            } else {
                return ObjEnvelop.getError("验证码错误!");
            }
            if (!testPwd(pw)) {
                throw new PwdException("密码强度低,密码长度不低于8位且应包含字母数字特殊字符3种");
            }
            String rs = userService.updateUserDoPw(mobile,pw);
            if("ok".equals(rs)){
                return ObjEnvelop.getSuccess("修改成功!");
            }
            return ObjEnvelop.getError("手机号未注册!");
        }
        return ObjEnvelop.getError("未知错误!");
    }
    /**
     * 登陆

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

@ -9,6 +9,7 @@ import com.yihu.jw.patient.util.ConstantUtils;
import com.yihu.jw.security.dao.iot.UserDao;
import com.yihu.utils.security.MD5;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
@ -31,6 +32,8 @@ public class UserService {
    private ObjectMapper objectMapper;
    @Autowired
    private UserDao userDao;
    @Autowired
    private StringRedisTemplate redisTemplate;
    //用手机号注册账号
    public UserDO registerWithMobile(UserDO userDO) {
@ -101,4 +104,27 @@ public class UserService {
            return false;
        }
    }
    public String updateUserDoPw(String mobile,String pw){
        UserDO userDO = userDao.findByMobile(mobile);
        if (null!=userDO){
            String salt = randomString(5);
            userDO.setPassword(MD5.md5Hex(pw + "{" + salt + "}"));
            userDO.setSalt(salt);
            userDao.save(userDO);
            saveUserPwlimitDate(userDO.getId());
            return "ok";
        }
        return "false";
    }
    public boolean saveUserPwlimitDate(String user){
        String key = "base:authPw:user:" + user;
        com.alibaba.fastjson.JSONObject valueJson = new com.alibaba.fastjson.JSONObject();
        valueJson.put("updateTime",new Date().getTime());
        valueJson.put("isChanged",true);
        redisTemplate.opsForValue().set(key,valueJson.toJSONString());
        return true;
    }
}

+ 12 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/common/FileUploadController.java

@ -59,6 +59,8 @@ public class FileUploadController extends EnvelopRestEndpoint {
    private String isClose;
    @Value("${testPattern.remote_inner_url}")
    private String remote_inner_url;
    @Value("${spring.profiles}")
    private String springProfile;//环境
    @Autowired
    private ObjectMapper objectMapper;
@ -195,6 +197,16 @@ public class FileUploadController extends EnvelopRestEndpoint {
            /*@ApiParam(value = "jsonData", required = true)
            @RequestBody MutilFileInfo param, HttpServletResponse response, HttpServletRequest request*/){
        try {
            if ("iottest".equals(springProfile)||//物联网
                    "iotprod".equals(springProfile)||//物联网
                    "iotprodIn".equals(springProfile)//物联网
            ){
                String originalFileName = file.getOriginalFilename();
                String fileType = originalFileName.substring(originalFileName.lastIndexOf(".") + 1).toLowerCase();
                if (org.apache.commons.lang3.StringUtils.isBlank(fileType) || !"doc、docx、pdf、xls、xlsx、jpg、jpeg、png".contains(fileType)) {
                    return ObjEnvelop.getError("附件文件格式不正确");
                }
            }
            UploadVO uploadVO = new UploadVO();
            if (isClose.equalsIgnoreCase("1")){
                Map<String, Object> map = fileUploadService.uploadImg(file);

+ 11 - 3
svr/svr-base/src/main/java/com/yihu/jw/base/service/user/UserService.java

@ -89,7 +89,8 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
    @Value("${wechat.flag}")
    private boolean flag;
    @Value("${spring.profiles}")
    private String springProfile;//环境
    public UserDO registerWithIdcard(UserDO userDO) {
        userDO.setSalt(randomString(5));
@ -752,9 +753,16 @@ public class UserService extends BaseJpaService<UserDO, UserDao> {
        user.setEnabled(true);
        user.setLocked(false);
        user.setLoginFailureCount(0);
        user.setPassword(MD5.md5Hex(password + "{" + user.getSalt() + "}"));
        if ("iottest".equals(springProfile)||//物联网
             "iotprod".equals(springProfile)||//物联网
             "iotprodIn".equals(springProfile)//物联网
        ) {
            user.setPassword(MD5.md5Hex("a"+password+"*" + "{" + user.getSalt() + "}"));
        }else {
            user.setPassword(MD5.md5Hex(password + "{" + user.getSalt() + "}"));
        }
        userDao.save(user);
        
        saveUserPwlimitDate(userId);
        result.put("response",ConstantUtils.SUCCESS);
        result.put("msg", password);
        return result;