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