/* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.place.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springblade.common.node.TreeNode; 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.PlacePoiLabel; 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.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 场所表 服务实现类 * * @author BladeX * @since 2023-10-28 */ @Service @AllArgsConstructor public class PlaceServiceImpl extends ServiceImpl implements IPlaceService { private final IUserService userService; private final IPlacePoiLabelService placePoiLabelService; @Override public IPage selectPlacePage(IPage page, PlaceVO place) { return page.setRecords(baseMapper.selectPlacePage(page, place)); } /** * 查询场所集合信息 * @param userId * @return */ @Override public List selectPlaceNodeList(Long userId) { return baseMapper.selectPlaceNodeList(userId.toString()); } @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()); } boolean save = save(placeVO); List 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); }); return save; } }