From 61c001e3651c81084e3a8496b55d4d6500bbca31 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 21 Nov 2023 09:16:02 +0800
Subject: [PATCH] 场所导入,商铺导入修改

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |  149 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 149 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java b/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
index ea3f411..6a3cf71 100644
--- a/src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
+++ b/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);
+		}
+	}
 }

--
Gitblit v1.9.3