From 37d86ade1dccde5abfe62996ed0cec157435ebfa Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Thu, 09 Nov 2023 10:52:35 +0800
Subject: [PATCH] 场所详情相关,报事报修调整

---
 src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java |  104 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 72 insertions(+), 32 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 ef7a4a3..944da7e 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
@@ -22,13 +22,16 @@
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.secure.utils.AuthUtil;
 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.service.IPlaceExtService;
 import org.springblade.modules.place.service.IPlacePoiLabelService;
 import org.springblade.modules.place.vo.PlaceVO;
 import org.springblade.modules.place.mapper.PlaceMapper;
 import org.springblade.modules.place.service.IPlaceService;
 import org.springblade.modules.system.entity.User;
 import org.springblade.modules.system.service.IUserService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.springframework.transaction.annotation.Transactional;
@@ -44,10 +47,15 @@
  * @since 2023-10-28
  */
 @Service
-@AllArgsConstructor
 public class PlaceServiceImpl extends ServiceImpl<PlaceMapper, PlaceEntity> implements IPlaceService {
-	private final IUserService userService;
-	private final IPlacePoiLabelService placePoiLabelService;
+	@Autowired
+	private IUserService userService;
+
+	@Autowired
+	private IPlacePoiLabelService placePoiLabelService;
+
+	@Autowired
+	private IPlaceExtService placeExtService;
 
 	@Override
 	public IPage<PlaceVO> selectPlacePage(IPage<PlaceVO> page, PlaceVO place) {
@@ -64,53 +72,85 @@
 		return baseMapper.selectPlaceNodeList(userId.toString());
 	}
 
+	/**
+	 * 场所信息自定义新增
+	 * @param placeVO
+	 * @return
+	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public Boolean addVO(PlaceVO placeVO) {
-
+		// 设置基础数据
 		placeVO.setCreateUser(AuthUtil.getUserId());
 		placeVO.setCreateTime(new Date());
 		placeVO.setUpdateUser(AuthUtil.getUserId());
 		placeVO.setUpdateTime(new Date());
-
-		//根据手机号查询库里的数据
-		User userParams = new User();
-		userParams.setPhone(placeVO.getPhone());
-		User user = userService.getOne(Condition.getQueryWrapper(userParams));
-
-		if (user != null){
-			//如果用户存在,则该用户id绑定场所
-			placeVO.setPrincipalUserId(user.getId());
-		}else{
-			//如果用户不存在,则新增一个用户
-			User newUser = new User();
-			newUser.setAccount(placeVO.getPhone());
-			newUser.setPhone(placeVO.getPhone());
-
-			newUser.setName(placeVO.getUsername());
-			newUser.setRealName(placeVO.getUsername());
-			newUser.setRoleId("1717429193350434818");
-			newUser.setPassword("123456");
-
-			userService.submit(newUser);
-			//绑定id
-			placeVO.setPrincipalUserId(newUser.getId());
-		}
-
+		// 绑定用户信息
+		bindUserHandle(placeVO);
+		// 新增场所信息
 		boolean save = save(placeVO);
+		// 场所标签信息绑定
+		placeLabelBind(placeVO);
+		// 返回结果
+		return save;
+	}
 
-
+	/**
+	 * 场所标签信息绑定入库
+	 * @param placeVO
+	 */
+	@Transactional(rollbackFor = Exception.class)
+	public void placeLabelBind(PlaceVO placeVO) {
 		List<String> labelList = Arrays.asList(placeVO.getLabel().split(","));
-
+		// 遍历
 		labelList.forEach(labelId->{
 			PlacePoiLabel placePoiLabel = new PlacePoiLabel();
 			placePoiLabel.setPlaceId(placeVO.getId());
 			placePoiLabel.setPoiCode(Integer.parseInt(labelId));
 			placePoiLabelService.save(placePoiLabel);
 		});
+	}
 
+	/**
+	 * 场所负责人和用户绑定
+	 * @param placeVO
+	 */
+	@Transactional(rollbackFor = Exception.class)
+	public void bindUserHandle(PlaceVO placeVO) {
+		if (null!=placeVO.getPhone() && !placeVO.getPhone().equals("")) {
+			//根据手机号查询库里的数据
+			User userParams = new User();
+			userParams.setPhone(placeVO.getPhone());
+			User user = userService.getOne(Condition.getQueryWrapper(userParams));
 
-		return save;
+			if (user != null) {
+				//如果用户存在,则该用户id绑定场所
+				placeVO.setPrincipalUserId(user.getId());
+			} else {
+				//如果用户不存在,则新增一个用户
+				User newUser = new User();
+				newUser.setAccount(placeVO.getPhone());
+				newUser.setPhone(placeVO.getPhone());
+				newUser.setName(placeVO.getUsername());
+				newUser.setRealName(placeVO.getUsername());
+				// 目前暂定居民角色,默认密码为 123456
+				newUser.setRoleId("1717429059648606209");
+				newUser.setPassword("123456");
+				// 用户新增
+				boolean submit = userService.submit(newUser);
+				//绑定id
+				placeVO.setPrincipalUserId(newUser.getId());
+				//给人员打上场所负责人的标签
+
+				// 用户插入后同时给场所详情表插入一条该场所信息
+				if (submit){
+					PlaceExtEntity placeExtEntity = new PlaceExtEntity();
+					placeExtEntity.setPlaceId(placeVO.getId());
+					//新增
+					placeExtService.savePlaceExt(placeExtEntity);
+				}
+			}
+		}
 	}
 
 

--
Gitblit v1.9.3