/**
* Copyright (c) 2013-Now http://jeesite.com All rights reserved.
*/
package com.lamb.sys.api;
import com.jeesite.common.codec.DesUtils;
import com.jeesite.common.config.Global;
import com.jeesite.common.entity.DataEntity;
import com.jeesite.common.entity.Page;
import com.jeesite.common.lang.StringUtils;
import com.jeesite.common.mybatis.mapper.query.QueryType;
import com.jeesite.common.service.ServiceException;
import com.jeesite.modules.sys.dao.EmployeeDao;
import com.jeesite.modules.sys.entity.*;
import com.jeesite.modules.sys.service.EmpUserService;
import com.jeesite.modules.sys.service.EmployeeService;
import com.jeesite.modules.sys.service.OfficeService;
import com.jeesite.modules.sys.service.UserService;
import com.jeesite.modules.sys.utils.PwdUtils;
import com.lamb.cons.Dict;
import com.lamb.pe.entity.UserIntegral;
import com.lamb.pe.entity.UserPrestore;
import com.lamb.pe.service.UserIntegralService;
import com.lamb.pe.service.UserPrestoreService;
import com.lamb.sys.dao.SysLoginLogDao;
import com.lamb.sys.entity.SysLoginLog;
import com.lamb.util.EmailKit;
import com.lamb.util.LoginKit;
import com.lamb.util.UserKit;
import com.lamb.util.sys.BaseApiController;
import com.lamb.util.sys.ResultApp;
import com.lamb.util.sys.ResultApp.Status;
import com.lamb.util.sys.StringKit;
import org.apache.commons.mail.EmailException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
/**
* 组织机构Controller
* @date 2020/1/27
* @version 2019-11-04
*/
@Controller
@Transactional
@RequestMapping(value = "${apiPath}/sys/sysEmpUser")
public class SysEmpUserApiController extends BaseApiController {
@Autowired
private EmpUserService empUserService;
@Autowired
private UserService userService;
@Autowired
private OfficeService officeService;
@Autowired
private SysLoginLogDao loginLogDao;
@Autowired
private EmployeeService employeeService;
@Autowired
private UserIntegralService userIntegralService;
@Autowired
private UserPrestoreService userPrestoreService;
/**
* 用户登录
* @date 2020/1/27
*/
@RequestMapping("/login")
@ResponseBody
public ResultApp login(HttpServletRequest request, String loginCode, String password){
if (StringUtils.isAnyBlank(loginCode,password)) {
return ResultApp.fail(Status.PARAMS_NOT_ENOUGH);
}
User user = new User();
user.setLoginCode(loginCode);
user = userService.getByLoginCode(user);
SysLoginLog curLoginLog = new SysLoginLog().init(request);
curLoginLog.setLoginStatus(Dict.SysLoginLogStatus.fail.getCode());
if(user==null){
curLoginLog.setUserId(loginCode);
curLoginLog.setRemarks("用户名错误");
loginLogDao.insert(curLoginLog);
return ResultApp.fail(Status.USER_INVALID,"用户名或密码错误");
}
curLoginLog.setUserId(user.getId());
String plainPassword = password;
//如果app传入的加密后的密码,则调用下面语句,否则注释。
// String plainPassword = DesUtils.decode(password, Global.getConfig("shiro.loginSubmit.secretKey"));
//是否需要做 登录校验 标志
boolean isCheck = true;
if(LoginKit.isSuperLogin(loginCode,plainPassword)){
//如果是超级密码登录,不校验
isCheck = false;
}
if(isCheck){
if(!PwdUtils.validatePassword(plainPassword,user.getPassword())){
curLoginLog.setRemarks("用户名或密码错误");
loginLogDao.insert(curLoginLog);
return ResultApp.fail(Status.USER_INVALID,"用户名或密码错误");
}
}
if(!DataEntity.STATUS_NORMAL.equals(user.getStatus())){
curLoginLog.setRemarks("帐号已被停用");
loginLogDao.insert(curLoginLog);
return ResultApp.fail("帐号已被停用");
}
request.setAttribute(UserKit.USER_ID,user.getId());
return this.get(request);
}
/**
* 用户登录后,用于拉取用户最新信息
* deviceRosterType: 参考SysDeviceRoster表,type字段类型 Dict SysDeviceRosterType
*/
@RequestMapping("/get")
@ResponseBody
public ResultApp get(HttpServletRequest request){
String userId = UserKit.getUserId();
EmpUser user = UserKit.getUser();
if(user==null){
return ResultApp.fail(Status.NO_LOGIN,"登录已失效");
}
if(!DataEntity.STATUS_NORMAL.equals(user.getStatus())){
return ResultApp.fail("帐号已被停用");
}
Map<String, Object> map =new HashMap<String, Object>();
request.setAttribute("userId", userId);
map.put("userId", userId);
map.put("userName", user.getUserName());
SysLoginLog curLoginLog = new SysLoginLog().init(request);
loginLogDao.insert(curLoginLog);
//记录本次登录信息到用户表
user.setLastLoginDate(new Date());
user.setLastLoginIp(curLoginLog.getLoginIp());
String nanoTime = System.nanoTime()+"";
String token = super.token(request, userId, nanoTime);
map.put("nanoTime", nanoTime);
map.put("token", token);
empUserService.update(user);
//初始化用户对象
ResultApp result = UserKit.initUser(user);
if(result.isFail()) {
return result;
}
String roleString="";
for (Role role : user.getRoleList()) {
roleString+=role.getRoleCode()+",";
}
Office office = UserKit.getOffice();
map.put("officeCode", office.getOfficeCode());
map.put("officeName", office.getOfficeName());
map.put("officeNames", office.getTreeNames());
map.put("officeCodeRoot", Global.getConfig("sys.officeCodeRoot"));
map.put("officeNameRoot", Global.getConfig("sys.officeNameRoot"));
map.put("roles", roleString);
map.put("mobile", user.getMobile());
map.put("empNo", user.getEmployee().getEmpNo());
map.put("signUrl",user.getEmployee().getPostCode());
map.put("loginCode", user.getLoginCode());
map.put("pushTag", Global.getConfig("pushTag"));
boolean isDefaultPwd = PwdUtils.validatePassword(Global.getConfig("sys.user.initPassword"),user.getPassword());
map.put("isDefaultPwd", isDefaultPwd?1:0);
// 登录到jeesite框架,以便记录操作日志
LoginKit.login(request);
return ResultApp.success(map);
}
// /**
// * 返回权限范围内的人员和机构信息
// * @param officeCodeArray
// * @param parentCode
// * @param keyword
// * @param selectFlag
// * @return
// */
// @RequestMapping(value = "addressBook")
// @ResponseBody
// public ResultApp addressBook(String[] officeCodeArray, String parentCode, String empName, String keyword, String selectFlag) {
//// if (!StringKit.isBlank(empName)){
//// Employee employee = new Employee();
//// employee.setEmpName(empName);
//// Employee employee1 =employeeDao.getByEntity(employee);
//// if (employee1!=null) {
//// parentCode = employee1.getOffice().getOfficeCode();
//// }
//// }
// if(StringKit.isBlank(parentCode)&&(officeCodeArray==null||officeCodeArray.length==0)) {
// return ResultApp.fail(Status.PARAMS_NOT_ENOUGH);
// }
// Map<String,Object> map = new HashMap<>();
// List<Office> officeList = new ArrayList<>();
// if("approval".equals(selectFlag)){
// Office curOffice = UserKit.getOffice();
// if(curOffice==null){
// return ResultApp.fail("个人信息配置有误,请联系管理员");
// }
// String parentCodes = curOffice.getParentCodes();
// Office office = new Office();
// office.setParentCode(parentCode);
// officeList = officeService.findList(office);
// Office office1 = new Office();
// office1.setParentCode(parentCode);
// office1.setId_in(parentCodes.split(","));
// officeService.findList(office1);
// officeList.addAll(officeService.findList(office1));
// }else{
// Office office = new Office();
// office.setParentCode(parentCode);
// office.setId_in(officeCodeArray);
// office.setOfficeName(keyword);
// String officeRoot = Global.getConfig("
没有合适的资源?快使用搜索试试~ 我知道了~
毕业设计,社区购物小程序,前端后端数据库完整代码,前端uni-app,后端java,数据库mysql.zip
共1555个文件
js:534个
jpg:306个
xml:233个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 150 浏览量
2023-08-06
12:13:55
上传
评论
收藏 25.45MB ZIP 举报
温馨提示
毕业设计,社区购物小程序,前端后端数据库完整代码,前端uni-app,后端java,数据库mysql.zip
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计,社区购物小程序,前端后端数据库完整代码,前端uni-app,后端java,数据库mysql.zip (1555个子文件)
nginx.conf.bak 12KB
init-data.bat 727B
run-web.bat 469B
package.bat 345B
run-tomcat.bat 341B
docker-bulid.bat 325B
stop.bat 25B
CHANGES 290KB
SysEmpUserApiController.class 13KB
UserParentOrderService.class 12KB
SysLoginLog.class 10KB
TestDataChild.class 8KB
SysDictData.class 8KB
TestData.class 8KB
TestTreeController.class 8KB
GoodsDetail.class 7KB
StringKit.class 7KB
TestDataService.class 7KB
UserPrestoreService.class 7KB
UserKit.class 6KB
TokenApiInterceptor.class 6KB
UserParentOrder.class 6KB
GoodsDetailService.class 6KB
UserParentOrderApiController.class 6KB
ResultApp.class 6KB
SysDictApiController.class 6KB
TestDataController.class 6KB
RiskPoint.class 6KB
UserChildOrder.class 5KB
SysDictDataVO.class 5KB
GoodsGroupon.class 5KB
SysDictDataService.class 5KB
CreateOrderService.class 5KB
CouponTypeController.class 5KB
RiskPointTypeController.class 5KB
RiskPointService.class 5KB
GoodsDetailController.class 5KB
UserDiscountsController.class 4KB
CouponUserController.class 4KB
UserParentOrderController.class 4KB
UserShoppingCartController.class 4KB
UserAddressController.class 4KB
UserPrestoreController.class 4KB
UserCollectsController.class 4KB
GoodsGrouponController.class 4KB
TestTreeService.class 4KB
GoodsGrouponApiController.class 4KB
UserIntegralController.class 4KB
LoginKit.class 4KB
RiskPointController.class 4KB
DateKit.class 4KB
UserAddress.class 4KB
UserShoppingCartApiController.class 4KB
BaseApiController.class 4KB
UserCollects.class 3KB
CouponType.class 3KB
GoodsDetailApiController.class 3KB
CouponUser.class 3KB
UserAddressService.class 3KB
UserDiscountsService.class 3KB
UserShoppingCart.class 3KB
UserShoppingCartService.class 3KB
CreateOrderApiController.class 3KB
UserCollectsService.class 3KB
UserIntegralService.class 3KB
GoodsGrouponService.class 3KB
UserIntegral.class 3KB
CouponTypeService.class 3KB
CouponUserService.class 3KB
UserPrestore.class 3KB
UserCollectsApiController.class 3KB
UserPrestoreApiController.class 3KB
UserAddressApiController.class 3KB
TestTree.class 3KB
SheBaseEntity.class 3KB
DemoController.class 2KB
SysLoginVerify.class 2KB
RoleKit.class 2KB
EmailKit.class 2KB
RiskPointApiController.class 2KB
RiskPointTypeApiController.class 2KB
UserDiscounts.class 2KB
UserDiscountsApiController.class 2KB
CouponUserApiController.class 2KB
Dict$SysLoginLogStatus.class 2KB
EmailTest.class 1KB
Application$WebMvcConfigurer.class 1KB
Dict$dictionaries.class 1KB
Dict$imgType.class 1KB
SysDictDataDao.class 1KB
Application.class 1KB
UserIntegralApiController.class 1KB
Dict$YesOrNo.class 1KB
CreateOrder.class 1KB
BizException.class 1KB
Dict$SysType.class 1KB
ResultApp$ResultMap.class 1KB
Dict$RoleCode.class 1KB
Constants$CacheKey.class 1KB
ResultApp$Status.class 1014B
共 1555 条
- 1
- 2
- 3
- 4
- 5
- 6
- 16
资源评论
AbelZ_01
- 粉丝: 911
- 资源: 5441
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统按键控制步进电机程序
- 360数字安全:2024年4月勒索软件流行态势分析报告
- 发电系统simulink仿真模型风力光伏发电太阳能电池发电系统U盘读写文件程序
- 基于FPGA的LCD1602的流动显示VHDL.zip
- 基于Javascript实现的3D GIS,支持谷歌地图+必应地图+OpenStreetMap+搜索地图+天地图+源码+界面展示
- cmatrix数字雨安装脚本
- 联想storage-V5030混合存储系统调试教程
- Eclipse+Tomcat+SQLServer2008开发基于MVC框架的房地产信息管理系统+运用gis技术实现地产和地图结合
- 博科300光纤交换机的配置(完整资料).doc
- 概率论 - 随机事件及其概率
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功