Commit 0a509576 by 墨竹

Merge branch 'feature/login-token' into developer

parents d5274175 f5fd2e61
......@@ -8,6 +8,7 @@ import java.util.Date;
* @author hua
*/
public class HandoverStaffInfoDTO extends StaffDTO {
private Integer friendCount;
private Integer haobanFriendCount;
private Date dimissionTime;
......
......@@ -4,9 +4,6 @@ import java.io.Serializable;
public class LoginDTO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
private StaffDTO staffDTO;
......
......@@ -4,7 +4,10 @@ import java.io.Serializable;
import java.util.Date;
import java.util.List;
public class StaffDTO implements Serializable{
public class StaffDTO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 员工id
*/
......@@ -16,11 +19,11 @@ public class StaffDTO implements Serializable{
/**
* 微信用户id
*/
private String wxUserId;
private String wxUserId;
/**
* 手机号
*/
private String phoneNumber;
private String phoneNumber;
/**
* 员工姓名
*/
......@@ -89,8 +92,6 @@ public class StaffDTO implements Serializable{
*/
private Integer relationFlag;
private static final long serialVersionUID = 1L;
public String getClerkId() {
return clerkId;
}
......
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
* 员工登录
*
* @author mozhu
* @date 2021/12/10 15:00
*/
public class StaffLoginDTO implements Serializable {
private static final long serialVersionUID = -170574390217887304L;
private String staffId;
private String wxEnterpriseId;
private String phoneNumber;
private String nationcode;
private String wxUserId;
/**
* 是否同意隐私协议,1:是;0:否
*/
private Integer privacyUseFlag;
/**
* 好办版本
*/
private String welldoneVersion;
/**
* 企微版本
*/
private String weworkVersion;
/**
* 用户手机品牌
*/
private String staffPhoneBrand;
/**
* 用户手机型号
*/
private String staffPhoneModel;
/**
* 用户手机版本
*/
private String staffPhoneVersion;
/**
* 登录ip
*/
private String staffIp;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getNationcode() {
return nationcode;
}
public void setNationcode(String nationcode) {
this.nationcode = nationcode;
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public Integer getPrivacyUseFlag() {
return privacyUseFlag;
}
public void setPrivacyUseFlag(Integer privacyUseFlag) {
this.privacyUseFlag = privacyUseFlag;
}
public String getWelldoneVersion() {
return welldoneVersion;
}
public void setWelldoneVersion(String welldoneVersion) {
this.welldoneVersion = welldoneVersion;
}
public String getWeworkVersion() {
return weworkVersion;
}
public void setWeworkVersion(String weworkVersion) {
this.weworkVersion = weworkVersion;
}
public String getStaffPhoneBrand() {
return staffPhoneBrand;
}
public void setStaffPhoneBrand(String staffPhoneBrand) {
this.staffPhoneBrand = staffPhoneBrand;
}
public String getStaffPhoneModel() {
return staffPhoneModel;
}
public void setStaffPhoneModel(String staffPhoneModel) {
this.staffPhoneModel = staffPhoneModel;
}
public String getStaffPhoneVersion() {
return staffPhoneVersion;
}
public void setStaffPhoneVersion(String staffPhoneVersion) {
this.staffPhoneVersion = staffPhoneVersion;
}
public String getStaffIp() {
return staffIp;
}
public void setStaffIp(String staffIp) {
this.staffIp = staffIp;
}
}
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
* 好办登录信息
*
* @author mozhu
* @date 2021/12/14 17:37
*/
public class WellDoneLoginDTO implements Serializable {
private static final long serialVersionUID = -8035522410061849606L;
/**
* 员工id
*/
private String staffId;
/**
* wx企业id
*/
private String wxEnterpriseId;
/**
* 导购电话号码
*/
private String phoneNumber;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
......@@ -154,4 +154,13 @@ public interface WxEnterpriseApiService {
* @date 2021-11-30 19:14:08
*/
void agreeExternalUseridCallBack(String corpId, String serviceCorpId);
/**
* 好办登录
*
* @param staffLoginDTO 员工登录dto
* @author mozhu
* @date 2021-12-15 11:02:52
*/
void wellDoneLogin(StaffLoginDTO staffLoginDTO);
}
package com.gic.haoban.manage.web.interceptor;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.auth.api.anno.MenuCheck;
import com.gic.haoban.auth.api.dto.UserRightDetailDTO;
import com.gic.haoban.auth.api.enums.RoleCodeEnum;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.web.auth.AuthRequestUtil;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
......@@ -19,7 +12,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Map;
/**
......@@ -29,11 +21,7 @@ import java.util.Map;
*/
public class WebInterceptor extends HandlerInterceptorAdapter {
private static Logger logger= LoggerFactory.getLogger(WebInterceptor.class);
// @Autowired
// private ClerkRightManageService clerkRightManageService;
private static final Logger logger = LoggerFactory.getLogger(WebInterceptor.class);
private void errorResult(HttpServletResponse httpServletResponse, HaoBanErrCode errCode) {
HaobanResponse response = new HaobanResponse();
......@@ -55,7 +43,6 @@ public class WebInterceptor extends HandlerInterceptorAdapter {
logger.info("post-url:{}", requestURI);
Map<String, String[]> parameterMap = httpServletRequest.getParameterMap();
logger.info("post-params:{}", JSONObject.toJSONString(parameterMap));
return true;
}
......
package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabStaffPrivacyUseLog;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author xuwenqian
* @date 2021/12/15 10:35
*/
@Mapper
public interface StaffPrivacyUseLogMapper {
/**
* 新增
*
* @param tabStaffPrivacyUseLog 选项卡的员工隐私使用日志
* @return int
* @author mozhu
* @date 2021-12-15 10:41:51
*/
int insert(TabStaffPrivacyUseLog tabStaffPrivacyUseLog);
/**
* 更新
*
* @param tabStaffPrivacyUseLog 选项卡的员工隐私使用日志
* @return int
* @author mozhu
* @date 2021-12-15 10:44:22
*/
int update(TabStaffPrivacyUseLog tabStaffPrivacyUseLog);
/**
* 查询
*
* @param staffId 员工id
* @return {@link List<TabStaffPrivacyUseLog> }
* @author mozhu
* @date 2021-12-15 10:49:02
*/
List<TabStaffPrivacyUseLog> getByStaffId(@Param("staffId") String staffId);
}
package com.gic.haoban.manage.service.entity;
import java.io.Serializable;
import java.util.Date;
/**
* @author mozhu
* @date 2021/12/15 10:34
*/
public class TabStaffPrivacyUseLog implements Serializable {
private static final long serialVersionUID = -5237810468345263967L;
/**
* id
*/
private Long id;
/**
* 员工id
*/
private String staffId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 是否同意隐私协议,1:是;0:否
*/
private Integer privacyUseFlag;
/**
* 手机号
*/
private String phoneNumber;
/**
* 好办版本
*/
private String welldoneVersion;
/**
* 企微版本
*/
private String weworkVersion;
/**
* 用户手机品牌
*/
private String staffPhoneBrand;
/**
* 用户手机型号
*/
private String staffPhoneModel;
/**
* 用户手机版本
*/
private String staffPhoneVersion;
/**
* 登录ip
*/
private String staffIp;
/**
* create_time
*/
private Date createTime;
/**
* update_time
*/
private Date updateTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getPrivacyUseFlag() {
return privacyUseFlag;
}
public void setPrivacyUseFlag(Integer privacyUseFlag) {
this.privacyUseFlag = privacyUseFlag;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getWelldoneVersion() {
return welldoneVersion;
}
public void setWelldoneVersion(String welldoneVersion) {
this.welldoneVersion = welldoneVersion;
}
public String getWeworkVersion() {
return weworkVersion;
}
public void setWeworkVersion(String weworkVersion) {
this.weworkVersion = weworkVersion;
}
public String getStaffPhoneBrand() {
return staffPhoneBrand;
}
public void setStaffPhoneBrand(String staffPhoneBrand) {
this.staffPhoneBrand = staffPhoneBrand;
}
public String getStaffPhoneModel() {
return staffPhoneModel;
}
public void setStaffPhoneModel(String staffPhoneModel) {
this.staffPhoneModel = staffPhoneModel;
}
public String getStaffPhoneVersion() {
return staffPhoneVersion;
}
public void setStaffPhoneVersion(String staffPhoneVersion) {
this.staffPhoneVersion = staffPhoneVersion;
}
public String getStaffIp() {
return staffIp;
}
public void setStaffIp(String staffIp) {
this.staffIp = staffIp;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.service.pojo.bo;
import java.io.Serializable;
import java.util.Date;
/**
* @author mozhu
* @date 2021/12/15 10:47
*/
public class StaffPrivacyUseLogBO implements Serializable {
private static final long serialVersionUID = -6881666081809981502L;
/**
* id
*/
private Long id;
/**
* 员工id
*/
private String staffId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 是否同意隐私协议,1:是;0:否
*/
private Integer privacyUseFlag;
/**
* 手机号
*/
private String phoneNumber;
/**
* 好办版本
*/
private String welldoneVersion;
/**
* 企微版本
*/
private String weworkVersion;
/**
* 用户手机品牌
*/
private String staffPhoneBrand;
/**
* 用户手机型号
*/
private String staffPhoneModel;
/**
* 用户手机版本
*/
private String staffPhoneVersion;
/**
* 登录ip
*/
private String staffIp;
/**
* create_time
*/
private Date createTime;
/**
* update_time
*/
private Date updateTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getPrivacyUseFlag() {
return privacyUseFlag;
}
public void setPrivacyUseFlag(Integer privacyUseFlag) {
this.privacyUseFlag = privacyUseFlag;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getWelldoneVersion() {
return welldoneVersion;
}
public void setWelldoneVersion(String welldoneVersion) {
this.welldoneVersion = welldoneVersion;
}
public String getWeworkVersion() {
return weworkVersion;
}
public void setWeworkVersion(String weworkVersion) {
this.weworkVersion = weworkVersion;
}
public String getStaffPhoneBrand() {
return staffPhoneBrand;
}
public void setStaffPhoneBrand(String staffPhoneBrand) {
this.staffPhoneBrand = staffPhoneBrand;
}
public String getStaffPhoneModel() {
return staffPhoneModel;
}
public void setStaffPhoneModel(String staffPhoneModel) {
this.staffPhoneModel = staffPhoneModel;
}
public String getStaffPhoneVersion() {
return staffPhoneVersion;
}
public void setStaffPhoneVersion(String staffPhoneVersion) {
this.staffPhoneVersion = staffPhoneVersion;
}
public String getStaffIp() {
return staffIp;
}
public void setStaffIp(String staffIp) {
this.staffIp = staffIp;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.service.pojo.vo;
import java.io.Serializable;
import java.util.Date;
/**
* 选项卡员工隐私使用日志签证官
*
* @author xuwenqian
* @date 2021/12/15 10:50
*/
public class TabStaffPrivacyUseLogVO implements Serializable {
private static final long serialVersionUID = 7052985210668349045L;
/**
* id
*/
private Long id;
/**
* 员工id
*/
private String staffId;
/**
* 微信企业id
*/
private String wxEnterpriseId;
/**
* 是否同意隐私协议,1:是;0:否
*/
private Integer privacyUseFlag;
/**
* 手机号
*/
private String phoneNumber;
/**
* 好办版本
*/
private String welldoneVersion;
/**
* 企微版本
*/
private String weworkVersion;
/**
* 用户手机品牌
*/
private String staffPhoneBrand;
/**
* 用户手机型号
*/
private String staffPhoneModel;
/**
* 用户手机版本
*/
private String staffPhoneVersion;
/**
* 登录ip
*/
private String staffIp;
/**
* create_time
*/
private Date createTime;
/**
* update_time
*/
private Date updateTime;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public Integer getPrivacyUseFlag() {
return privacyUseFlag;
}
public void setPrivacyUseFlag(Integer privacyUseFlag) {
this.privacyUseFlag = privacyUseFlag;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getWelldoneVersion() {
return welldoneVersion;
}
public void setWelldoneVersion(String welldoneVersion) {
this.welldoneVersion = welldoneVersion;
}
public String getWeworkVersion() {
return weworkVersion;
}
public void setWeworkVersion(String weworkVersion) {
this.weworkVersion = weworkVersion;
}
public String getStaffPhoneBrand() {
return staffPhoneBrand;
}
public void setStaffPhoneBrand(String staffPhoneBrand) {
this.staffPhoneBrand = staffPhoneBrand;
}
public String getStaffPhoneModel() {
return staffPhoneModel;
}
public void setStaffPhoneModel(String staffPhoneModel) {
this.staffPhoneModel = staffPhoneModel;
}
public String getStaffPhoneVersion() {
return staffPhoneVersion;
}
public void setStaffPhoneVersion(String staffPhoneVersion) {
this.staffPhoneVersion = staffPhoneVersion;
}
public String getStaffIp() {
return staffIp;
}
public void setStaffIp(String staffIp) {
this.staffIp = staffIp;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public Date getUpdateTime() {
return updateTime;
}
public void setUpdateTime(Date updateTime) {
this.updateTime = updateTime;
}
}
package com.gic.haoban.manage.service.service;
import com.gic.haoban.manage.service.pojo.bo.StaffPrivacyUseLogBO;
import com.gic.haoban.manage.service.pojo.vo.TabStaffPrivacyUseLogVO;
import java.util.List;
/**
* @author xuwenqian
* @date 2021/12/15 10:46
*/
public interface StaffPrivacyUseLogService {
/**
* 新增
*
* @param staffPrivacyUseLogBO 选项卡员工隐私使用日志bo
* @return int
* @author mozhu
* @date 2021-12-15 10:51:51
*/
int insert(StaffPrivacyUseLogBO staffPrivacyUseLogBO);
/**
* 更新
*
* @param staffPrivacyUseLogBO 选项卡员工隐私使用日志bo
* @return int
* @author mozhu
* @date 2021-12-15 10:51:53
*/
int update(StaffPrivacyUseLogBO staffPrivacyUseLogBO);
/**
* 查询
*
* @param staffId 员工id
* @return {@link List<TabStaffPrivacyUseLogVO> }
* @author mozhu
* @date 2021-12-15 10:51:32
*/
List<TabStaffPrivacyUseLogVO> getByStaffId(String staffId);
}
package com.gic.haoban.manage.service.service.impl;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.manage.service.dao.mapper.StaffPrivacyUseLogMapper;
import com.gic.haoban.manage.service.entity.TabStaffPrivacyUseLog;
import com.gic.haoban.manage.service.pojo.bo.StaffPrivacyUseLogBO;
import com.gic.haoban.manage.service.pojo.vo.TabStaffPrivacyUseLogVO;
import com.gic.haoban.manage.service.service.StaffPrivacyUseLogService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @author xuwenqian
* @date 2021/12/15 10:46
*/
@Service
public class StaffPrivacyUseLogServiceImpl implements StaffPrivacyUseLogService {
@Autowired
private StaffPrivacyUseLogMapper staffPrivacyUseLogMapper;
@Override
public int insert(StaffPrivacyUseLogBO staffPrivacyUseLogBO) {
TabStaffPrivacyUseLog tabStaffPrivacyUseLog = new TabStaffPrivacyUseLog();
BeanUtils.copyProperties(staffPrivacyUseLogBO, tabStaffPrivacyUseLog);
Date date = new Date();
tabStaffPrivacyUseLog.setCreateTime(date);
tabStaffPrivacyUseLog.setUpdateTime(date);
return staffPrivacyUseLogMapper.insert(tabStaffPrivacyUseLog);
}
@Override
public int update(StaffPrivacyUseLogBO staffPrivacyUseLogBO) {
TabStaffPrivacyUseLog tabStaffPrivacyUseLog = new TabStaffPrivacyUseLog();
BeanUtils.copyProperties(staffPrivacyUseLogBO, tabStaffPrivacyUseLog);
Date date = new Date();
tabStaffPrivacyUseLog.setUpdateTime(date);
return staffPrivacyUseLogMapper.update(tabStaffPrivacyUseLog);
}
@Override
public List<TabStaffPrivacyUseLogVO> getByStaffId(String staffId) {
List<TabStaffPrivacyUseLog> staffPrivacyUseLogList = staffPrivacyUseLogMapper.getByStaffId(staffId);
return EntityUtil.changeEntityListByOrika(TabStaffPrivacyUseLogVO.class, staffPrivacyUseLogList);
}
}
......@@ -25,7 +25,6 @@ import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.service.dao.mapper.StaffDepartmentRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.entity.TabHaobanDepartment;
......@@ -86,8 +85,7 @@ public class StaffApiServiceImpl implements StaffApiService {
private StoreGroupService storeGroupService;
@Autowired
private UserLoginLogService userLoginLogService;
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService;
@Autowired
private SyncErrorLogService syncErrorLogService;
......
......@@ -17,15 +17,14 @@ import com.gic.haoban.manage.service.entity.TabHaobanWxApplication;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.TabMiniprogramSetting;
import com.gic.haoban.manage.service.entity.TabWelcome;
import com.gic.haoban.manage.service.service.MiniprogramSettingService;
import com.gic.haoban.manage.service.service.SecretSettingService;
import com.gic.haoban.manage.service.service.WxApplicationService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.pojo.bo.StaffPrivacyUseLogBO;
import com.gic.haoban.manage.service.service.*;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -52,6 +51,8 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
private MiniprogramSettingService miniprogramSettingService;
@Autowired
private TabHaobanWelcomeMapper welcomeMapper;
@Autowired
private StaffPrivacyUseLogService staffPrivacyUseLogService;
@Override
public void callbackReviceEnterprise(QywxCorpInfoSimpleDTO dto) {
......@@ -295,4 +296,12 @@ public class WxEnterpriseApiServiceImpl implements WxEnterpriseApiService {
wxEnterpriseService.update(wxEnterpriseDTO);
}
@Override
public void wellDoneLogin(StaffLoginDTO staffLoginDTO) {
//插入隐私协议
StaffPrivacyUseLogBO staffPrivacyUseLogBO = new StaffPrivacyUseLogBO();
BeanUtils.copyProperties(staffLoginDTO, staffPrivacyUseLogBO);
staffPrivacyUseLogService.insert(staffPrivacyUseLogBO);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.gic.haoban.manage.service.dao.mapper.StaffPrivacyUseLogMapper">
<resultMap id="BaseResultMap" type="com.gic.haoban.manage.service.entity.TabStaffPrivacyUseLog">
<result column="id" property="id"/>
<result column="staff_id" property="staffId"/>
<result column="wx_enterprise_id" property="wxEnterpriseId"/>
<result column="privacy_use_flag" property="privacyUseFlag"/>
<result column="phone_number" property="phoneNumber"/>
<result column="welldone_version" property="welldoneVersion"/>
<result column="wework_version" property="weworkVersion"/>
<result column="staff_phone_brand" property="staffPhoneBrand"/>
<result column="staff_phone_model" property="staffPhoneModel"/>
<result column="staff_phone_version" property="staffPhoneVersion"/>
<result column="staff_ip" property="staffIp"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
</resultMap>
<sql id="Base_Column_List">
id,
staff_id,
wx_enterprise_id,
privacy_use_flag,
phone_number,
welldone_version,
wework_version,
staff_phone_brand,
staff_phone_model,
staff_phone_version,
staff_ip,
create_time,
update_time
</sql>
<insert id="insert" useGeneratedKeys="true" keyColumn="id" keyProperty="id"
parameterType="com.gic.haoban.manage.service.entity.TabStaffPrivacyUseLog">
INSERT INTO tab_staff_privacy_use_log
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="null != staffId and '' != staffId">
staff_id,
</if>
<if test="null != wxEnterpriseId and '' != wxEnterpriseId">
wx_enterprise_id,
</if>
<if test="null != privacyUseFlag">
privacy_use_flag,
</if>
<if test="null != phoneNumber and '' != phoneNumber">
phone_number,
</if>
<if test="null != welldoneVersion and '' != welldoneVersion">
welldone_version,
</if>
<if test="null != weworkVersion and '' != weworkVersion">
wework_version,
</if>
<if test="null != staffPhoneBrand and '' != staffPhoneBrand">
staff_phone_brand,
</if>
<if test="null != staffPhoneModel and '' != staffPhoneModel">
staff_phone_model,
</if>
<if test="null != staffPhoneVersion and '' != staffPhoneVersion">
staff_phone_version,
</if>
<if test="null != staffIp and '' != staffIp">
staff_ip,
</if>
<if test="null != createTime">
create_time,
</if>
<if test="null != updateTime">
update_time
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="null != staffId and '' != staffId">
#{staffId},
</if>
<if test="null != wxEnterpriseId and '' != wxEnterpriseId">
#{wxEnterpriseId},
</if>
<if test="null != privacyUseFlag">
#{privacyUseFlag},
</if>
<if test="null != phoneNumber and '' != phoneNumber">
#{phoneNumber},
</if>
<if test="null != welldoneVersion and '' != welldoneVersion">
#{welldoneVersion},
</if>
<if test="null != weworkVersion and '' != weworkVersion">
#{weworkVersion},
</if>
<if test="null != staffPhoneBrand and '' != staffPhoneBrand">
#{staffPhoneBrand},
</if>
<if test="null != staffPhoneModel and '' != staffPhoneModel">
#{staffPhoneModel},
</if>
<if test="null != staffPhoneVersion and '' != staffPhoneVersion">
#{staffPhoneVersion},
</if>
<if test="null != staffIp and '' != staffIp">
#{staffIp},
</if>
<if test="null != createTime">
#{createTime},
</if>
<if test="null != updateTime">
#{updateTime}
</if>
</trim>
</insert>
<update id="update" parameterType="com.gic.haoban.manage.service.entity.TabStaffPrivacyUseLog">
UPDATE tab_staff_privacy_use_log
<set>
<if test="null != staffId and '' != staffId">staff_id = #{staffId},</if>
<if test="null != wxEnterpriseId and '' != wxEnterpriseId">wx_enterprise_id = #{wxEnterpriseId},</if>
<if test="null != privacyUseFlag">privacy_use_flag = #{privacyUseFlag},</if>
<if test="null != phoneNumber and '' != phoneNumber">phone_number = #{phoneNumber},</if>
<if test="null != welldoneVersion and '' != welldoneVersion">welldone_version = #{welldoneVersion},</if>
<if test="null != weworkVersion and '' != weworkVersion">wework_version = #{weworkVersion},</if>
<if test="null != staffPhoneBrand and '' != staffPhoneBrand">staff_phone_brand = #{staffPhoneBrand},</if>
<if test="null != staffPhoneModel and '' != staffPhoneModel">staff_phone_model = #{staffPhoneModel},</if>
<if test="null != staffPhoneVersion and '' != staffPhoneVersion">staff_phone_version =
#{staffPhoneVersion},
</if>
<if test="null != staffIp and '' != staffIp">staff_ip = #{staffIp},</if>
<if test="null != createTime">create_time = #{createTime},</if>
<if test="null != updateTime">update_time = #{updateTime}</if>
</set>
WHERE id = #{id}
</update>
<select id="getByStaffId" resultMap="BaseResultMap">
SELECT
<include refid="Base_Column_List"/>
FROM tab_staff_privacy_use_log
WHERE staff_id = #{staffId}
</select>
</mapper>
\ No newline at end of file
package com.gic.haoban.manage.web.auth;
import com.alibaba.fastjson.JSON;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -30,14 +29,6 @@ public class AuthRequestUtil {
public static final String REDIS_FAKE_LOGIN_FLAG_PREFIX = "GIC:HAOBAN:HAOBAN_MOBILE_APP:FAKE_LOGIN_TOKEN:";
public static String LOGIN_SESSION_KEY = "HAOBAN:LOGINUSER";
// public static LoginDTO getSessionUser() {
// String json = (String) getSession().getAttribute(LOGIN_SESSION_KEY);
// if (StringUtils.isBlank(json)){
// return null;
// }
// return JSON.parseObject(json, LoginDTO.class);
// }
public static void setSessionUser(Object obj) {
String userJson = JSON.toJSONString(obj);
getSession().setAttribute(LOGIN_SESSION_KEY, userJson);
......@@ -48,7 +39,7 @@ public class AuthRequestUtil {
}
public static Object getAppLoginUser(String token) {
logger.info("token1111111111=" + token);
logger.info("token-web=" + token);
if (StringUtils.isBlank(token)) {
return null;
}
......
......@@ -98,7 +98,7 @@ public class LoginController extends WebBaseController {
}
LoginDTO loginVO = new LoginDTO();
logger.info("【好办登录】staff={}", JSON.toJSONString(loginStaff));
logger.info("【好办web登录】staff={}", JSON.toJSONString(loginStaff));
if (loginStaff == null) {
return;
}
......@@ -124,7 +124,6 @@ public class LoginController extends WebBaseController {
@RequestMapping("login_local")
@Deprecated
public HaobanResponse login() {
LoginDTO loginVO = new LoginDTO();
StaffDTO staff = staffApiService.selectById("2205f92cdb5f468cb996e91dded414c2");
String token = ToolUtil.randomUUID() + "-" + ToolUtil.randomStringByTime();
......@@ -271,14 +270,14 @@ public class LoginController extends WebBaseController {
ModelAndView model = new ModelAndView(new RedirectView("/haoban-3/#/gic-error", false, false));
return model;
}
LoginDTO loginVO = new LoginDTO();
loginVO.setWxEnterpriseId(detailDTO.getWxEnterpriseId());
loginVO.setStaffDTO(staff);
AuthRequestUtil.setSessionUser(loginVO);
LoginDTO loginDTO = new LoginDTO();
loginDTO.setWxEnterpriseId(detailDTO.getWxEnterpriseId());
loginDTO.setStaffDTO(staff);
String redirectUri = config.getHost() + "index";
redirectUri = redirectUri.replace("haoban-manage3-web", "haoban-3/#");
String token = ToolUtil.randomUUID() + "-" + ToolUtil.randomStringByTime();
AuthRequestUtil.setAppLoginUser(token, loginVO);
AuthRequestUtil.setSessionUser(loginDTO);
AuthRequestUtil.setAppLoginUser(token, loginDTO);
try {
Cookie cookie = new Cookie("token", token);
cookie.setPath("/");
......@@ -286,7 +285,6 @@ public class LoginController extends WebBaseController {
response.sendRedirect(redirectUri);
response.setHeader("token", token);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
......
......@@ -6,6 +6,10 @@ import com.gic.haoban.manage.web.controller.WebBaseController;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
......@@ -23,17 +27,22 @@ import java.util.regex.Pattern;
*/
@ControllerAdvice
public class GlobalExceptionHandler extends WebBaseController {
private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
private static final Pattern pattern = Pattern.compile("(.*: )(.*)(\\n.*)");
/**
* 控制器运行异常
*
* @param response 响应
* @param ex 前女友
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:50
*/
@ResponseBody
@ExceptionHandler(RuntimeException.class)
public HaobanResponse ControllerException(HttpServletResponse response, RuntimeException ex) {
logger.info("exceoprion:{}", ex.getStackTrace());
ex.printStackTrace();
public HaobanResponse controllerRunException(HttpServletResponse response, RuntimeException ex) {
logger.error("controllerRunException:{}", ex.getMessage(), ex);
HaobanResponse res = new HaobanResponse();
res.setErrorCode(HaoBanErrCode.ERR_3.getCode());
String message = ex.getMessage();
......@@ -45,16 +54,23 @@ public class GlobalExceptionHandler extends WebBaseController {
} else {
message = HaoBanErrCode.ERR_3.getMsg();
}
res.setMessage("系统异常");
res.setMessage(message);
return res;
}
/**
* 全局异常
*
* @param response 响应
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:54:25
*/
@ResponseBody
@ExceptionHandler(Exception.class)
public HaobanResponse ControllerException(HttpServletResponse response, Exception ex) {
logger.error("err");
ex.printStackTrace();
HaoBanErrCode errCode = HaoBanErrCode.ERR_3;
public HaobanResponse controllerException(HttpServletResponse response, Exception ex) {
logger.error("controllerException:{}", ex.getMessage(), ex);
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (PrintWriter printWriter = new PrintWriter(baos)) {
......@@ -67,16 +83,59 @@ public class GlobalExceptionHandler extends WebBaseController {
if (sb.length() == 0) {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
// return resultResponse(errCode, null, sb.toString());
return resultResponse(HaoBanErrCode.ERR_3);
}
/**
* valid 异常告警
*
* @param response
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:40
*/
@ResponseBody
@ExceptionHandler(BindException.class)
public HaobanResponse bindException(HttpServletResponse response, BindException ex) {
logger.error("bindException:{}", ex.getMessage());
HaoBanErrCode errCode = HaoBanErrCode.ERR_5;
BindingResult bindingResult = ex.getBindingResult();
FieldError fieldError = bindingResult.getFieldError();
return resultResponse(errCode, null, fieldError.getField() + fieldError.getDefaultMessage());
}
/**
* valid 异常告警 @ReuqestBody
*
* @param response
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:35
*/
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
public HaobanResponse methodArgumentNotValidException(HttpServletResponse response, MethodArgumentNotValidException ex) {
logger.error("methodArgumentNotValidException:{}", ex.getMessage());
HaoBanErrCode errCode = HaoBanErrCode.ERR_5;
BindingResult bindingResult = ex.getBindingResult();
FieldError fieldError = bindingResult.getFieldError();
return resultResponse(errCode, null, fieldError.getField() + fieldError.getDefaultMessage());
}
/**
* 登录异常
*
* @param response 响应
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:16
*/
@ResponseBody
@ExceptionHandler(NoLoginException.class)
public HaobanResponse ControllerException(HttpServletResponse response, NoLoginException ex) {
public HaobanResponse controllerNoLoginException(HttpServletResponse response, NoLoginException ex) {
return resultResponse(HaoBanErrCode.ERR_4);
}
......
package com.gic.haoban.manage.web.anno;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;
/**
* 访问限制
* 默认1秒
* @author hzw
*
*/
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface HttpLimit {
long time() default 1L;
TimeUnit unit() default TimeUnit.SECONDS;
int times() default 2;
}
\ No newline at end of file
package com.gic.haoban.manage.web.anno;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreLogin {
}
......@@ -9,6 +9,7 @@ import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.common.anno.HttpLimit;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.communicate.api.service.SyncHaobanToGicServiceApi;
......@@ -22,7 +23,6 @@ import com.gic.haoban.manage.api.service.AuditApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
import com.gic.haoban.manage.api.service.StaffDepartmentRelatedApiService;
import com.gic.haoban.manage.web.anno.HttpLimit;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.AuditVO;
import com.gic.haoban.manage.web.vo.StaffClerkBindLogDetailVO;
......
package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
......@@ -18,6 +17,7 @@ import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.app.customer.service.api.service.DistributeApiService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.common.anno.HttpLimit;
import com.gic.haoban.common.utils.GooglePhoneNumberUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.common.utils.PageUtil;
......@@ -25,16 +25,13 @@ import com.gic.haoban.communicate.api.service.SyncHaobanToGicServiceApi;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.*;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.anno.HttpLimit;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.*;
import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
......@@ -43,8 +40,8 @@ import java.util.*;
import java.util.stream.Collectors;
@RestController
public class ClerkController extends WebBaseController{
private static Logger logger= LoggerFactory.getLogger(ClerkController.class);
public class ClerkController extends WebBaseController {
private static final Logger logger = LoggerFactory.getLogger(ClerkController.class);
@Autowired
private ClerkService clerkService;
......@@ -55,18 +52,12 @@ public class ClerkController extends WebBaseController{
@Autowired
private StoreService storeService;
@Autowired
private DepartmentApiService departmentApiService;
@Autowired
private BindApiService bindApiService;
@Autowired
private SyncHaobanToGicServiceApi syncHaobanToGicServiceApi;
@Autowired
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService;
@Autowired
private DistributeApiService distributeApiService;
@Autowired
private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
@Autowired
private WxEnterpriseRelatedApiService wxEnterpriseRelatedApiService;
@Autowired
private EnterpriseService enterpriseService;
......@@ -622,13 +613,10 @@ public class ClerkController extends WebBaseController{
public boolean isEnterpriseOver(String eid) {
EnterpriseDTO enterprise = enterpriseService.getEnterpriseByEid(eid);
if(enterprise == null || enterprise.getExpireTime() == null){
if (enterprise == null || enterprise.getExpireTime() == null) {
return false;
}
if(enterprise.getExpireTime().getTime() > System.currentTimeMillis()){
return false;
}
return true;
return enterprise.getExpireTime().getTime() <= System.currentTimeMillis();
}
......@@ -882,15 +870,15 @@ public class ClerkController extends WebBaseController{
List<BindClerkVO> unBindList = new ArrayList<>();
for (ClerkListDTO clerkListDTO : list) {
BindClerkVO vo = EntityUtil.changeEntityByJSON(BindClerkVO.class, clerkListDTO);
if(bindCodeMap.keySet().contains(clerkListDTO.getClerkCode())){
if (bindCodeMap.containsKey(clerkListDTO.getClerkCode())) {
String staffId = bindCodeMap.get(clerkListDTO.getClerkCode()).getStaffId();
StaffDTO staffDTO = staffApiService.selectById(staffId);
vo.setStaffId(staffId);
vo.setNationCode(clerkListDTO.getNationcode());
vo.setPhoneNumber(clerkListDTO.getPhoneNumber());
vo.setStaffName(staffDTO == null?"":staffDTO.getStaffName());
vo.setStaffName(staffDTO == null ? "" : staffDTO.getStaffName());
bindList.add(vo);
}else{
} else {
unBindList.add(vo);
}
}
......@@ -950,32 +938,32 @@ public class ClerkController extends WebBaseController{
@RequestMapping("/fresh-clerk-info")
public HaobanResponse freshClerkInfo(String clerkId,String wxEnterpriseId) {
StaffClerkRelationDTO staffRelation = staffClerkRelationApiService.getByClerkId(clerkId);
if(staffRelation == null){
if (staffRelation == null) {
return resultResponse(HaoBanErrCode.ERR_10006);
}
staffApiService.wxGetAdd(staffRelation.getWxUserId(), wxEnterpriseId);;
staffApiService.wxGetAdd(staffRelation.getWxUserId(), wxEnterpriseId);
String staffId = staffRelation.getStaffId();
StaffDTO staff = staffApiService.selectById(staffId);
if(staff == null){
if (staff == null) {
return resultResponse(HaoBanErrCode.ERR_10006);
}
String headPic = staff.getHeadImg();
String phoneNumber = staff.getPhoneNumber();
String nationCode = staff.getNationCode();
Integer sex = staff.getSex();
ClerkDTO clerk = clerkService.getClerkByClerkId(clerkId);
if(clerk == null){
if (clerk == null) {
return resultResponse(HaoBanErrCode.ERR_10006);
}
if(StringUtils.isNotBlank(headPic)){
if (StringUtils.isNotBlank(headPic)) {
clerk.setHeadImgUrl(headPic);
clerk.setImageUrl(headPic);
}
if(StringUtils.isNotBlank(phoneNumber)){
if (StringUtils.isNotBlank(phoneNumber)) {
List<ClerkListDTO> list = clerkService.getClerkByStoreId(clerk.getEnterpriseId(), clerk.getStoreId());
for (ClerkListDTO clerkListDTO : list) {
if(clerkListDTO.getPhoneNumber().equals(phoneNumber) && !clerkListDTO.getClerkId().equals(clerkId)){
if (clerkListDTO.getPhoneNumber().equals(phoneNumber) && !clerkListDTO.getClerkId().equals(clerkId)) {
return resultResponse(HaoBanErrCode.ERR_11122);
}
}
......
......@@ -15,13 +15,13 @@ import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StorePhotoDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.data.api.dto.HaobanDataDTO;
import com.gic.haoban.data.api.service.HaobanDataApiService;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.StoreFieldEnum;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.anno.IgnoreLogin;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.vo.StaffStoreVO;
import com.gic.haoban.manage.web.vo.StoreDetailVO;
......@@ -37,8 +37,8 @@ import java.util.*;
import java.util.stream.Collectors;
@RestController
public class StoreController extends WebBaseController{
private static Logger logger = LoggerFactory.getLogger(StoreController.class);
public class StoreController extends WebBaseController {
private static final Logger logger = LoggerFactory.getLogger(StoreController.class);
@Autowired
private ClerkService clerkService;
......
package com.gic.haoban.manage.web.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.clerk.api.dto.ClerkDTO;
......@@ -12,7 +15,8 @@ import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.haoban.app.customer.dto.StaffOpenRelatedDTO;
import com.gic.haoban.app.customer.service.api.service.StaffMemberRelationApiService;
import com.gic.haoban.common.utils.AuthRequestUtil;
import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.AuthRequestWellDoneUtil;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.*;
......@@ -20,14 +24,15 @@ import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.ClerkLoginQO;
import com.gic.haoban.manage.web.qo.GetUserByMemberCodeQo;
import com.gic.haoban.manage.web.qo.MemberLoginQo;
import com.gic.haoban.manage.web.qo.StaffLoginQO;
import com.gic.haoban.manage.web.utils.IPAddressUtil;
import com.gic.haoban.manage.web.utils.JwtUtil;
import com.gic.haoban.manage.web.vo.AppStaffVo;
import com.gic.haoban.manage.web.vo.InfoVo;
import com.gic.haoban.manage.web.vo.MemberSendMessageVo;
import com.gic.haoban.manage.web.vo.StoreMemberVO;
import com.gic.haoban.manage.web.vo.WellDoneLoginInfoVO;
import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxCorpApiService;
......@@ -36,12 +41,15 @@ import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
import java.util.*;
import java.util.stream.Collectors;
......@@ -88,6 +96,7 @@ public class WxEnterpriseInfoController extends WebBaseController {
* @return
*/
@RequestMapping(value = "get-info-by-code", method = {RequestMethod.GET, RequestMethod.POST})
@IgnoreLogin
public HaobanResponse getInfoByCode(String code) {
String userDTOJson = qywxCorpApiService.getCodeSession(config.getWxSuiteid(), code);
logger.info("userDTOJson=============>{}", userDTOJson);
......@@ -144,42 +153,46 @@ public class WxEnterpriseInfoController extends WebBaseController {
String wxEnterpriseId = loginStaff.getWxEnterpriseId();
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
String accesstoken = qywxCorpApiService.getCorpAccessToken(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid());
InfoVo infoVo = new InfoVo();
infoVo.setAccessToken(accesstoken);
infoVo.setStaffId(loginStaff.getStaffId());
infoVo.setWxEnterpriseId(wxEnterpriseId);
infoVo.setStaffName(loginStaff.getStaffName());
infoVo.setPhoneNumber(loginStaff.getPhoneNumber());
infoVo.setNationcode(loginStaff.getNationCode());
infoVo.setWxUserId(loginStaff.getWxUserId());
return resultResponse(HaoBanErrCode.ERR_1, infoVo);
WellDoneLoginInfoVO wellDoneLoginInfoVo = new WellDoneLoginInfoVO();
wellDoneLoginInfoVo.setAccessToken(accesstoken);
wellDoneLoginInfoVo.setStaffId(loginStaff.getStaffId());
wellDoneLoginInfoVo.setWxEnterpriseId(wxEnterpriseId);
wellDoneLoginInfoVo.setStaffName(loginStaff.getStaffName());
wellDoneLoginInfoVo.setPhoneNumber(loginStaff.getPhoneNumber());
wellDoneLoginInfoVo.setNationcode(loginStaff.getNationCode());
wellDoneLoginInfoVo.setWxUserId(loginStaff.getWxUserId());
return resultResponse(HaoBanErrCode.ERR_1, wellDoneLoginInfoVo);
}
/**
* 好办小程序-登陆
*
* @param clerkLoginQO 登录QO
* @param staffLoginQO 员工登录:
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-10 15:56:13
* @date 2021-12-14 20:18:12
*/
@RequestMapping(value = "welldone-login", method = RequestMethod.POST)
public HaobanResponse welldoneLogin(@RequestBody ClerkLoginQO clerkLoginQO) {
String phoneNumber = clerkLoginQO.getPhoneNumber();
ClerkDTO clerkDTO = clerkService.getClerkByPhoneNumber(phoneNumber);
if (clerkDTO == null) {
@IgnoreLogin
public HaobanResponse welldoneLogin(@RequestBody @Valid StaffLoginQO staffLoginQO, HttpServletRequest request) {
StaffDTO staffDTO = staffApiService.selectById(staffLoginQO.getStaffId());
if (staffDTO == null) {
return resultResponse(HaoBanErrCode.ERR_6);
}
String clerkId = clerkDTO.getClerkId();
Map<String, String> map = new HashMap<>();
map.put("clerkId", clerkId);
map.put("enterpriseId", clerkDTO.getEnterpriseId());
map.put("isManager", clerkDTO.getClerkType() == 1 ? "1" : "0");
map.put("phoneNumber", phoneNumber);
map.put("staffId", staffDTO.getStaffId());
map.put("wxEnterpriseId", staffDTO.getWxEnterpriseId());
map.put("phoneNumber", staffDTO.getPhoneNumber());
String token = JwtUtil.genToken(map);
AuthRequestUtil.setAppLoginUser(JSON.toJSONString(map));
AuthRequestWellDoneUtil.setAppLoginUser(token, BeanUtil.mapToBean(map, WellDoneLoginDTO.class, false));
StaffLoginDTO staffLoginDTO = new StaffLoginDTO();
BeanUtils.copyProperties(staffLoginQO, staffLoginDTO);
staffLoginDTO.setStaffIp(IPAddressUtil.getIpAddress(request));
staffDTO.setWxEnterpriseId(staffDTO.getWxEnterpriseId());
staffDTO.setPhoneNumber(staffDTO.getPhoneNumber());
staffDTO.setWxUserId(staffDTO.getWxUserId());
wxEnterpriseApiService.wellDoneLogin(staffLoginDTO);
return resultResponse(HaoBanErrCode.ERR_1, token);
}
......@@ -190,10 +203,20 @@ public class WxEnterpriseInfoController extends WebBaseController {
* @author mozhu
* @date 2021-12-10 18:34:12
*/
@RequestMapping("welldone-token-refresh")
@RequestMapping(value = "welldone-token-refresh", method = RequestMethod.GET)
public HaobanResponse welldoneTokenRefresh() {
AuthRequestUtil.setAppLoginUser(AuthRequestUtil.getAppLoginUser());
return resultResponse(HaoBanErrCode.ERR_1);
String token = AuthRequestWellDoneUtil.getToken();
if (ObjectUtil.isNull(token)) {
return resultResponse(HaoBanErrCode.ERR_30004);
}
Map<String, String> tokenMap = JwtUtil.parseToken(token);
if (MapUtil.isEmpty(tokenMap)) {
return resultResponse(HaoBanErrCode.ERR_30009);
}
AuthRequestWellDoneUtil.delToken();
String newToken = JwtUtil.genToken(tokenMap);
AuthRequestWellDoneUtil.setAppLoginUser(newToken, BeanUtil.mapToBean(tokenMap, WellDoneLoginDTO.class, false));
return resultResponse(HaoBanErrCode.ERR_1, token);
}
/**
......@@ -201,14 +224,16 @@ public class WxEnterpriseInfoController extends WebBaseController {
*
* @return
*/
@RequestMapping("welldone-loginout")
@RequestMapping(value = "welldone-loginout", method = RequestMethod.GET)
@IgnoreLogin
public HaobanResponse welldoneLoginOut() {
AuthRequestUtil.delSessionUser();
AuthRequestWellDoneUtil.delToken();
return resultResponse(HaoBanErrCode.ERR_1);
}
@RequestMapping("get-user-by-member-code")
@IgnoreLogin
public HaobanResponse getInfoByMemberCode(GetUserByMemberCodeQo qo) {
WxEnterpriseDTO enterpriseDetailDTO = null;
if (StringUtils.isNotBlank(qo.getCorpId())) {
......@@ -312,6 +337,12 @@ public class WxEnterpriseInfoController extends WebBaseController {
return user;
}
/**
* 好办点击进来日志表
*
* @param userLoginLogDTO
* @return
*/
@RequestMapping("save-user-login-log")
public HaobanResponse saveUserLoginLog(UserLoginLogDTO userLoginLogDTO) {
staffApiService.insertUserLoginLog(userLoginLogDTO);
......@@ -346,7 +377,6 @@ public class WxEnterpriseInfoController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1, staffs);
}
return resultResponse(HaoBanErrCode.ERR_1, new ArrayList<>());
}
/**
......
......@@ -122,6 +122,7 @@ public enum HaoBanErrCode {
ERR_30006(30006, "用户名或密码错误"),
ERR_30007(30007, "未设置密码,请先设置密码"),
ERR_30008(30008, "超级管理员不存在"),
ERR_30009(30009, "token不正确,请重新登录"),
//角色
ERR_40001(40001, "角色异常"),
......@@ -236,7 +237,7 @@ public enum HaoBanErrCode {
private int code;
private String msg;
private HaoBanErrCode(int code, String value) {
HaoBanErrCode(int code, String value) {
this.code = code;
this.msg = value;
}
......
package com.gic.haoban.manage.web.exception;
/**
* Created 2018/7/24.
*
* @author hua
*/
public class ControllerException extends Exception {
}
......@@ -6,6 +6,10 @@ import com.gic.haoban.manage.web.controller.WebBaseController;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindException;
import org.springframework.validation.BindingResult;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
......@@ -23,45 +27,50 @@ import java.util.regex.Pattern;
*/
@ControllerAdvice
public class GlobalExceptionHandler extends WebBaseController {
private static Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
private static final Logger logger = LoggerFactory.getLogger(GlobalExceptionHandler.class);
private static final Pattern pattern = Pattern.compile("(.*: )(.*)(\\n.*)");
/**
* 控制器运行异常
*
* @param response 响应
* @param ex 前女友
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:50
*/
@ResponseBody
@ExceptionHandler(RuntimeException.class)
public HaobanResponse controllerRunException(HttpServletResponse response, RuntimeException ex) {
logger.error("controllerRunException:{}", ex.getMessage(), ex);
HaobanResponse res = new HaobanResponse();
res.setErrorCode(HaoBanErrCode.ERR_3.getCode());
String message = ex.getMessage();
if (message != null && message.indexOf(ShowFrontMessageException.class.getName()) > -1) {
Matcher matcher = pattern.matcher(message);
while (matcher.find()) {
message = (matcher.group(2));
}
} else {
message = HaoBanErrCode.ERR_3.getMsg();
}
res.setMessage(message);
return res;
}
// @ResponseBody
// @ExceptionHandler(ShowFrontMessageException.class)
// public HaobanResponse ControllerException(HttpServletResponse response, ShowFrontMessageException ex) {
// HaobanResponse res = new HaobanResponse();
// res.setErrorCode(HaoBanErrCode.ERR_0.getCode());
// res.setMessage(ex.getMessage());
// return res;
// }
// @ResponseBody
// @ExceptionHandler(RuntimeException.class)
// public HaobanResponse ControllerException(HttpServletResponse response, RuntimeException ex) {
// HaobanResponse res = new HaobanResponse();
// res.setErrorCode(HaoBanErrCode.ERR_3.getCode());
// String message = ex.getMessage();
// if (message != null && message.indexOf(ShowFrontMessageException.class.getName()) > -1) {
// Matcher matcher = pattern.matcher(message);
// while (matcher.find()) {
// message = (matcher.group(2));
// }
// } else {
// message = HaoBanErrCode.ERR_3.getMsg();
// }
// res.setMessage(message);
// return res;
// }
/**
* 全局异常
*
* @param response 响应
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:54:25
*/
@ResponseBody
@ExceptionHandler(Exception.class)
public HaobanResponse ControllerException(HttpServletResponse response, Exception ex) {
logger.error("err:", ex.getMessage());
ex.printStackTrace();
HaoBanErrCode errCode = HaoBanErrCode.ERR_3;
public HaobanResponse controllerException(HttpServletResponse response, Exception ex) {
logger.error("controllerException:{}", ex.getMessage(), ex);
StringBuilder sb = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
try (PrintWriter printWriter = new PrintWriter(baos)) {
......@@ -74,17 +83,59 @@ public class GlobalExceptionHandler extends WebBaseController {
if (sb.length() == 0) {
sb.append(ex.getMessage());
}
// 输出详细错误信息,便于调试
// return resultResponse(errCode, null, sb.toString());
return resultResponse(HaoBanErrCode.ERR_3);
}
/**
* valid 异常告警
*
* @param response
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:40
*/
@ResponseBody
@ExceptionHandler(BindException.class)
public HaobanResponse bindException(HttpServletResponse response, BindException ex) {
logger.error("bindException:{}", ex.getMessage());
HaoBanErrCode errCode = HaoBanErrCode.ERR_5;
BindingResult bindingResult = ex.getBindingResult();
FieldError fieldError = bindingResult.getFieldError();
return resultResponse(errCode, null, fieldError.getField() + fieldError.getDefaultMessage());
}
/**
* valid 异常告警 @ReuqestBody
*
* @param response
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:35
*/
@ResponseBody
@ExceptionHandler(MethodArgumentNotValidException.class)
public HaobanResponse methodArgumentNotValidException(HttpServletResponse response, MethodArgumentNotValidException ex) {
logger.error("methodArgumentNotValidException:{}", ex.getMessage());
HaoBanErrCode errCode = HaoBanErrCode.ERR_5;
BindingResult bindingResult = ex.getBindingResult();
FieldError fieldError = bindingResult.getFieldError();
return resultResponse(errCode, null, fieldError.getField() + fieldError.getDefaultMessage());
}
/**
* 登录异常
*
* @param response 响应
* @param ex
* @return {@link HaobanResponse }
* @author mozhu
* @date 2021-12-15 14:55:16
*/
@ResponseBody
@ExceptionHandler(NoLoginException.class)
public HaobanResponse ControllerException(HttpServletResponse response, NoLoginException ex) {
public HaobanResponse controllerNoLoginException(HttpServletResponse response, NoLoginException ex) {
return resultResponse(HaoBanErrCode.ERR_4);
}
}
package com.gic.haoban.manage.web.init;
import com.gic.dict.api.dto.GlobalDictMap;
import com.gic.dict.api.service.ManagerDictService;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.BeansException;
......@@ -8,26 +10,23 @@ import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
import com.gic.dict.api.dto.GlobalDictMap;
import com.gic.dict.api.service.ManagerDictService;
@Component
public class MyApplicationContextAware implements ApplicationContextAware {
private Logger log = LogManager.getLogger(MyApplicationContextAware.class);
private final Logger log = LogManager.getLogger(MyApplicationContextAware.class);
@Autowired
private ManagerDictService managerDictService;
private static ApplicationContext applicationContext;
@Autowired
private ManagerDictService managerDictService;
@Override
public void setApplicationContext(ApplicationContext appContext) throws BeansException {
GlobalDictMap.countyMap = managerDictService.getCountysMap();
GlobalDictMap.cityMap = managerDictService.getCitysMap();
GlobalDictMap.provinceMap = managerDictService.getProvincesMap();
GlobalDictMap.dictMap = managerDictService.getDictList();
GlobalDictMap.storeCategoryDictMap = managerDictService.getStoreCategoryDictList();
log.info("数据字典放入缓存");
GlobalDictMap.countyMap = managerDictService.getCountysMap();
GlobalDictMap.cityMap = managerDictService.getCitysMap();
GlobalDictMap.provinceMap = managerDictService.getProvincesMap();
GlobalDictMap.dictMap = managerDictService.getDictList();
GlobalDictMap.storeCategoryDictMap = managerDictService.getStoreCategoryDictList();
log.info("数据字典放入缓存");
}
}
package com.gic.haoban.manage.web.interceptor;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.common.anno.HttpLimit;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.web.anno.HttpLimit;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.utils.IPAddressUtil;
import com.gic.redis.data.util.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
......@@ -17,6 +13,9 @@ import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
/**
* 测试登录拦截器
......@@ -25,7 +24,7 @@ import javax.servlet.http.HttpServletResponse;
*/
public class HttpLimitInterceptor extends HandlerInterceptorAdapter {
private static Logger logger = LoggerFactory.getLogger(HttpLimitInterceptor.class);
private static final Logger logger = LoggerFactory.getLogger(HttpLimitInterceptor.class);
private void errorResult(HttpServletResponse httpServletResponse, HaoBanErrCode errCode) {
HaobanResponse response = new HaobanResponse();
......@@ -52,7 +51,7 @@ public class HttpLimitInterceptor extends HandlerInterceptorAdapter {
HandlerMethod handler = (HandlerMethod) o;
HttpLimit httpLimit = handler.getMethodAnnotation(HttpLimit.class);
if (httpLimit != null) {
String ip = getIpAddress(httpServletRequest);
String ip = IPAddressUtil.getIpAddress(httpServletRequest);
String url = httpServletRequest.getRequestURL().toString();
String key = "http_limit_".concat(url);
key = key + ip;
......@@ -68,27 +67,5 @@ public class HttpLimitInterceptor extends HandlerInterceptorAdapter {
}
private String getIpAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
}
package com.gic.haoban.manage.web.interceptor;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.common.utils.AuthRequestUtil;
import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.AuthRequestWellDoneUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.WellDoneLoginDTO;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.redis.data.util.GicRateLimiter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
......@@ -14,16 +17,17 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
/**
* Created 2018/7/20.
*
* @author hua
*/
public class WebInterceptor extends HandlerInterceptorAdapter {
public class MobileWebInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = LoggerFactory.getLogger(WebInterceptor.class);
private static final Logger logger = LoggerFactory.getLogger(MobileWebInterceptor.class);
private static final String MOUDLE = "haoban-manage3-wx";
private void errorResult(HttpServletResponse httpServletResponse, HaoBanErrCode errCode) {
......@@ -44,11 +48,25 @@ public class WebInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
String requestURI = httpServletRequest.getRequestURI();
logger.info("post-url:{}", requestURI);
Map<String, String[]> parameterMap = httpServletRequest.getParameterMap();
logger.info("post-params:{}", JSONObject.toJSONString(parameterMap));
Object appLoginUser = AuthRequestUtil.getAppLoginUser();
if (ObjectUtil.isNotNull(appLoginUser)) {
HandlerMethod handler = (HandlerMethod) o;
IgnoreLogin ignoreLogin = handler.getMethodAnnotation(IgnoreLogin.class);
if (null != ignoreLogin) {
return true;
}
WellDoneLoginDTO wellDoneLoginDTO = (WellDoneLoginDTO) AuthRequestWellDoneUtil.getLoginUser();
if (wellDoneLoginDTO == null) {
this.errorResult(httpServletResponse, HaoBanErrCode.ERR_4);
logger.info("用户不存在!");
return false;
}
String wxEnterpriseId = wellDoneLoginDTO.getWxEnterpriseId();
GicRateLimiter instance = GicRateLimiter.getInstance(MOUDLE);
Long acquire = instance.acquire(requestURI, wxEnterpriseId);
logger.info("限流返回值:{},{}", requestURI, acquire);
if (acquire == 0L) {
this.errorResult(httpServletResponse, HaoBanErrCode.ERR_13);
logger.info("wxEnterpriseId:{},限流!", wxEnterpriseId);
return false;
}
return true;
}
......
package com.gic.haoban.manage.web.interceptor;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.common.utils.HaobanResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.MethodParameter;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.servlet.mvc.method.annotation.ResponseBodyAdvice;
import java.lang.reflect.Method;
/**
* Created 2019/2/20.
*
* @author hua
*/
@ControllerAdvice
public class ResponseInterceptor implements ResponseBodyAdvice<HaobanResponse> {
private Logger logger = LoggerFactory.getLogger(ResponseInterceptor.class);
@Override
public boolean supports(MethodParameter methodParameter, Class<? extends HttpMessageConverter<?>> aClass) {
Method method = methodParameter.getMethod();
String name = method.getName();
logger.info("method:{}", name);
return true;
}
@Override
public HaobanResponse beforeBodyWrite(HaobanResponse haobanResponse, MethodParameter methodParameter, MediaType mediaType, Class<? extends HttpMessageConverter<?>> aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
String response = JSONObject.toJSONString(haobanResponse);
logger.info("response:{}", response);
return haobanResponse;
}
}
package com.gic.haoban.manage.web.interceptor;
import com.gic.haoban.auth.api.dto.UserRightDetailDTO;
import com.gic.haoban.common.utils.AuthRequestUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* 测试登录拦截器
*
* @author zhurz
*/
public class TestLoginInterceptor extends HandlerInterceptorAdapter {
private static Logger logger = LoggerFactory.getLogger(TestLoginInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
// 测试用
HttpServletRequest request = AuthRequestUtil.getRequest();
String testFlag = request.getHeader("testFlag");
if (!"Y".equals(testFlag)) return true;
String testEnterpriseId = request.getHeader("testEnterpriseId");
String testUserId = request.getHeader("testUserId");
UserRightDetailDTO sessionUser = new UserRightDetailDTO();
sessionUser.setUserId(testUserId);
sessionUser.setEnterpriseId(testEnterpriseId);
AuthRequestUtil.setSessionUser(sessionUser);
return true;
}
}
package com.gic.haoban.manage.web.qo;
import java.io.Serializable;
/**
* 员工登录
*
* @author mozhu
* @date 2021/12/10 15:00
*/
public class ClerkLoginQO implements Serializable {
private static final long serialVersionUID = -170574390217887304L;
/**
* 电话号码
*/
private String phoneNumber;
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
package com.gic.haoban.manage.web.qo;
import org.hibernate.validator.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
/**
* 员工登录
*
* @author mozhu
* @date 2021/12/10 15:00
*/
public class StaffLoginQO implements Serializable {
private static final long serialVersionUID = -170574390217887304L;
@NotEmpty(message = "员工id不允许为空")
private String staffId;
private String wxEnterpriseId;
private String phoneNumber;
private String nationcode;
private String wxUserId;
/**
* 是否同意隐私协议,1:是;0:否
*/
@NotNull(message = "是否同意隐私协议不允许为空")
private Integer privacyUseFlag;
/**
* 好办版本
*/
private String welldoneVersion;
/**
* 企微版本
*/
private String weworkVersion;
/**
* 用户手机品牌
*/
private String staffPhoneBrand;
/**
* 用户手机型号
*/
private String staffPhoneModel;
/**
* 用户手机版本
*/
private String staffPhoneVersion;
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getNationcode() {
return nationcode;
}
public void setNationcode(String nationcode) {
this.nationcode = nationcode;
}
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
public Integer getPrivacyUseFlag() {
return privacyUseFlag;
}
public void setPrivacyUseFlag(Integer privacyUseFlag) {
this.privacyUseFlag = privacyUseFlag;
}
public String getWelldoneVersion() {
return welldoneVersion;
}
public void setWelldoneVersion(String welldoneVersion) {
this.welldoneVersion = welldoneVersion;
}
public String getWeworkVersion() {
return weworkVersion;
}
public void setWeworkVersion(String weworkVersion) {
this.weworkVersion = weworkVersion;
}
public String getStaffPhoneBrand() {
return staffPhoneBrand;
}
public void setStaffPhoneBrand(String staffPhoneBrand) {
this.staffPhoneBrand = staffPhoneBrand;
}
public String getStaffPhoneModel() {
return staffPhoneModel;
}
public void setStaffPhoneModel(String staffPhoneModel) {
this.staffPhoneModel = staffPhoneModel;
}
public String getStaffPhoneVersion() {
return staffPhoneVersion;
}
public void setStaffPhoneVersion(String staffPhoneVersion) {
this.staffPhoneVersion = staffPhoneVersion;
}
}
package com.gic.haoban.manage.web.utils;
import javax.servlet.http.HttpServletRequest;
/**
* @author mozhu
* @date 2021/12/15 11:07
*/
public class IPAddressUtil {
/**
* 获得ip地址
*
* @param request 请求
* @return {@link String }
* @author mozhu
* @date 2021-12-15 11:08:30
*/
public static String getIpAddress(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_CLIENT_IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
}
......@@ -7,19 +7,20 @@ import java.io.Serializable;
*
* @author hua
*/
public class InfoVo implements Serializable {
public class WellDoneLoginInfoVO implements Serializable {
private static final long serialVersionUID = 1L;
private String staffId;
private String wxEnterpriseId;
private String accessToken;
private String staffName;
private String phoneNumber;
private String nationcode;
private String wxUserId;
private String wxEnterpriseId;
private String accessToken;
private String staffName;
private String phoneNumber;
private String nationcode;
private String wxUserId;
public String getWxUserId() {
return wxUserId;
}
public void setWxUserId(String wxUserId) {
this.wxUserId = wxUserId;
}
......@@ -59,6 +60,5 @@ public class InfoVo implements Serializable {
public void setNationcode(String nationcode) {
this.nationcode = nationcode;
}
}
......@@ -6,6 +6,7 @@
<bean class="com.gic.haoban.common.interceptor.CORSInterceptor"/>
<bean class="com.gic.commons.interceptor.HeaderTagInterceptor"/>
<bean class="com.gic.haoban.common.ext.PropertyViewClearInterceptor"/>
<bean class="com.gic.haoban.manage.web.interceptor.HttpLimitInterceptor"/>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/login.json"/>
......@@ -19,7 +20,7 @@
<mvc:exclude-mapping path="/phone-login"/>
<mvc:exclude-mapping path="/upload-file*"/>
<mvc:exclude-mapping path="/upload-file-voice"/>
<bean class="com.gic.haoban.manage.web.interceptor.WebInterceptor"/>
<bean class="com.gic.haoban.manage.web.interceptor.MobileWebInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment