| | |
| | | |
| | | 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.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.join.UserActionJoinMapper; |
| | | 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 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; |
| | |
| | | |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private UserActionJoinMapper userActionJoinMapper; |
| | | |
| | | @Override |
| | | public Integer create(Member member) { |
| | |
| | | insert.setParentId(member.getParentId()); |
| | | memberMapper.insert(insert); |
| | | |
| | | TrainTime trainTime = new TrainTime(); |
| | | /* TrainTime trainTime = new TrainTime(); |
| | | trainTime.setCreator(loginUserInfo.getId().toString()); |
| | | trainTime.setCreateDate(new Date()); |
| | | trainTime.setEdirot(loginUserInfo.getId().toString()); |
| | |
| | | trainTime.setEndTime(Utils.Date.getDayEnd(member.getEndTime())); |
| | | // trainTime.setImportStatus(); |
| | | // trainTime.setImportInfo(); |
| | | trainTimeMapper.insert(trainTime); |
| | | trainTimeMapper.insert(trainTime);*/ |
| | | return insert.getId(); |
| | | } |
| | | |
| | | @Override |
| | | public void deleteById(Integer id) { |
| | | memberMapper.deleteById(id); |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | |
| | | Member member=new Member(); |
| | | member.setId(id); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setEditor(loginUserInfo.getId()); |
| | | member.setEditDate(new Date()); |
| | | memberMapper.updateById(member); |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (CollectionUtils.isEmpty(ids)) { |
| | | return; |
| | | } |
| | | memberMapper.deleteBatchIds(ids); |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Member member=new Member(); |
| | | ids.stream().forEach(s ->{ |
| | | member.setId(s); |
| | | member.setIsdeleted(Constants.ZERO); |
| | | member.setEditor(loginUserInfo.getId()); |
| | | member.setEditDate(new Date()); |
| | | memberMapper.updateById(member); |
| | | }); |
| | | /* memberMapper.deleteBatchIds(ids);*/ |
| | | } |
| | | |
| | | @Override |
| | |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setStatus(member.getStatus()); |
| | | memberMapper.updateById(update); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void updateVisitsStatusById(Member member) { |
| | | LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Member result=memberMapper.selectById(member.getId()); |
| | | Integer status=result.getStatus(); |
| | | Member update = new Member(); |
| | | update.setEditDate(new Date()); |
| | | update.setEditor(loginUserInfo.getId()); |
| | | update.setStatus(member.getStatus()); |
| | | update.setId(member.getId()); |
| | | memberMapper.updateById(update); |
| | | |
| | | UserAction userAction=new UserAction(); |
| | | userAction.setIsdeleted(Constants.ZERO); |
| | | userAction.setCreateDate(new Date()); |
| | | userAction.setCreator(loginUserInfo.getId()); |
| | | userAction.setType(Constants.TWO); |
| | | userAction.setMemberId(result.getId()+""); |
| | | userAction.setBeforeStatus(status); |
| | | userActionJoinMapper.insert(userAction); |
| | | } |
| | | |
| | | |
| | | |
| | | @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 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()); |
| | |
| | | MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); |
| | | MemberInfoDTO model = pageWrap.getModel(); |
| | | Utils.MP.blankToNull(model); |
| | | Date end = Utils.Date.getEnd(pageWrap.getModel().getTrainTimeEndTime()); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId) |
| | | .leftJoin(TrainTime.class,TrainTime::getMemberId,Member::getId) |
| | | .leftJoin(Empower.class,Empower::getMemberId,Member::getId); |
| | | 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);*/ |
| | | |
| | | queryWrapper.selectAll(Member.class) |
| | | .selectAs(Company::getName,MemberInfoDTO::getCompanyName) |
| | | .selectAs(Company::getLinkName,MemberInfoDTO::getLinkName) |
| | | .select("Max(t1.endTime)","trainTimeEndTime") |
| | | .select("Max(t2.endTime)","empowerEndTime"); |
| | | /*.select(" (select Max(tt.END_TIME) from train_time tt where tt.ISDELETED=0 and tt.MEMBER_ID=t.id) as trainTimeEndTime")*/ |
| | | .select(" (select Max(e.END_TIME) from empower e where e.ISDELETED=0 and e.MEMBER_ID=t.id) as empowerEndTime"); |
| | | |
| | | queryWrapper.eq(Member::getType,Constants.ZERO); |
| | | queryWrapper.eq(Objects.nonNull(model.getCompanyId()),Member::getCompanyId,model.getCompanyId()) |
| | | .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()))); |
| | |
| | | |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) { |
| | | |
| | | |
| | | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | queryWrapper.selectAll(Member.class) |
| | | .selectAs(Company::getName,MemberInfoDTO::getCompanyName) |
| | | .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount") |
| | | .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate"); |
| | | |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone()) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) |
| | | .eq(Member::getStatus,Constants.Status.FREEZE) |
| | | .orderByDesc(Member::getCreateDate); |
| | | |
| | | |
| | | IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); |
| | | return PageData.from(memberIPage); |
| | | |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public PageData<MemberInfoDTO> findUnusualPage(PageWrap<MemberQuery> pageWrap) { |
| | | |
| | | |
| | | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | queryWrapper.selectAll(Member.class) |
| | | .selectAs(Company::getName,MemberInfoDTO::getCompanyName) |
| | | .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount") |
| | | .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate"); |
| | | |
| | | queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType()); |
| | | queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone()) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) |
| | | .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) |
| | | .eq(Member::getStatus,Constants.Status.ENABLE) |
| | | .orderByDesc(Member::getCreateDate); |
| | | |
| | | |
| | | IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); |
| | | return PageData.from(memberIPage); |
| | | |
| | | } |
| | | |
| | | /********************************************公众号接口***********************************************************************/ |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | @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; |
| | | } |
| | | |
| | | |
| | | |