jyy
2022-04-15 f57554f7da5e4d05b4b4bab99bf49ac9ca8c2038
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -79,6 +79,9 @@
   @Autowired
   ScoreVipDetailService scoreVipDetailService;
   @Autowired
   private SysOrderDao sysOrderDao;
   /**
    * 新增会员储值卡
@@ -102,11 +105,11 @@
   @Override
   public int add(SysVipInfo sysVipInfo) {
      SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
      if (sysVipInfo.getVipNo() != null && (!sysVipInfo.getVipNo().equals(""))) {
         if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", sysVipInfo.getVipNo(),
               "company_id",user.getCompanyId())) {
               "company_id",sysVipInfo.getCompanyId())) {
            throw new GlobleException("编号已存在!");
         }
      }
@@ -115,25 +118,26 @@
            throw new GlobleException("请输入手机号!");
         }
         if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", sysVipInfo.getPhone(),
               "company_id",user.getCompanyId() )) {
            throw new GlobleException("手机已被注册!");
               "company_id",sysVipInfo.getCompanyId() )) {
            throw new GlobleException(sysVipInfo.getPhone()+"手机已被注册!");
         }
      }
      sysVipInfo.setShopId(user.getShopId());
      sysVipInfo.setCompanyId(user.getCompanyId());
      SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
      if(user!=null){
         sysVipInfo.setCompanyId(user.getCompanyId());
      }
      sysVipInfo.setCreateTime(new Date());
      sysVipInfo.setPointAll(0);
      sysVipInfo.setIsDeal(SysVipInfo.UNDEAL_VIP);
      sysVipInfo.setZjm(StringUtils.toHanyuPinyin(sysVipInfo.getVipName())+","+StringUtils.toHeadWordHanyuPinyin(sysVipInfo.getVipName()));
      if(sysVipInfo.getSex().equals(Dictionary.SEX_MAN)){
      if(StringUtils.isNotBlank(sysVipInfo.getVipName())){
         sysVipInfo.setZjm(StringUtils.toHanyuPinyin(sysVipInfo.getVipName())+","+StringUtils.toHeadWordHanyuPinyin(sysVipInfo.getVipName()));
      }
      if(Dictionary.SEX_MAN.equals(sysVipInfo.getSex())){
         sysVipInfo.setPhoto(defaultMan);
      }else{
         sysVipInfo.setPhoto(defaultWoman);
      }
      int i=sysVipInfoDao.insert(sysVipInfo);
      modifyVipWithOtherInfo(sysVipInfo);
      //创建用户默认储值卡
      addVipDefaultCard(sysVipInfo.getId());
      return i;
@@ -267,31 +271,7 @@
      }
      
      
        //如果会员id不为空则表示是修改,删除原有的绑定关系,建立新的关系
         if(vipInfo.getId()!=null && !vipInfo.getId().equals("")){
            MyBeatician query=new MyBeatician();
            query.setVipId(vipInfo.getId());
            List<MyBeatician> listDel= myBeaticianDao.selectByModel(query);
            if(listDel!=null && listDel.size()>0){
            List<Long> delIds=new ArrayList<>();
               for (int i = 0; i < listDel.size(); i++) {
               delIds.add(listDel.get(i).getId());
             }
            myBeaticianDao.deleteByIds(delIds);
             }
         }
         //添加客户的美疗师
       List<MyBeatician> list=vipInfo.getBeauticains();
       if(list!=null && list.size()>0){
          List<MyBeatician> saveList=new ArrayList<>();
          //此处由于前台传递过来list中的下标可能是不连续的。因此要过滤掉空的,即要过滤掉美疗师的id为空的数据
          for (MyBeatician temp:list) {
             if(temp.getBeauticainId()!=null && !temp.getBeauticainId().equals("")){
                saveList.add(temp);
                }
             }
          myBeaticianDao.insertAll(saveList,vipInfo.getId());
         }
          
   }
   
@@ -426,7 +406,7 @@
               SysVipInfo vipInfo = new SysVipInfo();
               vipInfo.setVipNo(objects.get(0).toString());
               SysVipInfo exist = sysVipInfoDao.selectByPhone(objects.get(3).toString());
               SysVipInfo exist = sysVipInfoDao.selectByPhone(objects.get(3).toString(),sysUsers.getCompanyId());
               if (exist != null) {
                  continue;
               }
@@ -452,8 +432,9 @@
   @Override
   public List<VipInfoListVo> findVipAddressBook(VipInfoListDto vipInfoListDto) {
      //todo 会员查询单独做控制
      SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
      if (!DataAuthUtil.hasAllShopAuth()) {
      if (!DataAuthUtil.hasAllCustomerAuth()) {
         vipInfoListDto.setShopId(sysUsers.getShopId());
      }
      QueryUtil.setQueryLimitCom(vipInfoListDto);
@@ -462,7 +443,9 @@
   @Override
   public com.matrix.system.app.vo.VipInfoVo findApiVipInfoById(Long id) {
      return sysVipInfoDao.selectVipInfoById(id);
      com.matrix.system.app.vo.VipInfoVo result = sysVipInfoDao.selectVipInfoById(id);
      result.setArrears(sysOrderDao.selectArrearsByVipId(id));
      return result;
   }
   @Override
@@ -546,7 +529,7 @@
         if(StringUtils.isNotBlank(referrerScoreSetting.getParamValue())){
            scoreVipDetailService.addScore(referrerVip.getOpenId(),
            scoreVipDetailService.addScore(
                  referrerVip.getId(),
                  user.getSuId(),
                  vipInfo.getShopId(),
@@ -565,7 +548,7 @@
            if(StringUtils.isNotBlank(referrerScoreSetting.getParamValue1())){
               scoreVipDetailService.addScore(topVipInfo.getOpenId(),
               scoreVipDetailService.addScore(
                     topVipInfo.getId(),
                     user.getSuId(),
                     vipInfo.getShopId(),
@@ -670,4 +653,34 @@
      vipInfoDetailVo.setLabels(labels);
      return vipInfoDetailVo;
   }
   @Override
   public SysVipInfo findByOpenId(String openId) {
      return sysVipInfoDao.findByOpenId(openId);
   }
   /**
    * 设置成为推广员
    * @param invitationId
    */
   @Override
   public int setToBeAnSalesman(Long userId,Long invitationId,long gradeId) {
      SysVipInfo sysVipInfo=sysVipInfoDao.selectById(userId);
      sysVipInfo.setIsSales(SysVipInfo.IS_SALES);
      sysVipInfo.setRecommendId(invitationId);
      sysVipInfo.setBindingParentTime(new Date());
      sysVipInfo.setSalesmanGrade(gradeId);
      return sysVipInfoDao.update(sysVipInfo);
   }
   @Override
   public List<Map<String, Object>> findVipArrearsStatistics(SysVipInfo sysVipInfo, PaginationVO pageVo) {
      return sysVipInfoDao.selectVipArrearsStatistics(sysVipInfo, pageVo);
   }
   @Override
   public Integer findVipArrearsStatisticsTotal(SysVipInfo sysVipInfo) {
      return sysVipInfoDao.selectVipArrearsStatisticsTotal(sysVipInfo);
   }
}