src/main/java/org/springblade/modules/place/controller/PlaceController.java
@@ -92,6 +92,11 @@ return R.status(placeService.save(place)); } @PostMapping("/add") public R add(@RequestBody PlaceVO placeVO){ return R.status(placeService.addVO(placeVO)); } /** * 场所表 修改 */ src/main/java/org/springblade/modules/place/entity/PlacePoiLabel.java
New file @@ -0,0 +1,33 @@ package org.springblade.modules.place.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; /** * 场所标签中间表 */ @Data @TableName("jczz_place_poi_label") public class PlacePoiLabel implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ @JsonSerialize(using = ToStringSerializer.class) @ApiModelProperty("主键id") @TableId(value = "id", type = IdType.ASSIGN_ID) private Long id; private Long placeId; private Integer poiCode; } src/main/java/org/springblade/modules/place/mapper/PlacePoiLabelMapper.java
New file @@ -0,0 +1,7 @@ package org.springblade.modules.place.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springblade.modules.place.entity.PlacePoiLabel; public interface PlacePoiLabelMapper extends BaseMapper<PlacePoiLabel> { } src/main/java/org/springblade/modules/place/mapper/PlacePoiLabelMapper.xml
New file @@ -0,0 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.springblade.modules.place.mapper.PlacePoiLabelMapper"> </mapper> src/main/java/org/springblade/modules/place/service/IPlacePoiLabelService.java
New file @@ -0,0 +1,8 @@ package org.springblade.modules.place.service; import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.modules.place.entity.PlacePoiLabel; public interface IPlacePoiLabelService extends IService<PlacePoiLabel> { } src/main/java/org/springblade/modules/place/service/IPlaceService.java
@@ -48,4 +48,6 @@ * @return */ List<TreeNode> selectPlaceNodeList(Long userId); Boolean addVO(PlaceVO placeVO); } src/main/java/org/springblade/modules/place/service/impl/PlacePoiLabelServiceImpl.java
New file @@ -0,0 +1,11 @@ package org.springblade.modules.place.service.impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.modules.place.entity.PlacePoiLabel; import org.springblade.modules.place.mapper.PlacePoiLabelMapper; import org.springblade.modules.place.service.IPlacePoiLabelService; import org.springframework.stereotype.Service; @Service public class PlacePoiLabelServiceImpl extends ServiceImpl<PlacePoiLabelMapper, PlacePoiLabel> implements IPlacePoiLabelService { } src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -17,15 +17,24 @@ 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.core.mp.base.BaseServiceImpl; 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; /** @@ -35,7 +44,10 @@ * @since 2023-10-28 */ @Service @AllArgsConstructor public class PlaceServiceImpl extends ServiceImpl<PlaceMapper, PlaceEntity> implements IPlaceService { private final IUserService userService; private final IPlacePoiLabelService placePoiLabelService; @Override public IPage<PlaceVO> selectPlacePage(IPage<PlaceVO> page, PlaceVO place) { @@ -51,4 +63,55 @@ public List<TreeNode> 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.setPrincipal(user.getId().toString()); }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.setPrincipal(newUser.getId().toString()); } boolean save = save(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); }); return save; } } src/main/java/org/springblade/modules/place/vo/PlaceVO.java
@@ -32,4 +32,12 @@ public class PlaceVO extends PlaceEntity { private static final long serialVersionUID = 1L; private String label; private String username; private String phone; }