LoginController.java 18.9 KB
Newer Older
yuquan.zhu committed
1 2 3 4
package cn.timer.api.controller;

import java.io.IOException;
import java.util.ArrayList;
5
import java.util.Date;
yuquan.zhu committed
6 7 8 9 10 11 12
import java.util.List;
import java.util.stream.Stream;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
yuquan.zhu committed
13
import org.springframework.beans.factory.annotation.Value;
yuquan.zhu committed
14 15
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
yuquan.zhu committed
16
import org.springframework.web.bind.annotation.GetMapping;
yuquan.zhu committed
17 18 19 20 21 22 23 24
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.additional.query.impl.LambdaQueryChainWrapper;
25
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
yuquan.zhu committed
26 27 28 29 30 31

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import cn.timer.api.bean.qyzx.QyzxEmpEntAsso;
import cn.timer.api.bean.qyzx.QyzxEmpLogin;
import cn.timer.api.bean.qyzx.QyzxEntInfoM;
32 33
import cn.timer.api.bean.qyzx.QyzxSms;
import cn.timer.api.bean.qyzx.businessService.QyzxRemainingQuantity;
yuquan.zhu committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
import cn.timer.api.bean.yggl.YgglMainEmp;
import cn.timer.api.bean.zzgl.ZzglAuth;
import cn.timer.api.bean.zzgl.ZzglBmgwM;
import cn.timer.api.config.annotation.CurrentUser;
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.config.enums.CommonEnum;
import cn.timer.api.dao.qyzx.QyzxEmpEntAssoMapper;
import cn.timer.api.dao.qyzx.QyzxEmpLoginMapper;
import cn.timer.api.dao.zzgl.ZzglBmgwMMapper;
import cn.timer.api.dto.login.QysDto;
import cn.timer.api.dto.qyzx.EntRegisterDto;
import cn.timer.api.utils.Md5;
import cn.timer.api.utils.Result;
import cn.timer.api.utils.ResultUtil;
import cn.timer.api.utils.UserIp;
邓实川 committed
49
import cn.timer.api.utils.aliyun.AliyunSMS;
yuquan.zhu committed
50 51 52 53 54 55 56 57
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

@RestController
@Api(tags = "1.0登录注册")
@Transactional
@RequestMapping(value = "/login", produces = { "application/json" })
public class LoginController {
58

yuquan.zhu committed
59 60
	@Value("${configtest.patht}")
	public String port;
61

yuquan.zhu committed
62
	@Autowired
yuquan.zhu committed
63 64 65 66 67 68 69
	private HttpSession session;

	@Autowired
	private QyzxEmpLoginMapper qyzxEmpLoginMapper;

	@Autowired
	private QyzxEmpEntAssoMapper qyzxEmpEntAssoMapper;
70

yuquan.zhu committed
71 72 73
	// @Autowired
	// private DataSourceTransactionManager transactionManager;

yuquan.zhu committed
74 75 76 77 78
	@GetMapping(value = "/testPro")
	public Result<String> testPro() {
		System.out.print(port);
		return ResultUtil.success("configtest:" + port);
	}
79

yuquan.zhu committed
80 81 82 83 84 85 86 87
	/**
	 * 发送验证码
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 */
	@PostMapping(value = "/sendcode")
	@ApiOperation(value = "1.发送验证码", httpMethod = "POST", notes = "接口发布说明")
88
	@ApiOperationSupport(order = 1)
yuquan.zhu committed
89
	public Result<String> sendCode(@RequestBody EntRegisterDto entRegisterDto) {
90 91 92 93 94 95 96 97 98 99 100 101 102
		
		String phone = entRegisterDto.getPhone();
		
		Integer orgCode = QyzxEmpLogin.builder().build()
				.selectOne(new LambdaQueryWrapper<QyzxEmpLogin>().eq(QyzxEmpLogin::getPhone, phone)).getOrgId();
		QyzxRemainingQuantity quantity = QyzxRemainingQuantity.builder().build()
				.selectOne(new LambdaQueryWrapper<QyzxRemainingQuantity>()
						.eq(QyzxRemainingQuantity::getOrgCode, orgCode)
						.orderByAsc(QyzxRemainingQuantity::getExpireDate));
		if (quantity == null || quantity.getRemainder() == null || quantity.getRemainder() <= 0) { //判断充了钱没
			return ResultUtil.error("请充值后使用短信功能");
		}

yuquan.zhu committed
103 104 105 106 107
		// 6位随机数验证码
		try {
			Integer code = (int) ((Math.random() * 9 + 1) * 100000);

			AliyunSMS aliyunSMS = new AliyunSMS();
108
			
yuquan.zhu committed
109 110 111 112
			if (phone == null || "".equals(phone)) {
				phone = entRegisterDto.getUsername();
				entRegisterDto.setPhone(phone);
			}
113
			JSONObject j = aliyunSMS.authCode(entRegisterDto, entRegisterDto.getTc(), code);
114
			
yuquan.zhu committed
115 116 117 118 119
			// 获取当前日期的字符串格式
			String today = DateUtil.today();
			// yyyy-MM-dd
			today = today.replace("-", "");

120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
			Thread.sleep(500);
			JSONObject jsonObject = (JSONObject) JSONObject
					.parseObject(new AliyunSMS().QuerySendDetails(phone, today, j.getString("BizId")))
					.getJSONObject("SmsSendDetailDTOs").getJSONArray("SmsSendDetailDTO").get(0);
			String templateCode = jsonObject.getString("TemplateCode");
			String phoneNum = jsonObject.getString("PhoneNum");
			String content = jsonObject.getString("Content");
			String sendStatus = jsonObject.getString("SendStatus");
			String sendDate = jsonObject.getString("SendDate");

			QyzxSms qyzxSms = new QyzxSms();
			qyzxSms.setContent(content);
			qyzxSms.setCreateTime(new Date());
			qyzxSms.setMessageType(entRegisterDto.getTc());
			qyzxSms.setPhone(phoneNum);
			qyzxSms.setOrgCode(orgCode);
			qyzxSms.insert();

			String message = j.getString("Message");
yuquan.zhu committed
139 140 141 142 143
			if ("OK".equals(message)) {
				session.setAttribute(phone, code);
				// redisTemplate.set(phone, code);
				// redisTemplate.expire(phone, 60);

144
				return ResultUtil.data("发送验证码成功");
yuquan.zhu committed
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
			} else {
				return ResultUtil.error("发送验证码失败");
			}
		} catch (Exception e) {
			e.printStackTrace();
			return ResultUtil.error("发送验证码失败");
		}
	}

	/**
	 * 手机号码认证
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 */
	@PostMapping(value = "/authentication")
	@ApiOperation(value = "2.手机号码认证", httpMethod = "POST", notes = "接口发布说明")
162
	@ApiOperationSupport(order = 2)
yuquan.zhu committed
163 164
	public Result<String> authentication(@RequestBody EntRegisterDto entRegisterDto) {
		String phone = entRegisterDto.getPhone();
165
		String code = entRegisterDto.getCode().toString();
yuquan.zhu committed
166
		// String codeRedis = (String) redisTemplate.get(phone);
167
		Integer codeRedis = (Integer) session.getAttribute(phone);
yuquan.zhu committed
168

169
		if (code == null || !code.equals(codeRedis.toString())) {
yuquan.zhu committed
170 171 172 173 174 175 176 177 178 179 180
			return ResultUtil.error("验证码不符");
		}
		return ResultUtil.success("验证码正确");
	}

	/**
	 * 手机号码认证
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 * @throws IOException
181
	 *//*
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
		 * @PostMapping(value = "/test")
		 * 
		 * @ApiOperation(value = "3.测试", httpMethod = "POST", notes = "接口发布说明")
		 * 
		 * @ApiOperationSupport(order = 3) public void test(HttpServletRequest request,
		 * HttpServletResponse res) throws IOException {
		 * 
		 * res.setHeader("content-type","text/html;charset=UTF-8");
		 * res.setHeader("selfHeader","selfHeaderValue"); //
		 * res.addHeader("response_code", "123"); //
		 * res.setContentType("application/octet-stream"); //
		 * res.addHeader("Content-Length", "0");
		 * 
		 * res.addHeader("response_code", "100"); res.addHeader("trans_id", "");
		 * res.addHeader("cmd_code", "NO com");
		 * 
		 * res.setContentType("application/octet-stream");
		 * res.addHeader("Content-Length", "0");
		 * 
		 * res.flushBuffer(); // response.addHeader("response_code",
		 * "ERROR_INVALID_LIB_NAME"); //
		 * response.setContentType("application/octet-stream"); //
		 * response.addHeader("Content-Length", "0"); // response.flushBuffer();
		 * System.out.println(111); }
		 */
207 208 209 210 211 212 213 214 215 216 217 218 219 220

	@PostMapping(value = "/updatePwd")
	@ApiOperation(value = "4.修改密码(新)", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 4)
	public Result<String> updatepwd(@RequestBody EntRegisterDto entRegisterDto) {
		String oldPwd = entRegisterDto.getOldPwd();// 输入的原密码
		String pw = entRegisterDto.getPw();// 输入的新密码
		String phone = entRegisterDto.getPhone();// 手机号
		String code = entRegisterDto.getCode();// 验证码
		Integer type = entRegisterDto.getPwUpdateType();// 验证方式
		QyzxEmpLogin qyzxEmpLogin = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
				.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();// 员工登录表
		String dbPwd = qyzxEmpLogin.getPw();// 数据库原密码
		if (type == 1) {
221 222 223 224 225 226
			if (!Md5.md5(oldPwd).equals(dbPwd)) {
				return ResultUtil.error("原密码验证失败");
			}
			if (pw.equals(oldPwd)) {
				return ResultUtil.error("新密码与原密码相同,请修改后重试!");
			}
227 228 229 230 231 232 233 234 235 236 237 238 239
		} else {
			Object codeRedis = session.getAttribute(phone);
			if (!code.equals(codeRedis.toString())) {
				return ResultUtil.error("短信验证码错误");
			}
			if (Md5.md5(pw).equals(dbPwd)) {
				return ResultUtil.error("新密码与原密码相同,请修改后重试!");
			}
		}
		qyzxEmpLogin.setPw(Md5.md5(pw));
		qyzxEmpLogin.updateById();
		return ResultUtil.success("修改成功");
	}
yuquan.zhu committed
240 241 242 243 244 245 246 247

	/**
	 * 修改密码
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 */
	@PostMapping(value = "/updatepassword")
248 249
	@ApiOperation(value = "4.修改密码", httpMethod = "POST", notes = "接口发布说明")
	@ApiOperationSupport(order = 4)
250
	public Result<String> updatepassword(@RequestBody EntRegisterDto entRegisterDto) {
yuquan.zhu committed
251 252
		String phone = entRegisterDto.getPhone();
		String pw = entRegisterDto.getPw();
253 254
		String code = entRegisterDto.getCode();
		if (entRegisterDto.getPwUpdateType() != 2) {
255

256
			// String codeRedis =redisTemplate.get(phone).toString();
257
			String codeRedis = session.getAttribute(phone).toString();
258 259 260
			if (code == null) {
				return ResultUtil.error("请填写验证码");
			}
261
			if (!code.toString().equals(codeRedis)) {
262 263 264 265 266 267 268 269 270
				return ResultUtil.error("验证码不符");
			}
			QyzxEmpLogin qyzxEmpLogin = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
					.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
			if (qyzxEmpLogin != null) {
				qyzxEmpLogin.setPhone(phone);
				qyzxEmpLogin.setPw(Md5.md5(pw));
				qyzxEmpLogin.updateById();
				return ResultUtil.success("修改密码成功");
271
			} else {
272 273
				return ResultUtil.error("修改密码失败,查找不到该人员!");
			}
274
		} else {
275 276 277
			if (code == null) {
				return ResultUtil.error("请填写原密码");
			}
278
			if (pw.trim().equals(code.trim())) {
279 280 281
				return ResultUtil.error("新密码与原密码相同!请更改重试");
			}
			QyzxEmpLogin qyzxEmpLogin = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
282
					.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
283
			if (qyzxEmpLogin != null) {
284
				if (qyzxEmpLogin.getPw().equals(Md5.md5(pw))) {
285
					qyzxEmpLogin.setPhone(phone);
286
					qyzxEmpLogin.setPw(Md5.md5(code));
287 288
					qyzxEmpLogin.updateById();
					return ResultUtil.success("修改密码成功");
289
				} else {
290 291
					return ResultUtil.error("原密码有误!请核对重试");
				}
292

293 294
			}
			return ResultUtil.error("修改密码失败,查找不到该人员!");
yuquan.zhu committed
295
		}
296
		// return ResultUtil.error("修改密码失败");
yuquan.zhu committed
297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313
	}

	/**
	 * 修改手机号/用户名
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 */
	@PostMapping(value = "/updatephone")
	@ApiOperation(value = "修改手机号/用户名", httpMethod = "POST", notes = "接口发布说明")
	public Result<String> updatephone(@CurrentUser UserBean userBean, @RequestBody EntRegisterDto entRegisterDto) {

		/*
		 * 登录->发送验证码 (参数:新手机号 新手机号验证码 )-> 验证 -> 修改手机号成功 密码初始化为123456 ->登出-> 重新登录
		 */
		Integer empNum = userBean.getEmpNum();
		String phone = entRegisterDto.getPhone();
314 315 316
		String code = entRegisterDto.getCode();
		// String codeRedis = redisTemplate.get(phone).toString();
		String codeRedis = (String) session.getAttribute(phone);
yuquan.zhu committed
317 318 319 320 321 322 323 324

		if (code == null || !code.toString().equals(codeRedis)) {
			return ResultUtil.error("验证码不符/失效");
		}
		QyzxEmpLogin qyzxEmpLogin1 = qyzxEmpLoginMapper.selectById(empNum);
		if (qyzxEmpLogin1 != null) {

			qyzxEmpLogin1.setPhone(phone);
325
			qyzxEmpLogin1.setPw(Md5.md5("123456"));// 密码初始化
yuquan.zhu committed
326 327 328 329 330 331 332 333 334 335 336 337 338 339 340

			qyzxEmpLogin1.updateById();
			return ResultUtil.success("修改手机号/用户名成功");
		}
		return ResultUtil.error("修改手机号/用户名失败");
	}

	/**
	 * 注册企业
	 * 
	 * @param entRegisterDto
	 * @return
	 */
	@PostMapping(value = "/register")
	@ApiOperation(value = "注册企业", httpMethod = "POST", notes = "接口发布说明")
341
	public Result<String> register(@RequestBody EntRegisterDto entRegisterDto) {
yuquan.zhu committed
342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382
		// 事务回滚
		/*
		 * DefaultTransactionDefinition def = new DefaultTransactionDefinition();
		 * def.setName("register");
		 * def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
		 * TransactionStatus status = transactionManager.getTransaction(def);
		 */
		try {
			String username = entRegisterDto.getUsername();
			String phone = entRegisterDto.getPhone();
			if (phone == null || phone.equals("") && username == null || username.equals("")) {
				return ResultUtil.error("请输入手机号和用户名!");
			}
			if (phone == null || phone.equals(""))
				phone = username;
			if (username == null || username.equals(""))
				username = phone;
			String name = entRegisterDto.getName();
			String pw = entRegisterDto.getPw();
			QyzxEmpLogin login = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
					.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
			if (login != null) {
				Integer count = new LambdaQueryChainWrapper<QyzxEmpEntAsso>(qyzxEmpEntAssoMapper)
						.eq(QyzxEmpEntAsso::getEmpNum, login.getId())
						.eq(QyzxEmpEntAsso::getUserType, CommonEnum.U_TYPE_ADMIN.getType()).count();

				if (count > 0) {
					return ResultUtil.error("已注册过企业");
				}
			}

			// 企业信息
			QyzxEntInfoM qyzxEntInfoM = QyzxEntInfoM.builder().name(name).registerTime(DateUtil.date()).build();
			boolean b1 = qyzxEntInfoM.insert();
			if (!b1) {
				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
				return ResultUtil.error("注册企业失败1");
			}

			if (login == null) {
				// 员工信息
383 384 385
				QyzxEmpLogin qyzxEmpLogin = QyzxEmpLogin.builder().phone(phone).pw(Md5.md5(pw))
						.sts(CommonEnum.U_STS_ON.getType()).orgId(qyzxEntInfoM.getId()).regTime(DateUtil.date())
						.endTime(DateUtil.nextMonth()).build();
yuquan.zhu committed
386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425
				boolean b2 = qyzxEmpLogin.insert();
				if (!b2) {
					TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
					return ResultUtil.error("注册企业失败2");
				}

				boolean b4 = YgglMainEmp.builder().orgCode(qyzxEntInfoM.getId()).empNum(qyzxEmpLogin.getId())
						.name(username).build().insert();
				if (!b4) {
					TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
					return ResultUtil.error("注册企业失败3");
				}

			}

			// 员工企业关联表
			QyzxEmpEntAsso qyzxEmpEntAsso = QyzxEmpEntAsso.builder().empNum(login.getId()).orgCode(qyzxEntInfoM.getId())
					.userType(CommonEnum.U_TYPE_ADMIN.getType()).build();
			boolean b3 = qyzxEmpEntAsso.insert();
			if (!b3) {
				TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
				return ResultUtil.error("注册企业失败4");
			}

			return ResultUtil.success("注册企业成功");
		} catch (Exception e) {
			TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
			e.printStackTrace();
			return ResultUtil.error("注册异常");
		}
	}

	/**
	 * 验证码登录
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 */
	@PostMapping(value = "/code")
	@ApiOperation(value = "验证码登录", httpMethod = "POST", notes = "接口发布说明")
426
	public Result<QyzxEmpLogin> codelogin(@RequestBody EntRegisterDto entRegisterDto, HttpServletRequest request) {
yuquan.zhu committed
427

428
		String code = entRegisterDto.getCode();
yuquan.zhu committed
429
		String phone = entRegisterDto.getPhone();
430 431

		// Object codeRedis = redisTemplate.get(phone);
432
		Integer codeRedis = (Integer) session.getAttribute(phone);
yuquan.zhu committed
433

434
		if (codeRedis == null || !code.equals(codeRedis.toString()))
yuquan.zhu committed
435 436 437 438
			return ResultUtil.error("验证码不符");

		QyzxEmpLogin qyzxEmpLogin1 = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
				.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
439 440

		return loginhan(qyzxEmpLogin1, request);
yuquan.zhu committed
441 442 443 444 445
	}

	@Autowired
	ZzglBmgwMMapper zzglBmgwMMapper;

446 447 448
	private Result<QyzxEmpLogin> loginhan(QyzxEmpLogin qyzxEmpLogin1, HttpServletRequest request) {
		if (qyzxEmpLogin1 == null)
			return ResultUtil.error("帐号不存在!");
yuquan.zhu committed
449 450 451 452 453 454 455 456
		String ip;
		try {
			ip = UserIp.getIpAddr(request);
			qyzxEmpLogin1.setIp(ip);
		} catch (Exception e) {
			e.printStackTrace();
		}
		List<QysDto> qys = qyzxEmpLoginMapper.getQys(qyzxEmpLogin1.getId());
457 458
		if (qys.size() == 0)
			return ResultUtil.error("没有任何公司可以查看!");
yuquan.zhu committed
459
		qyzxEmpLogin1.setQys(qys);
460 461 462 463 464 465
		QysDto ctrl = qys.get(0);
		if (qyzxEmpLogin1.getOrgId() != null) {
			Stream<QysDto> s = qys.stream()
					.filter(item -> item.getStatus() == 1 && qyzxEmpLogin1.getOrgId().equals(item.getId()));
			if (s != null) {
				ctrl = s.findFirst().get();
yuquan.zhu committed
466
			}
467 468
		}
		if (ctrl.getStatus() == null || ctrl.getStatus().equals(0)) {
yuquan.zhu committed
469 470 471
			return ResultUtil.error("帐号被禁用");
		}
		qyzxEmpLogin1.setOrgId(ctrl.getId());
472
		@SuppressWarnings("unused")
yuquan.zhu committed
473
		String phone = qyzxEmpLogin1.getPhone();
474 475
		if (CommonEnum.U_TYPE_ADMIN.getType().equals(ctrl.getUserType())
				|| CommonEnum.U_TYPE_C_ADMIN.getType().equals(ctrl.getUserType())) {
yuquan.zhu committed
476 477 478 479 480 481 482 483 484 485 486
		} else {
			// 获取权限
			ArrayList<Integer> list = new ArrayList<Integer>();
			List<ZzglBmgwM> zzglBmgwMs = new LambdaQueryChainWrapper<ZzglBmgwM>(zzglBmgwMMapper)
					.eq(ZzglBmgwM::getOrgCode, qyzxEmpLogin1.getOrgId()).list();
			// 传入的部门岗位是登录者的岗位id.获取的list中只有一个元素,不必要
			ZzglBmgwM.getupDepts(list, ctrl.getBmgwId(), zzglBmgwMs);

			if (list != null && list.size() > 0) {
				LambdaQueryWrapper<ZzglAuth> wp = new LambdaQueryWrapper<>();
				wp.select(ZzglAuth::getMenuId).eq(ZzglAuth::getOrgCode, qyzxEmpLogin1.getOrgId())
487
						.and(i -> i.in(ZzglAuth::getBmgwId, list.toArray()));
yuquan.zhu committed
488 489 490 491 492 493 494 495
				List<ZzglAuth> zas = ZzglAuth.builder().build().selectList(wp);
				List<String> menus = new ArrayList<>();
				zas.stream().forEach(o -> menus.add(o.getMenuId()));
				qyzxEmpLogin1.setMenus(menus);
			}
		}
		// 可操作企业

496
		// 需要更新最后一次登陆信息
yuquan.zhu committed
497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512
		// 用户信息缓存
		session.setAttribute("ui", qyzxEmpLogin1);
		// redisTemplate.set("loginUser:" + phone, session.getId());
		// redisTemplate.set("empNum:" + session.getId(), qyzxEmpLogin1.getId());
		// redisTemplate.set("orgCode:" + session.getId(), qyzxEmpLogin1.getOrgId());
		return ResultUtil.data(qyzxEmpLogin1);
	}

	/**
	 * 密码登录
	 * 
	 * @param qyzxEmpLogin
	 * @return
	 */
	@PostMapping(value = "/password")
	@ApiOperation(value = "密码登录", httpMethod = "POST", notes = "接口发布说明")
513
	public Result<QyzxEmpLogin> passwordlogin(@RequestBody EntRegisterDto entRegisterDto, HttpServletRequest request) {
yuquan.zhu committed
514 515 516 517 518 519 520

		String phone = entRegisterDto.getPhone();
		String pw = entRegisterDto.getPw();

		QyzxEmpLogin qyzxEmpLogin1 = new LambdaQueryChainWrapper<QyzxEmpLogin>(qyzxEmpLoginMapper)
				.eq(!StrUtil.hasBlank(phone), QyzxEmpLogin::getPhone, phone).one();
		if (qyzxEmpLogin1 != null) {
521
			if (StrUtil.hasBlank(pw) || !qyzxEmpLogin1.getPw().equals(Md5.md5(pw)))
yuquan.zhu committed
522
				return ResultUtil.error("帐号密码错误");
523 524

			return loginhan(qyzxEmpLogin1, request);
yuquan.zhu committed
525 526 527 528 529 530 531
		} else {
			return ResultUtil.error("帐号不存在-错误");
		}

	}

}