package com.doumee.service.business.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.doumee.biz.system.SystemDictDataBiz;
|
import com.doumee.core.constants.Constants;
|
import com.doumee.core.constants.ResponseStatus;
|
import com.doumee.core.exception.BusinessException;
|
import com.doumee.core.model.LoginUserInfo;
|
import com.doumee.core.model.PageData;
|
import com.doumee.core.model.PageWrap;
|
import com.doumee.core.utils.Utils;
|
import com.doumee.core.utils.qiyeweixin.QywxUtil;
|
import com.doumee.core.utils.qiyeweixin.model.response.*;
|
import com.doumee.dao.business.CompanyMapper;
|
import com.doumee.dao.business.CompanyMemberMapper;
|
import com.doumee.dao.business.ManagersMapper;
|
import com.doumee.dao.business.MemberMapper;
|
import com.doumee.dao.business.model.*;
|
import com.doumee.dao.system.model.SystemUser;
|
import com.doumee.dao.web.dto.LoginH5DTO;
|
import com.doumee.dao.web.dto.UpdEmailDTO;
|
import com.doumee.service.business.MemberService;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import io.swagger.annotations.ApiOperation;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.shiro.SecurityUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.util.CollectionUtils;
|
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.RequestHeader;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* 人员信息表Service实现
|
* @author 江蹄蹄
|
* @since 2025/04/02 17:49
|
*/
|
@Service
|
public class MemberServiceImpl implements MemberService {
|
|
@Autowired
|
private SystemDictDataBiz systemDictDataBiz;
|
@Autowired
|
private MemberMapper memberMapper;
|
@Autowired
|
private CompanyMapper companyMapper;
|
@Autowired
|
private CompanyMemberMapper companyMemberMapper;
|
@Autowired
|
private ManagersMapper managersMapper;
|
|
@Override
|
public Integer create(Member member) {
|
memberMapper.insert(member);
|
return member.getId();
|
}
|
|
@Override
|
public void deleteById(Integer id) {
|
memberMapper.deleteById(id);
|
}
|
|
@Override
|
public void delete(Member member) {
|
UpdateWrapper<Member> deleteWrapper = new UpdateWrapper<>(member);
|
memberMapper.delete(deleteWrapper);
|
}
|
|
@Override
|
public void deleteByIdInBatch(List<Integer> ids) {
|
if (CollectionUtils.isEmpty(ids)) {
|
return;
|
}
|
memberMapper.deleteBatchIds(ids);
|
}
|
|
@Override
|
public void updateById(Member member) {
|
if( member.getId() == null){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
memberMapper.update(null,new UpdateWrapper<Member>().lambda()
|
.eq(Member::getId,member.getId() )
|
.set(Member::getSex,member.getSex() )
|
.set(Member::getPhone,member.getPhone() )
|
.set(Member::getRemark,member.getRemark() )
|
.set(Member::getEmail,member.getEmail() )
|
.set(Member::getEditDate,new Date())
|
.set(Member::getEditor,user.getId())
|
);
|
}
|
|
@Override
|
public void updateByIdInBatch(List<Member> members) {
|
if (CollectionUtils.isEmpty(members)) {
|
return;
|
}
|
for (Member member: members) {
|
this.updateById(member);
|
}
|
}
|
|
@Override
|
public Member findById(Integer id) {
|
return memberMapper.selectById(id);
|
}
|
|
@Override
|
public Member findOne(Member member) {
|
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
|
return memberMapper.selectOne(wrapper);
|
}
|
|
@Override
|
public List<Member> findList(Member pageWrap) {
|
pageWrap.setIsdeleted(Constants.ZERO);
|
MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
|
queryWrapper. selectAll(Member.class)
|
.selectAs(SystemUser::getUsername,Member::getEditorName)
|
.leftJoin(SystemUser.class,SystemUser::getId,Member::getEditor)
|
.eq(pageWrap.getId() != null, Member::getId, pageWrap.getId())
|
.eq(pageWrap.getCreator() != null, Member::getCreator, pageWrap.getCreator())
|
.ge(pageWrap.getCreateDate() != null, Member::getCreateDate, Utils.Date.getStart(pageWrap.getCreateDate()))
|
.le(pageWrap.getCreateDate() != null, Member::getCreateDate, Utils.Date.getEnd(pageWrap.getCreateDate()))
|
.eq(pageWrap.getEditor() != null, Member::getEditor, pageWrap.getEditor())
|
.ge(pageWrap.getEditDate() != null, Member::getEditDate, Utils.Date.getStart(pageWrap.getEditDate()))
|
.le(pageWrap.getEditDate() != null, Member::getEditDate, Utils.Date.getEnd(pageWrap.getEditDate()))
|
.eq(pageWrap.getIsdeleted() != null, Member::getIsdeleted, pageWrap.getIsdeleted())
|
.like(pageWrap.getName() != null, Member::getName, pageWrap.getName())
|
.eq(pageWrap.getRemark() != null, Member::getRemark, pageWrap.getRemark())
|
.eq(pageWrap.getStatus() != null, Member::getStatus, pageWrap.getStatus())
|
.eq(pageWrap.getSortnum() != null, Member::getSortnum, pageWrap.getSortnum())
|
.eq(pageWrap.getImgurl() != null, Member::getImgurl, pageWrap.getImgurl())
|
.eq(pageWrap.getType() != null, Member::getType, pageWrap.getType())
|
.eq(pageWrap.getCompanyName() != null, Member::getCompanyName, pageWrap.getCompanyName())
|
.eq(pageWrap.getPhone() != null, Member::getPhone, pageWrap.getPhone())
|
.eq(pageWrap.getEmail() != null, Member::getEmail, pageWrap.getEmail())
|
.eq(pageWrap.getSex() != null, Member::getSex, pageWrap.getSex())
|
.eq(pageWrap.getCode() != null, Member::getCode, pageWrap.getCode())
|
.eq(pageWrap.getQwId() != null, Member::getQwId, pageWrap.getQwId())
|
.eq(pageWrap.getIdcard() != null, Member::getIdcard, pageWrap.getIdcard())
|
.ge(pageWrap.getLastLoginDate() != null, Member::getLastLoginDate, Utils.Date.getStart(pageWrap.getLastLoginDate()))
|
.le(pageWrap.getLastLoginDate() != null, Member::getLastLoginDate, Utils.Date.getEnd(pageWrap.getLastLoginDate()))
|
.eq(pageWrap.getLoginCount() != null, Member::getLoginCount, pageWrap.getLoginCount());
|
if (pageWrap.getKeyword() != null) {
|
queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getKeyword())
|
.or().like(Member::getPhone,pageWrap.getKeyword())
|
.or().like(Member::getCompanyName,pageWrap.getKeyword()));
|
}
|
if(pageWrap.getIncludeChild()!=null &&pageWrap.getIncludeChild() ){
|
if(pageWrap.getCompanyId() !=null){
|
//如果包含下级组织
|
Company company = companyMapper.selectById(pageWrap.getCompanyId());//查询组织信息
|
queryWrapper.exists("select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%' and cm.member_id=t.id");
|
// queryWrapper.likeRight(Company::getIdPath,company.getIdPath());
|
}
|
}else{
|
//不包含下级组织
|
queryWrapper.exists(pageWrap.getCompanyId()!=null,"select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getCompanyId()+"' and cm.member_id=t.id");
|
}
|
return memberMapper.selectJoinList(Member.class,queryWrapper);
|
}
|
|
@Override
|
public PageData<Member> findPage(PageWrap<Member> pageWrap) {
|
IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
|
MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>();
|
pageWrap.getModel().setIsdeleted(Constants.ZERO);
|
Utils.MP.blankToNull(pageWrap.getModel());
|
queryWrapper. selectAll(Member.class)
|
.selectAs(SystemUser::getUsername,Member::getEditorName)
|
.leftJoin(SystemUser.class,SystemUser::getId,Member::getEditor)
|
.eq(pageWrap.getModel().getId() != null, Member::getId, pageWrap.getModel().getId())
|
.eq(pageWrap.getModel().getCreator() != null, Member::getCreator, pageWrap.getModel().getCreator())
|
.ge(pageWrap.getModel().getCreateDate() != null, Member::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()))
|
.le(pageWrap.getModel().getCreateDate() != null, Member::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()))
|
.eq(pageWrap.getModel().getEditor() != null, Member::getEditor, pageWrap.getModel().getEditor())
|
.ge(pageWrap.getModel().getEditDate() != null, Member::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()))
|
.le(pageWrap.getModel().getEditDate() != null, Member::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()))
|
.eq(pageWrap.getModel().getIsdeleted() != null, Member::getIsdeleted, pageWrap.getModel().getIsdeleted())
|
.eq(pageWrap.getModel().getName() != null, Member::getName, pageWrap.getModel().getName())
|
.eq(pageWrap.getModel().getRemark() != null, Member::getRemark, pageWrap.getModel().getRemark())
|
.eq(pageWrap.getModel().getStatus() != null, Member::getStatus, pageWrap.getModel().getStatus())
|
.eq(pageWrap.getModel().getSortnum() != null, Member::getSortnum, pageWrap.getModel().getSortnum())
|
.eq(pageWrap.getModel().getImgurl() != null, Member::getImgurl, pageWrap.getModel().getImgurl())
|
.eq(pageWrap.getModel().getType() != null, Member::getType, pageWrap.getModel().getType())
|
.eq(pageWrap.getModel().getCompanyName() != null, Member::getCompanyName, pageWrap.getModel().getCompanyName())
|
.eq(pageWrap.getModel().getPhone() != null, Member::getPhone, pageWrap.getModel().getPhone())
|
.eq(pageWrap.getModel().getEmail() != null, Member::getEmail, pageWrap.getModel().getEmail())
|
.eq(pageWrap.getModel().getSex() != null, Member::getSex, pageWrap.getModel().getSex())
|
.eq(pageWrap.getModel().getCode() != null, Member::getCode, pageWrap.getModel().getCode())
|
.eq(pageWrap.getModel().getQwId() != null, Member::getQwId, pageWrap.getModel().getQwId())
|
.eq(pageWrap.getModel().getIdcard() != null, Member::getIdcard, pageWrap.getModel().getIdcard())
|
.ge(pageWrap.getModel().getLastLoginDate() != null, Member::getLastLoginDate, Utils.Date.getStart(pageWrap.getModel().getLastLoginDate()))
|
.le(pageWrap.getModel().getLastLoginDate() != null, Member::getLastLoginDate, Utils.Date.getEnd(pageWrap.getModel().getLastLoginDate()))
|
.eq(pageWrap.getModel().getLoginCount() != null, Member::getLoginCount, pageWrap.getModel().getLoginCount())
|
;
|
if (pageWrap.getModel().getKeyword() != null) {
|
queryWrapper.and( ms->ms.like(Member::getName,pageWrap.getModel().getKeyword())
|
.or().like(Member::getPhone,pageWrap.getModel().getKeyword()));
|
}
|
if(pageWrap.getModel().getIncludeChild()!=null &&pageWrap.getModel().getIncludeChild() ){
|
if(pageWrap.getModel().getCompanyId() !=null){
|
//如果包含下级组织
|
Company company = companyMapper.selectById(pageWrap.getModel().getCompanyId());//查询组织信息
|
queryWrapper.exists("select (cm.id) from company_member cm where cm.company_id_path like '"+company.getIdPath()+"%' and cm.member_id=t.id");
|
// queryWrapper.likeRight(Company::getIdPath,company.getIdPath());
|
}
|
}else{
|
//不包含下级组织
|
queryWrapper.exists(pageWrap.getModel().getCompanyId()!=null,"select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getModel().getCompanyId()+"' and cm.member_id=t.id");
|
}
|
|
if(Objects.nonNull(pageWrap.getModel().getIsSendCopy())&&Constants.equalsInteger(Constants.ONE,pageWrap.getModel().getIsSendCopy())){
|
queryWrapper.apply(" t.id in ( select MEMBER_ID from managers where ISDELETED= 0 and STATUS = 0 and TYPE = 1 ) ");
|
}
|
|
queryWrapper.orderByAsc(Member::getCreateDate);
|
PageData<Member> record = PageData.from(memberMapper.selectJoinPage(page,Member.class, queryWrapper));
|
if(record!=null && record.getRecords()!=null){
|
for(Member m : record.getRecords()){
|
if(StringUtils.isNotBlank(m.getCompanyName())){
|
m.setCompanyNameList(m.getCompanyName().split(","));
|
}
|
}
|
}
|
return record;
|
}
|
|
@Override
|
public long count(Member member) {
|
QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
|
return memberMapper.selectCount(wrapper);
|
}
|
|
@Override
|
public void syncQwAll(){
|
if(Constants.DEALING_MEMBER_SYNC){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,同步任务正在进行,请稍后刷新页面重试!");
|
}
|
Constants.DEALING_MEMBER_SYNC =true;
|
try {
|
Company param = new Company();
|
param.setIsdeleted(Constants.ZERO);
|
param.setType(Constants.ZERO);
|
//查询全部组织信息
|
List<Company> companyList = companyMapper.selectList(new QueryWrapper<>(param));
|
if(companyList==null || companyList.size() ==0){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,组织信息为空,无法同步人员信息,请前往组织管理先同步组织信息!");
|
}
|
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
|
Date date = new Date();
|
List<QywxUserListResponse> list = new ArrayList<>();
|
for(Company c : companyList){
|
List<QywxUserListResponse> tList = QywxUtil.getUserList(systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode(),c.getQwId());
|
if(tList!=null){
|
list.addAll(tList);
|
}
|
}
|
if(list == null || list.size() ==0){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未同步到任何组织信息!");
|
}
|
List<Member> memberList = memberMapper.selectList(new LambdaQueryWrapper<Member>().eq(Member::getIsdeleted,Constants.ZERO));
|
List<Member> newList = new ArrayList<>();
|
List<Member> updateList = new ArrayList<>();
|
List<Member> nowAllList = new ArrayList<>();
|
List<CompanyMember> companyMembers = new ArrayList<>();
|
List<Integer> deletedIds = new ArrayList<>();
|
for (QywxUserListResponse model : list){
|
if(getMemberDataFromListById(model.getUserid(),nowAllList) !=null){
|
//如果已经处理过,不添加重复数据
|
continue;
|
}
|
Member cm = getMemberDataFromListById(model.getUserid(),memberList);
|
List<Company> qycom = getCompanyIdFromList(model,companyList);
|
String comIds = "",comNames = "";
|
String phone = getQyPhoneByExtralAttr(model.getExtattr());
|
if(cm !=null){
|
//更新
|
updateList.add(cm);
|
}else{
|
//新增
|
cm = new Member();
|
cm.setCreator(user.getId());
|
cm.setCreateDate(date);
|
newList.add(cm);
|
}
|
if(qycom.size()>0){
|
for(Company c : qycom){
|
if(StringUtils.isNotBlank(comIds)){
|
comIds += ",";
|
}
|
comIds += c.getId();
|
if(StringUtils.isNotBlank(comNames)){
|
comNames += ",";
|
}
|
comNames += c.getNamePath();
|
}
|
}
|
cm.setCompanyList(qycom);
|
cm.setEditor(user.getId());
|
cm.setEditDate(date);
|
cm.setPhone(phone);
|
cm.setCode(phone);
|
cm.setName(model.getName());
|
cm.setStatus(Constants.ZERO);
|
cm.setIsdeleted(Constants.ZERO);
|
cm.setType(Constants.ZERO);
|
cm.setCompanyId(comIds);
|
cm.setCompanyName(comNames);
|
cm.setSex(model.getGender());
|
cm.setEmail(model.getEmail());
|
cm.setQwId(model.getUserid());
|
nowAllList.add(cm);
|
}
|
//查询已删除的数据
|
for(Member c : memberList){
|
if(getQwDataFromListById(c.getQwId(),list) ==null){
|
deletedIds.add(c.getId());
|
}
|
}
|
if(deletedIds.size()>0){//清空已删除的
|
memberMapper.update(null,new UpdateWrapper<Member>().lambda()
|
.in(Member::getId,deletedIds)
|
.set(Member::getIsdeleted,Constants.ONE)
|
.set(Member::getEditDate,date)
|
.set(Member::getQwId,null)
|
.set(Member::getEditor,user.getId())
|
);
|
}
|
if(newList.size()>0){
|
memberMapper.insert(newList);//插入新数据
|
}
|
for(Member c : updateList){//更新原有数据
|
memberMapper.updateById(c);
|
}
|
for(Member member : nowAllList){
|
if(member.getCompanyList()!=null &&member.getCompanyList().size()>0){
|
for(Company c : member.getCompanyList()){
|
CompanyMember companyMember = new CompanyMember();
|
companyMember.setCreator(user.getId());
|
companyMember.setCreateDate(date);
|
companyMember.setEditor(user.getId());
|
companyMember.setEditDate(date);
|
companyMember.setIsdeleted(Constants.ZERO);
|
companyMember.setMemberId(member.getId());
|
companyMember.setCompanyId(c.getId());
|
companyMember.setIsLeader(c.getIsLeader());
|
companyMember.setCompanyIdPath(c.getIdPath());
|
companyMembers.add(companyMember);//员工组织关联关系
|
}
|
}
|
}
|
companyMemberMapper.delete(new UpdateWrapper<>());//清空所有的
|
if(companyMembers.size()>0){
|
companyMemberMapper.insert(companyMembers);//重新插入新纪录
|
}
|
}catch (BusinessException e){
|
throw e;
|
}catch (Exception e){
|
e.printStackTrace();
|
throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,同步数据失败~");
|
}finally {
|
Constants.DEALING_MEMBER_SYNC =false;
|
}
|
|
}
|
|
private String getQyPhoneByExtralAttr(QywxUserExtAttrResponse extattr) {
|
if(extattr!=null && extattr.getAttrs()!=null && extattr.getAttrs().size()>0){
|
for(QywxUserAttrInfoResponse attr : extattr.getAttrs()){
|
if(attr== null){
|
continue;
|
}
|
if(StringUtils.equals(attr.getName(),"员工号")){
|
return attr.getValue();
|
// return attr.getText()!=null?attr.getText().getValue():null;
|
}
|
}
|
}
|
return null;
|
}
|
|
private List<Company> getCompanyIdFromList(QywxUserListResponse model, List<Company> companyList) {
|
List<String> department = model.getDepartment();
|
List<Company> list = new ArrayList<>();
|
if(department == null || department.size()==0){
|
return null;
|
}
|
for (int i = 0; i < department.size(); i++) {
|
String id = department.get(i);
|
for(Company c : companyList){
|
if(StringUtils.equals(c.getQwId(),id)){
|
if(model.getIs_leader_in_dept()!=null && model.getIs_leader_in_dept().size()>i){
|
c.setIsLeader(model.getIs_leader_in_dept().get(i));
|
}
|
list.add(c);
|
}
|
}
|
}
|
return list;
|
}
|
|
private QywxUserListResponse getQwDataFromListById(String qwId, List<QywxUserListResponse> list) {
|
for(QywxUserListResponse model : list){
|
if(StringUtils.equals(model.getUserid(),qwId)){
|
return model;
|
}
|
}
|
return null;
|
}
|
private Member getMemberDataFromListById(String qwid, List<Member> list) {
|
for(Member model : list){
|
if(StringUtils.equals(model.getQwId(),qwid)){
|
return model;
|
}
|
}
|
return null;
|
}
|
|
@Override
|
public Member getUserInfo(LoginH5DTO dto){
|
if(Objects.isNull(dto)||
|
StringUtils.isBlank(dto.getCode())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
String token = systemDictDataBiz.queryByCode(Constants.QYWX,Constants.QYWX_TOKEN).getCode();
|
//根据code换区企业微信ID
|
QywxBaseResponse<String> qwIdBaseResponse = QywxUtil.getUserInfoByCode(token,dto.getCode());
|
if(Objects.isNull(qwIdBaseResponse)||Objects.isNull(qwIdBaseResponse.getErrcode())){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"企业微信登录码解析失败,请联系管理员");
|
}
|
if(!Constants.equalsInteger(qwIdBaseResponse.getErrcode(),Constants.ZERO)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"企业微信登录失败:"+qwIdBaseResponse.getErrmsg());
|
}
|
if(Objects.isNull(qwIdBaseResponse.getData())){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"企业微信用户信息解析失败,请联系管理员");
|
}
|
String qwId = qwIdBaseResponse.getData();
|
// String qwId = dto.getCode();
|
Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getQwId,qwId).eq(Member::getIsdeleted,Constants.ZERO).last(" limit 1 "));
|
if(Objects.isNull(member)){
|
//根据企业微信ID 查询用户信息
|
QywxUserInfoResponse qywxUserInfoResponse = QywxUtil.getUserInfo(token,qwId);
|
if(Objects.isNull(qywxUserInfoResponse)||Objects.isNull(qywxUserInfoResponse.getErrcode())){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"企业微信获取用户信息解析失败,请联系管理员");
|
}
|
if(!Constants.equalsInteger(qywxUserInfoResponse.getErrcode(),Constants.ZERO)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"企业微信获取用户信息失败:"+qwIdBaseResponse.getErrmsg());
|
}
|
member = new Member();
|
member.setCreateDate(new Date());
|
member.setStatus(Constants.ZERO);
|
member.setIsdeleted(Constants.ZERO);
|
member.setName(StringUtils.isNotBlank(qywxUserInfoResponse.getName())?qywxUserInfoResponse.getName():null);
|
member.setImgurl(StringUtils.isNotBlank(qywxUserInfoResponse.getAvatar())?qywxUserInfoResponse.getAvatar():null);
|
member.setPhone(StringUtils.isNotBlank(qywxUserInfoResponse.getMobile())?qywxUserInfoResponse.getMobile():null);
|
member.setQwId(qwId);
|
memberMapper.insert(member);
|
}
|
//查询是否有权限
|
member.setDcaButton(managersMapper.selectCount(new QueryWrapper<Managers>().lambda()
|
.eq(Managers::getIsdeleted,Constants.ZERO).eq(Managers::getMemberId,member.getId())
|
.eq(Managers::getType,Constants.TWO))>Constants.ZERO?Constants.ONE:Constants.ZERO);
|
return member;
|
}
|
|
|
|
@Override
|
public void updEmail(UpdEmailDTO updEmailDTO){
|
if(Objects.isNull(updEmailDTO)
|
|| StringUtils.isBlank(updEmailDTO.getEmail())
|
|| Objects.isNull(updEmailDTO.getUserId())){
|
throw new BusinessException(ResponseStatus.BAD_REQUEST);
|
}
|
Member member = memberMapper.selectById(updEmailDTO.getUserId());
|
if(Objects.isNull(member)){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"用户信息异常");
|
}
|
memberMapper.update(null,new UpdateWrapper<Member>().lambda().set(Member::getEmail,updEmailDTO.getEmail()).eq(Member::getId,member.getId()));
|
}
|
|
|
@Override
|
public Member checkUserValid(Member member){
|
if(Objects.isNull(member)||Objects.isNull(member.getId())){
|
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到有效用户信息");
|
}
|
Member dbMember = memberMapper.selectById(member.getId());
|
if(Objects.isNull(dbMember)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前登录用户已注销");
|
}
|
if(!Constants.equalsInteger(dbMember.getIsdeleted(),Constants.ZERO)||!Constants.equalsInteger(dbMember.getStatus(),Constants.ZERO)){
|
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前登录用户已禁用");
|
}
|
return dbMember;
|
}
|
|
|
|
}
|