linwe
2023-11-21 751d072226c4c64f5624f0c8bd2518043a861fc9
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.AllArgsConstructor;
import org.apache.logging.log4j.util.Strings;
import org.springblade.common.node.TreeNode;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
@@ -28,8 +29,12 @@
import org.springblade.modules.place.entity.PlaceEntity;
import org.springblade.modules.place.entity.PlaceExtEntity;
import org.springblade.modules.place.entity.PlacePoiLabel;
import org.springblade.modules.place.entity.PlaceRelEntity;
import org.springblade.modules.place.excel.PlaceAndRelExcel;
import org.springblade.modules.place.excel.PlaceExcel;
import org.springblade.modules.place.service.IPlaceExtService;
import org.springblade.modules.place.service.IPlacePoiLabelService;
import org.springblade.modules.place.service.IPlaceRelService;
import org.springblade.modules.place.vo.PlaceVO;
import org.springblade.modules.place.mapper.PlaceMapper;
import org.springblade.modules.place.service.IPlaceService;
@@ -61,6 +66,9 @@
   @Autowired
   private IPlaceExtService placeExtService;
   @Autowired
   private IPlaceRelService placeRelService;
   @Autowired
   private IDoorplateAddressService doorplateAddressService;
@@ -154,6 +162,7 @@
         if (user != null) {
            //如果用户存在,则该用户id绑定场所
            placeVO.setPrincipalUserId(user.getId());
            newUser = user;
         } else {
            //如果用户不存在,则新增一个用户
            newUser.setAccount(placeVO.getPhone());
@@ -270,4 +279,144 @@
      // 返回
      return placeVO;
   }
   /**
    * 场所数据到导入
    * @param data
    * @param isCovered
    */
   @Override
   public void importPlace(List<PlaceExcel> data, Boolean isCovered) {
      for (PlaceExcel placeExcel : data) {
         // 判断是否存在,不存在则插入,否则不操作
         QueryWrapper<PlaceEntity> wrapper = new QueryWrapper<>();
         wrapper.eq("is_deleted",0)
            .eq("house_code",placeExcel.getHouseCode());
         PlaceEntity one = getOne(wrapper);
         if (null == one){
            Long userId = updateUser(placeExcel);
            // 插入场所
            PlaceEntity placeEntity = new PlaceEntity();
            placeEntity.setHouseCode(placeExcel.getHouseCode());
            placeEntity.setPrincipalUserId(userId);
            placeEntity.setCreateTime(new Date());
            placeEntity.setCreateUser(AuthUtil.getUserId());
            placeEntity.setUpdateTime(new Date());
            placeEntity.setUpdateUser(AuthUtil.getUserId());
            //一个一个插入,防止同一个表中有相同的数据
            save(placeEntity);
         }
      }
   }
   /**
    * 更新用户信息
    * @param placeExcel
    * @return
    */
   public Long updateUser(PlaceExcel placeExcel) {
      if (!Strings.isBlank(placeExcel.getPhoneNumber()) &&
         !Strings.isBlank(placeExcel.getName())) {
         PlaceVO placeVO = new PlaceVO();
         placeVO.setPhone(placeExcel.getPhoneNumber());
         placeVO.setUsername(placeExcel.getName());
         // 更新场所负责人
         User user = bindUserHandle(placeVO);
         // 返回
         return user.getId();
      }
      return null;
   }
   /**
    * 更新用户信息
    * @param placeExcel
    * @return
    */
   public Long updateUser(PlaceAndRelExcel placeExcel) {
      if (!Strings.isBlank(placeExcel.getPhoneNumber()) &&
         !Strings.isBlank(placeExcel.getName())) {
         PlaceVO placeVO = new PlaceVO();
         placeVO.setPhone(placeExcel.getPhoneNumber());
         placeVO.setUsername(placeExcel.getName());
         // 更新场所负责人
         User user = bindUserHandle(placeVO);
         // 返回
         return user.getId();
      }
      return null;
   }
   /**
    * 场所(商超)导入
    * @param data
    * @param isCovered
    */
   @Override
   public void importAndRelPlace(List<PlaceAndRelExcel> data, Boolean isCovered) {
      for (PlaceAndRelExcel placeExcel : data) {
         // 判断是否存在,不存在则插入,否则不操作
         PlaceEntity one = baseMapper.getPlaceAndRelInfo(placeExcel);
         if (null == one){
            Long userId = updateUser(placeExcel);
            // 插入场所
            PlaceEntity placeEntity = new PlaceEntity();
            placeEntity.setPlaceName(placeExcel.getPlaceName());
            placeEntity.setLocaltion(placeExcel.getAddress());
            placeEntity.setPrincipalUserId(userId);
            placeEntity.setCreateTime(new Date());
            placeEntity.setCreateUser(AuthUtil.getUserId());
            placeEntity.setUpdateTime(new Date());
            placeEntity.setUpdateUser(AuthUtil.getUserId());
            //一个一个插入,防止同一个表中有相同的数据
            save(placeEntity);
            // 插入标签关系表
            savPlaceLabelBind(placeExcel,placeEntity);
            // 插入关联数据表
            PlaceRelEntity placeRelEntity = new PlaceRelEntity();
            placeRelEntity.setPlaceId(placeEntity.getId());
            placeRelEntity.setStreetName(placeExcel.getStreetName());
            placeRelEntity.setCommunityName(placeExcel.getCommunityName());
            placeRelEntity.setGridName(placeExcel.getGridName());
            placeRelEntity.setBuildingName(placeExcel.getBuildingName());
            placeRelEntity.setDoorplateNum(placeExcel.getDoorplateNum());
            placeRelEntity.setFloor(placeExcel.getFloor());
            placeRelEntity.setCreateTime(new Date());
            placeRelEntity.setCreateUser(AuthUtil.getUserId());
            placeRelEntity.setUpdateTime(new Date());
            placeRelEntity.setUpdateUser(AuthUtil.getUserId());
            // 新增
            placeRelService.save(placeRelEntity);
         }else {
            // 只更新商铺信息
            Long userId = updateUser(placeExcel);
            // 插入场所
            PlaceEntity placeEntity = new PlaceEntity();
            placeEntity.setId(one.getId());
            placeEntity.setPlaceName(placeExcel.getPlaceName());
            placeEntity.setLocaltion(placeExcel.getAddress());
            placeEntity.setPrincipalUserId(userId);
            placeEntity.setCreateTime(new Date());
            placeEntity.setCreateUser(AuthUtil.getUserId());
            placeEntity.setUpdateTime(new Date());
            placeEntity.setUpdateUser(AuthUtil.getUserId());
            //一个一个插入,防止同一个表中有相同的数据
            updateById(placeEntity);
         }
      }
   }
   /**
    * 插入标签关系表
    * @param placeExcel
    */
   public void savPlaceLabelBind(PlaceAndRelExcel placeExcel,PlaceEntity placeEntity) {
      if (!Strings.isBlank(placeExcel.getLabelCode())){
         PlaceVO placeVO = new PlaceVO();
         placeVO.setId(placeEntity.getId());
         placeVO.setLabel(placeExcel.getLabelCode());
         // 插入标签
         placeLabelBind(placeVO);
      }
   }
}