Helius
2021-01-11 4ece659308844cbe73053d3dd2a6f777f218eb13
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -7,10 +7,13 @@
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.SysUsers;
import com.matrix.system.common.tools.DataAuthUtil;
import com.matrix.system.common.tools.PasswordUtil;
import com.matrix.system.common.tools.ServiceUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.constance.TableMapping;
@@ -445,6 +448,7 @@
      }
      SysVipInfo vipInfo = new SysVipInfo();
      vipInfo.setPhoto(addVipDto.getPhoto());
      vipInfo.setVipName(addVipDto.getVipName());
      vipInfo.setVipNo(addVipDto.getVipNo());
      vipInfo.setSex(addVipDto.getSex());
@@ -452,10 +456,19 @@
      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.setBirthday1(addVipDto.getBirthday());
      vipInfo.setVipState(Dictionary.VIP_STATE_HY);
      vipInfo.setStaffId(user.getSuId());
      vipInfo.setShopId(user.getShopId());
@@ -469,20 +482,103 @@
      int i=sysVipInfoDao.insert(vipInfo);
      if (CollectionUtils.isNotEmpty(addVipDto.getLabels())) {
         Set<String> labels = new HashSet<>(addVipDto.getLabels());
         Iterator<String> iterator = labels.iterator();
         if (iterator.hasNext()) {
            SysVipLabel sysVipLabel = new SysVipLabel();
            sysVipLabel.setCreateTime(new Date());
            sysVipLabel.setCreateBy(user.getSuName());
            sysVipLabel.setLabel(iterator.next());
            sysVipLabel.setVipId(vipInfo.getId());
            sysVipLabelDao.insert(sysVipLabel);
         }
         batchInsertLabel(addVipDto.getLabels(), user.getSuName(), vipInfo.getId());
      }
      //创建用户默认储值卡
      addVipDefaultCard(vipInfo.getId());
      return i;
   }
   @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 (!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.deleteByVipId(modifyVipDto.getVipId());
         batchInsertLabel(modifyVipDto.getLabels(), user.getSuName(), vipInfo.getId());
      }
      return i;
   }
   private void batchInsertLabel(List<String> labelList, String suName, 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);
      }
   }
   @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;
   }
}