| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- const {toNumber} = require("./typeTool_cjs");
- const {handle} = require("./handle_cjs");
- const codeMap = require("../map/rcodeMap");
- function limitSql (limit = 20,page = 1){
- let sql = '';
- let values = [];
- limit = toNumber(limit);
- page = toNumber(page);
- limit = limit || 20;
- page = page || 1;
- sql += ` limit ?,?`;
- values.push(limit * (page - 1),limit)
- return {sql,values}
- }
- /**
- * 封装搜索数据库字段
- * @param errorText
- * @param dbFn
- * @param _params
- * @param page
- * @param limit
- * @returns {Promise<[err,{arr, total: number, limit, page}]>}
- */
- async function searchHandle(errorText,dbFn,_params,page,limit){
- let err,response,arrPromise,countPromise;
- limit = toNumber(limit);
- page = toNumber(page);
- limit = limit||20;
- page = page||1;
- arrPromise = dbFn('array',_params,page,limit);
- if(page <= 1){
- // 添加计数字段
- countPromise = dbFn('count',_params);
- [err,response] = await handle(Promise.all([arrPromise,countPromise]))
- }else{
- [err,response] = await handle(Promise.all([arrPromise]))
- }
- if(err){
- return [
- {eCode:codeMap.ServerError,eMsg:`${errorText}`,eDetail:err.message},
- null
- ]
- }
- let result = {
- arr: response[0],
- limit: limit,
- page: page,
- total: 0
- }
- if(page <= 1){
- result.total = response[1]?response[1][0].total:null
- }
- return [null,result];
- }
- function searchSql (fn,type,sql,values,limit,page){
- // 添加分页
- if(type==='array'){
- let _limitSql = limitSql(limit,page);
- sql += _limitSql.sql;
- values.push(..._limitSql.values);
- }
- return fn(sql,values)
- }
- /**
- * 参数转化为防止sql注入的字符串
- * @param str
- * @returns {string|*}
- */
- function toSqlString (str){
- if(!str){
- return '';
- }
- return str.replace(/'/g,"\\'")
- }
- module.exports = {
- limitSql,
- searchHandle,
- searchSql,
- toSqlString
- }
|