From e2f8fb1fbe26ba6d92f3e5dfcaeb0c69abe76b25 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 14 十二月 2023 14:28:57 +0800 Subject: [PATCH] 海康接口对接开发 --- server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 152 ++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 146 insertions(+), 6 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 8dca011..983da41 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,8 +2,15 @@ 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; @@ -11,17 +18,21 @@ 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.system.model.SystemUser; +import com.doumee.dao.web.reqeust.CheckVisitedDTO; +import com.doumee.dao.web.response.MemberVO; +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; @@ -31,6 +42,7 @@ import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -54,6 +66,10 @@ @Autowired private TrainTimeMapper trainTimeMapper; + + + @Autowired + private SystemDictDataBiz systemDictDataBiz; @Override public Integer create(Member member) { @@ -152,6 +168,17 @@ memberMapper.updateById(update); } + + @Override + public void updateCanVisitById(Member member) { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + Member update = new Member(); + update.setEditDate(new Date()); + update.setEditor(loginUserInfo.getId()); + update.setCanVisit(member.getCanVisit()); + memberMapper.updateById(update); + } + @Override public void updateByIdInBatch(List<Member> members) { if (CollectionUtils.isEmpty(members)) { @@ -181,6 +208,7 @@ @Override public PageData<Member> findPage(PageWrap<Member> pageWrap) { + IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); @@ -325,7 +353,7 @@ MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); MemberInfoDTO model = pageWrap.getModel(); Utils.MP.blankToNull(model); - Date end = Utils.Date.getEnd(pageWrap.getModel().getTrainTimeEndTime()); + Date end =pageWrap.getModel().getTrainTimeEndTime() !=null? Utils.Date.getEnd(pageWrap.getModel().getTrainTimeEndTime()):new Date(); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId) .leftJoin(TrainTime.class,TrainTime::getMemberId,Member::getId) .leftJoin(Empower.class,Empower::getMemberId,Member::getId); @@ -340,7 +368,7 @@ .like(StringUtils.isNotBlank(model.getName()),Member::getName,model.getName()) .like(StringUtils.isNotBlank(model.getPhone()),Member::getPhone,model.getPhone()) .like(StringUtils.isNotBlank(model.getIdcardDecode()),Member::getIdcardDecode,model.getIdcardDecode()) - .having("trainTimeEndTime < "+ DateUtil.format(end,"yyyy-MM-dd HH:mm:ss")); + .having(pageWrap.getModel().getTrainTimeEndTime()!=null,"trainTimeEndTime < "+ DateUtil.format(end,"yyyy-MM-dd HH:mm:ss")); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); if (!CollectionUtils.isEmpty(memberIPage.getRecords())){ memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()))); @@ -371,4 +399,116 @@ // } + + @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 ");*//* + .select(""); + + queryWrapper.in(Objects.nonNull(model.getCompanyIds()),Member::getCompanyId,model.getCompanyIds()) + *//* .like(number,Member::getPhone,model.getKeyWords()) + .like((b||hasWord),Member::getPhone,model.getKeyWords())*//* + .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,model.getKeyWords()) + .or().like(Member::getName,model.getKeyWords()) + .or().like(Member::getCode,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()))); + }*/ + IPage<MemberInfoDTO> memberIPage = memberMapper.getPage(pageWrap.toPage(),new QueryWrapper<MemberInfoDTO>() + .in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0,"m.COMPANY_ID",pageWrap.getModel().getCompanyIds()) + .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like("m.ohone",pageWrap.getModel().getKeyWords()) + .or().like("m.name",pageWrap.getModel().getKeyWords()) + .or().like("m.code",pageWrap.getModel().getKeyWords())) + .isNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),"m.FACE_ID") + .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),"m.FACE_ID") + .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),"m.CAN_VISIT",pageWrap.getModel().getCanVisit()) + .eq(Objects.nonNull(pageWrap.getModel().getStatus()),"m.CAN_VISIT",pageWrap.getModel().getStatus()) + .eq("m.ISDELETED",0) + .orderByDesc("m.CREATE_DATE") + ); + + 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; + } + + + @Override + public MemberVO getVisitedMember(CheckVisitedDTO checkVisitedDTO){ + Integer validType = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.BEVISITED_USER_VALID).getCode()); + if(Objects.isNull(checkVisitedDTO)||StringUtils.isBlank(checkVisitedDTO.getMobile())||(validType.equals(Constants.ONE)&&StringUtils.isBlank(checkVisitedDTO.getName()))){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() + .eq(Member::getPhone,checkVisitedDTO.getMobile()) + .eq(validType.equals(Constants.ONE),Member::getName,checkVisitedDTO.getName()) + .eq(Member::getIsdeleted,Constants.ZERO) + .eq(Member::getStatus,Constants.ZERO) + .eq(Member::getCanVisit,Constants.ONE) + .eq(Member::getType,Constants.memberType.internal) + .last(" limit 1 ") + ); + MemberVO memberVO = new MemberVO(); + BeanUtils.copyProperties(member,memberVO); + return memberVO; + } + + + + + + + + + + + } -- Gitblit v1.9.3