| | |
| | | package com.ruoyi.member.service.impl.member; |
| | | import com.google.common.collect.Lists; |
| | | import cn.binarywang.wx.miniapp.api.WxMaService; |
| | | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; |
| | | import com.alibaba.fastjson.JSONObject; |
| | |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.google.common.collect.Lists; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.DateUtils; |
| | |
| | | import com.ruoyi.member.domain.pojo.member.IntegralRecord; |
| | | import com.ruoyi.member.domain.pojo.member.MemberArchive; |
| | | import com.ruoyi.member.domain.pojo.member.MemberTotal; |
| | | import com.ruoyi.member.domain.vo.MerMemberTotalVo; |
| | | import com.ruoyi.member.domain.vo.*; |
| | | import com.ruoyi.member.mapper.member.MemberMapper; |
| | | import com.ruoyi.member.service.member.IntegralRecordService; |
| | |
| | | |
| | | @Resource |
| | | private RemoteOrderService remoteOrderService; |
| | | |
| | | @Resource |
| | | private RemoteUserService remoteUserService; |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * @description: TODO |
| | |
| | | if (oldMember != null && oldMember.getBindingFlag() == 0) { |
| | | oldMember.setRelationShopId(merMemberAddDto.getShopId()); |
| | | oldMember.setBindingFlag(1); |
| | | oldMember.setBindingType(8); |
| | | this.updateById(oldMember); |
| | | return oldMember.getUserId(); |
| | | } |
| | |
| | | */ |
| | | @Override |
| | | public List<MgtMemberPageVo> pageMgtMember(Page page, MgtMemberPageDto merMemberPageDto) { |
| | | |
| | | List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); |
| | | Date nowDay = new Date(); |
| | | if (merMemberPageDto.getActivenessId() != null) { |
| | |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | | merMemberPageDto.setStartBirthday(startBirthday.format(formatter)); |
| | | } |
| | | // 获取当前登陆人的可视权限 |
| | | SysUser sysUser = SecurityUtils.getSysUser(); |
| | | // 店铺ids |
| | | List<Long> scope = new ArrayList<>(); |
| | | if (sysUser!=null){ |
| | | String dataScope = sysUser.getDataScope(); |
| | | if (!sysUser.getUserName().equals("admin")){ |
| | | if (org.springframework.util.StringUtils.hasLength(dataScope)){ |
| | | switch (dataScope){ |
| | | case "3": |
| | | // 本部门数据 查询当前登陆人属于哪个部门 查询这个部门下所有员工关联的所有店铺 |
| | | // 根据用户id 查询同部门下所有员工id |
| | | List<Long> userIds = sysUserService.getUserIdsByDept(sysUser.getUserId()).getData(); |
| | | // 获取店铺ids |
| | | List<Long> data = shopService.getShopIdsByUserIds(userIds).getData(); |
| | | if (data.size()==0){ |
| | | scope.add(0L); |
| | | }else{ |
| | | scope.addAll(data); |
| | | } |
| | | break; |
| | | case "5": |
| | | // 仅个人数据 查询当前登陆人关联店铺下的用户 |
| | | List<Long> longs = new ArrayList<>(); |
| | | longs.add(sysUser.getUserId()); |
| | | // 获取店铺ids |
| | | List<Long> data1 = shopService.getShopIdsByUserIds(longs).getData(); |
| | | if (data1.size()==0){ |
| | | scope.add(0L); |
| | | }else{ |
| | | scope.addAll(data1); |
| | | } |
| | | |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | //查询获取结果列表 |
| | | List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto); |
| | | List<MgtMemberPageVo> memberPageVoList = memberMapper.pageMgtMember(page, merMemberPageDto,scope); |
| | | //处理活跃度返回 |
| | | if (memberPageVoList != null && !memberPageVoList.isEmpty()) { |
| | | if (activenessList != null && !activenessList.isEmpty()) { |
| | |
| | | return memberMapper.listIdBySendType(sendType,shopId); |
| | | } |
| | | |
| | | |
| | | public List<Long> listIdBySendType2(Long shopId) { |
| | | //1.手动领取2.全部用户3.会员用户4非会员用户5自定义 |
| | | return memberMapper.listIdBySendType2(shopId); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @param userIds |
| | | * @return List<MgtSimpleMemberVo> |
| | |
| | | * @date 2023/6/18 16:45 |
| | | */ |
| | | @Override |
| | | public MgtBulletinBoardVo boardMemberTotal(List<Long> userIds) { |
| | | public MgtBulletinBoardVo boardMemberTotal(List<Long> shopIds) { |
| | | MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo(); |
| | | mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal(userIds)); |
| | | mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday(userIds)); |
| | | mgtBulletinBoardVo.setMemberTotal(memberMapper.memberTotal(shopIds)); |
| | | mgtBulletinBoardVo.setMemberToday(memberMapper.memberToday(shopIds)); |
| | | return mgtBulletinBoardVo; |
| | | } |
| | | |
| | |
| | | plTotalMemberTotalVo.setShopMemberRankList(Lists.newArrayList()); |
| | | Date nowDay = DateUtils.getNowDate(); |
| | | //如果区域代码不为null获取对应的商户id |
| | | List<Long> list = new ArrayList<>(); |
| | | if (StringUtils.isNotBlank(mgtBasePlatformDto.getShopProvinceCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopCityCode()) || StringUtils.isNotBlank(mgtBasePlatformDto.getShopAreaCode())) { |
| | | MgtShopIdByCodeDto mgtShopIdByCodeDto = new MgtShopIdByCodeDto(); |
| | | mgtShopIdByCodeDto.setShopProvinceCode(mgtBasePlatformDto.getShopProvinceCode()); |
| | | mgtShopIdByCodeDto.setShopCityCode(mgtBasePlatformDto.getShopCityCode()); |
| | | mgtShopIdByCodeDto.setShopAreaCode(mgtBasePlatformDto.getShopAreaCode()); |
| | | MgtShopIdByCodeVo mgtShopIdByCodeVo = remoteShopService.getShopIdByCode(mgtShopIdByCodeDto).getData(); |
| | | List<Long> list = new ArrayList<>(); |
| | | |
| | | if (StringUtils.isNotBlank(mgtShopIdByCodeVo.getShopIds())) { |
| | | list = Arrays.stream(mgtShopIdByCodeVo.getShopIds().split(",")) |
| | | .map(Long::valueOf) |
| | |
| | | }else{ |
| | | return plTotalMemberTotalVo; |
| | | } |
| | | mgtBasePlatformDto.setShopIdList(list); |
| | | } |
| | | //数据权限 |
| | | List<Long> userId = remoteUserService.getScopeOfAuthorityUserId(); |
| | | BoardMemberTotalDto boardMemberTotalDto = new BoardMemberTotalDto(); |
| | | boardMemberTotalDto.setUserIds(userId); |
| | | List<Shop> shops = remoteShopService.getShopBySysUserIds(boardMemberTotalDto); |
| | | List<Long> collect = shops.stream().map(Shop::getShopId).collect(Collectors.toList()); |
| | | list.addAll(collect); |
| | | mgtBasePlatformDto.setShopIdList(list); |
| | | |
| | | |
| | | //获取基础统计 |
| | | MgtPlTotalMemberTotalVo plTotalMemberTotalByDayVo = memberMapper.getPlTotalMemberTotal(mgtBasePlatformDto); |
| | | plTotalMemberTotalVo.setMemberTotal(plTotalMemberTotalByDayVo.getMemberTotal()); |
| | |
| | | List<Member> mobileList = memberMapper.listTodayBirthday(); |
| | | if(mobileList!=null&&!mobileList.isEmpty()){ |
| | | log.info("生日祝福发送短信---"+mobileList.toString()); |
| | | for(Member member : mobileList){ |
| | | for (Member member : mobileList) { |
| | | try { |
| | | String msg = "{\"name\":\"" + (StringUtils.isEmpty(member.getRealName()) ? member.getNickName() : member.getRealName()) + "\"}"; |
| | | MsgUtils.sendMsg(member.getMobile(),null, msg); |
| | | MsgUtils.sendMsg(member.getMobile(), null, msg); |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 手动添加用户积分 |
| | | * |
| | | * @param integral |
| | | * @param userId |
| | | * @return |
| | | */ |
| | | @Override |
| | | public R addIntegralRecord(Integer integral, Long userId, String orderId) { |
| | | Member member = this.getByUserId(userId); |
| | | MemberTotal memberTotal = memberTotalService.getById(member.getMemberId()); |
| | | IntegralRecord integralRecord = new IntegralRecord(); |
| | | integralRecord.setDelFlag(0); |
| | | integralRecord.setUserId(userId); |
| | | integralRecord.setChangeType(6); |
| | | integralRecord.setChangeIntegral(integral); |
| | | integralRecord.setSurpIntegral(memberTotal.getUseableIntegral() + integral); |
| | | integralRecord.setCreateTime(new Date()); |
| | | integralRecord.setOrderId(orderId); |
| | | integralRecord.setChangeReason("抽奖活动获得"); |
| | | integralRecordService.save(integralRecord); |
| | | memberTotal.setTotalIntegral(memberTotal.getTotalIntegral() + integral); |
| | | memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + integral); |
| | | memberTotal.setPlSuggestFlag(1); |
| | | memberTotalService.saveOrUpdate(memberTotal); |
| | | return R.ok(); |
| | | } |
| | | } |