| | |
| | | import com.matrix.core.constance.MatrixConstance; |
| | | import com.matrix.core.exception.GlobleException; |
| | | import com.matrix.core.pojo.PaginationVO; |
| | | import com.matrix.core.tools.*; |
| | | 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.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; |
| | | |
| | |
| | | @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 int addVipDefaultCard(Long vipId){ |
| | | public MoneyCardUse addVipDefaultCard(Long vipId){ |
| | | MoneyCardUse defaultCardUse=new MoneyCardUse(); |
| | | defaultCardUse.setVipId(vipId); |
| | | defaultCardUse.setCardName("储值卡"); |
| | |
| | | defaultCardUse.setGiftMoney(0D); |
| | | defaultCardUse.setSource("-"); |
| | | defaultCardUse.setStatus(Dictionary.MONEYCARD_STATUS_YX); |
| | | return moneyCardUseDao.insert(defaultCardUse); |
| | | moneyCardUseDao.insert(defaultCardUse); |
| | | return defaultCardUse; |
| | | |
| | | } |
| | | |
| | | @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("编号已存在!"); |
| | | } |
| | | } |
| | |
| | | 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(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; |
| | |
| | | |
| | | @Override |
| | | public List<SysVipInfo> findByVipNoOrTel(String key) { |
| | | SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | return sysVipInfoDao.selectByVipNoOrTel(key, users.getShopId()); |
| | | return sysVipInfoDao.selectByVipNoOrTel(key); |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | //如果会员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()); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | @Override |
| | | public List<SysVipInfo> findUserByKey(String keyWord) { |
| | | SysUsers users = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | return sysVipInfoDao.selectUserByKey(keyWord, users.getShopId()); |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | return sysVipInfoDao.selectUserByKey(keyWord,user.getCompanyId()); |
| | | } |
| | | |
| | | |
| | |
| | | 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; |
| | |
| | | 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; |
| | | } |
| | |
| | | |
| | | @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); |
| | | return sysVipInfoDao.selectVipAddressBookByList(vipInfoListDto); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public int apiAddVip(AddVipDto addVipDto) { |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | if (serviceUtil.addCheckRepeatTowColumn(TableMapping.SYS_VIP_INFO, "VIP_NO", addVipDto.getVipNo(), |
| | | "company_id",user.getCompanyId())) { |
| | | throw new GlobleException("编号已存在!"); |
| | | 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(), |
| | |
| | | } |
| | | |
| | | SysVipInfo vipInfo = new SysVipInfo(); |
| | | |
| | | vipInfo.setPhoto(addVipDto.getPhoto()); |
| | | vipInfo.setVipName(addVipDto.getVipName()); |
| | | vipInfo.setVipNo(addVipDto.getVipNo()); |
| | | vipInfo.setSex(addVipDto.getSex()); |
| | |
| | | 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())) { |
| | |
| | | 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(), user.getSuName(), vipInfo.getId()); |
| | | 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 |
| | |
| | | throw new GlobleException("用户不存在"); |
| | | } |
| | | |
| | | 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 (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("编号已存在!"); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | 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.deleteByVipId(modifyVipDto.getVipId()); |
| | | |
| | | batchInsertLabel(modifyVipDto.getLabels(), user.getSuName(), vipInfo.getId()); |
| | | sysVipLabelDao.deleteRelateByVipId(modifyVipDto.getVipId()); |
| | | batchInsertLabel(modifyVipDto.getLabels(), vipInfo.getId()); |
| | | } |
| | | return i; |
| | | } |
| | | |
| | | private void batchInsertLabel(List<String> labelList, String suName, Long id) { |
| | | private void batchInsertLabel(List<String> labelList, Long id) { |
| | | Set<String> labels = new HashSet<>(labelList); |
| | | Iterator<String> iterator = labels.iterator(); |
| | | if (iterator.hasNext()) { |
| | | SysVipLabel sysVipLabel = new SysVipLabel(); |
| | | sysVipLabel.setCreateTime(new Date()); |
| | | sysVipLabel.setCreateBy(suName); |
| | | sysVipLabel.setLabel(iterator.next()); |
| | | sysVipLabel.setVipId(id); |
| | | sysVipLabelDao.insert(sysVipLabel); |
| | | while (iterator.hasNext()) { |
| | | SysVipLabelRelate relate = new SysVipLabelRelate(); |
| | | relate.setLabelId(Long.parseLong(iterator.next())); |
| | | relate.setVipId(id); |
| | | sysVipLabelDao.insertRelate(relate); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | |
| | | |
| | | |
| | | } |