| package com.matrix.system.hive.service.imp; | 
|   | 
| import com.matrix.core.constance.MatrixConstance; | 
| import com.matrix.core.exception.GlobleException; | 
| import com.matrix.core.pojo.PaginationVO; | 
| import com.matrix.core.tools.DateUtil; | 
| import com.matrix.core.tools.EncrypUtil; | 
| import com.matrix.core.tools.StringUtils; | 
| import com.matrix.core.tools.WebUtil; | 
| import com.matrix.core.tools.excl.ExcelSheetPO; | 
| import com.matrix.core.tools.excl.ExcelUtil; | 
| import com.matrix.system.app.dto.AddVipDto; | 
| import com.matrix.system.app.dto.ModifyVipDto; | 
| import com.matrix.system.app.dto.VipInfoListDto; | 
| import com.matrix.system.app.vo.VipInfoDetailVo; | 
| import com.matrix.system.app.vo.VipInfoListVo; | 
| import com.matrix.system.common.bean.BusParameterSettings; | 
| import com.matrix.system.common.bean.SysUsers; | 
| import com.matrix.system.common.dao.BusParameterSettingsDao; | 
| import com.matrix.system.common.tools.DataAuthUtil; | 
| import com.matrix.system.common.tools.ServiceUtil; | 
| import com.matrix.system.constance.Dictionary; | 
| import com.matrix.system.constance.TableMapping; | 
| import com.matrix.system.hive.action.util.QueryUtil; | 
| import com.matrix.system.hive.bean.*; | 
| import com.matrix.system.hive.dao.*; | 
| import com.matrix.system.hive.plugin.util.CollectionUtils; | 
| import com.matrix.system.hive.pojo.VipInfoVo; | 
| import com.matrix.system.hive.service.SysVipInfoService; | 
| import com.matrix.system.score.constant.ScoreSettingConstant; | 
| import com.matrix.system.score.entity.ScoreVipDetail; | 
| import com.matrix.system.score.service.ScoreVipDetailService; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.beans.factory.annotation.Value; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.io.File; | 
| import java.io.IOException; | 
| import java.io.UnsupportedEncodingException; | 
| import java.security.NoSuchAlgorithmException; | 
| import java.util.*; | 
|   | 
|   | 
| /** | 
|  * | 
|  *  | 
|  * @date 2016-07-03 20:53 | 
|  */ | 
| @Service("sysVipInfoService") | 
| public class SysVipInfoServiceImpl implements SysVipInfoService { | 
|   | 
|     @Autowired | 
|     private SysVipInfoDao sysVipInfoDao; | 
|   | 
|     @Autowired | 
|     private ServiceUtil serviceUtil; | 
|   | 
|     @Autowired | 
|     private MyBeaticianDao myBeaticianDao; | 
|   | 
|     @Autowired | 
|     private VipAnswerDao vipAnswerDao; | 
|   | 
|     @Autowired | 
|     private MoneyCardUseDao moneyCardUseDao; | 
|   | 
|     @Autowired | 
|     private SysVipLabelDao sysVipLabelDao; | 
|   | 
|     @Value("${default.vip.photo.woman}") | 
|     String defaultWoman; | 
|   | 
|     @Value("${default.vip.photo.man}") | 
|     String defaultMan; | 
|     @Autowired | 
|     BusParameterSettingsDao busParameterSettingsDao; | 
|   | 
|     @Autowired | 
|     ScoreVipDetailService scoreVipDetailService; | 
|   | 
|   | 
|     /** | 
|      * 新增会员储值卡 | 
|      * @param vipId | 
|      * @return | 
|      */ | 
|     @Override | 
|     public MoneyCardUse addVipDefaultCard(Long vipId){ | 
|         MoneyCardUse defaultCardUse=new MoneyCardUse(); | 
|         defaultCardUse.setVipId(vipId); | 
|         defaultCardUse.setCardName("储值卡"); | 
|         defaultCardUse.setIsVipCar(Dictionary.FLAG_YES_Y); | 
|         defaultCardUse.setRealMoney(0D); | 
|         defaultCardUse.setGiftMoney(0D); | 
|         defaultCardUse.setSource("-"); | 
|         defaultCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); | 
|         moneyCardUseDao.insert(defaultCardUse); | 
|         return  defaultCardUse; | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public int add(SysVipInfo sysVipInfo) { | 
|   | 
|   | 
|         if (sysVipInfo.getVipNo() != null && (!sysVipInfo.getVipNo().equals(""))) { | 
|             if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", sysVipInfo.getVipNo(), | 
|                     "company_id",sysVipInfo.getCompanyId())) { | 
|                 throw new GlobleException("编号已存在!"); | 
|             } | 
|         } | 
|         if (sysVipInfo.getPhone() != null) { | 
|             if (sysVipInfo.getPhone().equals("")) { | 
|                 throw new GlobleException("请输入手机号!"); | 
|             } | 
|             if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", sysVipInfo.getPhone(), | 
|                     "company_id",sysVipInfo.getCompanyId() )) { | 
|                 throw new GlobleException(sysVipInfo.getPhone()+"手机已被注册!"); | 
|             } | 
|         } | 
|   | 
|         sysVipInfo.setCreateTime(new Date()); | 
|         sysVipInfo.setPointAll(0); | 
|         sysVipInfo.setIsDeal(SysVipInfo.UNDEAL_VIP); | 
|         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); | 
|         //创建用户默认储值卡 | 
|         addVipDefaultCard(sysVipInfo.getId()); | 
|         return i; | 
|     } | 
|   | 
|     @Override | 
|     @Transactional(rollbackFor = Exception.class) | 
|     public int modify(SysVipInfo sysVipInfo) { | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|   | 
|         if (sysVipInfo.getVipNo() != null) { | 
|             if (sysVipInfo.getVipNo().equals("")) { | 
|                 throw new GlobleException("请输入会员编号!"); | 
|             } | 
|             if (serviceUtil.updateCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", sysVipInfo.getVipNo(), | 
|                     "company_id",user.getCompanyId(), | 
|                     "ID", sysVipInfo.getId())) { | 
|                 throw new GlobleException("编号已被使用!"); | 
|             } | 
|         } | 
|         if (sysVipInfo.getPhone() != null) { | 
|             if (sysVipInfo.getPhone().equals("")) { | 
|                 throw new GlobleException("请输入手机号!"); | 
|             } | 
|             if (serviceUtil.updateCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", sysVipInfo.getPhone(), | 
|                     "company_id",user.getCompanyId(), | 
|                     "ID", sysVipInfo.getId())) { | 
|                 throw new GlobleException("手机已被使用!"); | 
|             } | 
|         } | 
|   | 
|         modifyVipWithOtherInfo(sysVipInfo); | 
|         return sysVipInfoDao.update(sysVipInfo); | 
|     } | 
|   | 
|     @Override | 
|     public int remove(List<Long> list) { | 
|   | 
|         return sysVipInfoDao.deleteByIds(list); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public int removeById(Long id) { | 
|   | 
|         return sysVipInfoDao.deleteById(id); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public List<SysVipInfo> findInPage(SysVipInfo sysVipInfo, PaginationVO pageVo) { | 
|   | 
|         return sysVipInfoDao.selectInPage(sysVipInfo, pageVo); | 
|   | 
|     } | 
|      | 
|     @Override | 
|     public List<SysVipInfo> findAll(SysVipInfo sysVipInfo) { | 
|   | 
|         return sysVipInfoDao.selectAll(sysVipInfo); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public List<SysVipInfo> findByModel(SysVipInfo sysVipInfo) { | 
|         return sysVipInfoDao.selectByModel(sysVipInfo); | 
|   | 
|     } | 
|      | 
|     @Override | 
|     public List<SysVipInfo> findByModel1(SysVipInfo sysVipInfo) { | 
|         return sysVipInfoDao.selectByModel1(sysVipInfo); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public int findTotal(SysVipInfo sysVipInfo) { | 
|   | 
|         return sysVipInfoDao.selectTotalRecord(sysVipInfo); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public SysVipInfo findById(Long id) { | 
|   | 
|         return sysVipInfoDao.selectById(id); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public List<SysVipInfo> findByVipNoOrTel(String key) { | 
|         return sysVipInfoDao.selectByVipNoOrTel(key); | 
|   | 
|     } | 
|   | 
|   | 
|     @Override | 
|     public boolean isOnlyPhone(String phone) { | 
|   | 
|         return sysVipInfoDao.selectTotalByField("PHONE", phone) > 0; | 
|     } | 
|   | 
|     public boolean isOnlyEmail(String email) { | 
|         return sysVipInfoDao.selectTotalByField("EMAIl", email) > 0; | 
|     } | 
|   | 
|     @Override | 
|     public List<SysVipInfo> findListByVo(VipInfoVo infoVo, PaginationVO pageVo) { | 
|   | 
|         return sysVipInfoDao.findListByVo(infoVo, pageVo); | 
|     } | 
|   | 
|     @Override | 
|     public int findListByVoCount(VipInfoVo infoVo) { | 
|   | 
|         return sysVipInfoDao.findListByVoCount(infoVo); | 
|     } | 
|   | 
|     //更新会员的问卷信息 | 
|     @Override | 
|     public void modifyVipWithOtherInfo(SysVipInfo vipInfo) { | 
|         //先删除所有问卷答案再添加 | 
|         VipAnswer delAnswer=new VipAnswer(); | 
|         if(vipInfo.getId()==null){ | 
|             throw new GlobleException("会员不存在,请刷新页面!"); | 
|         } | 
|         delAnswer.setVipId(vipInfo.getId()); | 
|         vipAnswerDao.deleteByModel(delAnswer); | 
|         if(vipInfo.getVipAnswers()!=null&&vipInfo.getVipAnswers().size()>0){ | 
|             vipAnswerDao.batchInsert(vipInfo.getVipAnswers()); | 
|         } | 
|          | 
|          | 
|   | 
|               | 
|     } | 
|      | 
|      | 
|      | 
|     @Override | 
|     public List<SysVipInfo> findUserByPhoto(Long companyId,String keyWord) { | 
|          | 
|         return sysVipInfoDao.selectUserByPhoto(companyId,keyWord) ; | 
|     } | 
|      | 
|   | 
|     @Override | 
|     public List<SysVipInfo> findUserByKey(String keyWord) { | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|         return sysVipInfoDao.selectUserByKey(keyWord,user.getCompanyId()); | 
|     } | 
|      | 
|   | 
|      | 
|     @Override | 
|     public SysVipInfo login(SysVipInfo user) { | 
|   | 
|         return sysVipInfoDao.selectVipByPhonePassWord(user) ; | 
|     } | 
|   | 
|   | 
|     /** | 
|      * 批量修改健康顾问 | 
|      */ | 
|     @Transactional(rollbackFor = Exception.class) | 
|     @Override | 
|     public int updateStaffId(String ids, Long staffId) { | 
|         if(ids==null||ids.equals("")){ | 
|             throw new GlobleException("请至少选择一位会员!");  | 
|         } | 
|   | 
|         String[] key=ids.split(","); | 
|         for (String string : key) { | 
|             long id=Long.valueOf(string.trim()); | 
|             SysVipInfo info=new SysVipInfo(); | 
|             info.setId(id); | 
|             info.setStaffId(staffId); | 
|             sysVipInfoDao.update(info); | 
|         } | 
|         return key.length; | 
|     } | 
|   | 
|   | 
|     //修改密码 | 
|     @Override | 
|     public int updatePwd(SysVipInfo vipInfo) { | 
|         //密码MD5加密更新到数据库 | 
|         try { | 
|             vipInfo.setPassWord(EncrypUtil.getMD5(vipInfo.getPassWord())); | 
|         } catch (UnsupportedEncodingException | NoSuchAlgorithmException e) { | 
|             e.printStackTrace(); | 
|         } | 
|         //更新用户的密码 | 
|         return sysVipInfoDao.update(vipInfo); | 
|     } | 
|     /** | 
|      * 批量导入会员信息 | 
|      */ | 
|     @Override | 
|     public int adds(SysVipInfo sysVipInfo,int s,List<Object> errList) { | 
|         sysVipInfo.setCreateTime(new Date()); | 
|         sysVipInfo.setPointAll(0); | 
|         SysUsers users = (SysUsers) WebUtil.getSession().getAttribute(MatrixConstance.LOGIN_KEY); | 
|         sysVipInfo.setCompanyId(users.getCompanyId()); | 
|         sysVipInfo.setShopId(users.getShopId()); | 
|         if(sysVipInfo.getSex().equals(Dictionary.SEX_MAN)){ | 
|             sysVipInfo.setPhoto(defaultMan); | 
|         }else{ | 
|             sysVipInfo.setPhoto(defaultWoman); | 
|         } | 
|         int i=sysVipInfoDao.insert(sysVipInfo); | 
|         modifyVipWithOtherInfo(sysVipInfo); | 
|         return i; | 
|     } | 
|      | 
|     @Override | 
|     public List<SysVipInfo> findAllInPage(SysVipInfo sysVipInfo, PaginationVO pageVo) { | 
|   | 
|         return sysVipInfoDao.selectAllInPage(sysVipInfo, pageVo); | 
|   | 
|     } | 
|     @Override | 
|     public int findAllTotal(SysVipInfo sysVipInfo) { | 
|   | 
|         return sysVipInfoDao.selectAllTotalRecord(sysVipInfo); | 
|   | 
|     } | 
|      | 
|     @Override | 
|     public List<SysVipInfo> findFristInPage(SysVipInfo sysVipInfo, PaginationVO pageVo) { | 
|   | 
|         return sysVipInfoDao.selectFristInPage(sysVipInfo, pageVo); | 
|   | 
|     } | 
|     @Override | 
|     public int findFristTotal(SysVipInfo sysVipInfo) { | 
|   | 
|         return sysVipInfoDao.selectFristTotalRecord(sysVipInfo); | 
|   | 
|     } | 
|      | 
|     @Override | 
|     public List<SysVipInfo> findSecondInPage(SysVipInfo sysVipInfo, PaginationVO pageVo) { | 
|   | 
|         return sysVipInfoDao.selectSecondInPage(sysVipInfo, pageVo); | 
|   | 
|     } | 
|     @Override | 
|     public int findSecondTotal(SysVipInfo sysVipInfo) { | 
|   | 
|         return sysVipInfoDao.selectSecondTotalRecord(sysVipInfo); | 
|   | 
|     } | 
|   | 
|     @Override | 
|     public int importVipInfo(File file) throws IOException { | 
|         SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|         List<ExcelSheetPO> excelList = ExcelUtil.readExcel(file, null,null); | 
|         int result = 0; | 
|         for (int i = 0; i < excelList.size(); i++) { | 
|             List<List<Object>> dataList = excelList.get(i).getDataList(); | 
|             List<SysVipInfo> vipInfos = new ArrayList<>(); | 
|             if (CollectionUtils.isNotEmpty(dataList)) { | 
|                 for (int j = 1; j < dataList.size(); j++) { | 
|                     List<Object> objects = dataList.get(j); | 
|                     SysVipInfo vipInfo = new SysVipInfo(); | 
|                     vipInfo.setVipNo(objects.get(0).toString()); | 
|   | 
|                     SysVipInfo exist = sysVipInfoDao.selectByPhone(objects.get(3).toString(),sysUsers.getCompanyId()); | 
|                     if (exist != null) { | 
|                         continue; | 
|                     } | 
|                     List<SysVipInfo> sysVipInfo = sysVipInfoDao.selectVipInfoByVipNo(sysUsers.getCompanyId(), objects.get(0).toString()); | 
|                     if (CollectionUtils.isNotEmpty(sysVipInfo)) { | 
|                         int x = j + 1; | 
|                         throw new GlobleException("第"+ x +"行,会员编号已存在"); | 
|                     } | 
|                     vipInfo.setVipName(objects.get(1).toString()); | 
|                     vipInfo.setSex(objects.get(2).toString()); | 
|                     vipInfo.setPhone(objects.get(3).toString()); | 
|                     vipInfo.setBirthday1(DateUtil.stringToDate(objects.get(4).toString(), DateUtil.DATE_FORMAT_SS)); | 
|                     vipInfo.setShopId(sysUsers.getShopId()); | 
|                     vipInfos.add(vipInfo); | 
|                 } | 
|             } | 
|             if (CollectionUtils.isNotEmpty(vipInfos)) { | 
|                 result = sysVipInfoDao.batchInsert(vipInfos); | 
|             } | 
|         } | 
|         return result; | 
|     } | 
|   | 
|     @Override | 
|     public List<VipInfoListVo> findVipAddressBook(VipInfoListDto vipInfoListDto) { | 
|         SysUsers sysUsers = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|         if (!DataAuthUtil.hasAllShopAuth()) { | 
|             vipInfoListDto.setShopId(sysUsers.getShopId()); | 
|         } | 
|         QueryUtil.setQueryLimitCom(vipInfoListDto); | 
|         return sysVipInfoDao.selectVipAddressBookByList(vipInfoListDto); | 
|     } | 
|   | 
|     @Override | 
|     public com.matrix.system.app.vo.VipInfoVo findApiVipInfoById(Long id) { | 
|         return sysVipInfoDao.selectVipInfoById(id); | 
|     } | 
|   | 
|     @Override | 
|     @Transactional | 
|     public int apiAddVip(AddVipDto addVipDto) { | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|   | 
|         if (StringUtils.isNotBlank(addVipDto.getVipNo())) { | 
|             if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", addVipDto.getVipNo(), | 
|                     "company_id", user.getCompanyId())) { | 
|                 throw new GlobleException("编号已存在!"); | 
|             } | 
|         } | 
|   | 
|         if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", addVipDto.getPhone(), | 
|                 "company_id",user.getCompanyId() )) { | 
|             throw new GlobleException("手机已被注册!"); | 
|         } | 
|   | 
|         SysVipInfo vipInfo = new SysVipInfo(); | 
|   | 
|         vipInfo.setPhoto(addVipDto.getPhoto()); | 
|         vipInfo.setVipName(addVipDto.getVipName()); | 
|         vipInfo.setVipNo(addVipDto.getVipNo()); | 
|         vipInfo.setSex(addVipDto.getSex()); | 
|         vipInfo.setArrivalWay(addVipDto.getArrivalWay()); | 
|         vipInfo.setPhone(addVipDto.getPhone()); | 
|         vipInfo.setAddr(addVipDto.getAddress()); | 
|         vipInfo.setRemark(addVipDto.getRemark()); | 
|         vipInfo.setBirthday1(addVipDto.getBirthday()); | 
|         vipInfo.setPassWord(addVipDto.getPassword()); | 
|         vipInfo.setRecommendId(addVipDto.getRecommendId()); | 
|   | 
|         if (StringUtils.isNotBlank(addVipDto.getAreas())) { | 
|             String[] areas = addVipDto.getAreas().split("-"); | 
|             vipInfo.setProvince(areas[0]); | 
|             vipInfo.setCity(areas[1]); | 
|             vipInfo.setArea(areas[2]); | 
|         } | 
|   | 
|         vipInfo.setInDate(new Date()); | 
|         vipInfo.setPointAll(0); | 
|         vipInfo.setVipState(Dictionary.VIP_STATE_HY); | 
|         vipInfo.setStaffId(user.getSuId()); | 
|         vipInfo.setShopId(user.getShopId()); | 
|         vipInfo.setVipType(Dictionary.VIP_TYPE_NOCARD); | 
|         vipInfo.setShopId(user.getShopId()); | 
|         vipInfo.setCompanyId(user.getCompanyId()); | 
|         vipInfo.setCreateTime(new Date()); | 
|         vipInfo.setPointAll(0); | 
|         vipInfo.setIsDeal(SysVipInfo.UNDEAL_VIP); | 
|         vipInfo.setZjm(StringUtils.toHanyuPinyin(vipInfo.getVipName())+","+StringUtils.toHeadWordHanyuPinyin(vipInfo.getVipName())); | 
|         if(vipInfo.getSex().equals(Dictionary.SEX_MAN)){ | 
|             vipInfo.setPhoto(defaultMan); | 
|         }else{ | 
|             vipInfo.setPhoto(defaultWoman); | 
|         } | 
|         int i=sysVipInfoDao.insert(vipInfo); | 
|   | 
|         if (CollectionUtils.isNotEmpty(addVipDto.getLabels())) { | 
|             batchInsertLabel(addVipDto.getLabels(), vipInfo.getId()); | 
|         } | 
|         //添加推荐人积分 | 
|         addReferrerVipScore(vipInfo); | 
|   | 
|         //创建用户默认储值卡 | 
|         addVipDefaultCard(vipInfo.getId()); | 
|         return i; | 
|     } | 
|   | 
|     /** | 
|      * 添加推荐人积分 | 
|      * @param vipInfo | 
|      */ | 
|     public void addReferrerVipScore(SysVipInfo vipInfo) { | 
|         if(vipInfo.getRecommendId()!=null){ | 
|             SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|             BusParameterSettings referrerScoreSetting = busParameterSettingsDao.selectCompanyParamByCode(ScoreSettingConstant.REFERRALS_CONSUMPTION, user.getCompanyId()); | 
|             //推荐注册老带新积分奖励 | 
|             SysVipInfo referrerVip = sysVipInfoDao.selectById(vipInfo.getRecommendId()); | 
|   | 
|             if(StringUtils.isNotBlank(referrerScoreSetting.getParamValue())){ | 
|   | 
|                 scoreVipDetailService.addScore( | 
|                         referrerVip.getId(), | 
|                         user.getSuId(), | 
|                         vipInfo.getShopId(), | 
|                         Integer.parseInt(referrerScoreSetting.getParamValue()), | 
|                         vipInfo.getId(), | 
|                         ScoreVipDetail.SCORE_VIP_TYPE_REFERRER, | 
|                         "推荐会员" | 
|                         ); | 
|             } | 
|   | 
|             //推荐注册二级带新积分奖励 | 
|   | 
|             if(referrerVip.getRecommendId()!=null){ | 
|   | 
|                 SysVipInfo topVipInfo = sysVipInfoDao.selectById(referrerVip.getRecommendId()); | 
|   | 
|   | 
|                 if(StringUtils.isNotBlank(referrerScoreSetting.getParamValue1())){ | 
|                     scoreVipDetailService.addScore( | 
|                             topVipInfo.getId(), | 
|                             user.getSuId(), | 
|                             vipInfo.getShopId(), | 
|                             Integer.parseInt(referrerScoreSetting.getParamValue1()), | 
|                             vipInfo.getId(), | 
|                             ScoreVipDetail.SCORE_VIP_TYPE_REFERRER, | 
|                             "间接推荐会员" | 
|                     ); | 
|                 } | 
|             } | 
|   | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public int apiModifyVip(ModifyVipDto modifyVipDto) { | 
|         SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); | 
|   | 
|         SysVipInfo vipInfo = sysVipInfoDao.selectById(modifyVipDto.getVipId()); | 
|         if (vipInfo == null) { | 
|             throw new GlobleException("用户不存在"); | 
|         } | 
|   | 
|         if (StringUtils.isNotBlank(modifyVipDto.getVipNo())) { | 
|             if (!modifyVipDto.getVipNo().equals(vipInfo.getVipNo())) { | 
|                 if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", modifyVipDto.getVipNo(), | 
|                         "company_id", user.getCompanyId())) { | 
|                     throw new GlobleException("编号已存在!"); | 
|                 } | 
|             } | 
|         } | 
|   | 
|         if (!vipInfo.getPhone().equals(modifyVipDto.getPhone())) { | 
|             if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "PHONE", modifyVipDto.getPhone(), | 
|                     "company_id", user.getCompanyId())) { | 
|                 throw new GlobleException("手机已被注册!"); | 
|             } | 
|         } | 
|   | 
|         if (StringUtils.isNotBlank(modifyVipDto.getAreas())) { | 
|             String[] areas = modifyVipDto.getAreas().split("-"); | 
|             vipInfo.setProvince(areas[0]); | 
|             vipInfo.setCity(areas[1]); | 
|             vipInfo.setArea(areas[2]); | 
|         } | 
|   | 
|         vipInfo.setVipName(modifyVipDto.getVipName()); | 
|         vipInfo.setSex(modifyVipDto.getSex()); | 
|         vipInfo.setArrivalWay(modifyVipDto.getArrivalWay()); | 
|         vipInfo.setPhone(modifyVipDto.getPhone()); | 
|         vipInfo.setAddr(modifyVipDto.getAddress()); | 
|         vipInfo.setRemark(modifyVipDto.getRemark()); | 
|         vipInfo.setPassWord(modifyVipDto.getPassword()); | 
|         vipInfo.setBirthday1(modifyVipDto.getBirthday()); | 
|         vipInfo.setRecommendId(modifyVipDto.getRecommendId()); | 
|         vipInfo.setPhoto(modifyVipDto.getPhoto()); | 
|         int i = sysVipInfoDao.update(vipInfo); | 
|   | 
|         if (CollectionUtils.isNotEmpty(modifyVipDto.getLabels())) { | 
|             sysVipLabelDao.deleteRelateByVipId(modifyVipDto.getVipId()); | 
|             batchInsertLabel(modifyVipDto.getLabels(), vipInfo.getId()); | 
|         } | 
|         return i; | 
|     } | 
|   | 
|     private void batchInsertLabel(List<String> labelList, Long id) { | 
|         Set<String> labels = new HashSet<>(labelList); | 
|         Iterator<String> iterator = labels.iterator(); | 
|         while (iterator.hasNext()) { | 
|             SysVipLabelRelate relate = new SysVipLabelRelate(); | 
|             relate.setLabelId(Long.parseLong(iterator.next())); | 
|             relate.setVipId(id); | 
|             sysVipLabelDao.insertRelate(relate); | 
|         } | 
|     } | 
|   | 
|     @Override | 
|     public VipInfoDetailVo findVipInfoDetail(Long id) { | 
|         SysVipInfo sysVipInfo = sysVipInfoDao.selectById(id); | 
|         if (sysVipInfo == null) { | 
|             throw new GlobleException("用户不存在"); | 
|         } | 
|   | 
|         VipInfoDetailVo vipInfoDetailVo = new VipInfoDetailVo(); | 
|         vipInfoDetailVo.setVipName(sysVipInfo.getVipName()); | 
|         vipInfoDetailVo.setAddress(sysVipInfo.getAddr()); | 
|         vipInfoDetailVo.setPhone(sysVipInfo.getPhone()); | 
|         vipInfoDetailVo.setSex(sysVipInfo.getSex()); | 
|         vipInfoDetailVo.setArrivalWay(sysVipInfo.getArrivalWay()); | 
|         vipInfoDetailVo.setRecommendId(sysVipInfo.getRecommendId()); | 
|         vipInfoDetailVo.setId(sysVipInfo.getId()); | 
|         vipInfoDetailVo.setProvince(sysVipInfo.getProvince()); | 
|         vipInfoDetailVo.setCity(sysVipInfo.getCity()); | 
|         vipInfoDetailVo.setArea(sysVipInfo.getArea()); | 
|         vipInfoDetailVo.setRemark(sysVipInfo.getRemark()); | 
|         vipInfoDetailVo.setBirthday(sysVipInfo.getBirthday1()); | 
|         vipInfoDetailVo.setPassword(sysVipInfo.getPassWord()); | 
|         vipInfoDetailVo.setPhoto(sysVipInfo.getPhoto()); | 
|         vipInfoDetailVo.setVipNo(sysVipInfo.getVipNo()); | 
|   | 
|         List<SysVipLabel> labels = sysVipLabelDao.selectByVipId(sysVipInfo.getId()); | 
|         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); | 
|     } | 
|   | 
|   | 
|   | 
| } |