社区大门 增删改查完成
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
package com.cxyxiaomo.epp.access.controller;
|
||||
|
||||
import com.alibaba.fastjson2.JSONArray;
|
||||
import com.alibaba.fastjson2.JSONObject;
|
||||
import com.cxyxiaomo.epp.PageTable.enums.AddType;
|
||||
import com.cxyxiaomo.epp.PageTable.enums.EditType;
|
||||
import com.cxyxiaomo.epp.PageTable.enums.FieldType;
|
||||
import com.cxyxiaomo.epp.PageTable.enums.SearchType;
|
||||
import com.cxyxiaomo.epp.PageTable.query.PageQuery;
|
||||
import com.cxyxiaomo.epp.PageTable.utils.FieldBuilder;
|
||||
import com.cxyxiaomo.epp.PageTable.utils.FieldMapperBuilder;
|
||||
import com.cxyxiaomo.epp.PageTable.utils.FieldRuleBuilder;
|
||||
import com.cxyxiaomo.epp.PageTable.utils.FieldRuleListBuilder;
|
||||
import com.cxyxiaomo.epp.access.service.GateService;
|
||||
import com.cxyxiaomo.epp.common.pojo.Gate;
|
||||
import com.cxyxiaomo.epp.common.response.Res;
|
||||
import com.cxyxiaomo.epp.common.vo.GateVO;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/access/gate")
|
||||
public class GateController {
|
||||
|
||||
@Resource
|
||||
GateService gateService;
|
||||
|
||||
/**
|
||||
* 获取大门列表(门禁端)
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/guard-client/getGateList")
|
||||
@ResponseBody
|
||||
public Res getAllGateList() {
|
||||
GateVO gateVO = new GateVO();
|
||||
List<Gate> gateList = gateService.getGateList(gateVO);
|
||||
List<GateVO> gateVOList = GateVO.convertFrom(gateList);
|
||||
return Res.success(gateVOList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取大门列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/manage/getGateList")
|
||||
@ResponseBody
|
||||
public Res getGateList(PageQuery pageQuery, GateVO gateVO) {
|
||||
// 查询分页数据
|
||||
PageHelper.startPage(pageQuery.getPageIndex(), pageQuery.getPageSize());
|
||||
List<Gate> gateList = gateService.getGateList(gateVO);
|
||||
PageInfo<Gate> gatePageInfo = new PageInfo<>(gateList);
|
||||
List<Gate> list = gatePageInfo.getList();
|
||||
List<GateVO> voList = GateVO.convertFrom(list);
|
||||
|
||||
// id列 字段名(区分大小写;以VO中的变量名为准)
|
||||
// 新增、修改弹窗时,使用该列作为主键列进行操作
|
||||
String idFieldName = "id";
|
||||
|
||||
// 当前管理页面
|
||||
String pageName = "大门管理";
|
||||
|
||||
// 指定前端表格显示列
|
||||
JSONArray columns = FieldBuilder.create()
|
||||
.add("name", "name", "大门名称", "",
|
||||
FieldType.TEXT, SearchType.INPUT, AddType.INPUT, EditType.INPUT,
|
||||
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
|
||||
"大门名称", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
|
||||
FieldRuleListBuilder.create()
|
||||
.add(FieldRuleBuilder.create("大门名称").required())
|
||||
.add(FieldRuleBuilder.create("大门名称").minMax(2, 15)),
|
||||
"DPD @cword(2, 15)"
|
||||
)
|
||||
.add("open", "open", "状态", true,
|
||||
FieldType.TEXT, SearchType.SELECT, AddType.SELECT, EditType.SELECT,
|
||||
FieldBuilder.SEARCH_PLACEHOLDER_SAME_AS_FIELDNAME,
|
||||
"状态", FieldBuilder.EDIT_PLACEHOLDER_SAME_AS_ADD_PLACEHOLDER,
|
||||
FieldRuleListBuilder.create()
|
||||
.add(FieldRuleBuilder.create("状态").required()),
|
||||
"DPD @pick(['true', 'false'])"
|
||||
)
|
||||
.build();
|
||||
|
||||
// 指定需要翻译的字段
|
||||
HashMap<Object, Object> stateMap = new HashMap<>(2);
|
||||
stateMap.put(true, "允许通行");
|
||||
stateMap.put(false, "禁止通行");
|
||||
// build
|
||||
JSONArray fieldMapper = FieldMapperBuilder.create()
|
||||
.add("open", "open", stateMap)
|
||||
.build();
|
||||
|
||||
// 拼装返回结果
|
||||
JSONObject map = new JSONObject(6);
|
||||
map.put("total", gatePageInfo.getTotal());
|
||||
map.put("list", voList);
|
||||
map.put("columns", columns);
|
||||
map.put("fieldMapper", fieldMapper);
|
||||
map.put("idFieldName", idFieldName);
|
||||
map.put("pageName", pageName);
|
||||
|
||||
// 返回结果
|
||||
return Res.success(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增 / 编辑大门
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/manage/editGate")
|
||||
@ResponseBody
|
||||
public Res editGate(@ModelAttribute GateVO gateVO) throws Exception {
|
||||
Gate gate = GateVO.convertTo(gateVO);
|
||||
|
||||
// 先查询大门是否存在
|
||||
Gate existGate = gateService.getGateById(gate.getId());
|
||||
|
||||
if (gate.getId() == null || gate.getId() < 1) {
|
||||
// 新增大门
|
||||
if (existGate != null) {
|
||||
return Res.error("大门已存在,操作失败");
|
||||
}
|
||||
|
||||
if (gate.getName() == null || "".equals(gate.getName())) {
|
||||
return Res.error("大门名称不能为空");
|
||||
}
|
||||
gate.setId(null);
|
||||
gateService.addGate(gate);
|
||||
} else {
|
||||
// 修改大门
|
||||
if (existGate == null) {
|
||||
return Res.error("大门不存在,操作失败");
|
||||
}
|
||||
|
||||
gateService.updateGate(gate);
|
||||
}
|
||||
return Res.success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除大门
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/manage/deleteGate")
|
||||
@ResponseBody
|
||||
public Res deleteGate(Long id) {
|
||||
if (id == null || id <= 0) {
|
||||
return Res.error("大门不存在,删除失败");
|
||||
}
|
||||
// 先查询大门是否存在
|
||||
Gate existGate = gateService.getGateById(id);
|
||||
if (existGate == null) {
|
||||
return Res.error("大门不存在,删除失败");
|
||||
}
|
||||
boolean b = gateService.deleteGate(existGate.getId());
|
||||
return Res.success(b);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出大门列表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/manage/exportGateList")
|
||||
@ResponseBody
|
||||
public Res exportGateList(GateVO gateVO) {
|
||||
List<Gate> gateList = gateService.getGateList(gateVO);
|
||||
List<GateVO> gateVOList = GateVO.convertFrom(gateList);
|
||||
|
||||
// 当前时间
|
||||
Date now = Calendar.getInstance().getTime();
|
||||
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd_HHmmss");
|
||||
String dateTime = format.format(now);
|
||||
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("list", gateVOList);
|
||||
map.put("sheetName", "社区大门表-" + System.currentTimeMillis());
|
||||
map.put("fileName", "社区大门表_导出时间_" + dateTime);
|
||||
|
||||
return Res.success(map);
|
||||
}
|
||||
}
|
@@ -0,0 +1,23 @@
|
||||
package com.cxyxiaomo.epp.access.dao;
|
||||
|
||||
import com.cxyxiaomo.epp.common.pojo.Gate;
|
||||
import com.cxyxiaomo.epp.common.vo.GateVO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
@Repository
|
||||
public interface GateDao {
|
||||
|
||||
public boolean addGate(Gate gate);
|
||||
|
||||
public boolean updateGate(Gate gate);
|
||||
|
||||
public List<Gate> getGateList(GateVO gateVO);
|
||||
|
||||
public Gate getGateById(Long gateId);
|
||||
|
||||
public boolean deleteGateById(Long gateId);
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
package com.cxyxiaomo.epp.access.service;
|
||||
|
||||
import com.cxyxiaomo.epp.access.dao.GateDao;
|
||||
import com.cxyxiaomo.epp.common.pojo.Gate;
|
||||
import com.cxyxiaomo.epp.common.utils.SnowflakeManager;
|
||||
import com.cxyxiaomo.epp.common.vo.GateVO;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class GateService {
|
||||
|
||||
@Resource
|
||||
GateDao gateDao;
|
||||
|
||||
|
||||
public Gate getGateById(Long id) {
|
||||
return gateDao.getGateById(id);
|
||||
}
|
||||
|
||||
public List<Gate> getGateList(GateVO gateVO) {
|
||||
return gateDao.getGateList(gateVO);
|
||||
}
|
||||
|
||||
public boolean addGate(Gate gate) throws Exception {
|
||||
// 创建订单编号
|
||||
SnowflakeManager snowflakeManager = new SnowflakeManager(1L, 1L);
|
||||
long orderId = snowflakeManager.nextValue();
|
||||
gate.setId(orderId);
|
||||
return gateDao.addGate(gate);
|
||||
}
|
||||
|
||||
public boolean updateGate(Gate gate) {
|
||||
return gateDao.updateGate(gate);
|
||||
}
|
||||
|
||||
public boolean deleteGate(Long gateId) {
|
||||
return gateDao.deleteGateById(gateId);
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.cxyxiaomo.epp.access.dao.GateDao">
|
||||
|
||||
<insert id="addGate" parameterType="com.cxyxiaomo.epp.common.pojo.Gate">
|
||||
INSERT INTO gate (id, name, open)
|
||||
VALUES (#{id}, #{name}, #{open})
|
||||
</insert>
|
||||
|
||||
<update id="updateGate" parameterType="com.cxyxiaomo.epp.common.pojo.Gate">
|
||||
UPDATE gate
|
||||
<set>
|
||||
<if test="name != null">name = #{name},</if>
|
||||
<if test="open != null">open = #{open},</if>
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<select id="getGateById" resultType="com.cxyxiaomo.epp.common.pojo.Gate">
|
||||
SELECT * FROM gate WHERE id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="getGateList" resultType="com.cxyxiaomo.epp.common.pojo.Gate">
|
||||
SELECT * FROM gate
|
||||
<where>
|
||||
<if test="id != null">
|
||||
AND id = #{id}
|
||||
</if>
|
||||
<if test="name != null and name != ''">
|
||||
AND name = #{name}
|
||||
</if>
|
||||
<if test="open != null">
|
||||
AND open = #{open}
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<delete id="deleteGateById">
|
||||
DELETE FROM gate WHERE id = #{id}
|
||||
</delete>
|
||||
</mapper>
|
Reference in New Issue
Block a user