Commit 628c824e by 王昆

gsb

parent 936b0814
# Default ignored files
/workspace.xml
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/zhichan.iml" filepath="$PROJECT_DIR$/.idea/zhichan.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
...@@ -2,870 +2,930 @@ var APIBase = require("../../api.base"); ...@@ -2,870 +2,930 @@ var APIBase = require("../../api.base");
var system = require("../../../system"); var system = require("../../../system");
const crypto = require('crypto'); const crypto = require('crypto');
const xlsx = require('node-xlsx'); const xlsx = require('node-xlsx');
class LaoActionApi extends APIBase { class LaoActionApi extends APIBase {
constructor() { constructor() {
super(); super();
this.usersSve = system.getObject("service.operator.usersSve"); this.usersSve = system.getObject("service.operator.usersSve");
this.logSve = system.getObject("service.operator.logSve"); this.logSve = system.getObject("service.operator.logSve");
this.recruitSve = system.getObject("service.operator.recruitSve"); this.recruitSve = system.getObject("service.operator.recruitSve");
this.labourSve = system.getObject("service.operator.labourSve"); this.labourSve = system.getObject("service.operator.labourSve");
//this.uploadCtl = system.getObject("controller.common.uploadCtl"); this.workloadSve = system.getObject("service.common.workloadSve");
this.redisClient = system.getObject("util.redisClient"); //this.uploadCtl = system.getObject("controller.common.uploadCtl");
// this.restClient = system.getObject("util.restClient"); this.redisClient = system.getObject("util.redisClient");
this.smsClient = system.getObject("util.smsClient"); // this.restClient = system.getObject("util.restClient");
this.vcodePrev = "lwb_vcode_"; this.smsClient = system.getObject("util.smsClient");
this.testPhones = ['13691046554', '13333333333']; this.vcodePrev = "lwb_vcode_";
this.restClient = system.getObject("util.restClient"); this.testPhones = ['13691046554', '13333333333'];
} this.restClient = system.getObject("util.restClient");
}
async test(pobj, query) {
return system.getResultSuccess({ async test(pobj, query) {
hello: "ok" return system.getResultSuccess({
}); hello: "ok"
});
}
getVCode() {
var randomNum = "" + Math.round(Math.random() * 1000000);
while (randomNum.length < 6) {
randomNum = "0" + randomNum;
} }
console.info("randomNum is ========", randomNum);
getVCode() { return randomNum;
var randomNum = "" + Math.round(Math.random() * 1000000); }
while (randomNum.length < 6) {
randomNum = "0" + randomNum; /**
} * 删除招聘或者是供招的信息
console.info("randomNum is ========", randomNum); * @param {*} obj
return randomNum; * @userId 用户信息
} * @id 删除记录的id
* @type 删除类型
/** */
* 删除招聘或者是供招的信息 async RemRecOrLob(obj) {
* @param {*} obj if (!obj.type) {
* @userId 用户信息 return system.getResult(-1, `参数错误 删除类型不能为空`);
* @id 删除记录的id
* @type 删除类型
*/
async RemRecOrLob(obj){
if(!obj.type){
return system.getResult(-1, `参数错误 删除类型不能为空`);
}
if(!obj.userId){
return system.getResult(-1, `参数错误 用户ID不能为空`);
}
if(!obj.id){
return system.getResult(-1, `参数错误 删除记录ID不能为空`);
}
let params= {};
params.type=this.trim(obj.type);
params.userId=Number(this.trim(obj.userId));
params.id=Number(this.trim(obj.id));
try {
if(params.type=="10"){ //招聘的
return await this.recruitSve.RemRecOrLob(params);
}else if(params.type=="20"){ //供人的
return await this.labourSve.RemRecOrLob(params);
}else{
return system.getResult(-1,`参数错误 删除类型不存在`);
}
} catch (error) {
return system.getResult(-1,`系统错误 错误信息 ${error}`);
}
} }
if (!obj.userId) {
async SendSms(obj) { //用户登录,返回用户信息 return system.getResult(-1, `参数错误 用户ID不能为空`);
if (!obj.phone_no) {
return system.getResult(null, "电话号码不能为空");
}
var phone_no = this.trim(obj.phone_no);
try {
if (!/^1[23456789]\d{9}$/.test(phone_no)) {
return system.getResult(null, "手机号码格式不正确");
}
var isTest = this.testPhones.indexOf(phone_no) != -1;
// 生成验证码
var key = this.vcodePrev + phone_no;
var vcode = await this.redisClient.get(key + "t");
if (!vcode) {
vcode = isTest ? "123123" : await this.getVCode();
await this.redisClient.setWithEx(key, vcode, 5 * 60);
await this.redisClient.setWithEx(key + "t", vcode, 60);
var msg = "您的验证码为" + vcode + ", (切勿将验证码告知别人, 请在5分钟内输入完成验证, 如有问题请联系客服。)";
if(!isTest) {
var rs = await this.smsClient.sendMsg(phone_no, msg);
console.log(rs);
}
}
return system.getResultSuccess("发送成功");
} catch (error) {
return system.getResultFail(500, "接口异常:" + error.message);
}
} }
if (!obj.id) {
async UserLogOut(obj) { //用户登出 return system.getResult(-1, `参数错误 删除记录ID不能为空`);
if (!obj.user_id) {
return system.getResult(null, "用户id不能为空");
}
try {
var parm = {
user_id: obj.user_id,
oper_type: 1,
oper_name: "登出",
oper_date: (new Date()).Format("yyyy-MM-dd hh:mm:ss")
};
await this.logSve.SaveLogInfo(parm);
return system.getResult("退出登录成功!");
} catch {
return system.getResult(null, "退出登录失败!");
}
} }
let params = {};
params.type = this.trim(obj.type);
params.userId = Number(this.trim(obj.userId));
params.id = Number(this.trim(obj.id));
try {
if (params.type == "10") { //招聘的
return await this.recruitSve.RemRecOrLob(params);
} else if (params.type == "20") { //供人的
return await this.labourSve.RemRecOrLob(params);
} else {
return system.getResult(-1, `参数错误 删除类型不存在`);
}
} catch (error) {
return system.getResult(-1, `系统错误 错误信息 ${error}`);
}
}
async UserLogIn(obj) { //用户登录,返回用户信息 async SendSms(obj) { //用户登录,返回用户信息
if (!obj.phone_no) { if (!obj.phone_no) {
return system.getResult(null, "电话号码不能为空"); return system.getResult(null, "电话号码不能为空");
} }
try { var phone_no = this.trim(obj.phone_no);
var phone_no = this.trim(obj.phone_no);
var vcode = this.trim(obj.vcode); try {
if (!/^1[23456789]\d{9}$/.test(phone_no)) {
var key = this.vcodePrev + phone_no; return system.getResult(null, "手机号码格式不正确");
var code = await this.redisClient.get(key) || ""; }
if(!code) {
return system.getResult(null, "验证码已失效,请再1分钟之内输入"); var isTest = this.testPhones.indexOf(phone_no) != -1;
} // 生成验证码
if(vcode != code) { var key = this.vcodePrev + phone_no;
return system.getResult(null, "验证码错误,请重新输入"); var vcode = await this.redisClient.get(key + "t");
} if (!vcode) {
var parm = { vcode = isTest ? "123123" : await this.getVCode();
phone_no: phone_no await this.redisClient.setWithEx(key, vcode, 5 * 60);
} await this.redisClient.setWithEx(key + "t", vcode, 60);
var result = await this.usersSve.findUserInfoByPhone(parm); var msg = "您的验证码为" + vcode + ", (切勿将验证码告知别人, 请在5分钟内输入完成验证, 如有问题请联系客服。)";
if (result.status == -1) { if (!isTest) {
parm = { var rs = await this.smsClient.sendMsg(phone_no, msg);
phone_no: phone_no, console.log(rs);
user_type: "招人方", }
status_type: 1, }
status_name: "正常", return system.getResultSuccess("发送成功");
reg_time: (new Date()).Format("yyyy-MM-dd") } catch (error) {
}; return system.getResultFail(500, "接口异常:" + error.message);
result = await this.usersSve.SaveUserInfo(parm); }
} }
var user_id = result.data.id;
//var user_id = 1;
parm = {
user_id: user_id,
oper_type: 0,
oper_name: "登录",
oper_date: (new Date()).Format("yyyy-MM-dd hh:mm:ss")
};
await this.logSve.SaveLogInfo(parm);
return result;
} catch (e) {
console.log(e);
return system.getResult(null, "登录失败!");
}
async UserLogOut(obj) { //用户登出
if (!obj.user_id) {
return system.getResult(null, "用户id不能为空");
}
try {
var parm = {
user_id: obj.user_id,
oper_type: 1,
oper_name: "登出",
oper_date: (new Date()).Format("yyyy-MM-dd hh:mm:ss")
};
await this.logSve.SaveLogInfo(parm);
return system.getResult("退出登录成功!");
} catch {
return system.getResult(null, "退出登录失败!");
} }
}
async SaveRecruitInfo(obj) { //添加或更新招聘信息,返回添加或更新后的信息 async UserLogIn(obj) { //用户登录,返回用户信息
if (!obj) { if (!obj.phone_no) {
return system.getResult(null, "参数不能为空"); return system.getResult(null, "电话号码不能为空");
} }
var parm = {}; try {
parm.id = obj.id; var phone_no = this.trim(obj.phone_no);
parm.recruit_name = obj.recruit_name; var vcode = this.trim(obj.vcode);
parm.recruit_type = obj.recruit_type;
parm.recruit_count = obj.recruit_count; var key = this.vcodePrev + phone_no;
parm.pay_name = obj.pay_name; var code = await this.redisClient.get(key) || "";
if (obj.pay_name == "月薪") { if (!code) {
parm.pay_type = 1; return system.getResult(null, "验证码已失效,请再1分钟之内输入");
}
} else if (obj.pay_name == "日薪") { if (vcode != code) {
parm.pay_type = 2; return system.getResult(null, "验证码错误,请重新输入");
} else if (obj.pay_name == "时薪") { }
parm.pay_type = 3; var parm = {
} phone_no: phone_no
if (obj.pay_unit) { }
parm.pay_unit = obj.pay_unit * 100; //按分存储 var result = await this.usersSve.findUserInfoByPhone(parm);
} if (result.status == -1) {
parm.work_duration = Number(obj.work_duration || 0); parm = {
if (obj.basic_salary) { phone_no: phone_no,
parm.basic_salary = obj.basic_salary * 100; user_type: "招人方",
} status_type: 1,
if (obj.compre_salary) { status_name: "正常",
parm.compre_salary = obj.compre_salary * 100; reg_time: (new Date()).Format("yyyy-MM-dd")
} };
if (obj.rfee_type == "月返") { result = await this.usersSve.SaveUserInfo(parm);
parm.rfee_type = 1; }
} else if (obj.rfee_type == "日返") { var user_id = result.data.id;
parm.rfee_type = 2; //var user_id = 1;
} else if (obj.rfee_type == "时返") { parm = {
parm.rfee_type = 3; user_id: user_id,
} else if (obj.rfee_type == "一次返") { oper_type: 0,
parm.rfee_type = 4; oper_name: "登录",
} else if (obj.rfee_type == "面议") { oper_date: (new Date()).Format("yyyy-MM-dd hh:mm:ss")
parm.rfee_type = 0; };
} await this.logSve.SaveLogInfo(parm);
if (obj.rfee_unit) { return result;
parm.rfee_unit = obj.rfee_unit * 100; //按分存储 } catch (e) {
} console.log(e);
parm.rfee_duration = obj.rfee_duration; return system.getResult(null, "登录失败!");
parm.rfee_time = obj.rfee_time;
parm.age_range = obj.age_range;
parm.work_address = obj.work_address;
parm.publish_date = (new Date()).Format("yyyy-MM-dd");
parm.end_date = obj.end_date;
parm.pic_path = obj.pic_path;
parm.recrui_require = obj.recrui_require;
parm.phone_no = obj.phone_no;
parm.counter_mark = obj.counter_mark;
parm.user_id = obj.user_id;
parm.cur_type = obj.cur_type;
if (obj.cur_type == 1) {
parm.cur_status = "展示中";
} else if (obj.cur_type == 2) {
parm.cur_status = "已下架";
} else if (obj.cur_type == 3) {
parm.cur_status = "已过期";
} else if (obj.cur_type == 4) {
parm.cur_status = "审核未通过";
}
var result = await this.recruitSve.SaveRecruitInfo(parm);
return system.getResult(result.data.dataValues);
} }
async SaveLabourInfo(obj) { //添加或更新招工信息,返回添加或更新后的招工信息 }
if (!obj) {
return system.getResult(null, "参数不能为空");
}
var parm = {}; async SaveRecruitInfo(obj) { //添加或更新招聘信息,返回添加或更新后的信息
parm.id = obj.id; if (!obj) {
parm.labour_type = obj.labour_type; return system.getResult(null, "参数不能为空");
parm.labour_count = obj.labour_count; }
parm.age_range = obj.age_range; var parm = {};
parm.sex_ratio = obj.sex_ratio; parm.id = obj.id;
parm.labour_address = obj.labour_address; parm.recruit_name = obj.recruit_name;
parm.report_date = obj.report_date; parm.recruit_type = obj.recruit_type;
parm.work_address = obj.work_address; parm.recruit_count = obj.recruit_count;
parm.situation_memo = obj.situation_memo; parm.pay_name = obj.pay_name;
parm.phone_no = obj.phone_no; if (obj.pay_name == "月薪") {
parm.user_id = Number(obj.user_id || 0); parm.pay_type = 1;
parm.cur_type = obj.cur_type;
if (obj.cur_type == 1) { } else if (obj.pay_name == "日薪") {
parm.cur_status = "展示中"; parm.pay_type = 2;
} else if (obj.cur_type == 2) { } else if (obj.pay_name == "时薪") {
parm.cur_status = "已下架"; parm.pay_type = 3;
} else if (obj.cur_type == 3) { }
parm.cur_status = "已过期"; if (obj.pay_unit) {
} else if (obj.cur_type == 4) { parm.pay_unit = obj.pay_unit * 100; //按分存储
parm.cur_status = "审核未通过"; }
} parm.work_duration = Number(obj.work_duration || 0);
parm.publish_date = (new Date()).Format("yyyy-MM-dd"); if (obj.basic_salary) {
var result = await this.labourSve.SaveLabourInfo(parm); parm.basic_salary = obj.basic_salary * 100;
return system.getResult(result.data.dataValues); }
if (obj.compre_salary) {
parm.compre_salary = obj.compre_salary * 100;
}
if (obj.rfee_type == "月返") {
parm.rfee_type = 1;
} else if (obj.rfee_type == "日返") {
parm.rfee_type = 2;
} else if (obj.rfee_type == "时返") {
parm.rfee_type = 3;
} else if (obj.rfee_type == "一次返") {
parm.rfee_type = 4;
} else if (obj.rfee_type == "面议") {
parm.rfee_type = 0;
}
if (obj.rfee_unit) {
parm.rfee_unit = obj.rfee_unit * 100; //按分存储
}
parm.rfee_duration = obj.rfee_duration;
parm.rfee_time = obj.rfee_time;
parm.age_range = obj.age_range;
parm.work_address = obj.work_address;
parm.publish_date = (new Date()).Format("yyyy-MM-dd");
parm.end_date = obj.end_date;
parm.pic_path = obj.pic_path;
parm.recrui_require = obj.recrui_require;
parm.phone_no = obj.phone_no;
parm.counter_mark = obj.counter_mark;
parm.user_id = obj.user_id;
parm.cur_type = obj.cur_type;
if (obj.cur_type == 1) {
parm.cur_status = "展示中";
} else if (obj.cur_type == 2) {
parm.cur_status = "已下架";
} else if (obj.cur_type == 3) {
parm.cur_status = "已过期";
} else if (obj.cur_type == 4) {
parm.cur_status = "审核未通过";
}
var result = await this.recruitSve.SaveRecruitInfo(parm);
return system.getResult(result.data.dataValues);
}
async SaveLabourInfo(obj) { //添加或更新招工信息,返回添加或更新后的招工信息
if (!obj) {
return system.getResult(null, "参数不能为空");
} }
async FindRecruitInfo(obj) { //获取招聘信息 var parm = {};
if (!obj) { parm.id = obj.id;
return system.getResult(null, "参数不能为空"); parm.labour_type = obj.labour_type;
} parm.labour_count = obj.labour_count;
var find_type = obj.find_type; parm.age_range = obj.age_range;
var temp_info = {}; parm.sex_ratio = obj.sex_ratio;
var parm = {}; parm.labour_address = obj.labour_address;
if (obj.page_size) { parm.report_date = obj.report_date;
parm.page_size = Number(obj.page_size); parm.work_address = obj.work_address;
} else { parm.situation_memo = obj.situation_memo;
parm.page_size = 10; parm.phone_no = obj.phone_no;
} parm.user_id = Number(obj.user_id || 0);
parm.cur_type = obj.cur_type;
if (obj.cur_type == 1) {
parm.cur_status = "展示中";
} else if (obj.cur_type == 2) {
parm.cur_status = "已下架";
} else if (obj.cur_type == 3) {
parm.cur_status = "已过期";
} else if (obj.cur_type == 4) {
parm.cur_status = "审核未通过";
}
parm.publish_date = (new Date()).Format("yyyy-MM-dd");
var result = await this.labourSve.SaveLabourInfo(parm);
return system.getResult(result.data.dataValues);
if (obj.current_page) { }
parm.current_page = Number(obj.current_page);
} else {
parm.current_page = 1;
}
// if(obj.curStatus){
// parm.curStatus=this.trim(obj.curStatus);
// }
if(obj.curType){
parm.curType=this.trim(obj.curType);
}
if (find_type == 0) {
temp_info = await this.recruitSve.findAllList(parm);
} else if (find_type == 1) {
parm.user_id = obj.find_info;
temp_info = await this.recruitSve.findListByUserid(parm);
} else if (find_type == 2) {
parm.recruit_name = obj.find_info;
temp_info = await this.recruitSve.findListByName(parm);
} else if (find_type == 3) {
parm.counter_mark = obj.find_info;
temp_info = await this.recruitSve.findListByMark(parm);
}
else if (find_type == 4){
parm.work_address = obj.find_info;
temp_info = await this.recruitSve.findListByAddress(parm);
}
if (temp_info.status == 0) { async FindRecruitInfo(obj) { //获取招聘信息
var list = []; if (!obj) {
var total_count = temp_info.data.count; return system.getResult(null, "参数不能为空");
for (var data of temp_info.data.rows) {
var user_info = await this.usersSve.findUserInfoByid(data.user_id);
list.push({
user_info: user_info,
data_info: data
});
}
var res = {
count: total_count,
rows: list
}
return system.getResult(res);
} else {
console.log(e);
return system.getResult(null, "获取数据失败");
}
} }
var find_type = obj.find_type;
/** var temp_info = {};
* 上架or下架 var parm = {};
* @param {*} obj if (obj.page_size) {
*/ parm.page_size = Number(obj.page_size);
async UpdateCurStatus(obj){ } else {
//当前状态代码-1:展示中、2:已下架、3:已过期、4:审核未通过 cur_type parm.page_size = 10;
// if(!this.trim(obj.curStatus)){
// return system.getResult(-1,`参数错误 状态不能为空`);
// }
if(!Number(this.trim(obj.curType))){
return system.getResult(-1,`参数错误 状态码不能为空`);
}
if(!Number(this.trim(obj.id))){
return system.getResult(-1,`参数错误 ID不能为空`);
}
try {
return await this.recruitSve.UpdateCurStatus(obj);
} catch (error) {
return system.getResult(-1,`系统错误 错误信息 ${error}`);
}
} }
async FindLabourInfo(obj) { //获取供人信息 if (obj.current_page) {
if (!obj) { parm.current_page = Number(obj.current_page);
return system.getResult(null, "参数不能为空"); } else {
} parm.current_page = 1;
}
// if(obj.curStatus){
// parm.curStatus=this.trim(obj.curStatus);
// }
if (obj.curType) {
parm.curType = this.trim(obj.curType);
}
if (find_type == 0) {
temp_info = await this.recruitSve.findAllList(parm);
} else if (find_type == 1) {
parm.user_id = obj.find_info;
temp_info = await this.recruitSve.findListByUserid(parm);
} else if (find_type == 2) {
parm.recruit_name = obj.find_info;
temp_info = await this.recruitSve.findListByName(parm);
} else if (find_type == 3) {
parm.counter_mark = obj.find_info;
temp_info = await this.recruitSve.findListByMark(parm);
} else if (find_type == 4) {
parm.work_address = obj.find_info;
temp_info = await this.recruitSve.findListByAddress(parm);
}
var find_type = obj.find_type; if (temp_info.status == 0) {
var temp_info = {}; var list = [];
var parm = {}; var total_count = temp_info.data.count;
if (obj.page_size) { for (var data of temp_info.data.rows) {
parm.page_size = Number(obj.page_size); var user_info = await this.usersSve.findUserInfoByid(data.user_id);
} else { list.push({
parm.page_size = 10; user_info: user_info,
} data_info: data
});
}
var res = {
count: total_count,
rows: list
}
return system.getResult(res);
} else {
console.log(e);
return system.getResult(null, "获取数据失败");
}
}
/**
* 上架or下架
* @param {*} obj
*/
async UpdateCurStatus(obj) {
//当前状态代码-1:展示中、2:已下架、3:已过期、4:审核未通过 cur_type
// if(!this.trim(obj.curStatus)){
// return system.getResult(-1,`参数错误 状态不能为空`);
// }
if (!Number(this.trim(obj.curType))) {
return system.getResult(-1, `参数错误 状态码不能为空`);
}
if (!Number(this.trim(obj.id))) {
return system.getResult(-1, `参数错误 ID不能为空`);
}
try {
return await this.recruitSve.UpdateCurStatus(obj);
} catch (error) {
return system.getResult(-1, `系统错误 错误信息 ${error}`);
}
}
if (obj.current_page) { async FindLabourInfo(obj) { //获取供人信息
parm.current_page = Number(obj.current_page); if (!obj) {
} else { return system.getResult(null, "参数不能为空");
parm.current_page = 1; }
}
if (find_type == 0) { var find_type = obj.find_type;
temp_info = await this.labourSve.findAllList(parm); var temp_info = {};
} else if (find_type == 1) { var parm = {};
parm.user_id = obj.find_info; if (obj.page_size) {
temp_info = await this.labourSve.findListByUserid(parm); parm.page_size = Number(obj.page_size);
} } else {
parm.page_size = 10;
}
if (temp_info.status == 0) { if (obj.current_page) {
var list = []; parm.current_page = Number(obj.current_page);
var total_count = temp_info.data.count; } else {
for (var data of temp_info.data.rows) { parm.current_page = 1;
var user_info = await this.usersSve.findUserInfoByid(data.user_id); }
list.push({
user_info: user_info,
data_info: data
});
}
var res = {
count: total_count,
rows: list
}
return system.getResult(res); if (find_type == 0) {
} else { temp_info = await this.labourSve.findAllList(parm);
return system.getResult(null, "获取数据失败"); } else if (find_type == 1) {
} parm.user_id = obj.find_info;
temp_info = await this.labourSve.findListByUserid(parm);
} }
async FindUserInfo(obj) { //无条件或者根据ID获取用户信息 if (temp_info.status == 0) {
if (!obj) { var list = [];
return system.getResult(null, "参数不能为空"); var total_count = temp_info.data.count;
} for (var data of temp_info.data.rows) {
var find_type = obj.find_type; var user_info = await this.usersSve.findUserInfoByid(data.user_id);
var temp_info = {}; list.push({
var parm = {}; user_info: user_info,
if (obj.page_size) { data_info: data
parm.page_size = Number(obj.page_size); });
} else { }
parm.page_size = 10; var res = {
} count: total_count,
rows: list
}
return system.getResult(res);
} else {
return system.getResult(null, "获取数据失败");
}
}
if (obj.current_page) { async FindUserInfo(obj) { //无条件或者根据ID获取用户信息
parm.current_page = Number(obj.current_page); if (!obj) {
} else { return system.getResult(null, "参数不能为空");
parm.current_page = 1; }
} var find_type = obj.find_type;
try { var temp_info = {};
if (find_type == 0) { var parm = {};
temp_info = await this.usersSve.findAllList(parm); if (obj.page_size) {
return temp_info; parm.page_size = Number(obj.page_size);
} else if (find_type == 1) { } else {
parm.user_id = obj.find_info; parm.page_size = 10;
temp_info = await this.usersSve.findUserInfoByid(parm.user_id); }
var list = [];
list.push(temp_info)
var tem_res = {
count: list.length,
rows: list
}
return system.getResult(tem_res);
}
} catch {
return system.getResult(null, "获取数据失败");
}
if (obj.current_page) {
parm.current_page = Number(obj.current_page);
} else {
parm.current_page = 1;
}
try {
if (find_type == 0) {
temp_info = await this.usersSve.findAllList(parm);
return temp_info;
} else if (find_type == 1) {
parm.user_id = obj.find_info;
temp_info = await this.usersSve.findUserInfoByid(parm.user_id);
var list = [];
list.push(temp_info)
var tem_res = {
count: list.length,
rows: list
}
return system.getResult(tem_res);
}
} catch {
return system.getResult(null, "获取数据失败");
} }
async FindUserInfoByWhere(obj) { //根据条件获取用户或者企业信息 }
var parm = obj;
if (obj.page_size) {
parm.page_size = Number(obj.page_size);
} else {
parm.page_size = 10;
}
if (obj.current_page) { async FindUserInfoByWhere(obj) { //根据条件获取用户或者企业信息
parm.current_page = Number(obj.current_page); var parm = obj;
} else { if (obj.page_size) {
parm.current_page = 1; parm.page_size = Number(obj.page_size);
} } else {
return await this.usersSve.findUserInfo(parm); parm.page_size = 10;
} }
async FindlabourByWhere(obj) { //根据条件获取招工信息 if (obj.current_page) {
var parm = obj; parm.current_page = Number(obj.current_page);
if (obj.page_size) { } else {
parm.page_size = Number(obj.page_size); parm.current_page = 1;
} else { }
parm.page_size = 10; return await this.usersSve.findUserInfo(parm);
} }
async FindlabourByWhere(obj) { //根据条件获取招工信息
var parm = obj;
if (obj.page_size) {
parm.page_size = Number(obj.page_size);
} else {
parm.page_size = 10;
}
if (obj.current_page) { if (obj.current_page) {
parm.current_page = Number(obj.current_page); parm.current_page = Number(obj.current_page);
} else { } else {
parm.current_page = 1; parm.current_page = 1;
} }
if (obj.com_name) { if (obj.com_name) {
var userobj = {}; var userobj = {};
userobj.com_name = obj.com_name; userobj.com_name = obj.com_name;
var userinfo = await this.usersSve.findUserInfo(userobj); var userinfo = await this.usersSve.findUserInfo(userobj);
if (userinfo.status == 1) { if (userinfo.status == 1) {
parm.user_id = userinfo.data[0].user_id; parm.user_id = userinfo.data[0].user_id;
} }
} }
return await this.labourSve.findlabourByWhere(parm); return await this.labourSve.findlabourByWhere(parm);
}
async FindRecruitByWhere(obj) { //根据条件获取招聘信息
var parm = obj;
if (obj.page_size) {
parm.page_size = Number(obj.page_size);
} else {
parm.page_size = 10;
} }
async FindRecruitByWhere(obj) { //根据条件获取招聘信息 if (obj.current_page) {
var parm = obj; parm.current_page = Number(obj.current_page);
if (obj.page_size) { } else {
parm.page_size = Number(obj.page_size); parm.current_page = 1;
} else { }
parm.page_size = 10; if (obj.com_name) {
} var userobj = {};
userobj.com_name = obj.com_name;
var userinfo = await this.usersSve.findUserInfo(userobj);
if (userinfo.status == 1) {
parm.user_id = userinfo.data[0].user_id;
}
}
return await this.recruitSve.findRecruitByWhere(parm);
}
if (obj.current_page) { async updateUserInfo(obj) { //根据id更新用户信息
parm.current_page = Number(obj.current_page); if (!obj.id) {
} else { return system.getResult(null, "参数错误");
parm.current_page = 1;
}
if (obj.com_name) {
var userobj = {};
userobj.com_name = obj.com_name;
var userinfo = await this.usersSve.findUserInfo(userobj);
if (userinfo.status == 1) {
parm.user_id = userinfo.data[0].user_id;
}
}
return await this.recruitSve.findRecruitByWhere(parm);
} }
async updateUserInfo(obj) { //根据id更新用户信息 try {
if (!obj.id) { if (obj.phone_no) {
return system.getResult(null, "参数错误"); var phone_no = this.trim(obj.phone_no);
if (!/^1[23456789]\d{9}$/.test(phone_no)) {
return system.getResult(null, "手机号码格式不正确");
} }
try{ if (obj.vcode) {
if (obj.phone_no){ var vcode = this.trim(obj.vcode);
var phone_no = this.trim(obj.phone_no);
if (!/^1[23456789]\d{9}$/.test(phone_no)) {
return system.getResult(null, "手机号码格式不正确");
}
if (obj.vcode){
var vcode = this.trim(obj.vcode);
var key = this.vcodePrev + phone_no;
var code = await this.redisClient.get(key) || "";
if(!code) {
return system.getResult(null, "验证码已失效,请再1分钟之内输入");
}
if(vcode != code) {
return system.getResult(null, "验证码错误,请重新输入");
}
}
else{
return system.getResult(null, "验证码为空,请输入验证码");
}
}
var result = await this.usersSve.updateUserInfo(obj);
if (result == 1) {
var user_info = await this.usersSve.findUserInfoByid(obj.id);
return system.getResult(user_info);
} else {
return system.getResult(null, "更新失败");
}
}
catch{
return system.getResult(null, "更新失败!");
}
}
async UpdateLabourStatus(obj) { //更新劳工信息审核状态 var key = this.vcodePrev + phone_no;
if (!obj.id || !obj.cur_status) { var code = await this.redisClient.get(key) || "";
return system.getResult(null, "参数不能为空"); if (!code) {
} return system.getResult(null, "验证码已失效,请再1分钟之内输入");
var re = await this.labourSve.updatestatus(obj); }
if (re == 1) { if (vcode != code) {
return system.getResult(re); return system.getResult(null, "验证码错误,请重新输入");
}
} else { } else {
return system.getResult(null, "更新数据失败"); return system.getResult(null, "验证码为空,请输入验证码");
} }
}
var result = await this.usersSve.updateUserInfo(obj);
if (result == 1) {
var user_info = await this.usersSve.findUserInfoByid(obj.id);
return system.getResult(user_info);
} else {
return system.getResult(null, "更新失败");
}
} catch {
return system.getResult(null, "更新失败!");
} }
async UpdateRecruitStatus(obj) { //更新招聘信息审核状态 }
if (!obj.id || !obj.cur_status) {
return system.getResult(null, "参数不能为空"); async UpdateLabourStatus(obj) { //更新劳工信息审核状态
} if (!obj.id || !obj.cur_status) {
var re = await this.recruitSve.updatestatus(obj); return system.getResult(null, "参数不能为空");
if (re == 1) { }
return system.getResult(re); var re = await this.labourSve.updatestatus(obj);
} else { if (re == 1) {
return system.getResult(null, "更新数据失败"); return system.getResult(re);
} } else {
return system.getResult(null, "更新数据失败");
} }
}
async UpdateAccountStatus(obj) { //更新账户状态信息 async UpdateRecruitStatus(obj) { //更新招聘信息审核状态
if (!obj.id || !obj.cur_status) { if (!obj.id || !obj.cur_status) {
return system.getResult(null, "参数不能为空"); return system.getResult(null, "参数不能为空");
} }
var re = await this.usersSve.updateAccountstatus(obj); var re = await this.recruitSve.updatestatus(obj);
if (re == 1) { if (re == 1) {
return system.getResult(re); return system.getResult(re);
} else { } else {
return system.getResult(null, "更新数据失败"); return system.getResult(null, "更新数据失败");
}
} }
}
async UpdateUserStatus(obj) { //更新用户实名认证信息 async UpdateAccountStatus(obj) { //更新账户状态信息
if (!obj.id || !obj.cur_status) { if (!obj.id || !obj.cur_status) {
return system.getResult(null, "参数不能为空"); return system.getResult(null, "参数不能为空");
}
var re = await this.usersSve.updateUserstatus(obj);
if (re == 1) {
return system.getResult(re);
} else {
return system.getResult(null, "更新数据失败");
}
} }
var re = await this.usersSve.updateAccountstatus(obj);
if (re == 1) {
return system.getResult(re);
} else {
return system.getResult(null, "更新数据失败");
}
}
async UpdateCompanyStatus(obj) { //更新企业实名认证信息 async UpdateUserStatus(obj) { //更新用户实名认证信息
if (!obj.id || !obj.cur_status) { if (!obj.id || !obj.cur_status) {
return system.getResult(null, "参数不能为空"); return system.getResult(null, "参数不能为空");
} }
var re = await this.usersSve.updateCompanystatus(obj); var re = await this.usersSve.updateUserstatus(obj);
if (re == 1) { if (re == 1) {
return system.getResult(re); return system.getResult(re);
} else { } else {
return system.getResult(null, "更新数据失败"); return system.getResult(null, "更新数据失败");
}
} }
}
/** async UpdateCompanyStatus(obj) { //更新企业实名认证信息
* 定时更新招聘信息 if (!obj.id || !obj.cur_status) {
*/ return system.getResult(null, "参数不能为空");
async UpdateRecruitExpired(){
try {
await this.recruitSve.UpdateRecruitExpired();
} catch (error) {
console.log(`系统错误 错误信息${error}`);
}
} }
var re = await this.usersSve.updateCompanystatus(obj);
if (re == 1) {
return system.getResult(re);
} else {
return system.getResult(null, "更新数据失败");
}
}
/**
* 定时更新招聘信息
*/
async UpdateRecruitExpired() {
try {
await this.recruitSve.UpdateRecruitExpired();
} catch (error) {
console.log(`系统错误 错误信息${error}`);
}
}
async ParamRecruitExcel(obj){ async ParamRecruitExcel(obj) {
if (!obj.userId || !obj.ossUrl){ if (!obj.userId || !obj.ossUrl) {
return system.getResult(null, "参数不能为空"); return system.getResult(null, "参数不能为空");
} }
var userId = obj.userId; var userId = obj.userId;
var ossurl = obj.ossUrl; var ossurl = obj.ossUrl;
var dataList = []; var dataList = [];
var filePath = "/tmp/recruit_info_" + userId + ".xlsx"; var filePath = "/tmp/recruit_info_" + userId + ".xlsx";
try { try {
await this.restClient.execDownload("'" + ossurl + "'", filePath); await this.restClient.execDownload("'" + ossurl + "'", filePath);
var sheets = xlsx.parse(filePath); var sheets = xlsx.parse(filePath);
var rows = sheets[0].data; var rows = sheets[0].data;
for (var i = 5; i < rows.length; i++) { for (var i = 5; i < rows.length; i++) {
var cells = rows[i]; var cells = rows[i];
if (cells[0]){ if (cells[0]) {
var data = {}; var data = {};
data.recruit_name = "" + cells[1]; data.recruit_name = "" + cells[1];
data.recruit_type = "" + cells[2]; data.recruit_type = "" + cells[2];
data.recruit_count = "" + cells[3]; data.recruit_count = "" + cells[3];
data.pay_name = "" + cells[4]; data.pay_name = "" + cells[4];
if (data.pay_name == "月薪"){ if (data.pay_name == "月薪") {
data.pay_type = 1; data.pay_type = 1;
} } else if (data.pay_name == "日薪") {
else if (data.pay_name == "日薪"){ data.pay_type = 2;
data.pay_type = 2; } else if (data.pay_name == "时薪") {
} data.pay_type = 3;
else if (data.pay_name == "时薪"){ } else {
data.pay_type = 3; data.pay_type = null;
} }
else{ data.pay_unit = null;//少一个薪资单价
data.pay_type = null; var temp = "" + cells[5];
} if (temp && temp != "—" && temp != "面议") {
data.pay_unit = null;//少一个薪资单价 data.basic_salary = Number(temp) * 100;
var temp = "" + cells[5]; } else {
if (temp && temp != "—" && temp != "面议"){ data.basic_salary = null;
data.basic_salary = Number(temp) * 100; }
} temp = "" + cells[6];
else{ if (temp && temp != "—" && temp != "面议") {
data.basic_salary = null; data.compre_salary = Number(temp) * 100;
} } else {
temp = "" + cells[6]; data.compre_salary = null;
if (temp && temp != "—" && temp != "面议"){ }
data.compre_salary = Number(temp) * 100; temp = "" + cells[7];
} if (temp && temp != "—") {
else{ data.work_duration = Number(temp);
data.compre_salary = null; } else {
} data.work_duration = null;
temp = "" + cells[7]; }
if (temp && temp != "—"){ temp = "" + cells[8];
data.work_duration = Number(temp); if (temp == "面议") {
} data.rfee_type = 0;
else{ } else if (temp == "月返") {
data.work_duration = null; data.rfee_type = 1;
} } else if (temp == "日返") {
temp = "" + cells[8]; data.rfee_type = 2;
if (temp == "面议"){ } else if (temp == "时返") {
data.rfee_type = 0; data.rfee_type = 3;
} } else if (temp == "一次返") {
else if (temp == "月返"){ data.rfee_type = 4;
data.rfee_type = 1; } else {
} data.rfee_type = null;
else if (temp == "日返"){ }
data.rfee_type = 2; temp = "" + cells[9];
} if (temp && temp != "—") {
else if (temp == "时返"){ var arr = temp.split("/");
data.rfee_type = 3; if (arr.length == 2) {
} data.rfee_duration = arr[0];
else if (temp == "一次返"){ data.rfee_time = arr[1];
data.rfee_type = 4; } else {
} data.rfee_duration = null;
else{ data.rfee_time = null;
data.rfee_type = null;
}
temp = "" + cells[9];
if (temp && temp != "—"){
var arr = temp.split("/");
if (arr.length ==2){
data.rfee_duration = arr[0];
data.rfee_time = arr[1];
}
else{
data.rfee_duration = null;
data.rfee_time = null;
}
}
else{
data.rfee_duration = null;
data.rfee_time = null;
}
temp = "" + cells[10];
if (temp){
data.age_range = temp;
}
else{
data.age_range = null;
}
temp = "" + cells[11];
if (temp){
data.work_address = temp;
}
else{
data.work_address = null;
}
data.publish_date = (new Date()).Format("yyyy-MM-dd");
temp = "" + cells[12];
if (temp){
if (temp == "长期"){
data.end_date = "1970-01-01";
}
else{
data.end_date = temp;
}
}
else{
data.end_date = null;
}
data.pic_path = null;
temp = "" + cells[14];
if (temp){
data.recrui_require = temp;
}
else{
data.recrui_require = null;
}
temp = "" + cells[15];
if (temp){
data.phone_no = temp;
}
else{
data.phone_no = null;
//data.user_id = null;
}
temp = "" + cells[14];
if (temp){
var parm = {
user_name: temp,
find_type: 0,
real_status: "企业已认证"
}
var user_info = await this.usersSve.findUserInfo(parm);
if (user_info.status == -1) {
data.user_id = null;
}
else{
if (user_info.count > 0){
data.user_id = user_info.rows[0].id;
}
else{
data.user_id = null;
}
}
}
else{
data.user_id = null;
}
data.counter_mark = null;
data.cur_type = 1;
data.cur_status = "展示中";
dataList.push(data)
}
} }
} else {
data.rfee_duration = null;
data.rfee_time = null;
}
temp = "" + cells[10];
if (temp) {
data.age_range = temp;
} else {
data.age_range = null;
}
temp = "" + cells[11];
if (temp) {
data.work_address = temp;
} else {
data.work_address = null;
}
data.publish_date = (new Date()).Format("yyyy-MM-dd");
temp = "" + cells[12];
if (temp) {
if (temp == "长期") {
data.end_date = "1970-01-01";
} else {
data.end_date = temp;
}
} else {
data.end_date = null;
}
data.pic_path = null;
temp = "" + cells[14];
if (temp) {
data.recrui_require = temp;
} else {
data.recrui_require = null;
}
temp = "" + cells[15];
if (temp) {
data.phone_no = temp;
} else {
data.phone_no = null;
//data.user_id = null;
}
temp = "" + cells[14];
if (temp) {
var parm = {
user_name: temp,
find_type: 0,
real_status: "企业已认证"
obj.dataList = dataList; }
var re = await this.recruitSve.ParamRecruitExcel(obj) var user_info = await this.usersSve.findUserInfo(parm);
if (re == 1) { if (user_info.status == -1) {
return system.getResult(re); data.user_id = null;
} else { } else {
return system.getResult(null, "插入数据失败"); if (user_info.count > 0) {
data.user_id = user_info.rows[0].id;
} else {
data.user_id = null;
}
} }
}
catch (e){
console.log(e);
return system.getResult(null, "接口异常");
}
} } else {
data.user_id = null;
}
async getOssConfig() { data.counter_mark = null;
var policyText = {
"expiration": "2119-12-31T16:00:00.000Z",
"conditions": [
["content-length-range", 0, 1048576000],
["starts-with", "$key", "zc"]
]
};
var accesskey = 'DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId = 'LTAIyAUK8AD04P5S';
var url = "https://gsb-zc.oss-cn-beijing.aliyuncs.com";
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature = crypto.createHmac('sha1', accesskey).update(policyBase64).digest().toString('base64'); //base64
var data = {
OSSAccessKeyId: accessKeyId,
policy: policyBase64,
Signature: signature,
Bucket: 'gsb-zc',
success_action_status: 201,
url: url
};
return data;
};
exam() { data.cur_type = 1;
return "xxx"; data.cur_status = "展示中";
dataList.push(data)
}
}
obj.dataList = dataList;
var re = await this.recruitSve.ParamRecruitExcel(obj)
if (re == 1) {
return system.getResult(re);
} else {
return system.getResult(null, "插入数据失败");
}
} catch (e) {
console.log(e);
return system.getResult(null, "接口异常");
} }
classDesc() { }
return {
groupName: "auth", // 工作量确认单
groupDesc: "认证相关的包", async paramXlsx(obj) {
name: "AccessAuthAPI", try {
desc: "关于认证的类", var rs = await this.workloadSve.paramXlsx(obj.userId, obj.ossUrl);
exam: "", if (rs.code == 0) {
}; return system.getErrResult2(rs.msg || "文件解析失败");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试")
} }
methodDescs() { }
return [{
methodDesc: "生成访问token", // 列表
methodName: "getAccessKey", async workLoadPage(obj) {
paramdescs: [{ try {
paramDesc: "访问appkey", obj.status = 0;
paramName: "appkey", var rs = await this.workloadSve.pageByCondition(obj);
paramType: "string", return system.getResultSuccess(rs);
defaultValue: "x", } catch (e) {
}, console.log(e);
{ return system.getErrResult2("您的网络不稳, 请稍后重试")
paramDesc: "访问secret",
paramName: "secret",
paramType: "string",
defaultValue: null,
}
],
rtnTypeDesc: "xxxx",
rtnType: "xxx"
}];
} }
}
async workLoadHistoryInfo(obj) {
try {
var rs = await this.workloadSve.historyInfo(obj);
return system.getResultSuccess(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试")
}
}
// 确认/全部
async workloadConfirm(obj) {
try {
var rs = await this.workloadSve.workloadConfirm(obj);
return system.getResultSuccess(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试")
}
}
// 确认列表
async workloadHistory(obj) {
try {
obj.status = 0;
var rs = await this.workloadSve.historyPage(obj);
return system.getResultSuccess(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试")
}
}
// 企业信息,家属拒
async companyInfo() {
try {
let companyInfo = {
companyName: "上海韵达货运有限公司",
taxType: "一般纳税人",
contactName: "陈梁",
contactEmail: "chenliang8725@yundasys.com",
contactAddr: "上海市青浦区赵巷镇盈港东路6679号",
bankAccount: "上海韵达货运有限公司",
openBank: "邮政储蓄银行青浦支行",
bankno: "100360752790012735",
sign_body: "舟山兰和科技有限公司",
signBeginTime: "2019-08-26",
signEndTime: "2020-08-26",
};
return system.getResultSuccess(companyInfo);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试")
}
}
async getOssConfig() {
var policyText = {
"expiration": "2119-12-31T16:00:00.000Z",
"conditions": [
["content-length-range", 0, 1048576000],
["starts-with", "$key", "zc"]
]
};
var accesskey = 'DHmRtFlw2Zr3KaRwUFeiu7FWATnmla';
var accessKeyId = 'LTAIyAUK8AD04P5S';
var url = "https://gsb-zc.oss-cn-beijing.aliyuncs.com";
var b = new Buffer(JSON.stringify(policyText));
var policyBase64 = b.toString('base64');
var signature = crypto.createHmac('sha1', accesskey).update(policyBase64).digest().toString('base64'); //base64
var data = {
OSSAccessKeyId: accessKeyId,
policy: policyBase64,
Signature: signature,
Bucket: 'gsb-zc',
success_action_status: 201,
url: url
};
return data;
};
exam() {
return "xxx";
}
classDesc() {
return {
groupName: "auth",
groupDesc: "认证相关的包",
name: "AccessAuthAPI",
desc: "关于认证的类",
exam: "",
};
}
methodDescs() {
return [{
methodDesc: "生成访问token",
methodName: "getAccessKey",
paramdescs: [{
paramDesc: "访问appkey",
paramName: "appkey",
paramType: "string",
defaultValue: "x",
},
{
paramDesc: "访问secret",
paramName: "secret",
paramType: "string",
defaultValue: null,
}
],
rtnTypeDesc: "xxxx",
rtnType: "xxx"
}];
}
} }
module.exports = LaoActionApi; module.exports = LaoActionApi;
// var tesk = new LaoActionApi(); // var tesk = new LaoActionApi();
......
...@@ -83,20 +83,5 @@ class UploadCtl extends CtlBase{ ...@@ -83,20 +83,5 @@ class UploadCtl extends CtlBase{
// return system.getErrResult2("您的网络不稳, 请稍后重试") // return system.getErrResult2("您的网络不稳, 请稍后重试")
// } // }
// } // }
async paramXlsx(queryobj, qobj, req) {
try {
var rs = await this.workloadSve.paramXlsx(req.session.user.id, qobj.url);
if (rs.code == 0) {
return system.getErrResult2(rs.msg || "文件解析失败");
}
return system.getResult2(rs);
} catch (e) {
console.log(e);
return system.getErrResult2("您的网络不稳, 请稍后重试")
}
}
} }
module.exports=UploadCtl; module.exports=UploadCtl;
...@@ -223,6 +223,8 @@ class Dao { ...@@ -223,6 +223,8 @@ class Dao {
} }
return this.db.query(sql, tmpParas); return this.db.query(sql, tmpParas);
} }
async findCount(whereObj = null) { async findCount(whereObj = null) {
return this.model.count(whereObj, { logging: false }).then(c => { return this.model.count(whereObj, { logging: false }).then(c => {
return c; return c;
......
const system=require("../../../system"); const system = require("../../../system");
const Dao=require("../../dao.base"); const Dao = require("../../dao.base");
class WorkloadDao extends Dao{
constructor(){ class WorkloadDao extends Dao {
super(Dao.getModelName(WorkloadDao)); constructor() {
super(Dao.getModelName(WorkloadDao));
}
async countHistory(params) {
var sql = [];
sql.push("SELECT COUNT(DISTINCT(id_nu)) AS num FROM `workload_info` WHERE status = 1");
this.setCondition(sql, params);
let rs = await this.customQuery(sql.join(" "), params);
if (!rs || rs.length == 0) {
return 0;
} }
return rs[0].num || 0;
}
async pageHistory(params) {
var sql = [];
sql.push("SELECT");
sql.push("`id`, `username`, `iphone`, `id_nu`, `card_nu`, `send_amount`,");
sql.push("`created_at`, `updated_time`, `workload`, ");
sql.push("`created_time`, `updated_at`, `status`,");
sql.push("sum(send_amount) AS allAmount, COUNT(1) AS times");
sql.push("FROM `workload_info`")
sql.push("WHERE status = 1")
this.setCondition(sql, params);
sql.push("GROUP BY id_nu");
sql.push("LIMIT :startRow, :pageSize");
return await this.customQuery(sql.join(" "), params);
}
async findByIdNo(params) {
var sql = [];
sql.push("SELECT");
sql.push("`id`, `username`, `iphone`, `id_nu`, `card_nu`, `send_amount`,");
sql.push("`created_at`, `updated_time`, `workload`, ");
sql.push("`created_time`, `updated_at`, `status`");
sql.push("FROM `workload_info`");
sql.push("WHERE id_nu = :id_nu");
return await this.customQuery(sql.join(" "), params);
}
setCondition(sql, params) {
if (params.username) {
sql.push("AND username = :username");
}
if (params.iphone) {
sql.push("AND iphone = :iphone");
}
if (params.id_nu) {
sql.push("AND id_nu = :id_nu");
}
}
} }
module.exports=WorkloadDao;
module.exports = WorkloadDao;
...@@ -42,7 +42,7 @@ module.exports = (db, DataTypes) => { ...@@ -42,7 +42,7 @@ module.exports = (db, DataTypes) => {
freezeTableName: true, freezeTableName: true,
//freezeTableName: true, //freezeTableName: true,
// define the table's name // define the table's name
tableName: 'user_info', tableName: 'user_info',
validate: { validate: {
}, },
......
...@@ -4,59 +4,153 @@ const xlsx = require('node-xlsx'); ...@@ -4,59 +4,153 @@ const xlsx = require('node-xlsx');
const fs = require("fs"); const fs = require("fs");
class WorkloadService extends ServiceBase { class WorkloadService extends ServiceBase {
constructor() { constructor() {
super("common", ServiceBase.getDaoName(WorkloadService)); super("common", ServiceBase.getDaoName(WorkloadService));
this.restClient = system.getObject("util.restClient"); this.restClient = system.getObject("util.restClient");
} }
async paramXlsx(userId, ossurl) { async pageByCondition(params) {
var result = { var currentPage = Number(params.currentPage || 1);
code: 0, var pageSize = Number(params.pageSize || 10);
msg: "",
list: [], var username = this.trim(params.username);
}; var iphone = this.trim(params.iphone);
var filePath = "/tmp/esettle_offline_" + userId + ".xlsx"; var id_nu = this.trim(params.id_nu);
try { var status = this.trim(params.status);
await this.restClient.execDownload("'" + ossurl + "'", filePath);
var sheets = xlsx.parse(filePath); var where = {};
var rows = sheets[0].data;
var resu = []; var orderby = [
for (let i = 0; i < rows.length; i++) { ["id", 'desc']
if (2 > i) { ];
continue;
} if (username) {
var heads = rows[0]; where.username = username;
var cells = rows[i]; }
for (let j = 0; j < cells.length; j++) { if (iphone) {
if (cells[j] === undefined) { where.iphone = iphone;
result.msg = "excel序号为" + cells[0] + "的" + heads[j] + "不能为空"; }
return result; if (id_nu) {
} where.id_nu = id_nu
} }
var data = {}; if (params.status === 0 || params.status === 1) {
data.username = "" + cells[1]; where.status = params.status;
data.iphone = "" + cells[2]; }
data.id_nu = "" + cells[3];
data.card_nu = "" + cells[4]; var page = await this.getPageList(currentPage, pageSize, where, orderby, null);
data.send_amount = "" + cells[5]; if (page && page.rows) {
data.created_time = "" + new Date(1900, 0, cells[6]); for (var item of page.rows) {
data.updated_time = "" + new Date(1900, 0, cells[7]); this.handleDate(item, ['created_time', 'updated_time'], 'YYYY-MM-DD');
data.workload = "" + cells[8]; this.handleDate(item, ['updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss');
resu.push(data) }
} }
await this.dao.model.bulkCreate(resu, {fields: ["username", "iphone", "id_nu", "card_nu", "send_amount", "created_time", "updated_time", "workload"]}); return page;
result.code = 1; }
result.msg = "上传成功";
return result; async workloadConfirm(params) {
} catch (e) { var sql = [];
console.log(e); sql.push("UPDATE");
result.msg = "接口异常"; sql.push("workload_info");
sql.push("SET `status` = 1, updated_at = NOW()");
sql.push("WHERE `status` = 0");
if (params.id) {
sql.push("AND id = :id ");
}
await this.customUpdate(sql.join(" "), params);
return 1;
}
async historyPage(params) {
params.currentPage = Number(params.currentPage || 1);
params.pageSize = Number(params.pageSize || 10);
params.username = this.trim(params.username);
params.iphone = this.trim(params.iphone);
params.id_nu = this.trim(params.id_nu);
params.status = this.trim(params.status);
let total = await this.dao.countHistory(params);
if (total == 0) {
return {count: 1, rows: []};
}
params.startRow = (params.currentPage - 1) * params.pageSize;
let list = await this.dao.pageHistory(params);
if (list) {
for (var item of list) {
this.handleDate(item, ['created_time', 'updated_time'], 'YYYY-MM-DD');
this.handleDate(item, ['updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss');
}
}
return {count: total, rows: list};
}
async historyInfo(params) {
let wl = await this.findById(params.id);
if (!wl) {
return [];
}
let list = await this.dao.findByIdNo({id_nu: wl.id_nu});
if (list) {
for (var item of list) {
this.handleDate(item, ['created_time', 'updated_time'], 'YYYY-MM-DD');
this.handleDate(item, ['updated_at', 'created_at'], 'YYYY-MM-DD HH:mm:ss');
}
}
return list;
}
async paramXlsx(userId, ossurl) {
var result = {
code: 0,
msg: "",
list: [],
};
var filePath = "/tmp/esettle_offline_" + userId + ".xlsx";
try {
await this.restClient.execDownload("'" + ossurl + "'", filePath);
var sheets = xlsx.parse(filePath);
var rows = sheets[0].data;
var resu = [];
for (let i = 0; i < rows.length; i++) {
if (2 > i) {
continue;
}
var heads = rows[0];
var cells = rows[i];
if (cells.length < 9) {
result.msg = "excel第" + i + "行,数据不全";
return result;
}
for (let j = 0; j < cells.length; j++) {
if (!cells[j]) {
result.msg = "excel序号为" + cells[0] + "的" + heads[j] + "不能为空";
return result; return result;
}
} }
var data = {};
data.username = this.trim(cells[1]);
data.iphone = this.trim(cells[2]);
data.id_nu = this.trim(cells[3]);
data.card_nu = this.trim(cells[4]);
data.send_amount = this.trim(cells[5]);
data.created_time = new Date(1900, 0, cells[6]);
data.updated_time = new Date(1900, 0, cells[7]);
data.workload = this.trim(cells[8]);
resu.push(data)
}
await this.dao.model.bulkCreate(resu, {fields: ["username", "iphone", "id_nu", "card_nu", "send_amount", "created_time", "updated_time", "workload"]});
result.code = 1;
result.msg = "上传成功";
return result;
} catch (e) {
console.log(e);
result.msg = "接口异常";
return result;
} }
}
} }
module.exports = WorkloadService; module.exports = WorkloadService;
\ No newline at end of file
...@@ -49,6 +49,9 @@ class ServiceBase { ...@@ -49,6 +49,9 @@ class ServiceBase {
async customQuery(sql, paras, t) { async customQuery(sql, paras, t) {
return this.dao.customQuery(sql, paras, t); return this.dao.customQuery(sql, paras, t);
} }
async customUpdate(sql, paras, t) {
return this.dao.customUpdate(sql, paras, t);
}
async findCount(whereObj = null) { async findCount(whereObj = null) {
return this.dao.findCount(whereObj); return this.dao.findCount(whereObj);
} }
...@@ -105,5 +108,30 @@ class ServiceBase { ...@@ -105,5 +108,30 @@ class ServiceBase {
} }
return uuid.join(''); return uuid.join('');
} }
handleDate(row, fields, pattern, addHours) {
pattern = pattern || "YYYY-MM-DD HH:mm:ss";
if (!row) {
return;
}
for (var field of fields) {
if (row[field]) {
if(addHours) {
row[field] = moment(row[field]).add(addHours,"hours").format(pattern);
} else {
row[field] = moment(row[field]).format(pattern);
}
}
}
}
trim(o) {
if (!o) {
return "";
}
return o.toString().trim();
}
} }
module.exports = ServiceBase; module.exports = ServiceBase;
...@@ -134,6 +134,37 @@ class System { ...@@ -134,6 +134,37 @@ class System {
} }
}; };
static y2f(y) {
if (!y) {
return 0;
}
return (Number(y) * 100).toFixed(0);
}
static f2y(f) {
if (!f) {
return 0;
}
return parseFloat((Number(f) / 100).toFixed(2));
}
static f2y4list(list, fields, prev) {
if (!list || list.length == 0 || !fields || fields.length == 0) {
return;
}
prev = prev || "";
for (var item of list) {
for (var f of fields) {
var v = item[f] || 0;
try {
item[f + "_y"] = prev + parseFloat((Number(v) / 100).toFixed(2));
} catch (error) {
console.log(error);
}
}
}
}
} }
Date.prototype.Format = function (fmt) { //author: meizz Date.prototype.Format = function (fmt) { //author: meizz
var o = { var o = {
......
...@@ -7,13 +7,13 @@ var settings={ ...@@ -7,13 +7,13 @@ var settings={
}, },
database:{ database:{
dbname : "laowubao", dbname : "laowubao",
user : "root", // user : "root",
password : "root", // password : "root",
// dbname : "laowubao", // dbname : "laowubao",
// user: "write", user: "write",
// password: "write", password: "write",
config : { config : {
host: '192.168.18.110', host: '192.168.18.237',
// dbname : "laowubao", // dbname : "laowubao",
// user: "write", // user: "write",
// password: "write", // password: "write",
......
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