diff --git a/src/main/java/com/chinaunicom/mall/ebtp/login/controller/LoginController.java b/src/main/java/com/chinaunicom/mall/ebtp/login/controller/LoginController.java index 6b2763e..1596734 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/login/controller/LoginController.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/login/controller/LoginController.java @@ -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); + } + } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/login/entity/BaseSelf.java b/src/main/java/com/chinaunicom/mall/ebtp/login/entity/BaseSelf.java index 69ce3d5..58b561a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/login/entity/BaseSelf.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/login/entity/BaseSelf.java @@ -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 /** * 所属机构 */ diff --git a/src/main/java/com/chinaunicom/mall/ebtp/login/service/BaseUserService.java b/src/main/java/com/chinaunicom/mall/ebtp/login/service/BaseUserService.java index a74af8b..8d8da7d 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/login/service/BaseUserService.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/login/service/BaseUserService.java @@ -24,6 +24,11 @@ public interface BaseUserService extends IBaseService { 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); diff --git a/src/main/java/com/chinaunicom/mall/ebtp/login/service/impl/BaseUserServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/login/service/impl/BaseUserServiceImpl.java index c495c9a..cec117a 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/login/service/impl/BaseUserServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/login/service/impl/BaseUserServiceImpl.java @@ -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 userList = sysSupplierUserMapper.selectList(new LambdaQueryWrapper().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 userList = sysExpertUserMapper.selectList(new LambdaQueryWrapper().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 tokenList = baseUserTokenService.list((new LambdaQueryWrapper().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 tokenList = baseUserTokenService.list((new LambdaQueryWrapper().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 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 authorityList =this.sysSupplierUserMapper.selectRoleByUserId(String.valueOf(baseUser.getUserId().longValue()));; + securityEntity.setAuthorityList(authorityList); + return securityEntity; + } /** * 本地token换取用户信息 diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysExpertUserMapper.java b/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysExpertUserMapper.java new file mode 100644 index 0000000..265ca4b --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysExpertUserMapper.java @@ -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 { + public List selectRoleByUserId(@Param("userId") String userId); +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysSupplierUserMapper.java b/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysSupplierUserMapper.java new file mode 100644 index 0000000..46aa74b --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/SysSupplierUserMapper.java @@ -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 { + public List selectRoleByUserId(@Param("userId") String userId); +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysExpertUserMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysExpertUserMapper.xml new file mode 100644 index 0000000..da23d12 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysExpertUserMapper.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysSupplierUserMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysSupplierUserMapper.xml new file mode 100644 index 0000000..a3dcb4d --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysSupplierUserMapper.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml index 3e8688e..2f76c5a 100644 --- a/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml +++ b/src/main/java/com/coscoshipping/ebtp/project/user/dao/mapper/SysUserMapper.xml @@ -3,7 +3,7 @@ - + diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysExpertUser.java b/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysExpertUser.java new file mode 100644 index 0000000..d566b4e --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysExpertUser.java @@ -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; + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysSupplierUser.java b/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysSupplierUser.java new file mode 100644 index 0000000..e46b86c --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/entity/SysSupplierUser.java @@ -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; + + +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/service/SysExpertUserService.java b/src/main/java/com/coscoshipping/ebtp/project/user/service/SysExpertUserService.java new file mode 100644 index 0000000..42ac5b2 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/service/SysExpertUserService.java @@ -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 { + + /** + * 专家用户分页查询 + * @param sysExpertUser 专家用户信息 + * @return 返回结果 + */ + IPage 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); +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/service/SysSupplierUserService.java b/src/main/java/com/coscoshipping/ebtp/project/user/service/SysSupplierUserService.java new file mode 100644 index 0000000..e987814 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/service/SysSupplierUserService.java @@ -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 { + + /** + * 供应商用户分页查询 + * @param sysSupplierUser 供应商用户信息 + * @return 返回结果 + */ + IPage 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); +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysExpertUserServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysExpertUserServiceImpl.java new file mode 100644 index 0000000..0bee4ca --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysExpertUserServiceImpl.java @@ -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 implements SysExpertUserService { + + @Override + public IPage getPage(SysExpertUser sysExpertUser) { + LambdaQueryWrapper query = buildQueryWrapper(sysExpertUser); + + // 如果没有分页请求,创建一个默认的 + BasePageRequest basePageRequest = new BasePageRequest(); + + // 查询 + IPage 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 buildQueryWrapper(SysExpertUser entity) { + LambdaQueryWrapper 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; + } +} diff --git a/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysSupplierUserServiceImpl.java b/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysSupplierUserServiceImpl.java new file mode 100644 index 0000000..9914493 --- /dev/null +++ b/src/main/java/com/coscoshipping/ebtp/project/user/service/impl/SysSupplierUserServiceImpl.java @@ -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 implements SysSupplierUserService { + + @Override + public IPage getPage(SysSupplierUser sysSupplierUser) { + LambdaQueryWrapper query = buildQueryWrapper(sysSupplierUser); + + // 如果没有分页请求,创建一个默认的 + BasePageRequest basePageRequest = new BasePageRequest(); + + // 查询 + IPage 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 buildQueryWrapper(SysSupplierUser entity) { + LambdaQueryWrapper 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; + } +} diff --git a/src/main/resources/application-master.yml b/src/main/resources/application-master.yml index 50c18f4..90570f2 100644 --- a/src/main/resources/application-master.yml +++ b/src/main/resources/application-master.yml @@ -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 diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6a740c8..c060b09 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -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: