From 7e10354b263015632ff787221f0ca3c8a18224c2 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 26 六月 2025 14:16:41 +0800
Subject: [PATCH] 工单业务
---
server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 186 ++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 171 insertions(+), 15 deletions(-)
diff --git a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index 306647d..7e9872d 100644
--- a/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -10,17 +10,15 @@
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.QywxDepartInfoResponse;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxUserAttrInfoResponse;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxUserExtAttrResponse;
-import com.doumee.core.utils.qiyeweixin.model.response.QywxUserListResponse;
+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.Company;
-import com.doumee.dao.business.model.CompanyMember;
-import com.doumee.dao.business.model.Member;
+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;
@@ -31,14 +29,18 @@
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
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 javax.annotation.Resource;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Objects;
/**
* 浜哄憳淇℃伅琛⊿ervice瀹炵幇
@@ -48,6 +50,8 @@
@Service
public class MemberServiceImpl implements MemberService {
+ @Resource(name="sessionRedisTemplate")
+ private RedisTemplate<Object, Serializable> redisTemplate;
@Autowired
private SystemDictDataBiz systemDictDataBiz;
@Autowired
@@ -56,6 +60,8 @@
private CompanyMapper companyMapper;
@Autowired
private CompanyMemberMapper companyMemberMapper;
+ @Autowired
+ private ManagersMapper managersMapper;
@Override
public Integer create(Member member) {
@@ -84,7 +90,19 @@
@Override
public void updateById(Member member) {
- memberMapper.updateById(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
@@ -109,9 +127,53 @@
}
@Override
- public List<Member> findList(Member member) {
- QueryWrapper<Member> wrapper = new QueryWrapper<>(member);
- return memberMapper.selectList(wrapper);
+ 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
@@ -137,7 +199,7 @@
.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().getCompanyId() != null, Member::getCompanyId, pageWrap.getModel().getCompanyId())
+ .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())
@@ -161,10 +223,23 @@
}
}else{
//涓嶅寘鍚笅绾х粍缁�
- queryWrapper.exists("select (cm.id) from company_member cm where cm.company_id='"+pageWrap.getModel().getCompanyId()+"' and cm.member_id=t.id");
+ 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);
- return PageData.from(memberMapper.selectJoinPage(page,Member.class, queryWrapper));
+ 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
@@ -234,7 +309,7 @@
if(StringUtils.isNotBlank(comNames)){
comNames += ",";
}
- comNames += c.getName();
+ comNames += StringUtils.defaultString(c.getNamePath(),c.getName());
}
}
cm.setCompanyList(qycom);
@@ -358,4 +433,85 @@
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(),"浼佷笟寰俊鐢ㄦ埛淇℃伅瑙f瀽澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ 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(),"浼佷笟寰俊鑾峰彇鐢ㄦ埛淇℃伅瑙f瀽澶辫触锛岃鑱旂郴绠$悊鍛�");
+ }
+ 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;
+ }
+
+
+
}
--
Gitblit v1.9.3