package com.lf.server.controller.data; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.OrderItem; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.lf.server.annotation.SysLog; import com.lf.server.controller.all.BaseController; import com.lf.server.entity.all.ResponseMsg; import com.lf.server.entity.bs.BsprojectEntity; import com.lf.server.entity.ctrl.KeyValueEntity; import com.lf.server.entity.data.DictEntity; import com.lf.server.entity.data.DirEntity; import com.lf.server.entity.sys.DepEntity; import com.lf.server.entity.sys.UserEntity; import com.lf.server.helper.StringHelper; import com.lf.server.helper.WebHelper; import com.lf.server.mapper.bs.BsprojectMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.data.DirService; import com.lf.server.service.sys.DepService; import com.lf.server.service.sys.TokenService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; /** * 项目管理 * @author WWW */ @Api(tags = "数据管理\\项目管理") @RestController @RequestMapping("/project") public class ProjectController extends BaseController { @Autowired DepService depService; @Autowired DirService dirService; @Autowired TokenService tokenService; @Autowired BsprojectMapper bsprojectMapper; @Autowired BaseQueryService baseQueryService; @SysLog() @ApiOperation(value = "查询所有单位数据") @GetMapping(value = "/selectDepAll") public ResponseMsg> selectDepAll() { try { List list = depService.selectDepAll(); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "查询项目") @ApiImplicitParams({ @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", example = "西") }) @GetMapping(value = "/selectProject") public ResponseMsg> selectProject(String name) { try { List list = dirService.selectProject(name); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "分页查询并返回记录数") @ApiImplicitParams({ @ApiImplicitParam(name = "dirid", value = "目录ID", dataType = "String", paramType = "query", example = "1"), @ApiImplicitParam(name = "pageSize", value = "每页条数", dataType = "Integer", paramType = "query", example = "10"), @ApiImplicitParam(name = "pageIndex", value = "分页数(从1开始)", dataType = "Integer", paramType = "query", example = "1") }) @GetMapping(value = "/selectByPageAndCount") public ResponseMsg selectByPageAndCount(String dirid, Integer pageSize, Integer pageIndex) { try { QueryWrapper wrapper = new QueryWrapper<>(); wrapper.select("ST_AsText(geom) as geom, *"); if (null != dirid) { wrapper.eq("dirid", dirid); } Page page = new Page<>(pageIndex, pageSize); page.addOrder(OrderItem.desc("gid")); Page paged = bsprojectMapper.selectPage(page, wrapper); return success(paged.getTotal(), paged.getRecords()); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "查询字段信息") @GetMapping(value = "/selectFields") public ResponseMsg> selectFields() { try { String tabName = BaseQueryService.getTabName(bsprojectMapper); if (tabName == null) { return null; } String[] strs = tabName.split("\\."); List list = baseQueryService.selectFields(strs[0], strs[1]); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "查询位置") @ApiImplicitParams({ @ApiImplicitParam(name = "x", value = "X", dataType = "Double", paramType = "query", example = "114.178955"), @ApiImplicitParam(name = "y", value = "Y", dataType = "Double", paramType = "query", example = "38.991743") }) @GetMapping(value = "/selectLocation") public ResponseMsg selectLocation(double x, double y) { try { String wkt = String.format("POINT(%f %f)", x, y); List list = baseQueryService.selectLocation(wkt); return success(list); } catch (Exception ex) { return fail(ex, null); } } @SysLog() @ApiOperation(value = "删除一条") @ApiImplicitParams({ @ApiImplicitParam(name = "gid", value = "ID", dataType = "int", paramType = "query", example = "1") }) @GetMapping(value = "/delete") public ResponseMsg delete(int gid) { try { int rows = bsprojectMapper.deleteById(gid); return success(rows); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "插入一条") @ApiImplicitParams({ @ApiImplicitParam(name = "entity", value = "实体类", dataType = "DictEntity", paramType = "body") }) @PostMapping(value = "/insert", produces = "application/json; charset=UTF-8") public ResponseMsg insert(@RequestBody BsprojectEntity entity, HttpServletRequest req) { try { if (null == entity) { return fail("实体类不能为空", 0); } UserEntity ue = tokenService.getCurrentUser(req); entity.setCreateuser(ue.getId()); entity.setEventid(StringHelper.getGuid()); entity.setCreatetime(WebHelper.getCurrentTimestamp()); entity.setGeom(StringHelper.getGeomWkt(entity.getGeom())); List list = new ArrayList<>(); list.add(entity); int rows = bsprojectMapper.insertBatch(list); return success(rows); } catch (Exception ex) { return fail(ex, -1); } } @SysLog() @ApiOperation(value = "更新一条") @ApiImplicitParams({ @ApiImplicitParam(name = "entity", value = "实体类", dataType = "DictEntity", paramType = "body") }) @ResponseBody @PostMapping(value = "/update", produces = "application/json; charset=UTF-8") public ResponseMsg update(@RequestBody BsprojectEntity entity, HttpServletRequest req) { try { if (null == entity) { return fail("实体类不能为空", 0); } UserEntity ue = tokenService.getCurrentUser(req); entity.setUpdateuser(ue.getId()); entity.setUpdatetime(WebHelper.getCurrentTimestamp()); entity.setGeom(StringHelper.getGeomWkt(entity.getGeom())); List list = new ArrayList<>(); list.add(entity); int rows = bsprojectMapper.updateBatch(list); return success(rows); } catch (Exception ex) { return fail(ex, -1); } } }