添加"景区"的基础业务接口和实现

This commit is contained in:
longbinbin 2024-12-03 15:45:02 +08:00
parent 2e4ae11c2f
commit c925798fbc
10 changed files with 333 additions and 6 deletions

View File

@ -14,7 +14,7 @@ import org.springframework.web.bind.annotation.*;
*/ */
@RestController @RestController
@RequestMapping("/api/menu/v1") @RequestMapping("/api/menu/v1")
@Api(tags = "菜单管理") @Api(tags = "系统菜单管理")
public class MenuController { public class MenuController {
private MenuService menuService; private MenuService menuService;

View File

@ -22,10 +22,16 @@ public class RoleController {
@Autowired @Autowired
RoleService roleService; RoleService roleService;
@PostMapping(value = "/page")
@ApiOperation(value = "角色列表分页查询")
@IgnoreToken
public ApiResponse<PageInfo<RoleListRespVO>> page(@RequestBody RoleListReqVO roleListReqVO) {
return roleService.pageQuery(roleListReqVO);
}
@PostMapping(value = "/list") @PostMapping(value = "/list")
@ApiOperation(value = "角色列表") @ApiOperation(value = "角色列表")
@IgnoreToken @IgnoreToken
public ApiResponse<PageInfo<List<RoleListRespVO>>> list(@RequestBody RoleListReqVO roleListReqVO) { public ApiResponse<List<RoleListRespVO>> list(@RequestBody RoleListReqVO roleListReqVO) {
return roleService.list(roleListReqVO); return roleService.list(roleListReqVO);
} }

View File

@ -0,0 +1,75 @@
package com.ycwl.basic.controller.pc;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq;
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.service.pc.ScenicService;
import com.ycwl.basic.utils.ApiResponse;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Authorlongbinbin
* @Date2024/12/3 15:20
*/
@RestController
@RequestMapping("/api/scenic/v1")
@Api(tags = "景区管理")
public class ScenicController {
@Autowired
private ScenicService scenicService;
@ApiOperation("分页查询景区")
@PostMapping("/page")
public ApiResponse<PageInfo<ScenicRespVO>> pageQuery(@RequestBody ScenicReqQuery scenicReqQuery) {
return scenicService.pageQuery(scenicReqQuery);
}
@ApiOperation("查询景区列表")
@PostMapping("/list")
public ApiResponse<List<ScenicRespVO>> list(@RequestBody ScenicReqQuery scenicReqQuery) {
return scenicService.list(scenicReqQuery);
}
@ApiOperation("查询景区详情")
@GetMapping("/getDetail/{id}")
public ApiResponse<ScenicRespVO> getDetail(@PathVariable Long id) {
return scenicService.getById(id);
}
@ApiOperation("新增景区")
@PostMapping("/add")
public ApiResponse<Boolean> add(@RequestBody ScenicAddOrUpdateReq scenicAddReq) {
return scenicService.add(scenicAddReq);
}
@ApiOperation("删除景区")
@GetMapping("/delete/{id}")
public ApiResponse<Boolean> delete(@PathVariable Long id) {
return scenicService.deleteById(id);
}
@ApiOperation("修改景区")
@PostMapping("/update")
public ApiResponse<Boolean> update(@RequestBody ScenicAddOrUpdateReq scenicAddReq) {
return scenicService.update(scenicAddReq);
}
@ApiOperation("修改景区状态")
@GetMapping("/updateStatus/{id}")
public ApiResponse<Boolean> updateStatus(@PathVariable Long id) {
return scenicService.updateStatus(id);
}
@ApiOperation("新增景区配置")
@PostMapping("/addConfig")
public ApiResponse<Boolean> addConfig(@RequestBody ScenicConfigEntity scenicConfig) {
return scenicService.addConfig(scenicConfig);
}
@ApiOperation("修改景区配置")
@PostMapping("/updateConfig")
public ApiResponse<Boolean> updateConfig(@RequestBody ScenicConfigEntity scenicConfig) {
return scenicService.updateConfigById(scenicConfig);
}
}

View File

@ -2,6 +2,7 @@ package com.ycwl.basic.mapper.pc;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity; import com.ycwl.basic.model.pc.scenic.entity.ScenicEntity;
import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq;
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery; import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO; import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -17,15 +18,22 @@ import java.util.List;
public interface ScenicMapper { public interface ScenicMapper {
List<ScenicRespVO> list(ScenicReqQuery scenicReqQuery); List<ScenicRespVO> list(ScenicReqQuery scenicReqQuery);
ScenicRespVO getById(Long id); ScenicRespVO getById(Long id);
int add(ScenicEntity scenic); int add(ScenicAddOrUpdateReq scenic);
int deleteById(Long id); int deleteById(Long id);
int update(ScenicEntity scenic); int update(ScenicAddOrUpdateReq scenic);
int updateStatus(Long id); int updateStatus(Long id);
int addConfig(ScenicConfigEntity scenicConfig);
/** /**
* 修改景区配置 * 修改景区配置
* @param scenicConfigEntity * @param scenicConfigEntity
* @return * @return
*/ */
int updateConfigById(ScenicConfigEntity scenicConfigEntity); int updateConfigById(ScenicConfigEntity scenicConfigEntity);
/**
* 根据景区id删除配置
* @param scenicId
*/
void deleteConfigByscenicId(Long scenicId);
} }

View File

@ -0,0 +1,76 @@
package com.ycwl.basic.model.pc.scenic.req;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Authorlongbinbin
* @Date2024/12/3 15:29
*/
@Data
@ApiModel("新增或修改景区请求参数")
public class ScenicAddOrUpdateReq {
private Long id;
/**
* 景区名称
*/
@ApiModelProperty("景区名称")
private String name;
/**
* 景区介绍
*/
@ApiModelProperty("景区介绍")
private String introduction;
/**
* 经度
*/
@ApiModelProperty("经度")
private BigDecimal longitude;
/***
* 纬度
*/
@ApiModelProperty("纬度")
private BigDecimal latitude;
/**
* 半径km
*/
@ApiModelProperty("半径km")
private BigDecimal radius;
/**
* 省份
*/
@ApiModelProperty("省份")
private String province;
/**
* 城市
*/
@ApiModelProperty("城市")
private String city;
/**
*
*/
@ApiModelProperty("")
private String area;
/**
* 详细地址
*/
@ApiModelProperty("详细地址")
private String address;
/**
* 状态 1启用0关闭
*/
@ApiModelProperty("状态 1启用0关闭")
private String status;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date updateTime;
@ApiModelProperty("景区配置")
private ScenicConfigEntity scenicConfig;
}

View File

@ -35,7 +35,7 @@ public class RoleServiceImpl implements RoleService {
RedisTemplate redisTemplate; RedisTemplate redisTemplate;
@Override @Override
public ApiResponse list(RoleListReqVO roleListReqVO) { public ApiResponse<PageInfo<RoleListRespVO>> pageQuery(RoleListReqVO roleListReqVO) {
PageHelper.startPage(roleListReqVO.getPageNum(),roleListReqVO.getPageSize()); PageHelper.startPage(roleListReqVO.getPageNum(),roleListReqVO.getPageSize());
// if(roleListReqVO.getType()==null){ // if(roleListReqVO.getType()==null){
// roleListReqVO.setType(0); // roleListReqVO.setType(0);
@ -45,6 +45,15 @@ public class RoleServiceImpl implements RoleService {
return ApiResponse.success(pageInfo); return ApiResponse.success(pageInfo);
} }
@Override
public ApiResponse list(RoleListReqVO roleListReqVO) {
// if(roleListReqVO.getType()==null){
// roleListReqVO.setType(0);
// }
List<RoleListRespVO> list = roleMapper.list(roleListReqVO);
return ApiResponse.success(list);
}
@Override @Override
public ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO) { public ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO) {
String id = addOrUpdateRoleReqVO.getId(); String id = addOrUpdateRoleReqVO.getId();

View File

@ -0,0 +1,110 @@
package com.ycwl.basic.service.impl.pc;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.mapper.pc.ScenicMapper;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq;
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.service.pc.ScenicService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.SnowFlakeUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Authorlongbinbin
* @Date2024/12/3 15:25
*/
@Service
public class ScenicServiceImpl implements ScenicService {
@Autowired
private ScenicMapper scenicMapper;
@Override
public ApiResponse<PageInfo<ScenicRespVO>> pageQuery(ScenicReqQuery scenicReqQuery) {
PageHelper.startPage(scenicReqQuery.getPageNum(), scenicReqQuery.getPageSize());
List<ScenicRespVO> list = scenicMapper.list(scenicReqQuery);
PageInfo<ScenicRespVO> pageInfo = new PageInfo<>(list);
return ApiResponse.success(pageInfo);
}
@Override
public ApiResponse<List<ScenicRespVO>> list(ScenicReqQuery scenicReqQuery) {
return ApiResponse.success(scenicMapper.list(scenicReqQuery));
}
@Override
public ApiResponse<ScenicRespVO> getById(Long id) {
return ApiResponse.success(scenicMapper.getById(id));
}
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResponse<Boolean> add(ScenicAddOrUpdateReq scenicAddReq) {
Long scenicId = SnowFlakeUtil.getLongId();
scenicAddReq.setId(scenicId);
int add = scenicMapper.add(scenicAddReq);
if (add > 0) {
return ApiResponse.success(true);
}else {
return ApiResponse.commonError("景区添加失败");
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public ApiResponse<Boolean> deleteById(Long id) {
int i = scenicMapper.deleteById(id);
if (i > 0) {
scenicMapper.deleteConfigByscenicId(id);
return ApiResponse.success(true);
}else {
return ApiResponse.commonError("景区删除失败");
}
}
@Override
public ApiResponse<Boolean> update(ScenicAddOrUpdateReq scenicUpdateReq) {
int i = scenicMapper.update(scenicUpdateReq);
if (i > 0) {
return ApiResponse.success(true);
}else {
return ApiResponse.commonError("景区修改失败");
}
}
@Override
public ApiResponse<Boolean> updateStatus(Long id) {
int i = scenicMapper.updateStatus(id);
if (i > 0) {
return ApiResponse.success(true);
}else {
return ApiResponse.commonError("景区状态修改失败");
}
}
@Override
public ApiResponse<Boolean> addConfig(ScenicConfigEntity scenicConfig) {
int i = scenicMapper.addConfig(scenicConfig);
if (i > 0) {
return ApiResponse.success(true);
}else {
return ApiResponse.commonError("景区配置添加失败");
}
}
@Override
public ApiResponse<Boolean> updateConfigById(ScenicConfigEntity scenicConfig) {
int i = scenicMapper.updateConfigById(scenicConfig);
if (i > 0) {
return ApiResponse.success(true);
}else {
return ApiResponse.commonError("景区配置修改失败");
}
}
}

View File

@ -1,14 +1,19 @@
package com.ycwl.basic.service.pc; package com.ycwl.basic.service.pc;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.pc.role.req.AddOrUpdateRoleReqVO; import com.ycwl.basic.model.pc.role.req.AddOrUpdateRoleReqVO;
import com.ycwl.basic.model.pc.role.req.RoleListReqVO; import com.ycwl.basic.model.pc.role.req.RoleListReqVO;
import com.ycwl.basic.model.pc.role.resp.RoleListRespVO;
import com.ycwl.basic.utils.ApiResponse; import com.ycwl.basic.utils.ApiResponse;
import java.util.List;
public interface RoleService { public interface RoleService {
ApiResponse<PageInfo<RoleListRespVO>> pageQuery(RoleListReqVO roleListReqVO);
ApiResponse list(RoleListReqVO roleListReqVO); ApiResponse list(RoleListReqVO roleListReqVO);
ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO); ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO);
ApiResponse delete(String id); ApiResponse delete(String id);
ApiResponse updateReturnMenu(String id); ApiResponse updateReturnMenu(String id);
ApiResponse updateStatus(String id);
ApiResponse updateStatus(String id);
} }

View File

@ -0,0 +1,31 @@
package com.ycwl.basic.service.pc;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.model.pc.scenic.entity.ScenicConfigEntity;
import com.ycwl.basic.model.pc.scenic.req.ScenicAddOrUpdateReq;
import com.ycwl.basic.model.pc.scenic.req.ScenicReqQuery;
import com.ycwl.basic.model.pc.scenic.resp.ScenicRespVO;
import com.ycwl.basic.utils.ApiResponse;
import java.util.List;
/**
* @Authorlongbinbin
* @Date2024/12/3 15:22
*/
public interface ScenicService {
ApiResponse<PageInfo<ScenicRespVO>> pageQuery(ScenicReqQuery scenicReqQuery);
ApiResponse<List<ScenicRespVO>> list(ScenicReqQuery scenicReqQuery);
ApiResponse<ScenicRespVO> getById(Long id);
ApiResponse<Boolean> add(ScenicAddOrUpdateReq scenicAddOrUpdateReq);
ApiResponse<Boolean> deleteById(Long id);
ApiResponse<Boolean> update(ScenicAddOrUpdateReq scenicAddOrUpdateReq);
ApiResponse<Boolean> updateStatus(Long id);
ApiResponse<Boolean> addConfig(ScenicConfigEntity scenicConfig);
/**
* 修改景区配置
* @param scenicConfig
* @return
*/
ApiResponse<Boolean> updateConfigById(ScenicConfigEntity scenicConfig);
}

View File

@ -5,6 +5,10 @@
insert into scenic(id, `name`, introduction, longitude, latitude, radius, province, city, area, address) insert into scenic(id, `name`, introduction, longitude, latitude, radius, province, city, area, address)
values (#{id}, #{name}, #{introduction}, #{longitude}, #{latitude}, #{radius}, #{province}, #{city}, #{area}, #{address}) values (#{id}, #{name}, #{introduction}, #{longitude}, #{latitude}, #{radius}, #{province}, #{city}, #{area}, #{address})
</insert> </insert>
<insert id="addConfig">
insert into scenic_config(id, scenic_id, start_time, end_time, is_default)
values (#{id}, #{scenicId}, #{startTime}, #{endTime}, #{isDefault})
</insert>
<update id="update"> <update id="update">
update update
scenic scenic
@ -69,6 +73,9 @@
<delete id="deleteById"> <delete id="deleteById">
delete from scenic where id = #{id} delete from scenic where id = #{id}
</delete> </delete>
<delete id="deleteConfigByscenicId">
delete from scenic_config where scenic_id = #{scenicId}
</delete>
<select id="list" resultMap="scenicAndConfig"> <select id="list" resultMap="scenicAndConfig">
select s.id, `name`, introduction, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time, select s.id, `name`, introduction, longitude, latitude, radius, province, city, area, address, `status`, s.create_time, update_time,
c.start_time, c.end_time, c.is_default, c.create_time c.start_time, c.end_time, c.is_default, c.create_time