sqlUtil.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. // 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用
  2. // getALLlist
  3. function tablelist(req) {
  4. let sql = `select * from yanyilianxi order by id asc`;
  5. return sql;
  6. }
  7. // 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用
  8. //增
  9. function add(req) {
  10. let name = req.body.name;
  11. let age = req.body.age;
  12. let mark = req.body.mark;
  13. let hobby = req.body.hobby;
  14. let sql = `INSERT INTO yanyilianxi ("name","age","mark","hobby")
  15. VALUES ( '${name}',${age},${mark},'${hobby}')`;
  16. return sql;
  17. }
  18. // 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用
  19. //删
  20. function delet(req) {
  21. let name = req.body.name;
  22. let sql = `DELETE FROM yanyilianxi
  23. WHERE name = '${name}' ;`;
  24. return sql;
  25. }
  26. // 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用 通用
  27. //查
  28. function select(req) {
  29. let name = req.body.name;
  30. let sql = `SELECT * FROM yanyilianxi
  31. WHERE name = '${name}';`;
  32. return sql;
  33. }
  34. //save->WKT
  35. function savewkt(req) {
  36. let tablename = req.body.tablename;
  37. let obj = req.body.saveobj
  38. let sql = `INSERT INTO "${tablename}"(
  39. "slhName", "slhContent", "slhPlaceBelong", "slhShapeBelong", "slhCategory", "slhCoors", remark)
  40. VALUES ('${obj.name}','${obj.entitycontent}','${obj.layername}','${obj.entityshape}','${obj.entitylayer}',st_geomfromtext('${obj.wktcoor}',4326),'${obj.remark}');`
  41. return sql;
  42. }
  43. //get->WKT
  44. //查询所有(包括空间信息geo字段)
  45. function getallwkt(req) {
  46. let tablename = req.body.tablename;
  47. let type = req.body.type;
  48. let sql = `SELECT *,st_astext("slhCoors") FROM "${tablename}" WHERE "slhPlaceBelong" = '${type}';`;
  49. return sql;
  50. }
  51. //通过id查所选实体
  52. function getwktbyId(req) {
  53. let tablename = req.body.tablename;
  54. let id = req.body.id;
  55. let sql = `SELECT *,st_astext("slhCoors") FROM "${tablename}" WHERE "slhId" = ${id};`;
  56. return sql;
  57. }
  58. //通过id更新所选实体信息
  59. function updatawktbyId(req) {
  60. let tablename = req.body.tablename;
  61. let saveobj = req.body.saveobj;
  62. let sql = `UPDATE "${tablename}" SET "slhName"='${saveobj.name}',"slhContent"='${saveobj.entitycontent}'
  63. WHERE "slhId" = ${saveobj.id};`;
  64. return sql;
  65. }
  66. //通过id删除所选实体
  67. function delwktbyId(req) {
  68. let tablename = req.body.tablename;
  69. let id = req.body.id;
  70. let sql = `DELETE FROM "${tablename}"
  71. WHERE "slhId" = ${id} ;`;
  72. console.log(sql);
  73. return sql;
  74. }
  75. //缓冲区查询(输入:表名、wkt格式、缓冲区半径)使用ST_DWithin()函数
  76. function queryBuffer(req) {
  77. // select *,st_astext("slhCoors") from public.t_yanyilianxi_shilianghua where ST_DWithin("slhCoors"::Geography, ST_GeomFromText('LINESTRING(111.6555 39.3585,111.6844 39.6145)',4326)::Geography, 5000)=true order by "slhId" asc
  78. let tablename = req.body.tablename;
  79. let wktstr = req.body.obj.wktcoor;
  80. let range = req.body.obj.R;
  81. let sql = `select *,st_astext("slhCoors") from "${tablename}" where ST_DWithin("slhCoors"::Geography,
  82. ST_GeomFromText('${wktstr}',4326)::Geography, ${range})=true;`;
  83. console.log(sql);
  84. return sql;
  85. }
  86. //线、面缓冲区查询,(就是看表内有没有和目标实体相交的数据,有就返回,用ST_Intersects()函数)(输入:表名、wkt格式)
  87. function queryBufferXJ(req) {
  88. //select *,st_astext("slhCoors") from public.t_yanyilianxi_shilianghua where ST_Intersects("slhCoors", ST_GeomFromText('LINESTRING(111.6555 39.3585,111.6844 39.6145)',4326))
  89. let tablename = req.body.tablename;
  90. let wktstr = req.body.obj.wktcoor;
  91. let sql = `select *,st_astext("slhCoors") from "${tablename}" where ST_Intersects("slhCoors", ST_GeomFromText('${wktstr}',4326));`;
  92. console.log(sql);
  93. return sql;
  94. }
  95. module.exports = {
  96. tablelist,
  97. add,
  98. delet,
  99. select,
  100. savewkt,
  101. getallwkt,
  102. getwktbyId,
  103. updatawktbyId,
  104. delwktbyId,
  105. queryBuffer,
  106. queryBufferXJ
  107. };