From 30a14783481d100a6503a56c902b47182e542c93 Mon Sep 17 00:00:00 2001 From: jiaosong <jiaosong6760@dingtalk.com> Date: 星期五, 08 十二月 2023 15:42:09 +0800 Subject: [PATCH] #组织树 和企业下的人员信息 人员卡信息 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 135 ++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 128 insertions(+), 7 deletions(-) diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index 5e60a0b..359e435 100644 --- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -2,36 +2,46 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.lang.PatternPool; +import cn.hutool.core.lang.Validator; import cn.hutool.core.util.IdcardUtil; +import cn.hutool.core.util.PhoneUtil; +import cn.hutool.core.util.ReUtil; +import com.alibaba.fastjson.JSONObject; +import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.config.Jwt.JwtPayLoad; +import com.doumee.config.Jwt.JwtTokenUtil; +import com.doumee.core.annotation.excel.ExcelImporter; 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.Constants; +import com.doumee.core.utils.HttpsUtil; import com.doumee.core.utils.Utils; +import com.doumee.core.wx.WXConstant; +import com.doumee.dao.admin.request.LaborEmpowerDTO; import com.doumee.dao.admin.request.LaborMemberDTO; +import com.doumee.dao.admin.request.MemberQuery; import com.doumee.dao.admin.response.MemberInfoDTO; import com.doumee.dao.business.MemberMapper; import com.doumee.dao.business.TrainTimeMapper; import com.doumee.dao.business.join.MemberJoinMapper; -import com.doumee.dao.business.model.Company; -import com.doumee.dao.business.model.Empower; -import com.doumee.dao.business.model.Member; -import com.doumee.dao.business.model.TrainTime; +import com.doumee.dao.business.model.*; +import com.doumee.dao.web.response.WxAuthorizeVO; 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 org.apache.commons.collections.CollectionUtils; 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.transaction.annotation.Transactional; -import org.springframework.util.CollectionUtils; - import java.util.Date; import java.util.List; import java.util.Objects; @@ -53,6 +63,10 @@ @Autowired private TrainTimeMapper trainTimeMapper; + + @Autowired + private SystemDictDataBiz systemDictDataBiz; + @Override public Integer create(Member member) { memberMapper.insert(member); @@ -65,6 +79,9 @@ LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if (PhoneUtil.isPhone(member.getPhone())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢佃瘽鍙风爜鏍煎紡鏈夎"); + } if (IdcardUtil.isValidCard(member.getIdcardNo())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"韬唤璇佸彿鏍煎紡鏈夎"); } @@ -74,7 +91,7 @@ //鑾峰彇鍑虹敓鏃ユ湡 String birthByIdCard = IdcardUtil.getBirthByIdCard(member.getIdcardNo()); //鑴辨晱鎿嶄綔 - String hide = IdcardUtil.hide(member.getIdcardNo(), 6, 14); + String hide = IdcardUtil.hide(member.getIdcardNo(), 5, 14); //杞崲鏃ユ湡 DateTime yyyyMMdd = DateUtil.parse(birthByIdCard, "yyyyMMdd"); @@ -135,6 +152,16 @@ @Override public void updateById(Member member) { memberMapper.updateById(member); + } + + @Override + public void updateStatusById(Member member) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Member update = new Member(); + update.setEditDate(new Date()); + update.setEditor(loginUserInfo.getId()); + update.setStatus(member.getStatus()); + memberMapper.updateById(update); } @Override @@ -338,4 +365,98 @@ QueryWrapper<Member> wrapper = new QueryWrapper<>(member); return memberMapper.selectCount(wrapper); } + + @Override + public void importMemberBatch(LaborEmpowerDTO laborEmpowerDTO) { + try { + ExcelImporter ie = new ExcelImporter(laborEmpowerDTO.getFile(),0,0); + + List<LaborEmpowerDTO.LaborMemberEmpower> dataList = ie.getDataList(LaborEmpowerDTO.LaborMemberEmpower.class,null); + + if (CollectionUtils.isEmpty(dataList)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏂囦欢鏃犳暟鎹褰�"); + } + + } catch (Exception e) { + + } +// + + } + + @Override + public PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) { + + //鏄惁鏄暟瀛� + boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords()); + //鏄惁鍖呭惈涓枃 + boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords()); + //鏄惁鍖呭惈鑻辨枃 + boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords()); + + IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); + MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); + MemberQuery model = pageWrap.getModel(); + Utils.MP.blankToNull(model); + + queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId) + .leftJoin(DeviceRole.class,DeviceRole::getId,Member::getRoleId) + .leftJoin(MemberCard.class,MemberCard::getMemberId,Member::getId); + + queryWrapper.selectAll(Member.class) + .selectAs(Company::getName,MemberInfoDTO::getCompanyName) + .selectAs(DeviceRole::getName,MemberInfoDTO::getRoleName) + .select("count(t3.id) as memberCardCount "); + + queryWrapper.in(Objects.nonNull(model.getCompanyIds()),Member::getCompanyId,model.getCompanyIds()) + .like(number,Member::getPhone,model.getKeyWords()) + .like((b||hasWord),Member::getPhone,model.getKeyWords()) + .isNull(Constants.equalsInteger(model.getHasFace(),Constants.ZERO),Member::getFaceId) + .isNotNull(Constants.equalsInteger(model.getHasFace(),Constants.ONE),Member::getFaceId) + .eq(Objects.nonNull(model.getCanVisit()),Member::getCanVisit,model.getCanVisit()) + .eq(Objects.nonNull(model.getStatus()),Member::getStatus,model.getStatus()); + IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); + if (!CollectionUtils.isEmpty(memberIPage.getRecords())){ + memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()))); + } + return PageData.from(memberIPage); + } + + /********************************************鍏紬鍙锋帴鍙�***********************************************************************/ + + + + /** + * 寰俊鎺堟潈鎺ュ彛 + * @param code + * @return + */ + @Override + public WxAuthorizeVO wxAuthorize(String code){ + String appId = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_APPID).getCode(); + String appSecret = systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_SECRET).getCode(); + String getTokenUrl = WXConstant.GET_USER_INFO_URL.replace("CODE", code) + .replace("APPID", appId).replace("SECRET", appSecret); + JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true)); + String openId = null; + if(!Objects.isNull(tokenJson.get("access_token"))){ + openId = tokenJson.getString("openid"); + } + WxAuthorizeVO wxAuthorizeVO = new WxAuthorizeVO(); + wxAuthorizeVO.setOpenid(openId); + return wxAuthorizeVO; + } + + + + + + + + + + + + + } -- Gitblit v1.9.3