package com.xiaopeng.map.controller; import com.xiaopeng.api.dto.operation.ElectronicFenceAddDto; import com.xiaopeng.api.dto.operation.ElectronicFenceAreaUpdateStatusDto; import com.xiaopeng.api.dto.operation.ElectronicFenceUpdateDto; import com.xiaopeng.api.feignClient.operation.XpElectronicClient; import com.xiaopeng.api.model.operation.XpElectronicFence; import com.xiaopeng.api.model.operation.XpElectronicFenceArea; import com.xiaopeng.api.model.operation.XpPoint; import com.xiaopeng.api.query.operation.ElectronicPageListQuery; import com.xiaopeng.api.vo.operation.ElectronicFenceDetailVo; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.core.exception.ServiceException; import com.xiaopeng.common.core.utils.bean.BeanUtils; import com.xiaopeng.common.core.web.page.PageInfo; import com.xiaopeng.common.security.service.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.List; /** *

* 电子围栏 前端控制器 *

* * @author mitao * @since 2026-02-03 */ @RestController @Slf4j @Api(tags = "电子围栏管理") @RequestMapping("/api/v1/electronicFence") public class XpElectronicFenceManagementController { @Resource private TokenService tokenService; @Resource private XpElectronicClient xpElectronicClient; @ApiOperation(value = "电子围栏管理列表", response = XpPoint.class) @PostMapping("/pageList") public R> pageList(@RequestBody ElectronicPageListQuery query) { return R.ok(xpElectronicClient.pageList(query).getData()); } /** * 新增电子围栏 */ @PostMapping("/add") @ApiOperation(value = "新增电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R add(@Validated @RequestBody ElectronicFenceAddDto dto) { return xpElectronicClient.add(dto); } /** * 修改状态 */ @PostMapping("/updateStatus") @ResponseBody @ApiOperation(value = "修改状态") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R updateStatus(@RequestBody ElectronicFenceAreaUpdateStatusDto dto) { return xpElectronicClient.updateStatus(dto); } /** * 电子围栏详情 */ @PostMapping("/queryById") @ResponseBody @ApiOperation(value = "电子围栏详情") public R queryById(@RequestParam("id")Long id) { return xpElectronicClient.queryById(id); } /** * 编辑电子围栏 */ @PostMapping("/edit") @ResponseBody @ApiOperation(value = "编辑电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R edit(@Validated @RequestBody ElectronicFenceUpdateDto dto) { return xpElectronicClient.edit(dto); } /** * 复制电子围栏 */ @PostMapping("/copy") @ApiOperation(value = "复制电子围栏") @Transactional @ShardingSphereTransactionType(TransactionType.BASE) public R copy(@RequestParam("id") Integer id) { return xpElectronicClient.copy(id); } }