"use strict";var e={main:async e=>{let{uniID:t}=e.util,n={code:-1,msg:""},i=await t.checkToken(e.uniIdToken);if(i.code&&i.code>0)return i;let r=i.userInfo;return delete r.token,delete r.password,n.uid=i.uid,n.userInfo=r,i.token&&(n.token=i.token,n.tokenExpired=i.tokenExpired),n.code=0,n.msg="ok",n}},t=[{id:"pub",regExp:"/pub/",description:"pub函数为所有人都可以访问的函数",index:100,mode:"onActionExecuting",main:async function(t){let n={};return t.data.need_user_info&&(n=await e.main(t)),n.code=0,n.msg="ok",n}},{id:"kh",regExp:"/kh/",description:"kh函数为必须登录后才能访问的函数(客户端用户)",index:200,mode:"onActionExecuting",main:e.main},{id:"sys",regExp:"/sys/",description:"sys函数为后端管理人员才能访问的函数(商家后台工作人员)",index:300,mode:"onActionExecuting",main:{main:async t=>{let{url:n,util:i}=t,{uniID:r,config:a,pubFun:o,vk:l,db:s,_:d}=i,u={code:-1,msg:""};const c=e;if(u=await c.main(t),0!==u.code)return u;if(!u.userInfo.allow_login_background)return{code:403,msg:"您无权限登录后台"};if(l.pubfn.isNotNull(u.userInfo.role)&&u.userInfo.role.includes("admin"))return u;let f=await l.baseDao.select({dbName:"uni-id-roles",whereJson:{role_id:d.in(u.userInfo.role),enable:!0},fieldJson:{permission:!0}},t.util),g=[];for(let e in f.rows){let t=f.rows[e].permission;l.pubfn.isNotNull(t)&&(g=g.concat(t))}return 0==g.length||await l.baseDao.count({dbName:"uni-id-permissions",whereJson:{permission_id:d.in(g),enable:!0,url:n}},t.util)<=0?{code:403,msg:"权限不足"}:(u.code=0,u.msg="ok",u)}}.main}];var n=function(e){let n=[];if(e){let i=[...t,...e];i.sort((function(e,t){return e.index-t.index})),n=i.filter((e,t,n)=>{var r=[];return i.forEach((e,t)=>{r.push(e.id)}),r.indexOf(e.id)===t})}else n=t;return n},i={regExpTest:function(e,t){let n=!1;if("string"==typeof e){new RegExp(e).test(t)&&(n=!0)}else if("object"==typeof e)for(let i=0;i{let i={code:403,msg:"access denied",filterStack:[]},{url:a}=e;const o=n(t);for(let t in o){let n=o[t],{mode:l="onActionExecuting"}=n;if("onActionExecuting"===l&&r.regExpTest(n.regExp,a)){e.filterResponse=i;let t=await n.main(e);if(t.filterId=n.id,i.filterStack.push(t),0!==t.code){i=t;break}i=Object.assign(i,t)}}return i},o=async(e,t,i)=>{let{url:a}=e;const o=n(t);for(let t in o){let n=o[t],{mode:l="onActionExecuting"}=n;if("onActionExecuted"===l&&r.regExpTest(n.regExp,a)){let t=await n.main(e,i);if(t){if(0!==t.code){i=t;break}i=Object.assign(i,t)}}}return i};process.env.TZ="Asia/Shanghai";var l=async function(e){let t,{event:n,context:i,vk:r}=e,{config:l,uniID:s,uniPay:d,db:u,middlewareService:c,pubFun:f,customUtil:g}=r.config,p={event:n,context:i},y=r.getQueryStringParameters(n),{url:m,data:h,uniIdToken:_}=y,w={url:m,data:h,uniIdToken:_,util:{vk:r,config:l,pubFun:f,uniID:s,uniPay:d,db:u,customUtil:g,_:u.command},originalParam:p},b=await a(w,c);if(0!==b.code)return b;b.uid&&(h.uid=b.uid),w.filterResponse=b;try{t=r.require("service/"+m)}catch(e){return e&&"MODULE_NOT_FOUND"==e.code?{code:404,msg:`云函数 ${m} 不存在!`,err:e}:{code:500,msg:`云函数 ${m} 编译异常!`,err:e}}let x=await async function(e={}){let{res:t,serviceParam:n,serviceMain:i}=e;t.uid&&(n.uid=t.uid);t.userInfo&&(n.userInfo=t.userInfo);let r=await i.main(n);t.token&&"object"==typeof r&&(r.vk_uni_token={token:t.token,tokenExpired:t.tokenExpired});return r}({res:b,serviceParam:w,serviceMain:t});return x=await o(w,c,x),x};function s(e,t,n,i,r,a){return g((o=g(g(t,e),g(i,a)))<<(l=r)|o>>>32-l,n);var o,l}function d(e,t,n,i,r,a,o){return s(t&n|~t&i,e,t,r,a,o)}function u(e,t,n,i,r,a,o){return s(t&i|n&~i,e,t,r,a,o)}function c(e,t,n,i,r,a,o){return s(t^n^i,e,t,r,a,o)}function f(e,t,n,i,r,a,o){return s(n^(t|~i),e,t,r,a,o)}function g(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}var p=function(e){return function(e){for(var t="",n=0;n<4*e.length;n++)t+="0123456789abcdef".charAt(e[n>>2]>>n%4*8+4&15)+"0123456789abcdef".charAt(e[n>>2]>>n%4*8&15);return t}(function(e,t){e[t>>5]|=128<>>9<<4)]=t;for(var n=1732584193,i=-271733879,r=-1732584194,a=271733878,o=0;o>5]|=(255&e.charCodeAt(n/8))<100)return await y.selectAll(e,t);let l=await y.getSelectData(e,t),{result:s,hasMore:d,total:u,getCount:c,pageIndex:f}=l;return s=s.skip((f-1)*o).limit(o),s.get().then(e=>{let t={};return c?(t.hasMore=d,t.total=u):(t.total=e.data?e.data.length:0,t.hasMore=t.total>=o),t.rows=e.data,t.code=0,t.key=1,t.pageIndex=f,t.pageSize=o,t})},findById:async function(e,t){let{db:n,_:i}=t,{dbName:r,id:a,fieldJson:o}=e;try{let e=n.collection(r).doc(a);return o&&(e=e.field(o)),(await e.get()).data[0]}catch(e){return console.error(e),null}},findByWhereJson:async function(e,t){let{db:n,_:i}=t,{dbName:r,whereJson:a,fieldJson:o}=e;try{if(a&&"{}"!==JSON.stringify(a)){let e=n.collection(r).where(a);o&&(e=e.field(o));let t=await e.limit(1).get();if(t.data&&t.data.length>0)return t.data[0]}else console.error("whereJson条件不能为空")}catch(e){console.error(e)}return null},count:async function(e,t){let{db:n,_:i}=t,{dbName:r,whereJson:a}=e;a&&"{}"!==JSON.stringify(a)||(a={_id:i.neq("___")});try{return(await n.collection(r).where(a).count()).total}catch(e){return console.error(e),null}},select2:async function(e,t){let{foreignKeyType:n="many-to-one"}=e;return"many-to-one"===n?await y.select2_ManyToOne(e,t):"one-to-many"===n?await y.select2_OneToMany(e,t):(console.error("不支持的foreignKeyType"),{})},count2_ManyToOne:async function(e,t){let{db:n,_:i,vk:r}=t,{dbName:a,dbName2:o,foreignKey:l="_id",foreignKey2:s="_id",whereJson:d={},whereJson2:u={},pageIndex:c=1,pageSize:f=10,getCount:g=!1,sortArr:p={},fieldJson:y={},fieldJson2:m={},as:h}=e;h||(h=o),"{}"===JSON.stringify(d)&&(d={_id:i.neq("___")});i.aggregate;let _=n.collection(a).aggregate();if(d&&"{}"!==JSON.stringify(d)&&(_=_.match(d)),y&&"{}"!==JSON.stringify(y)&&(_=_.project(y)),p&&"{}"!==JSON.stringify(p)){let e={};for(let t in p){let n=p[t],i=n.name,r=n.type;r=null==r||""==r||"asc"==r?1:-1,e[i]=r}_=_.sort(e)}let w={from:o,localField:l,foreignField:s,as:h};if(_=_.lookup(w),m&&"{}"!==JSON.stringify(m)){let e={};for(let t in m)e[h+"."+t]=m[t];_=_.project(e)}if(u&&"{}"!==JSON.stringify(u)){let e={};for(let t in u)e[h+"."+t]=u[t];_=_.match(e)}let b=await _.count("total").end();try{return b.data[0].total}catch(e){return console.log(e),0}},select2_ManyToOne:async function(e,t){let{db:n,_:i,vk:r}=t,{dbName:a,dbName2:o,foreignKey:l="_id",foreignKey2:s="_id",whereJson:d={},whereJson2:u={},pageIndex:c=1,pageSize:f=10,getCount:g=!1,sortArr:p=[],fieldJson:y={},fieldJson2:m={},as:h,whereJsonPub:_={}}=e;h||(h=o),"{}"===JSON.stringify(d)&&(d={_id:i.neq("___")}),-1==f&&(c=1,f=999999999,g=!1);let w=0,b=!1;if(g){w=(await n.collection(a).where(d).count()).total,c0?J[e][h]=J[e][h][0]:J[e][h]={};return g?(x.hasMore=b,x.total=w):(x.total=J?J.length:0,x.hasMore=w>=f),x.rows=J,x.code=0,x.key=1,x},select2_OneToMany:async function(e,t){let{db:n,_:i,vk:r}=t,{dbName:a,dbName2:o,foreignKey:l="_id",foreignKey2:s="_id",whereJson:d={},whereJson2:u={},pageIndex:c=1,pageSize:f=10,getCount:g=!1,sortArr:p=[],sortArr2:y=[],fieldJson:m={},fieldJson2:h={},as:_}=e;_||(_=o),"{}"===JSON.stringify(d)&&(d={_id:i.neq("___")}),-1==f&&(c=1,f=999999999,g=!1);let w=0,b=!1;if(g){w=(await n.collection(a).where(d).count()).total,c=f),x.rows=J,x.code=0,x.key=1,x},getSelectData:async function(e,t){let{db:n,_:i}=t,{dbName:r,whereJson:a,pageIndex:o=1,pageSize:l=10,getCount:s=!1}=e;a&&"{}"!==JSON.stringify(a)||(a={_id:i.neq("___")}),l<0&&(o=1,l=999999999,s=!0);let d=e.sortArr,u=e.fieldJson,c=0,f=!1;if(s){c=(await n.collection(r).where(a).count()).total,o0&&!c&&!f&&(c=p);let m={};if(f&&0===c)m={data:[]};else{let t=c;pa&&(n=a-t);let o=d.skip(t).limit(n).get();i.push(o)}try{m=(await Promise.all(i)).reduce((e,t)=>({data:e.data.concat(t.data),errMsg:e.errMsg}))}catch(t){console.error("selectAll-异常",e,t),m={data:[]}}}return o.rows=m.data,o.key=1,o.code=0,o.hasMore=u,o.pageIndex=g,o.pageSize=p,o.total=f?c:m.data?m.data.length:0,o},sum:async function(e,t){let{db:n,_:i}=t,{dbName:r,fieldName:a,whereJson:o}=e;o&&"{}"!==JSON.stringify(o)||(o={_id:i.neq("___")});const l=n.command.aggregate;try{return(await n.collection(r).aggregate().match(o).group({_id:null,num:l.sum("$"+a)}).end()).data[0].num}catch(e){return console.error(e),null}},avg:async function(e,t){let{db:n,_:i}=t,{dbName:r,fieldName:a,whereJson:o}=e;o&&"{}"!==JSON.stringify(o)||(o={_id:i.neq("___")});const l=n.command.aggregate;try{return(await n.collection(r).aggregate().match(o).group({_id:null,num:l.avg("$"+a)}).end()).data[0].num}catch(e){return console.error(e),null}},max:async function(e,t){let{db:n,_:i}=t,{dbName:r,fieldName:a,whereJson:o}=e;o&&"{}"!==JSON.stringify(o)||(o={_id:i.neq("___")});const l=n.command.aggregate;try{return(await n.collection(r).aggregate().match(o).group({_id:null,num:l.max("$"+a)}).end()).data[0].num}catch(e){return console.error(e),null}},min:async function(e,t){let{db:n,_:i}=t,{dbName:r,fieldName:a,whereJson:o}=e;o&&"{}"!==JSON.stringify(o)||(o={_id:i.neq("___")});const l=n.command.aggregate;try{return(await n.collection(r).aggregate().match(o).group({_id:null,num:l.min("$"+a)}).end()).data[0].num}catch(e){return console.error(e),null}},sample:async function(e,t){let{db:n,_:i}=t,{dbName:r,whereJson:a,size:o}=e;a&&"{}"!==JSON.stringify(a)||(a={_id:i.neq("___")});n.command.aggregate;try{return(await n.collection(r).aggregate().match(a).sample({size:o}).end()).data}catch(e){return console.error(e),null}},selects:async function(e,t){let{db:n,_:i,vk:r}=t,{dbName:a,foreignKey:o="_id",whereJson:l={},pageIndex:s=1,pageSize:d=10,getCount:u=!1,sortArr:c=[],fieldJson:f={},foreignDB:g=[]}=e;"{}"===JSON.stringify(l)&&(l={_id:i.neq("___")}),-1==d&&(s=1,d=999999999,u=!1);let p=0,y=!1;if(u){p=(await n.collection(a).where(l).count()).total,s0?w[e][n]=w[e][n][0]:w[e][n]={})}return u?(m.hasMore=y,m.total=p):(m.total=w?w.length:0,m.hasMore=p>=d),m.rows=w,m.code=0,m.key=1,m},addWhereJson:function(e,t,n={}){let{vk:i,db:r,_:a}=t,{formData:o,columns:l}=e;for(let e in l){let t,r=l[e],{key:s,mode:d,defaultValue:u,type:c=""}=r,f=s;if(i.pubfn.isNotNull(r.fieldName)&&(f=r.fieldName),t=i.pubfn.isNotNull(r.value)?r.value:o[s],i.pubfn.isNull(t)&&i.pubfn.isNotNull(u)&&(t=u),i.pubfn.isNull(d)&&(d=["address","province","city","area"].indexOf(c)>-1?"address":"[object Array]"===Object.prototype.toString.call(t)&&t.length>=2?"[]":"="),i.pubfn.isNotNull(t))if("custom"===d);else if("%%"===d)try{n[f]=new RegExp(t)}catch(e){}else if("%*"===d)try{n[f]=new RegExp("^"+t)}catch(e){}else if("*%"===d)try{n[f]=new RegExp(t+"$")}catch(e){}else if(">"===d)n[f]=a.gt(t);else if(">="===d)n[f]=a.gte(t);else if("<"===d)n[f]=a.lt(t);else if("<="===d)n[f]=a.lte(t);else if("in"===d)n[f]=a.in(t);else if("nin"===d)n[f]=a.nin(t);else if("!="===d)n[f]=a.neq(t);else if("[]"===d)n[f]=a.gte(t[0]).lte(t[1]);else if("[)"===d)n[f]=a.gte(t[0]).lt(t[1]);else if("(]"===d)n[f]=a.gt(t[0]).lte(t[1]);else if("()"===d)n[f]=a.gt(t[0]).lt(t[1]);else if("address"===d){let e={};t.province&&t.province.code&&(e["province.code"]=t.province.code),t.city&&t.city.code&&(e["city.code"]=t.city.code),t.area&&t.area.code&&(e["area.code"]=t.area.code),n[f]=e}else n[f]=t}return n}},m=y,h=async(e={})=>{"[object object]"==Object.prototype.toString.call(e.content)&&(e.content=JSON.stringify(e.content)),void 0===e.dataType&&(e.dataType="json"),"default"==e.dataType&&delete e.dataType,e.useContent&&(e.content=JSON.stringify(e.data)),e.method||(e.method="POST"),e.data&&(e.headers||(e.headers={"content-type":"application/json; charset=UTF-8"}));var t=await uniCloud.httpclient.request(e.url,e);return t&&t.data?t.data:t},_={formValidateItem:function(e,t,n){let i={code:0,msg:"ok"};for(let r in n){let a=n[r];if(void 0===e[t]&&a.required){i={type:"undefined",code:-1,msg:"字段:"+t+" 名称错误,请检查!",key:t,value:e[t]};break}if(a.required&&(null==e[t]||null==e[t]||""===e[t]||0==e[t].length)){i={type:"required",code:-1,msg:a.message,key:t,value:e[t]};break}if(a.type){if(Object.prototype.toString.call(e[t]).toLowerCase()!==`[object ${a.type}]`){i={type:"type",code:-1,msg:a.message,key:t,value:e[t]};break}}if(a.len&&e[t].length!=a.len){i={type:"len",code:-1,msg:a.message,key:t,value:e[t]};break}if(a.min)if(a.type&&"number"==a.type){if(e[t]a.max){i={type:"max",code:-1,msg:a.message,key:t,value:e[t]};break}}else if(e[t].length>a.max){i={type:"max",code:-1,msg:a.message,key:t,value:e[t]};break}if("function"==typeof a.validator){let n=a.validator(a,e[t],(function(e){return e}));if(void 0!==n&&!0!==n){i={type:"validator",code:-1,msg:a.message,key:t,value:e[t]};break}}}return i}};function w(e){return JSON.parse(JSON.stringify(e))}var b={};function x(e){let t=[];for(let n=0;n0&&(n=b.treeToArrayFn(d[o],t,n,d[r])),l&&delete d[o]}return n},b.arrayToTree=function(e,t){let n=w(e),{id:i="_id",parent_id:r="parent_id",children:a="children",deleteParentId:o=!0,need_field:l}=t,s=[],d={};for(let e=0;e-1){var o=r.indexOf('"',a),l=r.substring(a,o);if(o>a){var s=r.indexOf("---",o),d=r.substring(o+1,s).trim();n[l]=d}}}return n},O.timeFormat=O.timeUtil.timeFormat,O.getFullTime=O.timeUtil.getFullTime,O.getWeekStartAndEnd=O.timeUtil.getWeekStartAndEnd,O.getCommonTime=O.timeUtil.getCommonTime,O.validator=function(e){return function(t,n,i){let r=O.test(n,e);return"function"!=typeof i||!r&&n?i(!1):void i()}},O.test=function(e,t){switch(t){case"mobile":return new RegExp(/^1[3|4|5|6|7|8|9][0-9]{9}$/).test(e);case"tel":return new RegExp(/^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/).test(e);case"card":return new RegExp(/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/).test(e);case"mobileCode":return new RegExp(/^[0-9]{6}$/).test(e);case"username":return new RegExp(/^[a-zA-Z]([-_a-zA-Z0-9]{5,17})$/).test(e);case"pwd":return new RegExp(/^([a-zA-Z0-9_]){6,18}$/).test(e);case"payPwd":return new RegExp(/^[0-9]{6}$/).test(e);case"postal":return new RegExp(/[1-9]\d{5}(?!\d)/).test(e);case"QQ":return new RegExp(/^[1-9][0-9]{4,9}$/).test(e);case"email":return new RegExp(/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/).test(e);case"money":return new RegExp(/^\d*(?:\.\d{0,2})?$/).test(e);case"URL":return new RegExp(/(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?/).test(e);case"IP":return new RegExp(/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/).test(e);case"date":return new RegExp(/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/).test(e);case"time":return new RegExp(/^(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/).test(e);case"dateTime":return new RegExp(/^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])\s+(20|21|22|23|[0-1]\d):[0-5]\d:[0-5]\d$/).test(e);case"number":return new RegExp(/^[0-9]*$/).test(e);case"english":return new RegExp(/^[a-zA-Z]+$/).test(e);case"chinese":return new RegExp(/^[\\u4E00-\\u9FA5]+$/).test(e);case"lower":return new RegExp(/^[a-z]+$/).test(e);case"upper":return new RegExp(/^[A-Z]+$/).test(e);case"HTML":return new RegExp(/<("[^"]*"|'[^']*'|[^'">])*>/).test(e);default:return!0}},O.checkStr=O.test,O.priceFilter=function(e){return"string"==typeof e&&(e=parseFloat(e)),(e/100).toFixed(2)},O.objectAssign=function(e,t){return Object.assign(e,t)},O.copyObject=function(e){return JSON.parse(JSON.stringify(e))},O.formAssign=function(e,t){let n=O.copyObject(e);return O.objectAssign(n,t)},O.arr_concat=function(e,t,n){n||(n="id");var i=e.concat(t),r=[];if(-1!=n){var a=[];for(var o in i)-1==a.indexOf(i[o][n])&&(a.push(i[o][n]),r.push(i[o]))}else r=i;return r},O.getData=function(e,t,n){var i=JSON.parse(JSON.stringify(e));t=t.replace(/\s+/g,"")+".";for(var r="",a=0;ai){n+="0123456789"[e[i].charCodeAt()%10]}else n="0"+n;return n},O.hidden=function(e,t,n){let i=e.length-t-n,r="";for(let e=0;e-1&&(n=!0);return n},O.calcFreights=function(e,t){let{first_weight:n,first_weight_price:i,continuous_weight:r,continuous_weight_price:a,max_weight:o=1e8}=e,l=0,s=0,d=o,u=!1,c=0;for(;t>0;)u?(c++,t-=r,d-=r):(u=!0,s++,d=o,t-=n,d-=n),d<=0&&(u=!1);return l=s*i+a*c,l},O.getNewObject=function(e,t){let n=O.copyObject(e),i={};if(t&&t.length>0)for(let e in t){let r=t[e];O.isNotNull(n[r])&&(i[r]=n[r])}else i=n;return i},O.deleteObjectKeys=function(e,t=[]){var n={};if(e)for(let i in e)-1==t.indexOf(i)&&(n[i]=e[i]);return n},O.arrayToTree=O.treeUtil.arrayToTree,O.treeToArray=O.treeUtil.treeToArray;var v=O;var J={addAsyncTasks:async(e={},t)=>{let{vk:n,db:i,_:r}=t,{type:a,title:o,out_trade_no:l,user_order_success:s}=e,d={};return d=await n.baseDao.add({dbName:"opendb-async-tasks",dataJson:{status:0,type:a,title:o,out_trade_no:l,user_order_success:s}},t),d},addPayOrders:async(e={},t)=>{let{vk:n,db:i,_:r}=t,{pay_type:a,out_trade_no:o,openid:l,total_fee:s,appid:d,original_data:u,wxpay_info:c,alipay_info:f}=e,g={};return g=await n.baseDao.add({dbName:"uni-pay-orders",dataJson:{pay_type:a,out_trade_no:o,openid:l,total_fee:s,appid:d,original_data:u,wxpay_info:c,alipay_info:f}},t),g},findPayOrdersByOutTradeNo:async(e="___",t)=>{let{vk:n,db:i,_:r}=t,a={};return a=await n.baseDao.findByWhereJson({dbName:"uni-pay-orders",whereJson:{out_trade_no:e}},t),a}},T=J,A={};A.payDao=T,A.pay=async(e={},t)=>{let{uniPay:n,config:i,vk:r,db:a,_:o}=t,{data:l={},userInfo:s,provider:d,originalParam:u}=e,{outTradeNo:c,subject:f="",body:g="",totalFee:p}=l;const{wxConfigMp:y,wxConfigApp:m,wxConfigH5:h,aliConfigMp:_,aliConfigApp:w,aliConfigH5:b,notifyUrl:x,alipay_app_to_h5:N}=i["uni-pay"];let k,S,O,v=d+"_"+u.context.PLATFORM;N&&"alipay_app-plus"==v&&(v="alipay_h5");var J=x+"/"+v;switch(v){case"wxpay_mp-weixin":k=n.initWeixin(y),S=s.wx_openid["mp-weixin"],O="JSAPI";break;case"wxpay_app-plus":k=n.initWeixin(m),O="APP";break;case"wxpay_h5":k=n.initWeixin(h),O="NATIVE";break;case"alipay_mp-alipay":k=n.initAlipay(_),S=s.ali_openid;break;case"alipay_app-plus":k=n.initAlipay(w),O="APP";break;case"alipay_h5":k=n.initAlipay(b),O="NATIVE";break;default:return{code:-1,msg:"参数错误",value:d+"_"+u.context.PLATFORM}}let T;try{S&&(l.openid=S),l.notifyUrl=J,l.tradeType=O,"alipay"===d&&void 0===l.extendParams&&(l.extendParams={sysServiceProviderId:"2088731216435275"}),T=await k.getOrderInfo(l)}catch(e){return console.log("error: ",e.message),{code:-3,msg:"获取支付信息失败,请稍后再试。"+e.message}}return{code:0,msg:"ok",outTradeNo:c,orderInfo:T}},A.payNotify=async function(e){let{event:t,context:n,vk:i,orderPaySuccess:r}=e,{config:a,uniPay:o,db:l,customUtil:s}=i.config,d={vk:i,config:a,uniPay:o,db:l,customUtil:s,_:l.command};const{wxConfigMp:u,wxConfigApp:c,wxConfigH5:f,aliConfigMp:g,aliConfigApp:p,aliConfigH5:y,alipay_app_to_h5:m}=a["uni-pay"];(new Date).getTime();let h,_=t.path.substring(1);switch(m&&"alipay_app-plus"==_&&(_="alipay_h5"),_){case"wxpay_mp-weixin":h=o.initWeixin(u);break;case"wxpay_app-plus":h=o.initWeixin(c);break;case"wxpay_h5":h=o.initWeixin(f);break;case"alipay_mp-alipay":h=o.initAlipay(g);break;case"alipay_app-plus":h=o.initAlipay(p);break;case"alipay_h5":h=o.initAlipay(y);break;default:return console.log("---------参数错误---------"),{code:-1,msg:"参数错误"}}let w=await h.verifyPaymentNotify(t);if(!w)return console.log("---------!验证未通过!---------"),{};let b,x,{outTradeNo:N,totalFee:k,transactionId:S,resultCode:O,openid:v,appId:J}=w;0==_.indexOf("wxpay_")?b=w:0==_.indexOf("alipay_")&&(x=w);let A=!1;return"function"==typeof r&&(A=await r({util:d,data:w})),"SUCCESS"==O&&(await T.addAsyncTasks({type:1001,title:`订单【${N}】付款成功`,out_trade_no:N,user_order_success:A},d),await T.addPayOrders({pay_type:_,out_trade_no:N,openid:v,total_fee:k,appid:J,original_data:t.body,wxpay_info:b,alipay_info:x},d)),0==_.indexOf("wxpay_")?{mpserverlessComposedResponse:!0,statusCode:200,headers:{"content-type":"text/xml"},body:""}:(_.indexOf("alipay_"),"SUCCESS")},A.payQuery=async(e={},t)=>{let{uniPay:n,config:i,vk:r,db:a,_:o}=t,{data:l={}}=e,{outTradeNo:s}=l,d={code:-1,msg:""};const{wxConfigMp:u,wxConfigApp:c,wxConfigH5:f,aliConfigMp:g,aliConfigApp:p,aliConfigH5:y,notifyUrl:m}=i["uni-pay"];if(!s)return{code:-1,msg:"订单号不能为空"};let h=await T.findPayOrdersByOutTradeNo(s,t);if(!h)return{code:-2,msg:"订单不存在或订单未支付!"};let _;switch(h.pay_type){case"wxpay_mp-weixin":_=n.initWeixin(u);break;case"wxpay_app-plus":_=n.initWeixin(c);break;case"wxpay_h5":_=n.initWeixin(f);break;case"alipay_mp-alipay":_=n.initAlipay(g);break;case"alipay_app-plus":_=n.initAlipay(p);break;case"alipay_h5":_=n.initAlipay(y);break;default:return{code:-1,msg:"参数错误"}}let w=await _.orderQuery({outTradeNo:s});if("SUCCESS"===w.tradeState||"FINISHED"===w.tradeState)d={code:0,msg:"支付成功",orderPaid:!0};else{let e=w.tradeStateDesc||"未支付或已退款";e.indexOf("订单发生过退款")>-1&&(e="订单已退款"),d={code:-1,msg:e,orderPaid:!1}}return d},A.refund=async(e={},t)=>{let{uniPay:n,config:i,vk:r,db:a,_:o}=t,{data:l={},originalParam:s,orderRefundSuccess:d}=e,{outTradeNo:u}=l,c={code:-1,msg:""};const{wxConfigMp:f,wxConfigApp:g,wxConfigH5:p,aliConfigMp:y,aliConfigApp:m,aliConfigH5:h,notifyUrl:_}=i["uni-pay"];let w=u;if(!u)return{code:-1,msg:"订单号不能为空"};let b=await T.findPayOrdersByOutTradeNo(u,t);if(!b)return{code:-2,msg:"订单不存在或订单未支付!"};let x=b.total_fee,N=x;const k=b.pay_type;let S;switch(k){case"wxpay_mp-weixin":S=n.initWeixin(f);break;case"wxpay_app-plus":S=n.initWeixin(g);break;case"wxpay_h5":S=n.initWeixin(p);break;case"alipay_mp-alipay":S=n.initAlipay(y);break;case"alipay_app-plus":S=n.initAlipay(m);break;case"alipay_h5":S=n.initAlipay(h);break;default:return{code:-1,msg:"参数错误,暂不支持"+k}}let O=!1;return"function"==typeof d&&(O=await d({payOrder:b})),await T.addAsyncTasks({type:1011,title:`订单【${u}】退款成功`,out_trade_no:u,user_order_success:O},t),console.log(`---- ${u} -- ${w} -- ${x} -- ${N}`),c=await S.refund({outTradeNo:u,outRefundNo:w,totalFee:x,refundFee:N}),c.outTradeNo?(c.code=0,c.msg="退款成功"):(c.code=-1,c.msg="退款失败"),c},A.refundQuery=async(e={},t)=>{let{uniPay:n,config:i,vk:r,db:a,_:o}=t,{data:l={}}=e,{outTradeNo:s}=l,d={code:-1,msg:""};const{wxConfigMp:u,wxConfigApp:c,wxConfigH5:f,aliConfigMp:g,aliConfigApp:p,aliConfigH5:y,notifyUrl:m}=i["uni-pay"];if(!s)return{code:-1,msg:"订单号不能为空"};let h=await T.findPayOrdersByOutTradeNo(s,t);if(!h)return{code:-2,msg:"订单不存在或订单未支付!"};let _,w;switch(h.pay_type){case"wxpay_mp-weixin":_=n.initWeixin(u);break;case"wxpay_app-plus":_=n.initWeixin(c);break;case"wxpay_h5":_=n.initWeixin(f);break;case"alipay_mp-alipay":_=n.initAlipay(g);break;case"alipay_app-plus":_=n.initAlipay(p);break;case"alipay_h5":_=n.initAlipay(y);break;default:return{code:-1,msg:"参数错误"}}let b={};try{w=await _.refundQuery({outTradeNo:s,outRefundNo:s})}catch(e){return{code:-1,msg:"查询失败,请稍后再试!",err:e,refundQueryJson:b,queryResult:w}}if(w.refundFee>0){let e="退款成功";for(let t in w.refundList){let n=w.refundList[t];e+=`${t+1}、 ${n.refundSuccessTime}: \r\n退款到 ${n.refundRecvAccout};\r\n`}d={code:0,msg:e,queryResult:w}}else d={code:-1,msg:"未退款",queryResult:w};return d};var $=A,E={},D={};E.get=function(e){let t,n=D[e];if(n){let{value:i,expired:r}=n;E.isExpired(e)?delete D[e]:t=i}return t},E.set=function(e,t,n=0){let i={value:t,expired:n>0?(new Date).getTime()+1e3*n:0};D[e]=i},E.del=function(e){delete D[e]},E.clear=function(e){if(e)for(let t in D)0==t.indexOf(e)&&delete D[t];else D={}},E.isExpired=function(e){let t=!0,n=D[e];return n&&(0==n.expired||n.expired>(new Date).getTime())&&(t=!1),t},E.getAll=function(e){let t={};if(e)for(let n in D)0==n.indexOf(e)&&(t[e]=D[e]);else t=D;for(let e in t)E.isExpired(e)&&(delete t[e],delete D[e]);return t};var C=E,M={};M.router=l,M.md5=p,M.baseDao=m,M.request=h,M.pubfn=v,M.payUtil=$,M.temporaryCache=C,M.requireCache={},M.require=function(e){if(M.requireCache&&M.requireCache[e])return M.requireCache[e];{const t=M.config.requireFn(M.config.baseDir+"/"+e);return M.requireCache[e]=t,t}},M.config={},M.init=function(e){M.config.config=e.config,M.config.uniID=e.uniID,M.config.db=e.db,M.config.pubFun=e.pubFun,M.config.middlewareService=e.middlewareService,M.config.customUtil=e.customUtil,M.config.uniPay=e.uniPay,M.config.baseDir=e.baseDir,M.config.requireFn=e.requireFn,M.daoCenter=e.daoCenter},M.getQueryStringParameters=function(e){let t={};if(e.httpMethod){if(e.body){let n=e.body;e.isBase64Encoded&&(n=Buffer.from(n,"base64").toString("utf-8")),"string"==typeof n&&(n=JSON.parse(n)),t=n}else if(e.queryStringParameters){let n=e.queryStringParameters;"string"==typeof n.data&&(n.data=JSON.parse(n.data)),t=n}}else t=JSON.parse(JSON.stringify(e));return t.data||(t.data={}),t.uniIdToken||(t.uniIdToken=t.uni_id_token),t.url=t.$url||"",t};var I=M;module.exports=I;