Commit 9d0451f2 by 蒋勇

d

parent c08be3b5

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

#!/bin/bash #!/bin/bash
FROM registry.cn-beijing.aliyuncs.com/hantang/node105:v2 FROM registry.cn-beijing.aliyuncs.com/hantang/node105:v2
MAINTAINER jy "jiangyong@gongsibao.com" MAINTAINER jy "jiangyong@gongsibao.com"
ADD igirl-web /apps/igirl-web/ ADD igirl-zcapi /apps/igirl-zcapi/
WORKDIR /apps/igirl-web/ WORKDIR /apps/igirl-zcapi/
RUN cnpm install -S RUN cnpm install -S
CMD ["node","/apps/igirl-web/main.js"] CMD ["node","/apps/igirl-zcapi/main.js"]
......
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/main.js"
}
]
}
\ No newline at end of file
{
"editor.fontSize": 16
}
\ No newline at end of file
const system=require("../system");
class ApiBase{
constructor(){
this.cacheManager=system.getObject("db.cacheManager");
}
async checkKey(appKey){
// let key = await this.cacheManager["InitAppKeyCache"].getAppKeyVal(appKey);
// if(key==null){
// return system.getResult2(null,null,"ok","请检查您的授权KEY");
// }else{
// return {status:200};
// }
return {status:200};
}
}
module.exports=ApiBase;
var System = require("../../system")
const uuidv4 = require('uuid/v4');
const crypto = require('crypto');
const cryptoJS = require("crypto-js");
const querystring = require('querystring');
const logCtl = System.getObject("web.oplogCtl");
var settings = require("../../../config/settings");
var moment = require('moment');
const md5 = require("MD5");
class TlApi {
constructor() {
this.tlorderSve = System.getObject("service.tlorderSve");
}
async getQrCodeInfo(obj) {
try {
// {
// "orderNo":"",-----//订单号
// "company_id":1,-----//公司id
// "other_company_id":,-----//其他公司id
// "op_type":"wx",-----//支付方式
// "totalSum":,-----//订单金额
// "sveItemCode":,-----//服务编码
// "sveItemName":"测试支付",
// "create_ip":""-----//请求ip地址
// }
var result = await this.tlorderSve.getQrCodeInfoTl(obj);
console.log(result, "result..................");
return result;
} catch (e) {
console.log(e.stack, "e.......................");
}
}
async getPayStatus(obj) {
// "aliPayOrderCode": "121905790000021861",
// "company_id": 1,
// "other_company_id":40,
// "op_type": "alipay",
// "orderNo": "TMO201910151718RCSW1",
// "wxPayOrderCode": "121905790000021859"
try {
var result = await this.tlorderSve.checkPayStatusTl(obj);
console.log(result, "result..................");
return result;
} catch (e) {
console.log(e.stack, "e.......................");
}
}
async notifyUrl(obj) {
try {
logCtl.info({
optitle: "test支付页面回调支付状态---info",
op: "/base/service/impl/orderSve.js/notifyUrl",
content: "参数=" + JSON.stringify(obj),
clientIp: obj.client_ip || ""
});
} catch (e) {
logCtl.error({
optitle: "支付页面回调支付状态---error异常",
op: "/base/service/impl/orderSve.js/checkPayStatus",
content: "error:" + e.stack + ",参数=" + JSON.stringify(obj),
clientIp: obj.client_ip || ""
});
}
}
}
module.exports = TlApi;
var System = require("../../system");
const logCtl = System.getObject("web.oplogCtl");
class TmSub {
constructor() {
this.cacheManager = System.getObject("db.cacheManager");
this.trademarkSve = System.getObject("service.trademarkSve");
this.companySve = System.getObject("service.companySve");
this.companyauthcodeSve = System.getObject("service.companyauthcodeSve");
}
async verifyData(obj) {
if (obj.appKey != "95f167212a8146daac99feddffa6a9sy") {
return { code: -100, message: "appKey参数有误", data: [] };
}
var code = obj.code || "";
if (!code) {
return { code: -101, message: "站点授权码信息不能为空", data: [] };
}
var mac_addr = obj.mac_addr || "";
if (!mac_addr) {
return { code: -102, message: "mac_addr信息不能为空", data: [] };
}
let codeListCache = await this.cacheManager["AuthCodeListCache"].getListByCache();
if (!codeListCache || codeListCache == "undefined") {
return { code: -103, message: "获取授权码缓存数据为空" };
}
let codeList = JSON.parse(codeListCache);
if (!codeList || codeList.length == 0) {
return { code: -104, message: "转换授权码缓存数据查询有误" };
}
var newList = codeList.filter(item => item.code == obj.code);
if (newList == null || newList.length == 0 || !newList[0].company) {
return { code: -105, message: "未找到站点授权码信息" };
}
if (newList[0].macAddr && newList[0].macAddr != mac_addr) {
return { code: -106, message: "站点授权码只能授权在一台电脑上进行提报,要想换电脑请联系平台人员" };
}
if (!newList[0].macAddr) {
//进行macaddr更新
this.companyauthcodeSve.putMacAddrByCode(code, mac_addr);
}
return { code: 1, message: "success", code_item: newList[0], code_list: codeList };
}
async autosub(obj) {//提报数据
try {
var verifyResult = await this.verifyData(obj);
if (verifyResult.code != 1) {
return verifyResult;
}
var tmpResult = await this.trademarkSve.getAutoSubList(verifyResult.code_list, verifyResult.code_item);
return tmpResult;
} catch (e) {
// console.log(e.stack, "error------------");
//日志记录
logCtl.error({
optitle: "提报数据异常",
op: "base/api/impl/tmsub/autosub",
content: e.stack,
clientIp: ""
});
return { code: -1, message: "autosub异常", data: [] };
}
}
//机器人提报更新提报错误--移出更新缓存中的数据--暂时不用此方法
async updateErrorCount(obj) {
try {
var verifyResult = await this.verifyData(obj);
if (verifyResult.code != 1) {
return verifyResult;
}
//提报号
var proxyCode = obj.proxyCode || "";
if (proxyCode == "") {
return { code: -1, message: "proxyCode不能为空", data: null };
}
//错误次数
var errorCount = obj.errorCount || 1;
var tmpResult = await this.trademarkSve.setUpdateErrorCount(proxyCode, errorCount, obj.code);
return tmpResult;
} catch (e) {
//日志记录
logCtl.error({
optitle: "机器人提报更新提报错误异常",
op: "base/api/impl/tmsub/updateErrorCount",
content: e.stack,
clientIp: ""
});
return { code: -1, message: "updateErrorCount异常", data: null };
}
}
//机器人提报更新商标信息
async putCacheData(obj) {
try {
var verifyResult = await this.verifyData(obj);
if (verifyResult.code != 1) {
return verifyResult;
}
//提报号
var proxyCode = obj.proxyCode || "";
if (proxyCode == "") {
return { code: -1, message: "proxyCode不能为空", data: null };
}
var tmpResult = await this.trademarkSve.updateTmCache(proxyCode, obj.code);
return tmpResult;
} catch (e) {
//日志记录
logCtl.error({
optitle: "机器人提报更新商标缓存异常",
op: "base/api/impl/tmsub/putCacheData",
content: e.stack,
clientIp: ""
});
return { code: -1, message: "putCacheData异常", data: null };
}
}
//机器人提报更新商标状态
async updateState(obj) {
try {
var verifyResult = await this.verifyData(obj);
if (verifyResult.code != 1) {
return verifyResult;
}
//提报号
var proxyCode = obj.proxyCode || "";
if (proxyCode == "") {
return { code: -1, message: "proxyCode不能为空", data: null };
}
var errorCount = obj.errorCount == null ? 0 : obj.errorCount;
//商标状态枚举,传递枚举值
var stateCode = obj.stateCode || "";
if (stateCode == "") {
return { code: -1, message: "stateCode不能为空", data: null };
}
var tmpResult = await this.trademarkSve.setUpdateState(proxyCode, errorCount, stateCode, obj.code, obj.errorMsg);
return tmpResult;
} catch (e) {
//日志记录
logCtl.error({
optitle: "机器人提报更新商标状态异常",
op: "base/api/impl/tmsub/updateState",
content: e.stack,
clientIp: ""
});
return { code: -1, message: "updateState异常", data: null };
}
}
//更新商标code和状态
async updateTradeMarkCode(obj) {
try {
var verifyResult = await this.verifyData(obj);
if (verifyResult.code != 1) {
return verifyResult;
}
//提报号
var proxyCode = obj.proxyCode || "";
if (!proxyCode) {
return { code: -1, message: "proxyCode不能为空", data: null };
}
//商标号
var regCode = obj.regCode || "";
if (!regCode) {
return { code: -1, message: "code不能为空", data: null };
}
//商标状态枚举,传递枚举值
var stateCode = obj.stateCode || "";
if (!stateCode) {
return { code: -1, message: "stateCode不能为空", data: null };
}
var tmpResult = await this.trademarkSve.setUpdateTradeMarkCode(proxyCode, regCode, stateCode);
return tmpResult;
} catch (e) {
//日志记录
logCtl.error({
optitle: "更新商标code和状态异常",
op: "base/api/impl/tmsub/updateTradeMarkCode",
content: e.stack,
clientIp: ""
});
return { code: -1, message: "updateTradeMarkCode异常", data: null };
}
}
}
module.exports = TmSub;
const ApiBase =require("../api.base");
Class WxApi extends ApiBase{
}
var System = require("../../system")
var settings = require("../../../config/settings");
const logCtl = System.getObject("web.oplogCtl");
const md5 = require("MD5");
class Xbg {
constructor() {
this.zxyAppSecretKey = settings.apiconfig.zxyAppSecretKey();
this.oplogSve = System.getObject("service.oplogSve");
this.oplogSve = System.getObject("service.oplogSve");
}
async transferNotify(obj) {
//返回值
// var tmpSignObj = {
// "accNo": "6214850112377038", "accType": "00", "amt": 100,
// "appId": "1103817785", "busiId": "1103817785420820481",
// "currency": "CNY", "idName": "宋毅", "idNo": "341221198504218256",
// "idType": "00", "mobile": "15010929366", "note": "知产平台转账操作",
// "notityUrl": "http://igirl.gongsibao.com/api/xbg/transferNotify",
// "outTradeNo": "fxfx_XxHqg5hLlP", "platformSeqNo": "1120991431960649729",
// "respCode": "00", "respDesc": "成功", "seqNo": "1001",
// "sign": "6E1F113FDBA02F37DB53C5273EF847AF", "signType": "MD5", "tradeStatus": "00",
// "tradeTime": "20190424180307", "tradeType": "00"
// };
//日志记录
logCtl.info({
optitle: "请求薪必果接口回调结果信息===info",
op: "/app/base/api/impl/xbg.js/transferNotify",
content: "param=" + JSON.stringify(obj),
clientIp: ""
});
var respCode = obj.respCode || "";
var outTradeNo = obj.outTradeNo || "";
var sign = obj.sign || "";
if (respCode && outTradeNo && sign) {
var signArr = [];
signArr.push("accNo=" + obj.accNo);
signArr.push("accType=" + obj.accType);
signArr.push("amt=" + obj.amt);
signArr.push("appId=" + obj.appId);
signArr.push("busiId=" + obj.busiId);
signArr.push("currency=" + obj.currency);
signArr.push("idName=" + obj.idName);
signArr.push("idNo=" + obj.idNo);
signArr.push("idType=" + obj.idType);
signArr.push("mobile=" + obj.mobile);
signArr.push("note=" + obj.note);
signArr.push("notityUrl=" + obj.notityUrl);
signArr.push("outTradeNo=" + obj.outTradeNo);
signArr.push("platformSeqNo=" + obj.platformSeqNo);
signArr.push("respCode=" + obj.respCode);
signArr.push("respDesc=" + obj.respDesc);
signArr.push("seqNo=" + obj.seqNo);
signArr.push("signType=" + obj.signType);
signArr.push("tradeStatus=" + obj.tradeStatus);
signArr.push("tradeTime=" + obj.tradeTime);
signArr.push("tradeType=" + obj.tradeType);
signArr.push("key=" + this.zxyAppSecretKey);
// accNo=6214850112377038&accType=00&amt=100&appId=1103817785&busiId=1103817785420820481&
// currency=CNY&idName=宋毅&idNo=341221198504218256&idType=00&mobile=15010929366&note=测试-知圈圈&
// notityUrl=http://bpohhr.gongsibao.com/api/econtractApi/transferNotify&outTradeNo=PRO201903251623VGjsy01&platformSeqNo=1116256506449272833&respCode=00&respDesc=成功&seqNo=1001&signType=MD5&tradeStatus=00&tradeTime=20190411162729&tradeType=00&key=ca47edd3ae8bac3f7a68d8126d891f52
var tmpSign = md5(signArr.join("&")).toUpperCase();
if (tmpSign == sign) {
var tmpCount = await this.oplogSve.getCountBySourceOrderNo(outTradeNo);
if (tmpCount > 0) {
await this.oplogSve.updateByCallback(obj);
return { code: "0000" };
}
}
}
}
}
module.exports = Xbg;
const system = require("../system");
const settings = require("../../config/settings");
class CtlBase {
constructor(sname) {
this.serviceName = sname;
this.service = system.getObject("service." + sname);
this.cacheManager = system.getObject("db.cacheManager");
this.md5 = require("MD5");
this.dataprivS = system.getObject("service.dataauthSve");
}
notify(req, msg) {
if (req.session) {
req.session.bizmsg = msg;
}
}
//按照单据号查询出单据
async findByCode(queryobj, qobj, req) {
var rd = await this.service.findOne({ code: qobj.code, company_id: req.companyid });
if (!rd) {
var rd = await this.service.findOne({ id: qobj.code, company_id: req.companyid });
}
return system.getResult2(rd, null);
}
async findOne(queryobj, qobj) {
var rd = await this.service.findOne(qobj);
return system.getResult2(rd, null);
}
async findAndCountAll(queryobj, obj, req) {
obj.codepath = req.codepath;
if (req.session.user) {
obj.uid = req.session.user.id;
}
if (req.codepath.indexOf("pmg") < 0 && req.companyid && req.companyid != "" && obj.search) {
obj.search.company_id = req.companyid;
}
var apps = await this.service.findAndCountAll(obj);
return system.getResult2(apps, null);
}
async refQuery(queryobj, qobj, req) {
//不是超级管理员,参照需要添加公司查询条件
// if(req.session && req.session.user && !req.session.user.isSuper){
//判断是否考虑数据权限
if (qobj.datapriv && req.session && req.session.user) {
var uid = req.session.user.id;
var authtmp = await this.dataprivS.findOne({ user_id: uid, modelname: this.service.dao.modelName });
if (authtmp) {
var auths = authtmp.auths;
var arys = auths.split(",");
qobj.datapriv = arys;
}
}
if (this.serviceName.indexOf("company") < 0 && this.serviceName.indexOf("sitetheme") < 0) {
qobj.refwhere["company_id"] = req.companyid;
}
//}
var rd = await this.service.refQuery(qobj);
return system.getResult2(rd, null);
}
async bulkDelete(queryobj, ids) {
var rd = await this.service.bulkDelete(ids);
return system.getResult2(rd, null);
}
async bulkCreate(queryobj, ids) {
var rd = await this.service.bulkCreate(ids);
return system.getResult2(rd, null);
}
async delete(queryobj, qobj, req) {
this.clearProductCache(req.company_id, req.codepath, null);
var rd = await this.service.delete(qobj);
return system.getResult2(rd, null);
}
async audit(queryobj, qobj, req) {
var audlist = qobj.audlist;
var notes = qobj.notes;
var status = qobj.status;
var userinfo = req.session.user;
var rd = await this.service.audit(userinfo, audlist, notes, status);
return system.getResult2({}, null);
}
async create(queryobj, qobj, req) {
if (req && req.codepath) {
qobj.codepath = req.codepath;
}
if (req && req.companyid && req.companyid != "") {
qobj.company_id = req.companyid;
}
if (req && req.session && req.session.user) {
var userinfo = req.session.user;
qobj.creator = userinfo.nickName;
qobj.createuser_id = userinfo.id;
}
await this.clearProductCache(qobj.company_id, qobj.codepath, qobj);
var rd = await this.service.create(qobj);
return system.getResult2(rd, null);
}
async update(queryobj, qobj, req) {
if (req.codepath) {
qobj.codepath = req.codepath;
}
if (req && req.companyid && req.companyid != "") {
qobj.company_id = req.companyid;
}
await this.clearProductCache(qobj.company_id, qobj.codepath, qobj);
qobj.updator = qobj.nickName;
qobj.updateuser_id = qobj.id;
var rd = await this.service.update(qobj);
return system.getResult2(rd, null);
}
async clearProductCache(company_id, code_path, qobj) {//清理首页展示的产品缓存
if (!code_path || !company_id) {
return;
}
if (code_path.indexOf("productmag/producttype") >= 0 || code_path.indexOf("productmag/productcrud") >= 0) {
await this.cacheManager["ProductListCache"].delCache(company_id);
if (qobj && code_path.indexOf("productmag/producttype") >= 0) {
var count = await this.service.findCount({ where: { company_id: company_id, pid: 0, isPubed: 1 } });
if (count > 6) {
throw new Error("目前只支持6个启用的大类");
}
if (!qobj.pid) {
if (!qobj.oneIconUrl) {
throw new Error("添加的是产品大类,必须选择产品大类图标");
}
}
}
}
}
static getServiceName(ClassObj) {
return ClassObj["name"].substring(0, ClassObj["name"].lastIndexOf("Ctl")).toLowerCase() + "Sve";
}
async initNewInstance(queryobj, req) {
return system.getResult2({}, null);
}
async findById(oid) {
var rd = await this.service.findById(oid);
return system.getResult2(rd, null);
}
encryptPasswd(passwd) {
if (!passwd) {
throw new Error("请输入密码");
}
var md5 = this.md5(passwd + "_" + settings.salt);
return md5.toString().toLowerCase();
}
async doExecute(methodname, params) {
var result = await this[methodname](params);
return system.getResult2(result, null);
}
}
module.exports = CtlBase;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class ArticleCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(ArticleCtl));
//this.appS=system.getObject("service.appSve");
}
async findById(q,oid){
return super.findById(Number(oid.id));
}
}
module.exports=ArticleCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
class AuthCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(AuthCtl));
}
async saveAuths(query,qobj,req){
var auths=qobj.aus;
var xrtn=await this.service.saveAuths(auths,req.companyid);
return system.getResult2(xrtn,null);
}
async findAuthsByRole(query,qobj,req){
var rolecodestrs=qobj.rolecode;
var xrtn=await this.service.findAuthsByRole(rolecodestrs,req.companyid);
return system.getResult2(xrtn,null);
}
}
module.exports=AuthCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class BusCompanyNotesCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(BusCompanyNotesCtl));
}
}
module.exports=BusCompanyNotesCtl ;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class BusinessCompanyCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(BusinessCompanyCtl));
}
async getBusinessDetail(qobj,obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.getBusinessDetail(obj);
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "获取商机详情getBusinessDetail异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-200,msg:"操作失败"};
}
}else{
return {code:-201,msg:"用户数据为空"};
}
}
async updateBusinessStatus(qobj,obj,req){
var user = req.session.user;
if(user){
// user:用好
// code:商机公司code
// opType:操作类型(1无效电话,2商机无效)
if(!obj.code){
return {code:-202,msg:"code参数错误"};
}
if(!obj.opType){
return {code:-203,msg:"opType参数错误"};
}
try {
return this.service.updateBusinessStatus(user,obj.code,obj.opType);
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "修改商机状态updateBusinessStatus异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-200,msg:"操作失败"};
}
}else{
return {code:-201,msg:"用户数据为空"};
}
}
//免费认领商机
async freeClaimOperation(pobj,obj,req){
var user = req.session.user;
if(user){
try {
var bus_type = obj.bus_type;
var ids = obj.ids;
if(!bus_type){
return {code:-1,msg:"bus_type参数错误"};
}
if(!ids || ids.length<1){
return {code:-2,msg:"ids参数错误"};
}
var result = await this.service.freeClaimOperation(user,bus_type,ids);
return result;
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "免费认领商机freeClaimOperation异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-100,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
//保护商机操作
async protectBus(pobj,obj,req){
var user = req.session.user;
if(user){
try {
var bus_type = obj.bus_type;
var code_list = obj.code_list;
if(!bus_type){
return {code:-1,msg:"bus_type参数错误"};
}
if(!code_list || code_list.length<1){
return {code:-2,msg:"code_list参数错误"};
}
var result = await this.service.protectBus(user,bus_type,code_list);
return result;
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "保护商机操作protectBus异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-100,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
//修改客户意向
async updateCustomerIntention(pobj,obj,req){
var user = req.session.user;
if(user){
if(!obj.customer_intention){
return {code:-201,msg:"customer_intention参数错误"};
}
if(!obj.code){
return {code:-202,msg:"code参数错误"};
}
try {
return this.service.updateCustomerIntention(obj);
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "修改客户意向updateCustomerIntention异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-203,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
//提交客户意向
async submitCustomerIntention(pobj,obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
if(!obj.customer_intention){
return {code:-201,msg:"customer_intention参数错误"};
}
if(!obj.code){
return {code:-202,msg:"code参数错误"};
}
try {
return this.service.submitCustomerIntention(obj);
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "修改客户意向updateCustomerIntention异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-203,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
//获取该业务员累计商机数量 商标数量 下单数量
async getBusinessStatisticForSalesman(obj,req) {//obj.statisticType: 1累计统计,2当月统计
var user = req.session.user;
if(user){
try {
return this.service.getBusinessStatisticForSalesman(user.company_id,user.id,obj.statisticType || null);
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "获取该业务员累计商机数量 商标数量 下单数量getBusinessStatisticForSalesman异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-203,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
//获取该公司所有员工累计商机数量 商标数量 下单数量============XXXX
async getBusinessStatisticForBoss(obj,req) {//obj.statisticType: 1累计统计,2当月统计
var user = req.session.user;
if(user){
try {
return this.service.getBusinessStatisticForBoss(user.company_id,obj.statisticType || null);
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "获取该公司所有员工累计商机数量 商标数量 下单数量getBusinessStatisticForBoss异常error",
op: "base/controller/impl/businesscompanyCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-203,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
}
module.exports = BusinessCompanyCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class BusinessInfoCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(BusinessInfoCtl));
}
async findOneById(pobj,obj,req){
var user = req.session.user;
if(user){
var id = obj.id;
if(!id){
return {code:-1,msg:"参数错误"};
}
try {
var data = await this.service.dao.model.findOne({where:{id:id},raw:true});
return {code:1,data:data};
} catch (e) {
console.log(e);
//日志记录
logCtl.error({
optitle: "查询商机信息findOneById异常error",
op: "base/controller/impl/businessinfoCtl.js",
content: e.stack,
clientIp: ""
});
return {code:-100,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"}
}
}
}
module.exports=BusinessInfoCtl ;
var System=require("../../system")
class xzsearchCtl{
constructor(){
this.tradeSve=System.getObject("service.tradeSve");
this.accountSve=System.getObject("service.accountSve");
this.appSve=System.getObject("service.appSve");
this.productDao=System.getObject("db.productDao");
this.gsbSearchApi=System.getObject("api.gsbtmsearch");
}
convertDate(time){
var date = new Date(Number(time*1000));
var y = 1900+date.getYear();
var m = "0"+(date.getMonth()+1);
var d = "0"+date.getDate();
return y+"-"+m.substring(m.length-2,m.length)+"-"+d.substring(d.length-2,d.length);
}
async findAndCountAll(queryobj,obj,req){
var appkey=req.session.app.appid;
var result={rows:[],count:0};
var sources=[];
var pageSize=obj.pageInfo.pageSize;
var currentPage=obj.pageInfo.pageNo;
var companyName=obj.search.companyName==null?"":obj.search.companyName;
var data={
appKey:appkey,
pageSize:pageSize,
currentPage:currentPage,
companyName:companyName
};
var that=this;
var companys =await this.gsbSearchApi.byslSearch(data);
if(companys.status == 0){
result.count=companys.total;
companys.data.forEach(function(c){
var source={
companyName:c.registrant_name,
regNum:c.tm_regist_num,
noAcceptDay:that.convertDate(c.no_accepted_day),
noAccepyIssue:c.no_accepted_notice_issue,
noAcceptPageNum:c.no_accepted_notice_page_num,
file:c.link_url,
companyAddr:c.registrant_addr,
phone:c.tel_info,
email:c.email_info,
};
sources.push(source);
});
result.rows=sources;
}
return System.getResult2(result,null);
}
async createTrade(qobj,pobj,req){
var productId=pobj.productId;
var product=await this.productDao.model.findOne({where:{id:productId}});
var user=req.session.user;
var tradeObj={username:user.nickName,tradeDate:new Date(),status:"settled",baoAmount:product.price,tradeType:"consume"};
var trade=await this.tradeSve.create(user,tradeObj);
var accountBalance = await this.accountSve.getAccountBalance(user.account_id,user.app_id);
trade.dataValues["accountBalance"]=accountBalance;
return trade;
}
}
module.exports=xzsearchCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class CacheCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(CacheCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj,qobj){
return system.getResult2({},null);
}
async delCache(queryobj,qobj){
await this.service.delCache(qobj);
return system.getResult2({},null);
}
async findOnlines(queryobj,qobj,req){
//var ms=await this.cacheManager["VisitCountCache"].findOnlines(req.session.app.appid);
var ms=await this.cacheManager["VisitCountCache"].findOnlines();
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
console.log(ms);
return system.getResult2(ms,null);
}
async clearAllCache(queryobj,qobj){
console.log("clearAllCache===========================");
await this.service.clearAllCache(qobj);
return system.getResult2({},null);
}
}
module.exports=CacheCtl;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class companyCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(companyCtl));
this.userSve = system.getObject("service.userSve");
this.footerinfoSve = system.getObject("service.footerinfoSve");
this.moneyaccountS = system.getObject("service.moneyaccountSve");
}
//初始化产品类型和产品 角色 默认授权
async initdata(pobj, obj, req) {
if (obj.isEnabled) {
await this.service.companyInitdata(obj);
}
//更新公司启用
var rd = await this.service.update(obj);
return system.getResult2(rd, null);
};
async siteupdate(qobj, pobj, req) {
//创建管理员用户
var userReg = {
id: req.session.user.id,
userName: pobj.u.userName,
password: super.encryptPasswd(pobj.u.password),
nickName: pobj.u.nickName,
mobile: pobj.u.mobile,
isAdmin: true,
companyName: pobj.u.companyName,
};
var user = await this.userSve.update(userReg);
var companyInfo = {
id: pobj.u.id,
name: pobj.u.companyName,
sitename: pobj.u.sitename,
domainname: pobj.u.domainname,
subdomainname: pobj.u.domainname,
contact: pobj.u.nickName,
contactmobile: pobj.u.mobile,
logo: pobj.u.logo,
serviceqq: pobj.u.serviceqq,
zipCode: pobj.u.zipCode,
isEnabled: false,
};
var bankaccountinfo = {
code: pobj.u.moneyaccountcode,
name: pobj.u.moneyaccountname,
payeeName: pobj.u.payeeName,
id: pobj.u.moneyaccountid,
};
var user = await this.service.siteupdate(companyInfo, bankaccountinfo);
return system.getResult2(pobj.u, null);
}
async siteapply(qobj, pobj, req) {
// console.log(pobj.u);
//创建管理员用户
var userReg = {
userName: pobj.u.userName,
password: super.encryptPasswd(pobj.u.password),
nickName: pobj.u.nickName,
mobile: pobj.u.mobile,
isAdmin: true,
companyName: pobj.u.companyName,
};
var user = await this.userSve.findOne({ userName: pobj.u.userName });
if (user) {
return system.getErrResult2("帐号已存在, 请修改并重试");
}
//检查域名唯一性,子域名唯一性
var comtmp = await this.service.findOne({ domainname: pobj.u.domainname });
if (comtmp) {
return system.getErrResult2("域名已存在, 请修改并重试");
}
var comtmp2 = await this.service.findOne({ subdomainname: pobj.u.subdomainname });
if (comtmp2) {
return system.getErrResult2("子域名已存在, 请修改并重试");
}
var companyInfo = {
name: pobj.u.companyName,
sitename: pobj.u.sitename,
domainname: pobj.u.domainname,
subdomainname: pobj.u.domainname,
contact: pobj.u.nickName,
contactmobile: pobj.u.mobile,
logo: pobj.u.logo,
serviceqq: pobj.u.serviceqq,
zipCode: pobj.u.zipCode,
// wxappid:pobj.u.wxappid,
// wxsecstr:pobj.u.wxsecstr,
// wxsectoken:pobj.u.wxsectoken,
// wxseccert:pobj.u.wxseccert,
// mechantid:pobj.u.mechantid,
// mechantkey:pobj.u.mechantkey,
// mechantcerturl:pobj.u.mechantcerturl,
isEnabled: false,
};
var bankaccountinfo = {
code: pobj.u.moneyaccountcode,
name: pobj.u.moneyaccountname,
payeeName: pobj.u.payeeName,
};
var companyInfo = await this.service.siteapply(userReg, companyInfo, bankaccountinfo);
return system.getResult2(companyInfo, null);
}
async getInitCompanyInfo(qobj, pobj, req) {
var rtn = {};
var footerinfo = await this.footerinfoSve.findOne({ company_id: pobj.id });
var c = await this.service.findById(pobj.id);
rtn.footerinfo = footerinfo;
rtn.company = c;
return system.getResult2(rtn, null);
}
async findById(obj, req) {
var cid = obj.cid
var rd = await this.service.findById(cid);
return system.getResult2(rd, null);
}
async findById2(obj, req) {
var user = req.session.user;
if (!user) {
return { code: -1, mag: "用户信息为空" }
}
var oid = user.company_id
var rd = await this.service.findById(oid);
return system.getResult2(rd, null);
}
//站点统计站点订单合计
async findAndCountAll2(queryobj, obj, req) {
obj.codepath = req.codepath;
if (req.session.user) {
obj.uid = req.session.user.id;
}
if (req.codepath.indexOf("pmg") < 0 && req.companyid && req.companyid != "" && obj.search) {
obj.search.company_id = req.companyid;
}
var apps = await this.service.siteOrderStatistic(obj);
// apps = apps.get({raw:true});
console.log(system.getResult2(apps, null));
return system.getResult2(apps, null);
}
//站点线索统计
async siteBusinessStatistic(queryobj, obj, req) {
try {
var apps = await this.service.siteBusinessStatistic(obj);
return system.getResult2(apps, null);
} catch (error) {
return system.getResult2(null, null);
}
}
async getCompanyTheme(qobj, pobj, req) {
try {
if (!req.session.user) {
return { code: -100, msg: "用户未登录" }
}
return await this.service.getCompanyThemeById(req.session.user.company_id);
} catch (e) {
//日志记录
logCtl.error({
optitle: "查询公司主题异常error",
op: "/base/controller/impl/companyCtl.js/getCompanyTheme",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作异常" }
}
}
async putCompanyTheme(qobj, pobj, req) {
try {
var sitetheme = pobj.siteTheme || "";
if (!req.session.user) {
return { code: -100, msg: "用户未登录" }
}
if (!sitetheme) {
return { code: -101, msg: "主题参数有误" }
}
return await this.service.putCompanyThemeById(req.session.user.company_id, req.session.user.id, sitetheme);
} catch (e) {
//日志记录
logCtl.error({
optitle: "修改公司主题异常error",
op: "/base/controller/impl/companyCtl.js/putCompanyTheme",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作异常" }
}
}
}
module.exports = companyCtl;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
const uuidv4 = require('uuid/v4');
class CompanyauthcodeCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(CompanyauthcodeCtl));
}
async initNewInstance(queryobj,req){
var uuid = uuidv4();
var u = uuid.replace(/\-/g, "");
return system.getResult2({code:u},null);
}
}
module.exports = CompanyauthcodeCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class CompanyPayParamCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(CompanyPayParamCtl));
}
}
module.exports=CompanyPayParamCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class CustomerInfoCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(CustomerInfoCtl));
}
async findOneByCustomerName(obj,req){
if(!obj.name){
return {code:-1,msg:"name参数错误"};
}
try {
var data = await this.service.dao.model.findOne({where:{name:obj.name}});
return {code:1,data:data};
} catch (error) {
return {code:-100,msg:"操作失败"};
}
}
async getMyCustomerEntInfo(obj,req){
var user = req.session.user;
if(user){
try {
var result=[];
var dataList = await this.service.dao.model.findAll({where:{owner_id:user.id,customerType:"ent"},limit:50,offset:0,attributes: ["applyAddr", "code", "name", "businessLicensePic", "customerType","identityCardNo","identityCardPic"],raw:true});
if(dataList && dataList.length>0){
for(var i=0;i<dataList.length;i++){
var data = dataList[i];
var obj={regLocation:data.applyAddr,entName:data.name,domainEntName:data.name,creditCode:data.code,
businessLicensePic:data.businessLicensePic,customerType:data.customerType,identityCardNo:data.identityCardNo,
identityCardPic:data.identityCardPic
};
result.push(obj);
}
}
return {code:1,data:result};
} catch (error) {
return {code:-100,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
async getMyCustomerPersonInfo(obj,req){
var user = req.session.user;
var likename = obj.likeName;
if(user){
try {
var result=[];
var whereObj={owner_id:user.id,customerType:"person"};
//,name: { [this.dao.db.Op.like]: '%' +mobile_no + '%' }
if(likename){
whereObj["name"] = { [this.service.dao.db.Op.like]: '%' +likename + '%' };
}
var dataList = await this.service.dao.model.findAll({where:whereObj,limit:50,offset:0,attributes: ["applyAddr", "code", "name", "businessLicensePic", "customerType","identityCardNo","identityCardPic"],raw:true});
if(dataList && dataList.length>0){
for(var i=0;i<dataList.length;i++){
var data = dataList[i];
var obj={regLocation:data.applyAddr,entName:data.name,domainEntName:data.name,creditCode:data.code,
businessLicensePic:data.businessLicensePic,customerType:data.customerType,identityCardNo:data.identityCardNo,
identityCardPic:data.identityCardPic
};
result.push(obj);
}
}
return {code:1,data:result};
} catch (error) {
return {code:-100,msg:"操作失败"};
}
}else{
return {code:-200,msg:"用户数据为空"};
}
}
}
module.exports=CustomerInfoCtl ;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
class DataauthCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(DataauthCtl));
}
async saveauth(querybij,qobj,req){
var arys=qobj.arys;
var uid=qobj.uid;
var refmodel=qobj.modelname;
var u=await this.service.saveauth({
user_id:uid,
modelname:refmodel,
auths:arys.join(","),
company_id:req.companyid,
});
return system.getResult2(u,null);
}
async fetchInitAuth(querybij,qobj,req){
var uid=qobj.uid;
var refmodel=qobj.modelname;
var authtmp=await this.service.findOne({user_id:uid,modelname:refmodel});
if(authtmp){
var auths= authtmp.auths;
var arys=auths.split(",");
return system.getResult2(arys,null);
}else{
return system.getResult2([],null);
}
}
}
module.exports=DataauthCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class ExpenseVoucherCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(ExpenseVoucherCtl));
}
async initNewInstance(queryobj,req){
var rtn={};
var vcode=await this.service.getBusUid("FYD");
rtn.code=vcode;
rtn.sourceType="expensevoucher";
return system.getResult2(rtn,null);
}
async fetchForFinance(pobj,obj,req){
var result= await this.service.fetchForFinance(req.companyid);
return system.getResult2(result);
}
}
module.exports=ExpenseVoucherCtl ;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class FiledownloadCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(FiledownloadCtl));
this.excelClient = system.getObject("util.excelClient");
this.utilstmSve=system.getObject("service.utilstmSve");
}
async download(queryobj,qobj,req){
let id = qobj.code;
var rows = qobj.rows || [];
var code = uuidv4();
var fileName = "data_" + code + ".xlsx";
console.log("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
// console.log(rows);
var biaoti = rows[0];
var index = biaoti.length-1;
if(biaoti.indexOf("商品/服务项")>0){
for (var i = 1; i < rows.length; i++) {
console.log(rows[i]);
var tm= rows[i];
var regist_num=tm[1];
var ncl_one_codesstr=tm[2];
var ncl_one_codes=ncl_one_codesstr.split("类 ")[0];
var sbdata={
reg_num:regist_num,
nclone_code:ncl_one_codes
};
console.log(sbdata);
var qunzutms=await this.utilstmSve.getGroupNclInfo(sbdata);
var spfwxmlist=[];
if(qunzutms.status==0){
qunzutms.data.exist.forEach(function(c){
if(spfwxmlist.findIndex(f => f == c.small_name) < 0){
spfwxmlist.push(c.small_name)
}
});
}
var spfwxm=spfwxmlist.join(",");
if(spfwxm!=""){
rows[i][index]=spfwxm;
console.log(rows[i][index]);
}
console.log(spfwxm);
}
}
console.log("rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr");
console.log(rows);
var param = {
title: "商标查询结果列表",
code : code,
fileName : fileName,
user : {},
rows : rows
}
console.log("pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp");
console.log(param);
this.excelClient.download(param);
return system.getResult2(code);
}
async bycode(queryobj,qobj,req) {
var f = await this.service.findOne({code:(qobj.code || "")});
return system.getResult2(f);
}
}
module.exports=FiledownloadCtl;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class FooterinfoCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(FooterinfoCtl));
}
async fetchCompanyInfo(pobj, obj, req) {
var companyinfo = await this.service.findAll({ company_id: req.companyid });
if (companyinfo && companyinfo.length > 0) {
return system.getResult2(companyinfo[0]);
}
return { status: -100, msg: "暂无信息,请进行填写", bizmsg: "empty" };
}
async createOrUpdate(pobj, obj, req) {
var companyinfo = await this.service.findAll({ company_id: req.companyid });
console.log(companyinfo);
if (companyinfo.length == 0) {
var params = {
companyName: obj.companyname,
serviceTel: obj.servicetel,
cooperationTel: obj.cooperationtel,
address: obj.address,
picUrl: obj.picUrl,
loginUrl: obj.loginUrl,
aboutUs: obj.aboutus,
wxQrCodeUrl: obj.wxQrCodeUrl,
company_id: req.companyid,
icpNum: obj.icpNum,
icpCard:obj.icpCard,
establishmentYear:obj.establishmentYear,
};
var result = await this.service.create(params);
} else {
console.log("---------update---------------");
var params = {
id: companyinfo[0].id,
companyName: obj.companyname,
serviceTel: obj.servicetel,
cooperationTel: obj.cooperationtel,
address: obj.address,
picUrl: obj.picUrl,
loginUrl: obj.loginUrl,
aboutUs: obj.aboutus,
company_id: req.companyid,
wxQrCodeUrl: obj.wxQrCodeUrl,
icpNum: obj.icpNum,
icpCard:obj.icpCard,
establishmentYear:obj.establishmentYear
};
var result = await this.service.update(params);
}
return system.getResult2(result);
}
}
module.exports = FooterinfoCtl;
var System=require("../../system");
var settings=require("../../../config/settings");
var pinyin = require("pinyin");
class ichemingCtl{
constructor(){
this.ichemingUrl=settings.apiconfig.ichemingUrl();
}
async ichemingApi(query,obj){
var result={};
var cityname=obj.cityname;
var keyword=obj.keyword;
var btname=obj.btname;
var orgname=obj.orgname;
var sitcity=obj.sitcity;
var heming ={
"cityname":cityname,
"keyword":keyword,
"btname":btname,
"orgname":orgname,
"sitcity":sitcity
}
var url=this.ichemingUrl;
var rc=System.getObject("util.execClient");
var rtn=null;
try{
rtn=await rc.execPost(heming,url);
var data=JSON.parse(rtn.stdout);
console.log("heming++++++++++++++++++++++++++++++++++++++++++++++++++++++");
console.log(data);
return System.getResult2(data,null);
}catch(e){
console.log(e);
return System.getResult2(result,null);
}
return System.getResult2(result,null);
}
}
module.exports=ichemingCtl;
// var task = new ichemingCtl();
// task.ichemingApi({
// "cityname":"北京",
// "keyword":"白杨",
// "btname":"管理",
// "orgname":"有限公司",
// "sitcity":2
// }).then(d=>{
// console.log("ddddddddddddddddddddddddddddddddddddd");
// console.log(d);
// })
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class IcpCustomerInfoCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(IcpCustomerInfoCtl));
}
}
module.exports=IcpCustomerInfoCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class InvoiceApplyCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(InvoiceApplyCtl));
this.pushmsgWxop = system.getObject("wxop.pushmsgWxop");
this.mailClient = system.getObject("util.mailClient");
this.orderSve = system.getObject("service.orderSve");
}
async submitInvoice(pobj,obj,req){
try {
obj.createuser_id=req.session.user.id;
obj.invoiceContent="知识产权服务费";
obj.invoiceHeadUpType="ent";
obj.company_id=req.companyid;
// var invoiceInfo=await this.service.create(obj);
var result=await this.service.submitInvoice(obj);
if(result && result.code==1 && result.data){
return system.getResult2(result.data);
}else{
return system.getResult2(null,null);
}
// return system.getResult2(invoiceInfo);
} catch (e) {
return system.getResult2(null,null);
}
}
//公众号、邮箱消息推送
async msgSend(invoiceapply_id,user){
var self = this;
this.service.dao.model.findOne({
where:{id:invoiceapply_id},
include:[
{ model: this.service.db.models.company, as: "company", attributes: ["name","domainname"]}
],
raw:true
}).then(invoice=>{
if(invoice && invoice.id && invoice["company.domainname"]){
self.orderSve.dao.model.findOne({
where:{invoiceapply_id:invoice.id},
raw:true
}).then(order=>{
if(order && order.id){
if(invoice.email){
var text="【知圈圈】尊敬的用户,您的商标【"+order.name+"】,订单号【"+order.code+"】的发票已经开出,请您登录『"+invoice['company.domainname']+"』平台,在发票管理处提交邮寄信息。";
self.mailClient.sendMsg(invoice.email, "发票通知", null, text, null, null, []); //发送成功后result的值:250 Data Ok: queued as freedom
}
if(invoice.mobile){
var text="尊敬的用户,您的商标【"+order.name+"】,订单号【"+order.code+"】的发票已经开出,请您登录『"+invoice['company.domainname']+"』平台,在发票管理处提交邮寄信息。";
self.pushmsgWxop.pushMsg({
company_id:user.company_id,mobile:invoice.mobile,title:text,itemName:"申请发票",progress:"已完成"
});
}
}
})
}
}).catch(e=>{
console.log(e);
})
}
async auditExpress(pobj,obj,req){
var user = req.session.user;
var params={
id:obj.id,
invoiceStatus:"finished",
opNotes:obj.opNotes,
auditStatus:"tg",
updator:req.session.user.nickName,
updateuser_id:req.session.user.id,
auditor:req.session.user.nickName,
audituser_id:req.session.user.id
}
var result=await this.service.update(params);
this.msgSend(obj.id,user);//消息推送
return system.getResult2(result,null);
}
//查询订单发票
async findAllOrderInvoice(obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.findAllOrderInvoice(obj);
} catch (e) {
//日志记录
logCtl.error({
optitle: "查询订单发票操作异常error",
op: "/igirl-web/app/base/controller/impl/invoiceApplyCtl.js/findAllOrderInvoice",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作失败" };
}
}else{
return {code:-100,msg:"未知用户"};
}
}
//订单发票提交申请
async orderInvoiceSubmit(pobj,obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.orderInvoiceSubmit(obj);
} catch (e) {
//日志记录
logCtl.error({
optitle: "订单发票提交申请操作异常error",
op: "/igirl-web/app/base/controller/impl/invoiceApplyCtl.js/orderInvoiceSubmit",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作失败" };
}
}else{
return {code:-100,msg:"未知用户"};
}
}
}
module.exports=InvoiceApplyCtl ;
// var task = new InvoiceApplyCtl();
// task.findAllOrderInvoice({},null).then(d=>{
// console.log(d);
// console.log(d.data.length);
// })
\ No newline at end of file
var system = require("../../system")
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class LoopplayCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(LoopplayCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj, req) {
var rtn = {};
var vcode = await this.service.getBusUid("lx");
rtn.code = vcode;
return system.getResult2(rtn, null);
}
async findById(q, oid) {
return super.findById(Number(oid.id));
}
async findByChannelcode(qobj, obj, req) {
if (obj.channelcode == null || obj.channelcode == "" || obj.channelcode == "undefined") {
return { code: -1, msg: "参数channelcode错误" };
}
obj.company_id = req.companyid;
var result = await this.service.findByChannelcode(obj);
return { code: 1, msg: "success", data: result };
}
async findAll2(hostname, themename) {
var lbs = await this.cacheManager["LoopbackCache"].cacheLoopback(hostname, themename);
return lbs;
}
async findAll(queryobj, obj, req) {
var lbs = await this.cacheManager["LoopbackCache"].cacheLoopback(req.hostname, req.theme);
return system.getResult2(lbs, null);
}
async findAndCountAll(queryobj, obj, req) {
obj.codepath = req.codepath;
if (req.companyid && req.companyid != "" && obj.search) {
obj.search.company_id = req.companyid;
}
if (req.session.user) {
obj.uid = req.session.user.id;
obj.appid = req.session.user.app_id;
obj.onlyCode = req.session.user.unionId;
obj.account_id = req.session.user.account_id;
obj.ukstr = req.session.user.app_id + "¥" + req.session.user.id + "¥" + req.session.user.nickName + "¥" + req.session.user.headUrl;
}
var apps = await this.service.findAndCountAll(obj);
return system.getResult2(apps, null);
}
//获取轮播图列表
async getLooppayList(gobj, pobj, req) {
try {
var hostname = req.hostname;
var themename = pobj.theme_name || "";
var loopType = pobj.loop_type || ["PC"];
var returnList = [];
if (loopType.length) {
for (let index = 0; index < loopType.length; index++) {
const element = loopType[index];
if (element) {
var list = await this.cacheManager["LoopbackCache"].cacheLoopback(hostname, themename, loopType);
if (list.length > 0) {
returnList.push.apply(returnList, list);
}
}
}
}
return { code: 1, msg: "ok", data: returnList };
} catch (e) {
return { code: -200, msg: "error", data: [] };
}
}
}
module.exports = LoopplayCtl;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class MoneyAccountCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(MoneyAccountCtl));
this.companySve = system.getObject("service.companySve");
}
async fetchAccountForBoss(qobj, obj, req) {//公司账户列表余额展示-------============XXXX
var result = await this.service.fetchAccountForBoss(req.companyid);
return system.getResult2(result);
}
async findAllByCompanyId(qobj, obj, req) {
var user = req.session.user;
if (!user) {
return { code: -1, msg: "操作失败,用户信息为空" };
}
if (!obj.company_id) {
return { code: -2, msg: "参数错误" };
}
try {
var data = await this.service.findAllByCompanyId(obj.company_id);
return { code: 1, data: data };
} catch (error) {
return { code: -1, msg: "操作失败" };
}
}
async findAll(qobj, obj, req) {
var user = req.session.user;
if (user) {
try {
var data = await this.service.dao.model.findAll({ where: { company_id: user.company_id }, raw: true });
return { code: 1, data: data };
} catch (error) {
return { code: -1, msg: "操作失败" };
}
} else {
return { code: -1, msg: "操作失败,用户信息为空" };
}
}
async findAllOfflineAccount(qobj, obj, req) {
var user = req.session.user;
if (user) {
try {
if (!user.company_id) {
return { code: -3, msg: "company_id参数错误" };
}
var company = await this.companySve.dao.model.findOne({ where: { id: user.company_id, isEnabled: 1 }, raw: true });
if (!company) {
return { code: -2, msg: "操作失败,公司信息为空" };
}
var data = null;
if (company.companyType == "self") {
data = await this.service.dao.model.findAll({ where: { company_id: user.company_id, isOfflinePay: 1 }, 'order': [['created_at', 'ASC']], raw: true });
} else {
data = await this.service.dao.model.findAll({ where: { company_id: 1, isOfflinePay: 1 }, 'order': [['created_at', 'ASC']], raw: true });
}
if (!data) {
return { code: -4, msg: "账户信息不存在" };
}
return { code: 1, data: data };
} catch (error) {
return { code: -1, msg: "操作失败" };
}
} else {
return { code: -1, msg: "操作失败,用户信息为空" };
}
}
}
module.exports = MoneyAccountCtl;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class MoneyJourneyCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(MoneyJourneyCtl));
}
async fetchRecvExpense(qobj, obj, req) {//进十二个月的回款费用变动图---在使用
var result = await this.service.fetchRecvExpense(req.companyid, req.session.user);
return system.getResult2(result);
}
}
module.exports = MoneyJourneyCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class NeedCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(NeedCtl));
this.serviceitemSve=system.getObject("service.serviceitemSve");
}
async submitneed(pobj,obj,req){
var cid = req.companyid;
// if(obj.publisherName==""||obj.publisherName==null||obj.publisherName=="undefined"){
// return {code:-100,msg:"请填写您的姓名"};
// }
if(obj.publisherMobile==""||obj.publisherMobile==null||obj.publisherMobile=="undefined"){
return {code:-100,msg:"请填写您的电话"};
}
// if(obj.province==""||obj.province==null||obj.province=="undefined"){
// return {code:-100,msg:"请选择你所在的省市"};
// }
// if(obj.city==""||obj.city==null||obj.city=="undefined"){
// return {code:-100,msg:"请选择你所在的省市"};
// }
if(obj.notes!=""&&obj.notes!=null&&obj.notes!="undefined"&&obj.notes.length>255){
return {code:-100,msg:"备注字数超出限制,请重新填写"};
}
if(obj.servicecode==""||obj.servicecode==null||obj.servicecode=="undefined"){
return {code:-110,msg:"serviceItem_code参数传递错误"};
}
if(obj.company_id=="" || obj.company_id==null || obj.company_id=="undefined"){
return {code:-111,msg:"company_id参数传递错误"};
}
var serviceInfo=await this.serviceitemSve.findOneByCode(obj.servicecode,cid);
console.log("---------submitneed-----------------serviceInfo-----------");
console.log(serviceInfo);
if(serviceInfo==""||serviceInfo==null){
return {code:-110,msg:"servicecode参数传递错误"};
}
var pobj={
publisherName:obj.publisherName,
publisherMobile:obj.publisherMobile,
servicecode:obj.servicecode,
company_id:obj.company_id,
publisherEnt:obj.entname,
status:"1"
};
var result=await this.service.findchance(pobj);
if(result!=""&&result!=null){
return {code:"0",msg:"您已经发布需求,请不要重复提交"};
}
try{
var reqParams={
publisherName:obj.publisherName,
publisherMobile:obj.publisherMobile,
province:obj.provimce,
city:obj.city,
notes:obj.notes,
servicecode:obj.servicecode,
servicename:serviceInfo.name,
itemType:serviceInfo.itemType,
itemTypeName:serviceInfo.itemTypeName,
status:"1",
company_id:obj.company_id,
};
var need = await this.service.create(reqParams);
return {code:"1",msg:"发布成功"};
}catch(e){
console.log(e);
return {code:"-1",msg:"操作失败,请稍后重试"};
}
}
//提交备注
async submitRemarks(qobj,obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.submitRemarks(obj);
} catch (error) {
return {code:-200,msg:"操作失败"};
}
}else{
return {code:-100,msg:"用户数据为空"};
}
}
}
module.exports=NeedCtl ;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class NewschannelCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(NewschannelCtl));
//this.appS=system.getObject("service.appSve");
}
async findAgreenment(queryobj,qobj,req){
var rd=await this.service.findAgreenment();
return system.getResult2(rd,null);
}
async initNewInstance(queryobj,qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async findPrev5(queryobj,qobj){
var rd=await this.service.findPrev5();
return system.getResult2(rd,null);
}
}
module.exports=NewschannelCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class OkCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(OkCtl));
}
}
module.exports=OkCtl ;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class PConfigCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(PConfigCtl));
this.cacheManager=system.getObject("db.cacheManager");
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj,qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async getConfigValue(obj,req){
var configType=obj.configType;
var pconfig=await this.cacheManager["PConfigCache"].cachePConfig();
var result= pconfig.find(item => {
return item.configType === configType;
});
return result;
}
}
module.exports=PConfigCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class PmFollowCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(PmFollowCtl));
}
async create(queryobj,qobj,req){
if(req && req.session && req.session.user){
var userinfo=req.session.user;
qobj.follower_id=userinfo.id;
}
var objrtn= await super.create(queryobj,qobj,req);
return objrtn;
}
}
module.exports=PmFollowCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class PmProductCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(PmProductCtl));
}
}
module.exports=PmProductCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class PmProjectCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(PmProjectCtl));
}
}
module.exports=PmProjectCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class PmQuestionCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(PmQuestionCtl));
}
async fetchQuestionForDev(pobj,obj,req){
var result= await this.service.fetchQuestionForDev(req.companyid);
return system.getResult2(result);
}
async create(queryobj,qobj,req){
if(req && req.session && req.session.user){
var userinfo=req.session.user;
qobj.subber_id=userinfo.id;
}
var objrtn= await super.create(queryobj,qobj,req);
return objrtn;
}
}
module.exports=PmQuestionCtl ;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class ProducttypeCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(ProducttypeCtl));
this.companySve = system.getObject("service.companySve");
}
async initNewInstance(queryobj, req) {
var rtn = {};
var vcode = await this.service.getBusUid("lx");
rtn.code = vcode;
return system.getResult2(rtn, null);
}
//通过大类ip获取产品类型列表中的大类名称---暂时没有用到
async getProductType(obj, req) {
if (req) {
try {
if (req.pid == 0) {
return { code: -100, msg: "大类", name: "大类" };
}
var result = await this.service.getTypeOneByCompanyId(req, 1);
if (result && result.code == 1 && result.data.length > 0) {
var index = result.data.findIndex(f => f.id == req.pid);
if (index >= 0) {
return { code: 1, name: result.data[index].name, msg: "ok" };
}
}
return { code: -100, msg: "暂无信息", name: "---" };
} catch (error) {
return { code: -200, msg: "操作失败" };
}
} else {
return { code: -101, msg: "参数错误" };
}
}
//获取产品一类列表及其产品---代下其他订单使用
async getTypeOneByCompanyId(obj, req) {
var user = req.session.user;
if (user) {
obj["company_id"] = user.company_id;
try {
var list = await this.service.getTypeOneByCompanyId(obj, 3);
return list;
} catch (error) {
return { code: -100, msg: "操作失败" };
}
} else {
return { code: -101, msg: "用户数据为空" };
}
}
//获得某一公司下的产品大类信息
async getProductTypeList(gobj, pobj, req) {
try {
logCtl.error({
optitle: "获得某一公司下的产品大类信息===req",
op: "/igirl-web/app/base/controller/impl/producttypeCtl.js/getProductTypeList",
content: req.companyid+"++++"+req.hostname,
clientIp: ""
});
var companyId = req.companyid || "";
var hostname = req.hostname;
if (!companyId) {
var item = await this.companySve.getCompanyByHostname(hostname);
if (item) {
companyId = item.id;
}
}
pobj["company_id"] = companyId;
logCtl.error({
optitle: "获得某一公司下的产品大类信息===pobj",
op: "/igirl-web/app/base/controller/impl/producttypeCtl.js/getProductTypeList",
content: JSON.stringify(pobj),
clientIp: ""
});
return await this.service.getTypeOneByCompanyId(pobj, 1);
} catch (e) {
logCtl.error({
optitle: "获得某一公司下的产品大类信息===error",
op: "/igirl-web/app/base/controller/impl/producttypeCtl.js/getProductTypeList",
content: "obj=" + JSON.stringify(pobj) + ",error=" + e.stack,
clientIp: ""
});
return { code: -200, msg: "接口异常" };
}
}
//通过大类code获取产品列表
async getProductList(gobj, pobj, req) {
try {
var companyId = req.companyid || "";
var hostname = req.hostname;
var typeCode = pobj.type_code || "";
if (!typeCode) {
return { code: -102, msg: "type_code参数错误" };
}
if (!companyId) {
var item = await this.companySve.getCompanyByHostname(hostname);
if (item) {
companyId = item.id;
}
}
pobj["company_id"] = companyId;
pobj["typeCode"] = typeCode;
return await this.service.getTypeOneByCompanyId(pobj, 2);
} catch (e) {
logCtl.error({
optitle: "获得某一公司下的产品大类信息===error",
op: "/igirl-web/app/base/controller/impl/producttypeCtl.js/getProductTypeList",
content: "obj=" + JSON.stringify(pobj) + ",error=" + e.stack,
clientIp: ""
});
return { code: -200, msg: "接口异常" };
}
}
//获得某一公司下的所有服务信息
async getAllProducts(obj, req) {
try {
var companyId = req.companyid || "";
var hostname = req.hostname;
if (!companyId) {
var item = await this.companySve.getCompanyByHostname(hostname);
if (item) {
companyId = item.id;
}
}
return await this.service.getAllProducts({companyId:companyId});
} catch (e) {
logCtl.error({
optitle: "获得某一公司下的所有服务信息===error",
op: "/igirl-web/app/base/controller/impl/producttypeCtl.js/getAllProducts",
content: "obj=" + JSON.stringify(pobj) + ",error=" + e.stack,
clientIp: ""
});
return { code: -200, msg: "接口异常" };
}
}
}
module.exports = ProducttypeCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class ReceiptVoucherCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(ReceiptVoucherCtl));
}
async initNewInstance(queryobj,req){
var rtn={};
var vcode=await this.service.getBusUid("SKD");
rtn.code=vcode;
rtn.sourceType="receiptvoucher";
return system.getResult2(rtn,null);
}
}
module.exports=ReceiptVoucherCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class regionareaCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(regionareaCtl));
}
}
module.exports=regionareaCtl ;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class RoleCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(RoleCtl));
//this.appS=system.getObject("service.appSve");
}
async initNewInstance(queryobj,req){
return system.getResult2({},null);
}
}
module.exports=RoleCtl;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class ServiceitemCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(ServiceitemCtl));
this.producttypeSve = system.getObject("service.producttypeSve");
this.companyS = system.getObject("service.companySve");
}
async initNewInstance(queryobj, req) {
var rtn = {};
var vcode = await this.service.getBusUid("cp");
rtn.code = vcode;
return system.getResult2(rtn, null);
}
async getAllForOrder(pobj, obj, req) {
var companyId = obj.company_id || "";
let list = await this.service.findAll({ company_id: companyId, isPubed: true });
console.log(list);
if (list.length == 0) {
return system.getResult2(list);
}
var resultData = [];
for (var item of list) {
if (item && item.code != "dlrfzzc" && item.code != "zzsbzc" && item.code != "dbsbzc" && item.itemType) {
var findIndex = resultData.findIndex(f => f.itemType == item.itemType);
if (findIndex < 0) {
var addData = {
itemType: item.itemType,
itemTypeName: item.itemTypeName,
productList: []
};
addData.productList.push(item);
resultData.push(addData);
} else {
resultData[findIndex].productList.push(item);
}
}
}
return system.getResult2(resultData);
}
async getRecommendProducts(pobj, obj, req) {
var companyId = req.companyid || "";
let list = await this.service.findAll({ company_id: companyId, isRecommend: '1', isPubed: true });
if (list.length == 0) {
return system.getResult2(list);
}
let itemMap = new Array();
for (var item of list) {
var l = itemMap[item.itemType];
if (!l) {
l = {
itemType: item.itemType,
itemTypeName: item.itemTypeName,
productList: []
};
}
l.productList.push(item);
itemMap[item.itemType] = l;
}
let result = [];
for (var idx in itemMap) {
result.push(itemMap[idx]);
}
return system.getResult2(result);
}
async getAllProducts2(gobj, pobj, req) {
try {
var companyId = req.companyid || "";
var hostname = req.hostname;
//按照hostname去查找公司站点信息
if(companyId==""){
var companytmp = await this.companyS.findOne({ domainname: hostname, isEnabled: true });
companyId=companytmp.id;
}
var tbDataList = await this.cacheManager["ProductListCache"].getProductListByCache(companyId);
return tbDataList;
} catch (e) {
logCtl.error({
optitle: "获取产品错误===error",
op: "/controller/impl/serviceitemCtl.js/getAllProducts",
content: "obj=" + JSON.stringify(pobj) + ",error=" + e.stack,
clientIp: ""
});
}
return null;
}
async getAllProducts(gobj, pobj, req) {
try {
var companyId = req.companyid || "";
var hostname = req.hostname;
// console.log("xccccccccccccccccccccccccccccccccccccccc", hostname);
//按照hostname去查找公司站点信息
if(companyId==""){
var companytmp = await this.companyS.findOne({ domainname: hostname, isEnabled: true });
companyId=companytmp.id;
}
var tbDataList = await this.cacheManager["ProductListCache"].getProductListByCache(companyId);
return system.getResult2(tbDataList);
} catch (e) {
logCtl.error({
optitle: "获取产品错误===error",
op: "/controller/impl/serviceitemCtl.js/getAllProducts",
content: "obj=" + JSON.stringify(pobj) + ",error=" + e.stack,
clientIp: ""
});
return system.getResult2(null);
console.log(e, "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++error ");
} finally {
}
}
async findOneByCode(obj, req) {
var code = obj.code;
// var user = req.session.user;
if (!code) {
return { code: -1, msg: "code参数错误" };
}
if (!req.companyid) {
return { code: -2, msg: "未知的站点" };
}
try {
var data = await this.service.findOneByCode(code, req.companyid);
return { code: 1, data: data };
} catch (error) {
return { code: -200, msg: "操作失败" };
}
}
async findOneById(obj, req) {
var id = obj.id;
if (!id) {
return { code: -1, msg: "产品id参数错误" }
}
try {
var rd = await this.service.findById(id);
return { code: 1, data: rd };
} catch (e) {
//日志记录
logCtl.error({
optitle: "查询商机信息findOneById异常error",
op: "base/controller/impl/serviceitemCtl.js",
content: e.stack,
clientIp: ""
});
return { code: -100, msg: "获取产品失败" };
}
}
//获取推荐产品(6条)
async findByCompany(gobj, pobj, req){
try {
var companyId = req.companyid || "";
var hostname = req.hostname;
//按照hostname去查找公司站点信息
if(companyId==""){
var companytmp = await this.companyS.findOne({ domainname: hostname, isEnabled: true });
companyId=companytmp.id;
}
var lists = await this.service.findByCompany(companyId)
if (lists.count == 0){
var lists = await this.service.findByCompany("1")
}
return system.getResult2(lists);
} catch (e) {
logCtl.error({
optitle: "获取推荐产品错误===error",
op: "/controller/impl/serviceitemCtl.js/findByCompany",
content: "obj=" + JSON.stringify(pobj) + ",error=" + e.stack,
clientIp: ""
});
return system.getResult2(null);
}
}
}
module.exports = ServiceitemCtl;
// var test = new ServiceitemCtl();
// test.findByCompany(null,null,null).then(function(d){
// console.log("ddddddddddddddddddddddddddddddddddddddddd");
// console.log(d);
// })
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class SiteThemeCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(SiteThemeCtl));
}
async getTheme(qobj, pobj, req) {
try {
var sitetheme = pobj.siteTheme || "";
if (!req.session.user) {
return { code: -100, msg: "用户未登录" }
}
if (!sitetheme) {
return { code: -101, msg: "主题参数有误" }
}
return await this.service.getThemeBySitetheme(sitetheme);
} catch (e) {
//日志记录
logCtl.error({
optitle: "查询主题异常error",
op: "/base/controller/impl/sitethemeCtl.js/getTheme",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作异常" }
}
}
}
module.exports = SiteThemeCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class SystemregistCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(SystemregistCtl));
//this.appS=system.getObject("service.appSve");
}
async submitNeed(pobj,obj){
var name = obj.name;
var mobile = obj.mobile;
if(!name){
return {code:-1,msg:"name参数错误"};
}
if(!mobile){
return {code:-2,msg:"mobile参数错误"};
}
var submitObj={
name:name,mobile:mobile,notes:obj.textarea || ""
};
try {
var data = await this.service.dao.create(submitObj);
return {code:1,data:data};
} catch (error) {
return {code:-200,msg:"操作失败"};
}
}
}
module.exports=SystemregistCtl;
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class TaskCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(TaskCtl));
}
async restartTasks(queryobj,qobj){
var result=await this.service.restartTasks(qobj);
return system.getResult2(result,null);
}
async restartTasks2(queryobj,qobj){
var result=await this.service.restartTasks2(qobj);
return system.getResult2(result,null);
}
async initNewInstance(queryobj,qobj){
var u=uuidv4();
var aid=u.replace(/\-/g,"");
var rd={name:"",appid:aid}
return system.getResult2(rd,null);
}
async makerpt(queryobj,qobj){
var result=await this.service.makerpt(qobj);
return system.getResult2(result,null);
}
}
module.exports=TaskCtl;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class TestCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(TestCtl));
}
}
module.exports=TestCtl ;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class TmOfficialCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(TmOfficialCtl));
}
async findAndCountAll(obj, pobj, req) {
pobj["user"] = req.session.user;
pobj.codepath = req.codepath;
if (req.codepath.indexOf("pmg") < 0 && req.companyid && req.companyid != "" && pobj.search) {
pobj.search.company_id = req.companyid;
}
var apps = await this.service.findAndCountAll(pobj);
return system.getResult2(apps, null);
}
async putReturnReceip(queryobj, obj, req) {
var user = req.session.user;
var officialype = obj.officialype;
var dataList = obj.urlList;
if (user == null) {
return { code: "-100", msg: "用户未登录" };
}
if (dataList == null || dataList.length == 0) {
return { code: "-110", msg: "参数有误" };
}
if (dataList.length > 1000) {
return { code: "-120", msg: "抱歉,一次只能选择1000个文件进行状态更新" };
}
return await this.service.setReturnReceip(user, dataList, officialype);
}
async batchDownload(queryobj, obj, req) {
var user = req.session.user;
var selectedRows = obj.selectedRows;
if (user == null) {
return { code: "-100", msg: "用户未登录" };
}
if (selectedRows == null || selectedRows.length == 0) {
return { code: "-110", msg: "参数有误" };
}
if (selectedRows.length > 20) {
return { code: "-120", msg: "抱歉,一次只能选择20个文件进行批量下载" };
}
try {
return await this.service.batchDownload(user, selectedRows);
} catch (e) {
// console.log(e.stack);
//日志记录
logCtl.error({
optitle: "Ctl批量下载操作异常error",
op: "/igirl-web/app/base/controller/impl/tmofficialCtl.js/opDownFileInfo",
content: "异常信息error:" + e.stack,
clientIp: ""
});
return { code: -200, msg: "Ctl批量下载操作异常" }
}
}
//官文列表检索
async findAllOfficial(obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.findAllOfficial(obj);
} catch (e) {
//日志记录
logCtl.error({
optitle: "官文列表检索操作异常error",
op: "/igirl-web/app/base/controller/impl/tmofficialCtl.js/findAllOfficial",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作失败" };
}
}else{
return {code:-100,msg:"未知用户"};
}
}
//官文邮寄申请
async tmOfficialPostApply(pobj,obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.tmOfficialPostApply(obj);
} catch (e) {
//日志记录
logCtl.error({
optitle: "官文邮寄申请操作异常error",
op: "/igirl-web/app/base/controller/impl/tmofficialCtl.js/tmOfficialPostApply",
content: e.stack,
clientIp: ""
});
return { code: -200, msg: "操作失败" };
}
}else{
return {code:-100,msg:"未知用户"};
}
}
}
module.exports = TmOfficialCtl;
// var task = new TmOfficialCtl();
// task.findAllOfficial({},null).then(d=>{
// console.log(d);
// console.log(d.data.length);
// })
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class TmStuffCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(TmStuffCtl));
}
}
module.exports=TmStuffCtl ;
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class TradeMarkCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(TradeMarkCtl));
}
}
module.exports=TradeMarkCtl ;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
var xlsx = require('node-xlsx');
var fs = require("fs");
class TrademarktransactionneedCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(TrademarktransactionneedCtl));
this.uploadCtl = system.getObject("web.uploadCtl");
}
async findAndCountAll(queryobj, obj, req) {
obj.codepath = req.codepath;
if (req.session.user) {
obj.uid = req.session.user.id;
obj.company_id = req.session.user.company_id;
}
if (req.codepath.indexOf("pmg") < 0 && req.companyid && req.companyid != "" && obj.search) {
if(obj.company_id){
obj.search.company_id = obj.company_id;
}
}
var apps = await this.service.findAndCountAll(obj);
return system.getResult2(apps, null);
}
async submitNeed(pobj,obj,req){
try {
return this.service.submitNeed(obj);
} catch (error) {
return {code:-1,msg:"操作失败"};
}
}
}
module.exports = TrademarktransactionneedCtl;
// var task = new TrademarktransactionCtl();
// task.excelCreate(null,{srckey:"25FftSH0MWN5_1552992588799.xlsx"},null).then(d=>{
// console.log("ddddddddddddddddddddddddddddddddddddd");
// console.log(d);
// })
var system=require("../../system")
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const uuidv4 = require('uuid/v4');
class TransactionspecialperformanceCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(TransactionspecialperformanceCtl));
this.companyS = system.getObject("service.companySve");
//this.appS=system.getObject("service.appSve");
}
async findAndCountAll(queryobj, obj, req) {
obj.codepath = req.codepath;
if (req.session.user) {
obj.uid = req.session.user.id;
}
if (req.codepath.indexOf("pmg") < 0 && req.companyid && req.companyid != "" && obj.search) {
obj.search.createcompany_id = req.companyid;
}
var apps = await this.service.findAndCountAll(obj);
return system.getResult2(apps, null);
}
async create(queryobj, qobj, req) {
if (req && req.codepath) {
qobj.codepath = req.codepath;
}
if (req && req.companyid && req.companyid != "") {
qobj.createcompany_id = req.companyid;
}
if (req && req.session && req.session.user) {
var userinfo = req.session.user;
qobj.creator = userinfo.nickName;
qobj.createuser_id = userinfo.id;
}
var vcode = await this.service.getBusUid("tsf");
qobj["code"]=vcode;
if(!qobj.orderNo){
qobj["orderNo"]=1;
}
await this.clearProductCache(qobj.company_id, qobj.codepath, qobj);
var rd = await this.service.create(qobj);
return system.getResult2(rd, null);
}
async update(queryobj, qobj, req) {
if (req.codepath) {
qobj.codepath = req.codepath;
}
if (req && req.companyid && req.companyid != "") {
qobj.createcompany_id = req.companyid;
}
await this.clearProductCache(qobj.company_id, qobj.codepath, qobj);
qobj.updator = qobj.nickName;
qobj.updateuser_id = qobj.id;
var rd = await this.service.update(qobj);
return system.getResult2(rd, null);
}
//更改发布状态
async changePublishStatus(qobj,obj,req){
var user = req.session.user;
if(user){
obj["user"]=user;
try {
return this.service.changePublishStatus(obj);
} catch (error) {
return {code:-200,msg:"操作失败"};
}
}else{
return {code:-100,msg:"用户数据为空"};
}
}
//获取专场数据(通过站点主题)
async getSpecialPerformanceBySiteTheme(obj,req){
if(!obj.company_id){
//获取当前域名
var hostname = req.hostname;
// console.log("xccccccccccccccccccccccccccccccccccccccc", hostname);
//按照hostname去查找公司站点信息
var companytmp = await this.companyS.findOne({ domainname: hostname, isEnabled: true });
if(companytmp){
obj.company_id=companytmp.id;
}
}
try {
return this.service.getSpecialPerformanceBySiteTheme(obj);
} catch (error) {
return {code:-200,msg:"操作失败"};
}
}
}
module.exports=TransactionspecialperformanceCtl;
// var task = new TransactionspecialperformanceCtl();
// var obj={company_id:4,siteTheme:"autumn",limit:4};
// task.getSpecialPerformanceBySiteTheme(obj).then(d=>{
// console.log("dddddddddddddddddddddddddddd");
// console.log(d);
// });
\ No newline at end of file
var system=require("../../system")
const http=require("http")
const querystring = require('querystring');
var settings=require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl=system.getObject("web.oplogCtl");
class UserAddrCtl extends CtlBase{
constructor(){
super(CtlBase.getServiceName(UserAddrCtl));
}
//获取当前登录人所有地址
async fetchAllAddress(pobj,obj,req){
var result=await this.service.fetchAllAddress(
req.companyid ,req.session.user.id,
);
return system.getResult2(result);
}
//新增地址
async createAddress(pobj,gobj,req){
var result = {
code: 1,
msg: "ok",
data:{}
};
try {
// var count=await this.service.findCount({
// where: {company_id: req.companyid ,createuser_id: req.session.user.id}
// });
var lists=await this.service.fetchAllAddress(
req.companyid ,req.session.user.id,
);
if (lists.length> 19) {
result.code = -100;
result.msg = "用户地址已达上限20个!";
return result;
}
for (var i=0;i<lists.length;i++){
if(lists[i].isDefault == "1"){
result.code = -100;
result.msg = "用户默认地址只能有一个!";
return result;
}
}
super.create(pobj,gobj,req);
result.data = gobj
return result;
} catch (e) {
//日志记录
logCtl.error({
optitle: "新增地址出错---error",
op: "/igirl-web/app/base/controller/impl/useraddrCtl.js/createAddress",
content: e.stack,
clientIp: req.clientIp
});
}
}
//修改地址
async updateAddress(pobj,gobj,req){
var result = {
code: 1,
msg: "ok",
data:{}
};
try {
var user = req.session.user;
await this.service.updateByWhere({
name: gobj.nick_name ,mobile: gobj.nick_mobile,address: gobj.nick_address,email: gobj.nick_email,isDefault: gobj.nick_isDefault}, {
where:{createuser_id: user.id ,id: gobj.addressid}
});
result.data = gobj;
return result;
} catch (e) {
//日志记录
logCtl.error({
optitle: "修改地址出错---error",
op: "/igirl-web/app/base/controller/impl/useraddrCtl.js/updateAddress",
content: e.stack,
clientIp: req.clientIp
});
}
}
}
module.exports=UserAddrCtl ;
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class WeblinkCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(WeblinkCtl));
}
async initNewInstance(queryobj, req) {
var rtn = {};
var vcode = await this.service.getBusUid("wl");
rtn.code = vcode;
return system.getResult2(rtn, null);
}
async refQuery(queryobj, qobj, req) {
//不是超级管理员,参照需要添加公司查询条件
// if(req.session && req.session.user && !req.session.user.isSuper){
//判断是否考虑数据权限
if (qobj.datapriv && req.session && req.session.user) {
var uid = req.session.user.id;
var authtmp = await this.dataprivS.findOne({ user_id: uid, modelname: this.service.dao.modelName });
if (authtmp) {
var auths = authtmp.auths;
var arys = auths.split(",");
qobj.datapriv = arys;
}
}
var rd = await this.service.refQuery(qobj);
return system.getResult2(rd, null);
}
//商标报告统计数据
}
module.exports = WeblinkCtl;
var System=require("../../system")
const crypto = require('crypto');
const querystring = require('querystring');
var xlsx = require('node-xlsx');
var fs=require("fs");
var accesskey='DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId='LTAIyAUK8AD04P5S';
var settings=require("../../../config/settings");
const logCtl = System.getObject("web.oplogCtl");
class WxCtl{
constructor(){
this.imghandleApi=System.getObject("api.imghandle");
this.gsbSearchApi=System.getObject("api.gsbtmsearch");
this.gsbIcSearchApi=System.getObject("api.gsbicsearch");
this.uploadCtl=System.getObject("web.uploadCtl");
this.bytmsearch=System.getObject("api.bytmsearch");
this.ossClient=System.getObject("util.ossClient");
this.wxSve = System.getObject("service.wxSve");
this.cacheManager = System.getObject("db.cacheManager");
this.restS = System.getObject("util.restClient");
this.orderSve = System.getObject("service.orderSve");
}
async getUidStr(len, radix) {
    var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
    var uuid = [], i;
    radix = radix || chars.length;
    if (len) {
      for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random()*radix];
    } else {
      var r;
      uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
      uuid[14] = '4';
      for (i = 0; i < 36; i++) {
        if (!uuid[i]) {
          r = 0 | Math.random()*16;
          uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r];
        }
      }
    }
    return uuid.join('');
}
//创建微信付款订单(用于h5端微信支付)
async createWxJsUnifiedOrder(obj, pobj, req) {
console.log("orderPay++++++++++++++++++++++++++++++++++++++++");
console.log(pobj);
var result = null;
if (pobj) {
var orderInfo = pobj.order;
if(!orderInfo || !orderInfo.code){
return {code:-1,msg:"订单参数错误"};
}
var order = await this.orderSve.findOneByCode(orderInfo.code);
if(order ){
if (order.orderPayStatus != "dfk") {
return {code:-100,msg:"当前订单状态为:"+order.orderPayStatusName+",请勿操作"};
}
var user = req.session.user;
var notify_url = "http://igirl.gongsibao.com/wx/pay";
var desc = order.sveItemName;
var amount = order.totalSum;
var product_id = order.sveItemCode;
var openid =pobj.openid;
var attach = order.code+";"+order.createuser_id;
console.log("attach++++++++++++++++++++++++++");
console.log(attach);
try {
result = await this.wxSve.createJsUnifiedOrder(desc, amount, notify_url, product_id, openid, attach, null);
return {code:1,data:result};
} catch (error) {
return {code:-200,msg:"操作失败",error:error};
}
}else{
return {code:-2,msg:"该订单不存在"};
}
}else{
return {code:-3,msg:"参数错误"};
}
}
//创建微信付款订单(用于PC端微信支付)
async createWxUnifiedOrder(queryobj,qobj,req){
var fillamount=Number(qobj.amount);
var desc=qobj.desc;
var orderInfo = qobj.order;
if(!orderInfo || !orderInfo.code){
return {code:-1,msg:"订单参数错误"};
}
var order = await this.orderSve.findOneByCode(orderInfo.code);
if(!order){
return {code:-2,msg:"订单不存在"};
}
if (order.orderPayStatus != "dfk") {
return {code:-100,msg:"当前订单状态为:"+order.orderPayStatusName+",请勿操作"};
}
var webuseropenid=order.code+";"+order.createuser_id;
try{
var result= await this.wxSve.createUnifiedOrder(desc,fillamount,'http://igirl.gongsibao.com/wx/pay',-1,webuseropenid);
console.log(result);
//充值下单成功后初始化业务锁
this.cacheManager["CacheLocker"].init(result.out_trade_no);
return {code:1,data:result};
}catch(e){
return {code:-200,msg:"操作失败",error:e};
}
}
//关闭微信订单
async closeWxOrder(queryobj,qobj){
var tradekey=qobj.idkey;
var result=await this.wxSve.closeWxOrder(tradekey);
return System.getResult2(result,null);
}
//微信Oauth认证
async fetchOAuthPath(q,obj,req){
var subfixstr=obj.subfix;
if(subfixstr==""){
subfixstr=null;
}
try {
var result=await this.wxSve.fetchWxOAuthPath(subfixstr);
return System.getResult2(result,null);
} catch (error) {
console.log(error);
return null;
}
}
//通过code换取网页授权access_token
async getToken(obj,req) {
console.log(111111);
var code = obj.code;
var state = obj.state;
if(!code){
return {code:-1,msg:"code参数错误"};
}
if(!state){
state="";
}
var reqUrl = 'https://api.weixin.qq.com/sns/oauth2/access_token';
console.log(reqUrl);
var params = {
appid: "wx4c91e81bbb6039cd",
secret: "12048e66dba64f2581e02b306680b232",
code: code,
grant_type: 'authorization_code'
};
console.log(params);
var data=querystring.stringify(params);
try {
console.log(111);
var rtn=await this.restS.execGet(data,reqUrl);
console.log(2222);
var data = JSON.parse(rtn.stdout);
console.log(333);
return {code:1,data:data};
} catch (error) {
return {code:-1,msg:"获取openid失败",error:error};
}
}
//获取支付的订单
async getPaidOrder(obj, req) {
var orderNum = obj.orderNum;
console.log(orderNum);
try {
var order = await this.orderSve.dao.model.findOne({ where: { code: orderNum } });
if (order.orderPayStatus == "yfk") {
console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
return {code:1,data:order};
} else {
return {code:-1, msg: "fail" };
}
} catch (e) {
logCtl.error({
optitle: "获取支付的订单异常error",
op: "base/controller/impl/wxCtl.js/getPaidOrder",
content: JSON.stringify(obj)+";"+JSON.stringify(e.stack),
clientIp: ""
});
return { code:-2, msg: "err" };
}
}
async getJsApiConfig(q,obj){
console.log("getJsApiConfig.......................");
console.log(obj.url);
var result=await this.wxSve.getJsApiConfig(null,obj.url);
return System.getResult2(result,null);
}
}
module.exports=WxCtl;
// var test = new WxCtl();
// var obj = {
// orderNum:"TMO201903271138qmKnk"
// };
// test.getPaidOrder(obj,{}).then(function(d){
// console.log("dddddddddddddddddddd");
// console.log(d);
// })
var system = require("../../system")
const http = require("http")
const querystring = require('querystring');
var settings = require("../../../config/settings");
const CtlBase = require("../ctl.base");
const logCtl = system.getObject("web.oplogCtl");
class wxappCtl extends CtlBase {
constructor() {
super(CtlBase.getServiceName(wxappCtl));
this.userSve = system.getObject("service.userSve");
this.companySve = system.getObject("service.companySve");
}
async getWxappInfo(obj,req){
var user = req.session.user;
if(user && user.company_id){
try {
var wxapp = await this.service.dao.model.findOne({
where:{company_id:user.company_id,authorized_status:"authorized"},
attributes: ["id", "appid", "authorized_status", "authorized_status_name", "nick_name","head_img","principal_name","qrcode_url"],
raw:true
});
if(wxapp && wxapp.id){
return {code:1,data:wxapp};
}else{
return {code:-1,msg:"未知公众号"};
}
} catch (e) {
return {code:-200,msg:"操作失败",errMsg:e.stack};
}
}else{
return {code:-100,msg:"用户未登录"};
}
}
}
module.exports = wxappCtl;
const system = require("../../system");
const settings = require("../../../config/settings");
function exp(db, DataTypes) {
var base = {
name: DataTypes.STRING(1000),
code: {
type: DataTypes.STRING(50),
unique: true
},
};
return base;
}
module.exports = exp;
const system = require("../../system");
const settings = require("../../../config/settings");
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
function exp(db, DataTypes) {
var base = {
//继承的表引用用户信息user_id
code: DataTypes.STRING(100),
name: DataTypes.STRING(500),
sveItemCode: DataTypes.STRING(100),//项目操作码
sveItemName: DataTypes.STRING(100),//项目名称
mobilePic: DataTypes.STRING,//移动端产品图片
producttype_id: DataTypes.INTEGER,//产品小类Id
serviceItemSnapshot: DataTypes.TEXT,//产品快照-serviceitem服务项目表-JSON
channelProfitRate: {//渠道利润分成比率(只分订单中毛利润总额的分成)
type: DataTypes.DECIMAL(12, 2),
defaultValue: 0,
},
sveItemRateConfig: {//产品费率
type: DataTypes.DECIMAL(12, 2),
defaultValue: 7.00,
},
sveDiscountsRateConfig: {//优惠税率
type: DataTypes.DECIMAL(12, 2),
defaultValue: 0,
},
opNotes: DataTypes.STRING(500),//操作备注
sourceTypeName: DataTypes.STRING(50),
sourceType: {//来源类型 "order": "订单","expensevoucher": "费用单","receiptvoucher": "收款单", "trademark": "商标单"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.source_type),
set: function (val) {
this.setDataValue("sourceType", val);
this.setDataValue("sourceTypeName", uiconfig.config.pdict.source_type[val]);
}
},
sourceOrderNo: DataTypes.STRING(100),//来源单号
};
return base;
}
module.exports = exp;
const system = require("../../system");
const settings = require("../../../config/settings");
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
function exp(db, DataTypes) {
var base = {
//继承的表引用用户信息user_id
code: DataTypes.STRING(100),
name: DataTypes.STRING(500),
creator: DataTypes.STRING(100),//创建者
updator: DataTypes.STRING(100),//更新者
auditor: DataTypes.STRING(100),//审核者
opNotes: DataTypes.STRING(500),//操作备注
auditStatusName: {
type:DataTypes.STRING(50),
defaultValue:"待审核",
},
auditStatus: {//审核状态"dsh": "待审核", "btg": "不通过", "tg": "通过"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.audit_status),
set: function (val) {
this.setDataValue("auditStatus", val);
this.setDataValue("auditStatusName", uiconfig.config.pdict.audit_status[val]);
},
defaultValue:"dsh",
},
sourceTypeName: DataTypes.STRING(50),
sourceType: {//来源类型 "order": "订单","expensevoucher": "费用单","receiptvoucher": "收款单", "trademark": "商标单"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.source_type),
set: function (val) {
this.setDataValue("sourceType", val);
this.setDataValue("sourceTypeName", uiconfig.config.pdict.source_type[val]);
}
},
sourceOrderNo: DataTypes.STRING(100),//来源单号
};
return base;
}
module.exports = exp;
const system = require("../../system");
const settings = require("../../../config/settings");
const uiconfig = system.getUiConfig2(settings.wxconfig.appId);
function exp(db, DataTypes) {
var base = {
//继承的表引用用户信息user_id
code: DataTypes.STRING(100),
name: DataTypes.STRING(500),
opNotes: DataTypes.STRING(500),//操作备注
sourceTypeName: DataTypes.STRING(50),
sourceType: {//来源类型 "order": "订单","expensevoucher": "费用单","receiptvoucher": "收款单", "trademark": "商标单"
type: DataTypes.ENUM,
values: Object.keys(uiconfig.config.pdict.source_type),
set: function (val) {
this.setDataValue("sourceType", val);
this.setDataValue("sourceTypeName", uiconfig.config.pdict.source_type[val]);
}
},
sourceOrderNo: DataTypes.STRING(100),//来源单号
};
return base;
}
module.exports = exp;
const system=require("../system")
class CacheBase{
constructor(){
this.redisClient=system.getObject("util.redisClient");
this.desc="请在子类中定义本缓存的说明!"
}
}
module.exports=CacheBase;
const CacheBase=require("../cache.base");
const system=require("../../system");
class CacheLocker extends CacheBase{
constructor(){
super();
this.prefix="locker_";
}
async init(tradekey){
const key=this.prefix+tradekey;
return this.redisClient.rpushWithEx(key,"1",1800);
}
async enter(tradekey){
const key=this.prefix+tradekey;
return this.redisClient.rpop(key);
}
async release(tradekey){
const key=this.prefix+tradekey;
return this.redisClient.rpushWithEx(key,"1",1800);
}
}
module.exports=CacheLocker;
const CacheBase = require("../cache.base");
const system = require("../../system");
class ZxPayLocker extends CacheBase {
constructor() {
super();
this.prefix = "zxPayLocker:";
}
async init(tradekey) {
const key = this.prefix + tradekey;
return this.redisClient.rpushWithEx(key, "1", 1800);
}
async enter(tradekey) {
const key = this.prefix + tradekey;
return this.redisClient.rpop(key);
}
async release(tradekey) {
const key = this.prefix + tradekey;
return this.redisClient.rpushWithEx(key, "1", 1800);
}
}
module.exports = ZxPayLocker;
const CacheBase = require("../cache.base");
const system = require("../../system");
class ZxPayQrCodeCache extends CacheBase {
constructor() {
super();
this.prefix = "zxPayQrCode:";
this.bytmresultDao = system.getObject("db.bytmresultDao");
}
async delCache(tradekey, comanyId, opType) {
const key = this.prefix + tradekey + "_" + comanyId + "_" + opType;
await this.redisClient.delete(key);
}
async setList(tradekey, comanyId, opType, values) {
const key = this.prefix + tradekey + "_" + comanyId + "_" + opType;
this.redisClient.setWithEx(key, values, 5400);//单位秒(此处为1个半小时)
}
async getListByCache(tradekey, comanyId, opType) {
const key = this.prefix + tradekey + "_" + comanyId + "_" + opType;
var cachedVal = await this.redisClient.get(key);
if (cachedVal && cachedVal != "undefined") {
return cachedVal;
} else {
return null;
}
}
}
module.exports = ZxPayQrCodeCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存首次登录的赠送的宝币数量
class AppCache extends CacheBase{
constructor(){
super();
this.prefix="g_appkey_";
this.appDao=system.getObject("db.appDao");
}
async cacheApp(appkey){
const key=this.prefix+appkey;
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined"){
console.log("uiconfig no cache....");
const configValue=await this.appDao.findOne(appkey);
var s=JSON.stringify(configValue);
await this.redisClient.set(key,s);
return configValue;
}else {
console.log("uiconfig already cache....");
}
return JSON.parse(configValue);
}
}
module.exports=AppCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
//缓存首次登录的赠送的宝币数量
class AuthCodeListCache extends CacheBase {
constructor() {
super();
this.prefix = "codeList:";
this.companyauthcodeDao = system.getObject("db.companyauthcodeDao");
}
async setList(values) {
const key = his.prefix + "app_data_list";
await this.redisClient.setWithEx(key, values, 60);//秒
return obj;
}
async getListByCache() {
const key = this.prefix + "app_data_list";
var cachedVal = await this.redisClient.get(key);
if (cachedVal && cachedVal != "undefined") {
return cachedVal;
} else {
var codeList = await this.companyauthcodeDao.model.findAll({
where: { isEnable: 1 },
order: [["sortNum", 'asc']],
attributes: ["id", "code", "macAddr", "sortNum", "resetNum", "company_id"],
include: [{
model: this.companyauthcodeDao.db.models.company,
attributes: ["id", "contact", "contactmobile", "zipCode", "agentPerson"],
raw: true
}]
});
if (!codeList || codeList.length == 0) {
return null;
}
var codeListStr = JSON.stringify(codeList);
await this.redisClient.setWithEx(key, codeListStr, 30);//秒
return codeListStr;
}
}
}
module.exports = AuthCodeListCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存蜂擎商标智能推荐
class BycCache extends CacheBase{
constructor(){
super();
this.prefix="bycsearch:";
}
async delCache(keyCode){
const key=this.prefix+keyCode;
await this.redisClient.delete(key);
}
async setBycList(keyCode,obj){
const key=this.prefix+keyCode;
await this.redisClient.set(key,obj);
return obj;
}
async getBycListByCache(keyCode){
if(keyCode==null || keyCode==""){
return null;
}
const key=this.prefix+keyCode;
var cachedVal= await this.redisClient.get(key);
if(cachedVal){
return cachedVal;
}else{
return null;
}
}
}
module.exports=BycCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存首次登录的赠送的宝币数量
class CompanyCache extends CacheBase{
constructor(){
super();
this.prefix="g_company_";
this.companyDao = system.getObject("db.companyDao");
this.footerinfoDao = system.getObject("db.footerinfoDao");
this.moneyaccountDao = system.getObject("db.moneyaccountDao");
this.desc="平台配置参数!"
}
async preFetchComanyAndFooterAndBankaccount(hostname){
//获取当前域名
var companytmp = await this.companyDao.findOne({ domainname: hostname, isEnabled: true });
var bankAccount = null;
if (!companytmp) {
companytmp = await this.companyDao.findOne({ id: 1 });
}
bankAccount = await this.moneyaccountDao.findOne({ company_id: companytmp.id, isPlatformAutopay: true });
var footerinfo = await this.footerinfoDao.findOne({ company_id: companytmp.id });
if (!footerinfo) {
footerinfo = await this.footerinfoDao.findOne({ company_id: 1 });
}
var companyinfoRtn={
company:companytmp,
footerinfo:footerinfo,
bankAccount:bankAccount
};
return companyinfoRtn;
}
async cacheCompany(hostname){
const key=this.prefix+hostname;
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined" || true){
console.log("uiconfig no cache....");
const configValue=await this.preFetchComanyAndFooterAndBankaccount(hostname);
var s=JSON.stringify(configValue);
await this.redisClient.set(key,s);
return configValue;
}else {
console.log("uiconfig already cache....");
}
return JSON.parse(configValue);
}
}
module.exports=CompanyCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
var settings=require("../../../config/settings");
class companyportraitCache extends CacheBase{
constructor(){
super();
this.prefix="companyportrait";
this.restClient=system.getObject("util.restClient");
}
async add(){
var key = this.prefix;
var value = await this.redisClient.get(key);
if(value){
value = Number(value)+1;
}else{
value=1;
}
await this.redisClient.set(key,value);
}
async get(){
var key = this.prefix;
var value = await this.redisClient.get(key);
if(!value){
return 0;
}
return value;
}
}
module.exports=companyportraitCache;
// var task = new companyportraitCache();
// task.add().then(d=>{
// console.log("add++++++++++++++++++");
// });
// task.get().then(d=>{
// console.log("get++++++++++++++++++");
// console.log(d);
// })
const CacheBase = require("../cache.base");
const system = require("../../system");
//缓存首次登录的赠送的宝币数量
class LoopbackCache extends CacheBase {
constructor() {
super();
this.prefix = "loopbackpic:";
this.loopbackDao = system.getObject("db.loopplayDao");
this.companyDao = system.getObject("db.companyDao");
this.sitethemeDao = system.getObject("db.sitethemeDao");
}
/**
* 获取轮播图列表
* @param {*} hostname 域名
* @param {*} themeName 主题编码
* @param {*} loopType 轮播类型,PC、YD
*/
async cacheLoopback(hostname, themeName, loopType) {
var sLoopType = loopType || "PC";
const key = this.prefix + hostname + sLoopType + themeName;
var configValue = await this.redisClient.get(key);
if (!configValue || configValue == "undefined") {
console.log("uiconfig no cache....");
var company = await this.companyDao.getCompanyInfoByHostname(hostname);
if (company) {
var loopWhere = {
where: { company_id: company.id, loopplayType: sLoopType },
attributes: ["id", "code", "title", "leftimg", "orderNo", "skipUrl", "loopplayType"]
, raw: true
};
if (sLoopType == "PC") {
var themeItem = null;
var themeid;
//如果themeName不为空,那么就按照themeName查询出theme
if (themeName) {
themeItem = await this.sitethemeDao.model.findOne({ where: { isEnabled: 1, siteTheme: themeName } });
themeid = themeItem.id;
} else {
themeid = company.sitetheme_id;
}
loopWhere.where["sitetheme_id"] = themeid;
}
//按照themeid,去查询出当前的轮播图
var lbs = await this.loopbackDao.model.findAll(loopWhere);
if (!lbs) {
loopWhere.where.company_id = 1;
if (sLoopType == "PC") {
loopWhere.where.sitetheme_id = 1;
}
lbs = await this.loopbackDao.model.findAll(loopWhere);
}
configValue = lbs;
if (lbs.length > 0) {
await this.redisClient.setWithEx(key, JSON.stringify(lbs), 120);
}
} else {
configValue = "";
}
return configValue;
} else {
configValue = JSON.parse(configValue);
console.log("uiconfig already cache....");
}
return configValue;
}
}
module.exports = LoopbackCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存首次登录的赠送的宝币数量
class MagCache extends CacheBase{
constructor(){
super();
this.prefix="magCache";
}
async keys(p){
console.log("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxcache");
return this.redisClient.keys(p);
}
async get(k){
return this.redisClient.get(k);
}
async del(k){
return this.redisClient.delete(k);
}
async clearAll(){
console.log("xxxxxxxxxxxxxxxxxxxclearAll............");
return this.redisClient.flushall();
}
}
module.exports=MagCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存首次登录的赠送的宝币数量
class PConfigCache extends CacheBase{
constructor(){
super();
this.prefix="g_pconfig";
this.pConfigDao=system.getObject("db.pconfigDao");
this.desc="平台配置参数!"
}
async cachePConfig(){
const key=this.prefix;
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined"){
console.log("uiconfig no cache....");
const configValue=await this.pConfigDao.model.findAll({attributes:["name","configType","configValue"],raw:true});
var s=JSON.stringify(configValue);
await this.redisClient.set(key,s);
return configValue;
}else {
console.log("uiconfig already cache....");
}
return JSON.parse(configValue);
}
async invalidateCache(){
const key=this.prefix;
await this.redisClient.delete(key);
}
}
module.exports=PConfigCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
//缓存首次登录的赠送的宝币数量
class ProductListCache extends CacheBase {
constructor() {
super();
this.prefix = "zqq_productList:";
this.producttypeDao = system.getObject("db.producttypeDao");
this.serviceitemDao = system.getObject("db.serviceitemDao");
}
async delCache(company_id) {
const key = this.prefix + company_id;
await this.redisClient.delete(key);
}
async getProductListByCache(company_id) {
const key = this.prefix + company_id;
var configValue = await this.redisClient.get(key);
if (!configValue || configValue == "undefined" || true) {
var typeList = await this.producttypeDao.model.findAll(
{
where: { company_id: company_id, isPubed: 1 },
attributes: ["id", "code", "name", "iconUrl", "oneIconUrl", "oneMoblieIconUrl", "pid", "isSystem"],
raw: true,
order: [["orderNo", "asc"]]
});
if (!typeList || typeList.length == 0) {
return "";
}
var productList = await this.serviceitemDao.model.findAll(
{
where: { company_id: company_id, isPubed: 1 },
attributes: ["id", "code", "name", "shortDesc", "price", "mobilePic", "mobileContentImg", "mobileContentImg1", "mobileContentImg2", "mobileContentImg3", "mobileContentImg4", "mobileContentImg5", "mobileContentImg6", "mobileContentImg7", "mobileContentImg8", "producttype_id", "producttype_pid_id", "iconUrl", "serviceCharge", "publicExpense", "rateConfig", "discountsRateConfig", "isRecommend"],
raw: true,
order: [["sort", "asc"]]
});
if (!productList || productList.length == 0) {
return "";
}
var pTypeList = typeList.filter(f => f.pid == 0);
if (!pTypeList || pTypeList.length == 0) {
return "";
}
var returnList = [];
for (let index = 0; index < pTypeList.length; index++) {
const element = pTypeList[index];
var smallList = typeList.filter(j => j.pid == element.id);
if (smallList && smallList.length > 0) {
var twoList = [];
for (let i = 0; i < smallList.length; i++) {//处理二级类
const smallItem = smallList[i];
if (smallItem) {
var tmpProductList = productList.filter(k => k.producttype_id == smallItem.id);
var tmpSmallItem = {
producttype_id: smallItem.id,
serviceSmallClassType: smallItem.code,
serviceSmallClassTypeIconUrl: smallItem.iconUrl,
serviceSmallClassTypeName: smallItem.name,
productList: tmpProductList
};
if (tmpProductList.length > 0) {
twoList.push(tmpSmallItem);
}
}
}
if (twoList.length > 0) {
returnList.push({
id: element.id,
itemType: element.code,
itemTypeName: element.name,
oneIconUrl: element.oneIconUrl,
oneMoblieIconUrl: element.oneMoblieIconUrl,
smallList: twoList
});
}
}
}
configValue = returnList;
await this.redisClient.set(key, JSON.stringify(returnList));
} else {
configValue = JSON.parse(configValue);
}
return configValue;
}
}
module.exports = ProductListCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
//缓存首次登录的赠送的宝币数量
class ThemeCache extends CacheBase {
constructor() {
super();
this.prefix = "theme:";
this.themeDao = system.getObject("db.sitethemeDao");
this.companyDao = system.getObject("db.companyDao");
}
async cacheTheme(hostname) {
const key = this.prefix + hostname;
var configValue = await this.redisClient.get(key);
if (!configValue || configValue == "undefined") {
console.log("uiconfig no cache....");
var company = await this.companyDao.findOne({ "domainname": hostname, isEnabled: true });
if (company) {
var s = company.siteTheme;
configValue = s;
await this.redisClient.setWithEx(key, s, 60);
} else {
configValue = "default";
}
return configValue;
} else {
console.log("uiconfig already cache....");
}
return configValue;
}
}
module.exports = ThemeCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
class TmMonitAgencyQueryCache extends CacheBase {
constructor() {
super();
this.prefix = "tmmonit_agency_query:";
this.bytmresultDao = system.getObject("db.bytmresultDao");
}
async delCache(agency_name, query_type) {
const key = this.prefix + agency_name + "_" + query_type;
await this.redisClient.delete(key);
}
async setList(agency_name, query_type, values) {
const key = this.prefix + agency_name + "_" + query_type;
this.redisClient.setWithEx(key, values, 86400);//秒==2天
}
async getListByCache(agency_name, query_type) {
const key = this.prefix + agency_name + "_" + query_type;
var cachedVal = await this.redisClient.get(key);
if (cachedVal && cachedVal != "undefined") {
return cachedVal;
}
return null;
}
}
module.exports = TmMonitAgencyQueryCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
class TmMonitQueryCache extends CacheBase {
constructor() {
super();
this.prefix = "tmmonit_query:";
this.bytmresultDao = system.getObject("db.bytmresultDao");
}
async delCache(code, total_type){
const key = this.prefix + code + "_" + total_type;
await this.redisClient.delete(key);
}
async setList(code, total_type, values) {
const key = this.prefix + code + "_" + total_type;
this.redisClient.setWithEx(key, values, 60);//秒
}
async getListByCache(code, total_type) {
const key = this.prefix + code + "_" + total_type;
var cachedVal = await this.redisClient.get(key);
if (cachedVal && cachedVal != "undefined") {
// return JSON.parse(cachedVal);
return cachedVal;
} else {
var item = await this.bytmresultDao.model.findOne({ where: { monitCode: code, resultType: total_type }, raw: true });
if (item == null || !item.resultData || item.resultData.length < 20) {
return null;
}
await this.setList(code, total_type, item.resultData);
return item.resultData;
// return JSON.parse(item.resultData);
}
}
}
module.exports = TmMonitQueryCache;
const CacheBase = require("../cache.base");
const system = require("../../system");
//缓存蜂擎商标智能推荐
class TmSubCache extends CacheBase {
constructor() {
super();
this.prefix = "tmsub_crm:";
}
async delCache(keyCode) {
const key = this.prefix + keyCode;
await this.redisClient.delete(key);
}
async setTmSubList(keyCode, obj) {
const key = this.prefix + keyCode;
await this.redisClient.set(key, obj);
return obj;
}
async getTmSubListByCache(keyCode) {
if (keyCode == null || keyCode == "") {
return null;
}
const key = this.prefix + keyCode;
var cachedVal = await this.redisClient.get(key);
if (cachedVal && cachedVal != "undefined") {
return cachedVal;
} else {
return null;
}
}
}
module.exports = TmSubCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
const settings=require("../../../config/settings");
//缓存首次登录的赠送的宝币数量
class UIConfigCache extends CacheBase{
constructor(){
super();
this.prefix="g_uiconfig_";
}
async cacheUiConfig(appid){
// const key=this.prefix+appid;
// var configValue=await this.redisClient.get(key);
// console.log(configValue);
// if(!configValue || configValue=="undefined"){
// console.log("uiconfig no cache....");
// configValue =system.getUiConfig2(appid);
// if(settings.env!="dev"){
// await this.redisClient.set(key,JSON.stringify(configValue));
// }
// return configValue;
// }else {
// console.log("uiconfig already cache....");
// }
var configValue =system.getUiConfig2(appid);
return configValue;
//return JSON.parse(configValue);
}
}
module.exports=UIConfigCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
const wxFunc=require("../../service/wxsvr");
//缓存首次登录的赠送的宝币数量
class WxCache extends CacheBase{
constructor(){
super();
this.prefix="wx_";
this.accessTokenUrl="https://api.weixin.qq.com/cgi-bin/token";
this.desc="缓存访问key,js票据";
this.restClient=system.getObject("util.restClient");
}
async cacheAccessToken(appkey){
const key=this.prefix+appkey+"_"+"accesskey";
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined"){
//x随便定义获取一个weixin
var configData=wxFunc("x").getAccessConfig(appkey);
console.log(configData);
var akobjout=await this.restClient.execGet2(configData,this.accessTokenUrl);
console.log(akobjout);
var akobj=JSON.parse(akobjout.stdout);
await this.redisClient.setWithEx(key,akobj.access_token,7000);
return akobj.access_token;
}else {
console.log("cache already cache....");
}
return configValue;
}
async cacheJsConfigTicket(appkey){
const key=this.prefix+appkey+"_"+"jsticket";
var ticketUrl="https://api.weixin.qq.com/cgi-bin/ticket/getticket";
var configValue=await this.redisClient.get(key);
if(!configValue || configValue=="undefined"){
var acck=await this.cacheAccessToken(appkey);
var subdata={
access_token:acck,
type:"jsapi",
};
var ticketobjout=await this.restClient.execGet2(subdata,ticketUrl);
var ticketobj=JSON.parse(ticketobjout.stdout);
await this.redisClient.setWithEx(key,ticketobj.ticket,7000);
return ticketobj.ticket;
}else {
console.log("cache already cache....");
}
return configValue;
}
}
module.exports=WxCache;
// var wc=new WxCache();
// wc.cacheJsConfigTicket("wx4c91e81bbb6039cd").then(d=>{
// console.log(d);
// });
// var configData=wx.getAccessConfig();
// wc.restClient.execGet2(configData,wc.accessTokenUrl).then(
// d=>{
// console.log(d.stdout);
// }
// );
const CacheBase=require("../cache.base");
const system=require("../../system");
const wxFunc=require("../../service/wxsvr");
const OpenplatformWxop = require("../../wxop/impl/openplatformWxop");
/**
* 微信开放平台 公众号或小程序的接口调用凭据(授权方令牌)缓存(2小时后失效)
*/
class WxauthorizeraccesstokenCache extends CacheBase{
constructor(){
super();
this.prefix="wx_authorizer_access_token_";
this.restClient=system.getObject("util.restClient");
}
async get(appid){//公众号或小程序的appid
var key = this.prefix+appid;
var result = await this.redisClient.get(key);
var obj = null;
var time = Date.parse(new Date())/1000;
if(result){
obj=JSON.parse(result);
if(!obj.time){
obj = null;
}
}
if(!obj || obj.time<=time){//无缓存 或 缓存令牌失效
var openplatform = new OpenplatformWxop();
var newobj = await openplatform.api_authorizer_token({authorizer_appid:appid});
if(newobj && newobj.expires_in){
if(newobj.expires_in>500){
newobj["time"]= time+newobj.expires_in-500;
}else{
newobj["time"]= time+newobj.expires_in;
}
var newobjstring=JSON.stringify(newobj);
await this.redisClient.set(key,newobjstring);
return newobj;
}else{
return null;
}
}else{//有缓存 且 未失效
return obj;
}
}
async set(appid,result){
var key = this.prefix+appid;
var time = Date.parse(new Date())/1000;
if(result.expires_in>500){
result["time"]= time+result.expires_in-500;
}else{
result["time"]= time+result.expires_in;
}
var resultstring=JSON.stringify(result);
await this.redisClient.set(key,resultstring);
return result;
}
async del(appid){
var key = this.prefix+appid;
await this.redisClient.delete(key);
}
}
module.exports=WxauthorizeraccesstokenCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
var settings=require("../../../config/settings");
const WxopBase = require("../../wxop/wxop.base");
const OpenplatformWxop = require("../../wxop/impl/openplatformWxop");
/**
* 第三方平台component_access_token
* 第三方平台component_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。
* 每个令牌是存在有效const WxopBase = require("../wxop.base");小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时50分)再进行刷新。
*/
class WxcomponentaccesstokenCache extends CacheBase{
constructor(){
super();
this.prefix="wx_component_access_token_";
this.appDao=system.getObject("db.appDao");
// this.OpenplatformWxop=system.getObject("wxop.openplatformWxop");
this.wxopenplatformconfig = settings.wxopenplatformconfig;
}
async get(){
var key = this.prefix+this.wxopenplatformconfig.appid;
var result = await this.redisClient.get(key);
var obj = null;
var time = Date.parse(new Date())/1000;
if(result){
obj=JSON.parse(result);
if(!obj.time){
obj = null;
}
}
if(!obj || obj.time<=time){//无缓存 或 缓存令牌失效
var openplatform = new OpenplatformWxop();
var newobj = await openplatform.api_component_token();
console.log(newobj);
if(newobj && newobj.expires_in){
if(newobj.expires_in>500){
newobj["time"]= time+newobj.expires_in-500;
}else{
newobj["time"]= time+newobj.expires_in;
}
var newobjstring=JSON.stringify(newobj);
await this.redisClient.set(key,newobjstring);
return newobj;
}else{
return null;
}
}else{//有缓存 且 未失效
return obj;
}
}
async set(result){
var key = this.prefix+this.wxopenplatformconfig.appid;
var time = Date.parse(new Date())/1000;
if(result.expires_in>500){
result["time"]= time+result.expires_in-500;
}else{
result["time"]= time+result.expires_in;
}
var resultstring=JSON.stringify(result);
await this.redisClient.set(key,resultstring);
return result;
}
async del(appid){
var key = this.prefix+this.wxopenplatformconfig.appid;
await this.redisClient.delete(key);
}
}
module.exports=WxcomponentaccesstokenCache;
const CacheBase=require("../cache.base");
const system=require("../../system");
var settings=require("../../../config/settings");
const wxFunc=require("../../service/wxsvr");
/**
* 微信开放平台 component_verify_ticket协议
*/
class WxcomponentverifyticketCache extends CacheBase{
constructor(){
super();
this.prefix="wx_component_verify_ticket_";
this.restClient=system.getObject("util.restClient");
this.wxopenplatformconfig = settings.wxopenplatformconfig;
}
async cacheComponentVerifyTicket(value){
var key=this.prefix+this.wxopenplatformconfig.appid;
if(value){
var beforevalue = await this.redisClient.get(key);
if(beforevalue!=value){
await this.redisClient.set(key,value);
}
return value;
}else{
var value = await this.redisClient.get(key);
return value;
}
}
}
module.exports=WxcomponentverifyticketCache;
// var task = new WxcomponentverifyticketCache();
// task.redisClient.set("wx_component_verify_ticket_wx8b0bf3ca5ea2d540","ticket@@@2SG-NONHrErt3gU4_lpFBbJqT9ucMJbT76QjLSlWsrOz0kHcZJlFp3G6aSRdG7v1QGTV06F3pDh59EElNUfjQA");
const CacheBase=require("../cache.base");
const system=require("../../system");
//缓存微信oauth的state参数
class WxoauthstateCache extends CacheBase{
constructor(){
super();
this.prefix="wx_aouth_state_";
}
async get(k){
var key = this.prefix+k;
var result = await this.redisClient.get(key);
var obj = null;
if(result){
obj=JSON.parse(result);
}
return obj;
}
async set(k,obj){
var key = this.prefix+k;
var resultstring=JSON.stringify(obj);
await this.redisClient.set(key,resultstring);
return resultstring;
}
async del(k){
var key = this.prefix+k;
await this.redisClient.delete(key);
}
}
module.exports=WxoauthstateCache;
const system=require("../../system");
const Dao=require("../dao.base");
class AccountDao extends Dao{
constructor(){
super(Dao.getModelName(AccountDao));
}
async findOrCreate(ac,t){
var account= await this.model.findOne({where:{unionId:ac.unionId}},{transaction:t});
if(account){
return account;
}else{
account=await this.model.create(ac,{transaction:t});
return account;
}
}
async findOneByOnlyCode(onlycode){
return this.model.findOne({"where":{"onlyCode":onlycode}});
}
}
module.exports=AccountDao;
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment