This commit is contained in:
houjishuang
2025-06-24 09:21:36 +08:00
parent f91a3b99bf
commit a3e1b9a75c
17 changed files with 682 additions and 35 deletions

View File

@ -69,5 +69,29 @@ public class LoginController {
return BaseResponse.success(result);
}
@ApiOperation("账号登录")
@PostMapping("/accountLogin/expert")
public BaseResponse idcardExpertLogin(HttpServletResponse response,@RequestBody LoginUserVo vo) {
if(captchaGenerator.checkCaptcha(vo.getIdentifying(),vo.getEncryptValue())){
BaseSelf self = iBaseUserService.idcardExpertLogin(vo.getAccount(), vo.getPassword());
this.iBaseUserService.setCookie(response,"mall3_token"+self.getUser().getUserId(),self.getToken());
return BaseResponse.success(self);
}else{
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("验证码无效",true);
return BaseResponse.success(null);
}
}
@ApiOperation("账号登录")
@PostMapping("/accountLogin/supplier")
public BaseResponse idcardSupplierLogin(HttpServletResponse response,@RequestBody LoginUserVo vo) {
if(captchaGenerator.checkCaptcha(vo.getIdentifying(),vo.getEncryptValue())){
BaseSelf self = iBaseUserService.idcardSupplierLogin(vo.getAccount(), vo.getPassword());
this.iBaseUserService.setCookie(response,"mall3_token"+self.getUser().getUserId(),self.getToken());
return BaseResponse.success(self);
}else{
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("验证码无效",true);
return BaseResponse.success(null);
}
}
}

View File

@ -2,6 +2,8 @@ package com.chinaunicom.mall.ebtp.login.entity;
import com.coscoshipping.ebtp.project.org.entity.SysOrg;
import com.coscoshipping.ebtp.project.user.entity.SysExpertUser;
import com.coscoshipping.ebtp.project.user.entity.SysSupplierUser;
import com.coscoshipping.ebtp.project.user.entity.SysUser;
import lombok.Data;
@ -32,6 +34,10 @@ public class BaseSelf {
*
*/
private SysUser user; //user
private SysSupplierUser supplierUser; //supplierUser
private SysExpertUser expertUser; //supplierUser
/**
* 所属机构
*/

View File

@ -24,6 +24,11 @@ public interface BaseUserService extends IBaseService<SysUser> {
BaseSelf idcardLogin(String account, String password);
String getUserHost();
BaseSelf getRequestUser();
BaseSelf idcardSupplierLogin(String account, String password);
BaseSelf idcardExpertLogin(String account, String password);
void setCookie(HttpServletResponse response, String name, String value);
SecurityEntity bdCheckToken(String token);

View File

@ -19,10 +19,13 @@ import com.chinaunicom.mall.ebtp.login.service.BaseUserService;
import com.chinaunicom.mall.ebtp.login.service.BaseUserTokenService;
import com.coscoshipping.ebtp.project.org.entity.SysOrg;
import com.coscoshipping.ebtp.project.org.service.SysOrgService;
import com.coscoshipping.ebtp.project.user.dao.SysExpertUserMapper;
import com.coscoshipping.ebtp.project.user.dao.SysSupplierUserMapper;
import com.coscoshipping.ebtp.project.user.entity.SysExpertUser;
import com.coscoshipping.ebtp.project.user.entity.SysSupplierUser;
import com.coscoshipping.ebtp.project.user.entity.SysUser;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
@ -41,11 +44,9 @@ import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.chinaunicom.mall.ebtp.cloud.security.starter.common.Constants.REDIS_USER_KEY;
@ -60,6 +61,10 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
@Autowired
private BaseUserMapper baseUserMapper;
@Autowired
private SysExpertUserMapper sysExpertUserMapper;
@Autowired
private SysSupplierUserMapper sysSupplierUserMapper;
@Value("${login.password.privateKey}")
private String privateKey;
@ -132,7 +137,98 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
return null;
}
@Override
public BaseSelf idcardSupplierLogin(String account, String password) {
try {
List<SysSupplierUser> userList = sysSupplierUserMapper.selectList(new LambdaQueryWrapper<SysSupplierUser>().eq(SysSupplierUser::getUsername, account).eq(SysSupplierUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE)));
if (userList == null || userList.size() == 0) {
throw new RuntimeException("无效用户!");
}
SysSupplierUser user = userList.get(0);
if (Constants.USER_STATUS_FREEZE.equals(user.getStatus().toString())) {
throw new RuntimeException("账号已冻结!");
}
byte[] decode = RSA.decryptByPrivateKey(RSA.decryptBASE64(password), privateKey);
String pw = new String(decode);
if (!this.encode(pw).equals(user.getPassword())) {
throw new RuntimeException("用户名或密码错误!");
}
BaseSelf baseSelf = userSupplierLogin(user);
// String token = baseSelf.getToken();
//
// //缓存用户信息
// BaseCacheUser baseCacheUser = new BaseCacheUser();
// BeanUtils.copyProperties(user, baseCacheUser);
// //存入缓存redis
// userinfoRedisTemplate.opsForValue().set(REDIS_USER_KEY + token,
// baseCacheUser, Long.parseLong(valid_time_limit), TimeUnit.HOURS);
//
// userInfoService.getUserInfo(token);
return baseSelf;
} catch (BadPaddingException e) {
log.error("RSA解密异常", e);
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("用户名或密码错误", true);
} catch (Exception e) {
log.error("登录异常", e);
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName(e.getMessage(), true);
}
return null;
}
@Override
public BaseSelf idcardExpertLogin(String account, String password) {
try {
List<SysExpertUser> userList = sysExpertUserMapper.selectList(new LambdaQueryWrapper<SysExpertUser>().eq(SysExpertUser::getUsername, account).eq(SysExpertUser::getStatus, Integer.parseInt(Constants.USER_STATUS_LIVE)));
if (userList == null || userList.size() == 0) {
throw new RuntimeException("无效用户!");
}
SysExpertUser user = userList.get(0);
if (Constants.USER_STATUS_FREEZE.equals(user.getStatus().toString())) {
throw new RuntimeException("账号已冻结!");
}
byte[] decode = RSA.decryptByPrivateKey(RSA.decryptBASE64(password), privateKey);
String pw = new String(decode);
if (!this.encode(pw).equals(user.getPassword())) {
throw new RuntimeException("用户名或密码错误!");
}
BaseSelf baseSelf = userExpertLogin(user);
// String token = baseSelf.getToken();
//
// //缓存用户信息
// BaseCacheUser baseCacheUser = new BaseCacheUser();
// BeanUtils.copyProperties(user, baseCacheUser);
// //存入缓存redis
// userinfoRedisTemplate.opsForValue().set(REDIS_USER_KEY + token,
// baseCacheUser, Long.parseLong(valid_time_limit), TimeUnit.HOURS);
//
// userInfoService.getUserInfo(token);
return baseSelf;
} catch (BadPaddingException e) {
log.error("RSA解密异常", e);
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("用户名或密码错误", true);
} catch (Exception e) {
log.error("登录异常", e);
CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName(e.getMessage(), true);
}
return null;
}
private BaseSelf userLogin(SysUser user) {
BaseSelf self = new BaseSelf();
String token = getToken(user.getUserId());
@ -144,6 +240,42 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
return self;
}
private BaseSelf userExpertLogin(SysExpertUser user) {
BaseSelf self = new BaseSelf();
String token = getExpertToken(String.valueOf(user.getUserId().longValue()));
user.setPassword("****************************");
SysUser sysUser = new SysUser();
sysUser.setName(user.getName());
sysUser.setMobile(user.getMobile());
sysUser.setEmail(user.getEmail()) ;
sysUser.setSex(user.getSex());
sysUser.setStatus(user.getStatus());
self.setUser(sysUser);
self.setExpertUser(user);
String ip = getUserHost();
self.setIp(ip);
self.setToken(token);
return self;
}
private BaseSelf userSupplierLogin(SysSupplierUser user) {
BaseSelf self = new BaseSelf();
String token = getSupplierToken(String.valueOf(user.getUserId().longValue()));
user.setPassword("****************************");
SysUser sysUser = new SysUser();
sysUser.setName(user.getName());
sysUser.setMobile(user.getMobile());
sysUser.setEmail(user.getEmail()) ;
sysUser.setSex(user.getSex());
sysUser.setStatus(user.getStatus());
self.setUser(sysUser);
self.setSupplierUser(user);
String ip = getUserHost();
self.setIp(ip);
self.setToken(token);
return self;
}
private String getToken(String userId) {
@ -166,6 +298,48 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
baseUserTokenService.refreshToken(tokenObj);
return token;
}
private String getSupplierToken(String userId) {
List<BaseUserToken> tokenList = baseUserTokenService.list((new LambdaQueryWrapper<BaseUserToken>().eq(BaseUserToken::getUserId, userId)
.gt(BaseUserToken::getValidTime, LocalDateTime.now()).eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime)));
String token = UUID.randomUUID().toString();
BaseUserToken tokenObj = new BaseUserToken();
if (tokenList != null && tokenList.size() > 0) {
tokenObj = tokenList.get(0);
token = tokenObj.getToken();
} else {
tokenObj.setUserId(userId);
tokenObj.setToken(token);
tokenObj.setState(Constants.USER_TOKEN_STATUS_E);
tokenObj.setCreateTime(LocalDateTime.now());
}
SecurityEntity securityEntity = getUserObjectBySupplierUserId(userId);
tokenObj.setUserObject(JSONObject.toJSONString(securityEntity));
baseUserTokenService.refreshToken(tokenObj);
return token;
}
private String getExpertToken(String userId) {
List<BaseUserToken> tokenList = baseUserTokenService.list((new LambdaQueryWrapper<BaseUserToken>().eq(BaseUserToken::getUserId, userId)
.gt(BaseUserToken::getValidTime, LocalDateTime.now()).eq(BaseUserToken::getState, Constants.USER_TOKEN_STATUS_E).orderByDesc(BaseUserToken::getValidTime)));
String token = UUID.randomUUID().toString();
BaseUserToken tokenObj = new BaseUserToken();
if (tokenList != null && tokenList.size() > 0) {
tokenObj = tokenList.get(0);
token = tokenObj.getToken();
} else {
tokenObj.setUserId(userId);
tokenObj.setToken(token);
tokenObj.setState(Constants.USER_TOKEN_STATUS_E);
tokenObj.setCreateTime(LocalDateTime.now());
}
SecurityEntity securityEntity = getUserObjectByExpertUserId(userId);
tokenObj.setUserObject(JSONObject.toJSONString(securityEntity));
baseUserTokenService.refreshToken(tokenObj);
return token;
}
@Override
public void setCookie(HttpServletResponse response, String name, String value) {
@ -258,6 +432,46 @@ public class BaseUserServiceImpl extends BaseServiceImpl<BaseUserMapper, SysUser
securityEntity.setAuthorityList(authorityList);
return securityEntity;
}
public SecurityEntity getUserObjectByExpertUserId(String userId) {
SecurityEntity securityEntity = new SecurityEntity();
SysExpertUser baseUser = this.sysExpertUserMapper.selectById(userId);
securityEntity.setUserid(String.valueOf(baseUser.getUserId().longValue()));
securityEntity.setStaffId(String.valueOf(baseUser.getUserId().longValue()));
securityEntity.setUsername(baseUser.getUsername());
securityEntity.setStaffName(baseUser.getName());
// securityEntity.setOu(baseUser.getOrgId());//部门id
// securityEntity.setOuName(baseUser.getOrgName());
// SysOrg company = sysOrgService.getCompanyByOrgId(baseUser.getOrgId());
// if (company != null) {
// securityEntity.setOrgId(company.getOrgId());//公司id
// securityEntity.setOrgName(company.getOrgName());
// }
securityEntity.setUserSource("1");//账号类型专家库
List<AuthorityEntity> authorityList =this.sysExpertUserMapper.selectRoleByUserId(String.valueOf(baseUser.getUserId()));;
securityEntity.setAuthorityList(authorityList);
return securityEntity;
}
public SecurityEntity getUserObjectBySupplierUserId(String userId) {
SecurityEntity securityEntity = new SecurityEntity();
SysSupplierUser baseUser = this.sysSupplierUserMapper.selectById(userId);
securityEntity.setUserid(String.valueOf(baseUser.getUserId().longValue()));
securityEntity.setStaffId(String.valueOf(baseUser.getUserId().longValue()));
securityEntity.setUsername(baseUser.getUsername());
securityEntity.setStaffName(baseUser.getName());
// securityEntity.setOu(baseUser.getOrgId());//部门id
// securityEntity.setOuName(baseUser.getOrgName());
// SysOrg company = sysOrgService.getCompanyByOrgId(baseUser.getOrgId());
// if (company != null) {
// securityEntity.setOrgId(company.getOrgId());//公司id
// securityEntity.setOrgName(company.getOrgName());
// }
securityEntity.setUserSource("2");//账号类型供应商
List<AuthorityEntity> authorityList =this.sysSupplierUserMapper.selectRoleByUserId(String.valueOf(baseUser.getUserId().longValue()));;
securityEntity.setAuthorityList(authorityList);
return securityEntity;
}
/**
* 本地token换取用户信息

View File

@ -0,0 +1,14 @@
package com.coscoshipping.ebtp.project.user.dao;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity;
import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.coscoshipping.ebtp.project.user.entity.SysExpertUser;
import java.util.List;
@Repository
public interface SysExpertUserMapper extends IBaseMapper<SysExpertUser> {
public List<AuthorityEntity> selectRoleByUserId(@Param("userId") String userId);
}

View File

@ -0,0 +1,14 @@
package com.coscoshipping.ebtp.project.user.dao;
import com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity;
import com.chinaunicom.mall.ebtp.common.base.dao.IBaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.coscoshipping.ebtp.project.user.entity.SysSupplierUser;
import java.util.List;
@Repository
public interface SysSupplierUserMapper extends IBaseMapper<SysSupplierUser> {
public List<AuthorityEntity> selectRoleByUserId(@Param("userId") String userId);
}

View File

@ -0,0 +1,21 @@
<?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.coscoshipping.ebtp.project.user.dao.SysExpertUserMapper">
<select id="selectRoleByUserId" resultType="com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity">
SELECT
r.role_id AS roleId,
r.role_name AS roleName,
r.role_code AS roleCode,
r.role_scope AS roleScope
FROM
sys_expert_user u,
sys_user_role ou,
sys_role r
WHERE
u.user_id = ou.user_id
AND ou.role_id = r.role_id
AND u.user_id = #{userId}
</select>
</mapper>

View File

@ -0,0 +1,21 @@
<?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.coscoshipping.ebtp.project.user.dao.SysSupplierUserMapper">
<select id="selectRoleByUserId" resultType="com.chinaunicom.mall.ebtp.cloud.security.starter.entity.AuthorityEntity">
SELECT
r.role_id AS roleId,
r.role_name AS roleName,
r.role_code AS roleCode,
r.role_scope AS roleScope
FROM
sys_supplier_user u,
sys_user_role ou,
sys_role r
WHERE
u.user_id = ou.user_id
AND ou.role_id = r.role_id
AND u.user_id = #{userId}
</select>
</mapper>

View File

@ -3,7 +3,7 @@
<mapper namespace="com.coscoshipping.ebtp.project.user.dao.SysUserMapper">
<resultMap id="userResultMap" type="com.coscoshipping.ebtp.project.user.entity.SysUser">
<result column="id" jdbcType="VARCHAR" property="id" />
<result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="password" jdbcType="VARCHAR" property="password" />
<result column="name" jdbcType="VARCHAR" property="name" />

View File

@ -0,0 +1,51 @@
package com.coscoshipping.ebtp.project.user.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 实体类 SysExpertUser-专家用户表
*
* @author yss
*/
@Data
@Accessors(chain = true)
@TableName(value = "sys_expert_user", autoResultMap = true)
@ApiModel(value = "SysExpertUser对象", description = "专家用户表")
public class SysExpertUser extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "用户名")
private String username;
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "中文姓名")
private String name;
@ApiModelProperty(value = "状态")
private Integer status;
@ApiModelProperty(value = "手机号码(用于接收短信提醒)等")
private String mobile;
@ApiModelProperty(value = "统一邮件")
private String email;
@ApiModelProperty(value = "性别")
private String sex;
}

View File

@ -0,0 +1,52 @@
package com.coscoshipping.ebtp.project.user.entity;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.chinaunicom.mall.ebtp.common.base.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 实体类 SysSupplierUser-供应商用户表
*
* @author yss
*/
@Data
@Accessors(chain = true)
@TableName(value = "sys_supplier_user", autoResultMap = true)
@ApiModel(value = "SysSupplierUser对象", description = "供应商用户表")
public class SysSupplierUser extends BaseEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
@ApiModelProperty(value = "用户id")
private Long userId;
@ApiModelProperty(value = "用户名")
private String username;
@ApiModelProperty(value = "密码")
private String password;
@ApiModelProperty(value = "中文姓名")
private String name;
@ApiModelProperty(value = "状态")
private Integer status;
@ApiModelProperty(value = "手机号码(用于接收短信提醒)等")
private String mobile;
@ApiModelProperty(value = "统一邮件")
private String email;
@ApiModelProperty(value = "性别")
private String sex;
}

View File

@ -0,0 +1,41 @@
package com.coscoshipping.ebtp.project.user.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseService;
import com.coscoshipping.ebtp.project.user.entity.SysExpertUser;
/**
* 对数据表 sys_expert_user 操作的 service
* @author yss
*
*/
public interface SysExpertUserService extends IBaseService<SysExpertUser> {
/**
* 专家用户分页查询
* @param sysExpertUser 专家用户信息
* @return 返回结果
*/
IPage<SysExpertUser> getPage(SysExpertUser sysExpertUser);
/**
* 新增专家用户
* @param sysExpertUser 专家用户信息
* @return 结果
*/
Boolean insertExpertUser(SysExpertUser sysExpertUser);
/**
* 修改专家用户
* @param sysExpertUser 专家用户信息
* @return 结果
*/
Boolean updateExpertUser(SysExpertUser sysExpertUser);
/**
* 通过用户ID删除专家用户
* @param userId 用户ID
* @return 结果
*/
Boolean deleteExpertUserById(Long userId);
}

View File

@ -0,0 +1,41 @@
package com.coscoshipping.ebtp.project.user.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.chinaunicom.mall.ebtp.common.base.service.IBaseService;
import com.coscoshipping.ebtp.project.user.entity.SysSupplierUser;
/**
* 对数据表 sys_supplier_user 操作的 service
* @author yss
*
*/
public interface SysSupplierUserService extends IBaseService<SysSupplierUser> {
/**
* 供应商用户分页查询
* @param sysSupplierUser 供应商用户信息
* @return 返回结果
*/
IPage<SysSupplierUser> getPage(SysSupplierUser sysSupplierUser);
/**
* 新增供应商用户
* @param sysSupplierUser 供应商用户信息
* @return 结果
*/
Boolean insertSupplierUser(SysSupplierUser sysSupplierUser);
/**
* 修改供应商用户
* @param sysSupplierUser 供应商用户信息
* @return 结果
*/
Boolean updateSupplierUser(SysSupplierUser sysSupplierUser);
/**
* 通过用户ID删除供应商用户
* @param userId 用户ID
* @return 结果
*/
Boolean deleteSupplierUserById(Long userId);
}

View File

@ -0,0 +1,81 @@
package com.coscoshipping.ebtp.project.user.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.coscoshipping.ebtp.project.user.dao.SysExpertUserMapper;
import com.coscoshipping.ebtp.project.user.entity.SysExpertUser;
import com.coscoshipping.ebtp.project.user.service.SysExpertUserService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 对数据表 sys_expert_user 操作的 serviceImpl
* @author yss
*
*/
@Service
public class SysExpertUserServiceImpl extends BaseServiceImpl<SysExpertUserMapper, SysExpertUser> implements SysExpertUserService {
@Override
public IPage<SysExpertUser> getPage(SysExpertUser sysExpertUser) {
LambdaQueryWrapper<SysExpertUser> query = buildQueryWrapper(sysExpertUser);
// 如果没有分页请求,创建一个默认的
BasePageRequest basePageRequest = new BasePageRequest();
// 查询
IPage<SysExpertUser> result = new Page<>(basePageRequest.getPageNo(), basePageRequest.getPageSize());
result = this.page(result, query);
return result;
}
@Override
public Boolean insertExpertUser(SysExpertUser sysExpertUser) {
validEntityBeforeSave(sysExpertUser, false);
boolean flag = baseMapper.insert(sysExpertUser) > 0;
return flag;
}
@Override
public Boolean updateExpertUser(SysExpertUser sysExpertUser) {
validEntityBeforeSave(sysExpertUser, true);
boolean flag = baseMapper.updateById(sysExpertUser) > 0;
return flag;
}
@Override
public Boolean deleteExpertUserById(Long userId) {
return this.removeById(userId);
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysExpertUser entity, boolean isUpdate) {
// TODO 做一些数据校验,如唯一约束
}
private LambdaQueryWrapper<SysExpertUser> buildQueryWrapper(SysExpertUser entity) {
LambdaQueryWrapper<SysExpertUser> lqw = Wrappers.lambdaQuery();
lqw.eq(entity.getUserId() != null, SysExpertUser::getUserId, entity.getUserId());
lqw.like(StringUtils.isNotBlank(entity.getUsername()), SysExpertUser::getUsername, entity.getUsername());
lqw.like(StringUtils.isNotBlank(entity.getName()), SysExpertUser::getName, entity.getName());
lqw.eq(entity.getStatus() != null, SysExpertUser::getStatus, entity.getStatus());
lqw.like(StringUtils.isNotBlank(entity.getMobile()), SysExpertUser::getMobile, entity.getMobile());
lqw.like(StringUtils.isNotBlank(entity.getEmail()), SysExpertUser::getEmail, entity.getEmail());
lqw.eq(StringUtils.isNotBlank(entity.getSex()), SysExpertUser::getSex, entity.getSex());
lqw.eq(StringUtils.isNotBlank(entity.getTenantId()), SysExpertUser::getTenantId, entity.getTenantId());
lqw.like(StringUtils.isNotBlank(entity.getTenantName()), SysExpertUser::getTenantName, entity.getTenantName());
lqw.eq(entity.getCreateBy() != null, SysExpertUser::getCreateBy, entity.getCreateBy());
lqw.eq(entity.getUpdateBy() != null, SysExpertUser::getUpdateBy, entity.getUpdateBy());
lqw.orderByDesc(SysExpertUser::getCreateDate);
return lqw;
}
}

View File

@ -0,0 +1,82 @@
package com.coscoshipping.ebtp.project.user.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.chinaunicom.mall.ebtp.common.base.entity.BasePageRequest;
import com.chinaunicom.mall.ebtp.common.base.service.impl.BaseServiceImpl;
import com.chinaunicom.mall.ebtp.common.util.PropertyUtils;
import com.coscoshipping.ebtp.project.user.dao.SysSupplierUserMapper;
import com.coscoshipping.ebtp.project.user.entity.SysSupplierUser;
import com.coscoshipping.ebtp.project.user.service.SysSupplierUserService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
/**
* 对数据表 sys_supplier_user 操作的 serviceImpl
* @author yss
*
*/
@Service
public class SysSupplierUserServiceImpl extends BaseServiceImpl<SysSupplierUserMapper, SysSupplierUser> implements SysSupplierUserService {
@Override
public IPage<SysSupplierUser> getPage(SysSupplierUser sysSupplierUser) {
LambdaQueryWrapper<SysSupplierUser> query = buildQueryWrapper(sysSupplierUser);
// 如果没有分页请求,创建一个默认的
BasePageRequest basePageRequest = new BasePageRequest();
// 查询
IPage<SysSupplierUser> result = new Page<>(basePageRequest.getPageNo(), basePageRequest.getPageSize());
result = this.page(result, query);
return result;
}
@Override
public Boolean insertSupplierUser(SysSupplierUser sysSupplierUser) {
// sysSupplierUser.setUserId(PropertyUtils.getSnowflakeId()).setCreateDate(LocalDateTime.now());
validEntityBeforeSave(sysSupplierUser, false);
boolean flag = baseMapper.insert(sysSupplierUser) > 0;
return flag;
}
@Override
public Boolean updateSupplierUser(SysSupplierUser sysSupplierUser) {
validEntityBeforeSave(sysSupplierUser, true);
boolean flag = baseMapper.updateById(sysSupplierUser) > 0;
return flag;
}
@Override
public Boolean deleteSupplierUserById(Long userId) {
return this.removeById(userId);
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(SysSupplierUser entity, boolean isUpdate) {
// TODO 做一些数据校验,如唯一约束
}
private LambdaQueryWrapper<SysSupplierUser> buildQueryWrapper(SysSupplierUser entity) {
LambdaQueryWrapper<SysSupplierUser> lqw = Wrappers.lambdaQuery();
lqw.eq(entity.getUserId() != null, SysSupplierUser::getUserId, entity.getUserId());
lqw.like(StringUtils.isNotBlank(entity.getUsername()), SysSupplierUser::getUsername, entity.getUsername());
lqw.like(StringUtils.isNotBlank(entity.getName()), SysSupplierUser::getName, entity.getName());
lqw.eq(entity.getStatus() != null, SysSupplierUser::getStatus, entity.getStatus());
lqw.like(StringUtils.isNotBlank(entity.getMobile()), SysSupplierUser::getMobile, entity.getMobile());
lqw.like(StringUtils.isNotBlank(entity.getEmail()), SysSupplierUser::getEmail, entity.getEmail());
lqw.eq(StringUtils.isNotBlank(entity.getSex()), SysSupplierUser::getSex, entity.getSex());
lqw.eq(StringUtils.isNotBlank(entity.getTenantId()), SysSupplierUser::getTenantId, entity.getTenantId());
lqw.like(StringUtils.isNotBlank(entity.getTenantName()), SysSupplierUser::getTenantName, entity.getTenantName());
lqw.eq(entity.getCreateBy() != null, SysSupplierUser::getCreateBy, entity.getCreateBy());
lqw.eq(entity.getUpdateBy() != null, SysSupplierUser::getUpdateBy, entity.getUpdateBy());
lqw.orderByDesc(SysSupplierUser::getCreateDate);
return lqw;
}
}

View File

@ -13,8 +13,8 @@ spring:
writeTimeout: 35000
nacos:
discovery:
server-addr: 10.60.161.59:8848
server-addr: 127.0.0.1:18848
group: EBTP_GROUP # 例如EBTP_GROUP
aop:
auto: true #开启spring的aop配置
proxy-target-class: true
@ -25,13 +25,11 @@ spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
username: root@test
# username: root
username: root
password: Unicom@2024
# url: jdbc:mysql://59.110.10.99:53306/ebtp_sys_manager?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
url: jdbc:mysql://localhost:2881/ebtp_sys_manager?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
url: jdbc:mysql://59.110.10.99:53306/ebtp_sys_manager?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
druid:
# filters: stat,wall,log4j
# filters: stat,wall,log4j
maxActive: 20
initialSize: 1
maxWait: 60000
@ -44,11 +42,12 @@ spring:
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20
connection-properties: druid.stat.merggSql=ture;druid.stat.slowSqlMillis=5000
connection-properties: druid.stat.mergeSql=ture;druid.stat.slowSqlMillis=5000
props:
sql:
show: true
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
@ -82,8 +81,7 @@ spring:
redis:
sentinel:
master: mymaster
# nodes: 10.60.161.59:26379, 10.60.161.59:26380, 10.60.161.59:26381
nodes: localhost:26379
nodes: 10.60.161.59:26379, 10.60.161.59:26380, 10.60.161.59:26381
password: pass
database:
sharding: 1
@ -91,14 +89,6 @@ spring:
idempotent: 3
userinfo: 4
thymeleaf:
prefix: classpath:/templates/
suffix: .html
cache: false
mode: HTML
encoding: UTF-8
servlet:
content-type: text/html
mybatis-plus:
@ -107,7 +97,7 @@ mybatis-plus:
map-underscore-to-camel-case: true
auto-mapping-behavior: full
# 这个配置会将执行的sql打印出来在开发或测试的时候可以用
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:com/coscoshipping/ebtp/**/mapper/*Mapper.xml,com/chinaunicom/mall/ebtp/**/mapper/*Mapper.xml
global-config:
# 逻辑删除配置
@ -268,7 +258,7 @@ login:
privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK8sGQAshhH/H1G/lOJdAZYBdPOto38d7zSv2BCi9JDmhM/yqWUv345zUt1OKM8VGx10daDfu6a8WWLCGa6RTU1P6jaWgZwqnIwcWRz9Q82NAu935gVHidiGA/yX52ZE061BZrA63l1uSxEpOCEyMD4UpPb6K0yxrBKzX4hz7OgjAgMBAAECgYAT/jx8QJisxSmV8v/TNjpQHKp0hYT7pTcAFHHctDylrSnLci7TVbt2TsNObvVJbWdC3V/vlJmeVjD9jJnRytO/pgc+p8I3Q3pfF7ACiBAz1+4VZM40vFz0RfQKJ/kZB3DiGohprOw60kRR0eMtHuaA07luhBCbne6700Paf+OOAQJBAP9THm3KEcnChnRBC6yPdNHLN/XplgGaIJU2Wo0biI8Oz2bM3eJGPSwrVCqObOwVPNYJIfEQRhlWlB9kpBS0ECECQQCvorUUJwJhV+Fx6bhUK5aa1/rDTODPmS1MycvLtjOp7ig1sGcb4g9Vl8uRPzsvQZ6Z+sNTD4mFFnYFneCvPL/DAkAMZo4QyQKqKO98z/fwLpt+4P7by7eEZmb0uEoXlmHAiPibxpF0PvMTpRsWYgp6QOHOh20Fl0PAUUsqZyns833hAkBEzV9UIqfrDCsTnbQIvP6FcAAay53xlRbK0u5Twe9hLRtxVMY/hQHuzMUBBB0iOPlxZmtnuVls2kynjJ4853ZTAkEAu+lLTmM7DBV9jDEc9sNM7UNa0MvAUb6r9DsTKHGLLRqB7ljQ1R2RiLRknFaegUPEVsvdMszH2rdy3CaIWkC5OQ==
publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvLBkALIYR/x9Rv5TiXQGWAXTzraN/He80r9gQovSQ5oTP8qllL9+Oc1LdTijPFRsddHWg37umvFliwhmukU1NT+o2loGcKpyMHFkc/UPNjQLvd+YFR4nYhgP8l+dmRNOtQWawOt5dbksRKTghMjA+FKT2+itMsawSs1+Ic+zoIwIDAQAB
token:
time_limit: 2
time_limit: 20
captcha:
privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAK8sGQAshhH/H1G/lOJdAZYBdPOto38d7zSv2BCi9JDmhM/yqWUv345zUt1OKM8VGx10daDfu6a8WWLCGa6RTU1P6jaWgZwqnIwcWRz9Q82NAu935gVHidiGA/yX52ZE061BZrA63l1uSxEpOCEyMD4UpPb6K0yxrBKzX4hz7OgjAgMBAAECgYAT/jx8QJisxSmV8v/TNjpQHKp0hYT7pTcAFHHctDylrSnLci7TVbt2TsNObvVJbWdC3V/vlJmeVjD9jJnRytO/pgc+p8I3Q3pfF7ACiBAz1+4VZM40vFz0RfQKJ/kZB3DiGohprOw60kRR0eMtHuaA07luhBCbne6700Paf+OOAQJBAP9THm3KEcnChnRBC6yPdNHLN/XplgGaIJU2Wo0biI8Oz2bM3eJGPSwrVCqObOwVPNYJIfEQRhlWlB9kpBS0ECECQQCvorUUJwJhV+Fx6bhUK5aa1/rDTODPmS1MycvLtjOp7ig1sGcb4g9Vl8uRPzsvQZ6Z+sNTD4mFFnYFneCvPL/DAkAMZo4QyQKqKO98z/fwLpt+4P7by7eEZmb0uEoXlmHAiPibxpF0PvMTpRsWYgp6QOHOh20Fl0PAUUsqZyns833hAkBEzV9UIqfrDCsTnbQIvP6FcAAay53xlRbK0u5Twe9hLRtxVMY/hQHuzMUBBB0iOPlxZmtnuVls2kynjJ4853ZTAkEAu+lLTmM7DBV9jDEc9sNM7UNa0MvAUb6r9DsTKHGLLRqB7ljQ1R2RiLRknFaegUPEVsvdMszH2rdy3CaIWkC5OQ==
publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCvLBkALIYR/x9Rv5TiXQGWAXTzraN/He80r9gQovSQ5oTP8qllL9+Oc1LdTijPFRsddHWg37umvFliwhmukU1NT+o2loGcKpyMHFkc/UPNjQLvd+YFR4nYhgP8l+dmRNOtQWawOt5dbksRKTghMjA+FKT2+itMsawSs1+Ic+zoIwIDAQAB

View File

@ -2,11 +2,7 @@
app:
id: sys-manager-ebtp-project
# Apollo 配置信息
apollo:
bootstrap:
enabled: true
namespace: application
spring:
profiles:
@ -28,12 +24,6 @@ check:
checkBoolen: 1
user:
auth:
resource:
serviceId:mall-auth: 1
unifast:
sso: