Commit 18aaad4d by lixinming

no message

parent 7920c10f
......@@ -195,7 +195,7 @@ export async function unpaidList({name, memberType, documentId, phone, mail, joi
* 会员级别/职务:【普通会员、理事会员、常务理事会员】
* @param pageNumber 当前页
*/
export async function getRenewalPeriod({name, memberType, documentId, phone, mail, joinStartTime, joinEndTime, memberLevel, duties, pageNumber}) {
export async function getRenewalPeriod({name, memberType, documentId, phone, mail, joinStartTime, joinEndTime, memberLevel, pageNumber}) {
const NowMs = new Date().valueOf();
let selectParam:any = {
"$or":[
......
......@@ -2,7 +2,7 @@
* 订单相关 success
*/
import moment = require("moment");
import { AUDITINGCLIENT, COSTTYPE, INDIVIDUALMEMBERTYPE, INVOICESTATUS, ISPAYENUM, ISRECEIVE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, MYORDERLISTPAYSTATE, MYORDERLISTSTATE, OPERATIONREHAVIOR, ORDERSTATE, PAYMENTSTATUS, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, UNITMEMBERTYPE } from "../../config/enum";
import { AUDITINGCLIENT, COSTTYPE, INDIVIDUALMEMBERTYPE, INVOICESTATUS, ISPAYENUM, ISRECEIVE, MEMBERLEVEL, MEMBERSTATE, MEMBERTYPE, MYORDERLISTPAYSTATE, MYORDERLISTSTATE, OPERATIONREHAVIOR, ORDEREXAMINE, ORDERSTATE, PAYMENTSTATUS, PAYMENTTYPE, RECEIPTCONFIRMATION, STATE, UNITMEMBERTYPE } from "../../config/enum";
import { generateOrderId, successResult } from "../../tools/system";
import { changeEnumValue, eccEnumValue } from "../../util/verificationEnum";
import { addOneData } from "../../data/add";
......@@ -292,6 +292,16 @@ export async function confirmReceiptOut({id, isReceive, returnsReasons}) {
await updateOneData(TABLEENUM.订单表, {id}, updateInfo);
//添加日志
let addLogInfo = {
orderId:id,
operationTime:new Date().valueOf(),
operationBehavior:ORDEREXAMINE.退回,
isReceiveMoney:isReceive == ISRECEIVE.提供账户_zkh需退款_ykh,
remarks:`${changeEnumValue(ISRECEIVE, isReceive)}`
};
await addOneData(TABLEENUM.订单审批历史表, addLogInfo );
return successResult();
}
......@@ -385,7 +395,7 @@ export async function upInvoice({id, invoiceUrl}) {
let updateInfo = {
invoiceStatus : INVOICESTATUS.已开发票,
invoiceAdd:invoiceUrl
// invoiceAdd:invoiceUrl
};
await updateOneData(TABLEENUM.订单表, {id}, updateInfo);
......@@ -532,7 +542,7 @@ export async function orderList({userId, type}) {
if (type == ORDERSTATE.已支付) findParam.state = ORDERSTATE.已支付;
else if (type == ORDERSTATE.未支付) findParam.state = ORDERSTATE.未支付;
const SelectFile = ["orderCycleStart", "orderCycleEnd", "money", "state", "id", "advanceInvoice", "invoiceStatus", "unitName", "confirmReceipt", "newUscc", "isReceive", "isReplenishReturnInfo"];
const SelectFile = ["orderCycleStart", "orderCycleEnd", "money", "state", "id", "advanceInvoice", "invoiceStatus", "unitName", "confirmReceipt", "newUscc", "isReceive", "isReplenishReturnInfo", "refundSuccessful", "refundImgUrl"];
let dbList = await find(TABLEENUM.订单表, findParam, SelectFile);
/**查询证明函需要字段会员等级 */
let myOldInfo = await findOnce(TABLEENUM.用户表, {userId}, ["memberLevel", "userId", "uscc", "memberType"]);
......@@ -541,7 +551,7 @@ export async function orderList({userId, type}) {
let dataList = [];
dbList.forEach(info => {
let {orderCycleStart, orderCycleEnd, money, state, id, unitName, confirmReceipt, newUscc, isReceive, isReplenishReturnInfo} = info;
let {orderCycleStart, orderCycleEnd, money, state, id, unitName, confirmReceipt, newUscc, isReceive, isReplenishReturnInfo, refundSuccessful, refundImgUrl} = info;
let payState;
if (state == ORDERSTATE.已支付) {
if (!confirmReceipt) {/**首次支付 待确认未审核*/
......@@ -549,21 +559,21 @@ export async function orderList({userId, type}) {
} else if (confirmReceipt == RECEIPTCONFIRMATION.待确认) {
payState = MYORDERLISTPAYSTATE.财务查账中;
} else if (confirmReceipt == RECEIPTCONFIRMATION.收款确认) {
payState = MYORDERLISTPAYSTATE.已缴费
payState = MYORDERLISTPAYSTATE.已缴费;
} else {
if ( isReceive == ISRECEIVE.提供账户_zkh需退款_ykh ) {
if (!isReplenishReturnInfo) {
payState = MYORDERLISTPAYSTATE.退款通知
} else if (isReplenishReturnInfo ) {//todo 这里还要加一个条件
payState = MYORDERLISTPAYSTATE.退款成功
}
if ( isReceive == ISRECEIVE.提供账户_zkh需退款_ykh ) {//收到了用户的款项的退款
if (isReplenishReturnInfo && refundSuccessful ) {
payState = MYORDERLISTPAYSTATE.退款成功;
} else {
payState = MYORDERLISTPAYSTATE.缴费失败
payState = MYORDERLISTPAYSTATE.退款通知;
}
} else {//无需退款
payState = MYORDERLISTPAYSTATE.缴费失败;
}
}
} else {
payState = MYORDERLISTPAYSTATE.待缴费
payState = MYORDERLISTPAYSTATE.待缴费;
}
let invoiceState;
......@@ -571,7 +581,7 @@ export async function orderList({userId, type}) {
if (info.invoiceStatus != INVOICESTATUS.已开发票 && info.advanceInvoice) invoiceState = MYORDERLISTSTATE.申请进度;
if (info.invoiceStatus != INVOICESTATUS.已开发票 && !info.advanceInvoice) invoiceState = MYORDERLISTSTATE.申请发票;
let item = {
let item:any = {
cycle:`${moment(orderCycleStart).format("YYYY-MM-DD")}${moment(orderCycleEnd).format("YYYY-MM-DD")}`,
money:money,
id,
......@@ -586,6 +596,7 @@ export async function orderList({userId, type}) {
payStateStr:changeEnumValue(MYORDERLISTPAYSTATE, payState),
memberType:myOldInfo.memberType
};
if (refundImgUrl) item.refundImgUrl = refundImgUrl;
dataList.push(item);
});
......@@ -700,17 +711,154 @@ export async function getInvoiceStatus({id}) {
}
/**
* 退款信息回显
* @param param0
*/
export async function reasonInfo({id}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id});
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
if ( orderInfo.confirmReceipt != RECEIPTCONFIRMATION.退回) throw new BizError(ERRORENUM.该订单未被退回);
let logInfo = await findOnceToSort(TABLEENUM.订单审批历史表, {operationBehavior:ORDEREXAMINE.退回}, {operationTime:-1});
let dataInfo = {
operationTime:moment(logInfo.operationTime).format("YYYY/MM/DD HH:mm:SS"),
behavior:"退回",
isReceiveMoney:logInfo.isReceiveMoney ? "已到款项" : "未到款项",
remarks:logInfo.remarks
};
return {dataList:[dataInfo]};
}
/**
* 退款信息
* @param param0
*/
export async function accountInfo({id, form}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id});
if (!orderInfo || !orderInfo.id) throw new BizError(ERRORENUM.目标数据不存在);
if ( orderInfo.confirmReceipt != RECEIPTCONFIRMATION.退回) throw new BizError(ERRORENUM.该订单未被退回);
if (orderInfo.isReplenishReturnInfo) throw new BizError(ERRORENUM.不可重复提交)
//添加信息
let updateInfo = {
refundName : form.refundName,
refundBankCarId : form.refundBankCarId,
refundBankName : form.refundBankName,
refundDesc : form.refundDesc,
isReplenishReturnInfo:true
};
await updateOneData(TABLEENUM.订单表, {id}, updateInfo );
//添加日志
let addLogInfo = {
orderId:id,
operationTime:new Date().valueOf(),
operationBehavior:ORDEREXAMINE.用户提交,
remarks:`退款账户${form.refundBankCarId}`
};
await addOneData(TABLEENUM.订单审批历史表, addLogInfo );
return successResult();
}
/**
* 退款列表
* @param param0
*/
export async function refundList({pageNumber}) {
let findParam:any = {
isReceive:ISRECEIVE.提供账户_zkh需退款_ykh
};
let selectFile = ["id", "unitName", "orderCycleStart", "orderCycleEnd", "money", "memberCategory", "userId", "refundBankCarId", "refundBankName", "refundSuccessful", "isReplenishReturnInfo" ];
let dbList = await findToPage(TABLEENUM.订单表, findParam, selectFile, pageNumber);
let dataCount = await findCount(TABLEENUM.订单表, findParam);
let dataList = [];
let itemFile = ["id", "unitName", "money", "userId", "memberCategory", "refundBankCarId", "refundBankName"];
for (let i = 0; i < dbList.length; i++) {
let info = dbList[i];
let itemData:any = extractData(info, itemFile);
// itemData.joinTime = moment(info.orderCycleStart).format("YYYY-MM-DD");
itemData.memberType = changeEnumValue(MEMBERTYPE, itemData.memberCategory);
itemData.cycle = `${moment(info.orderCycleStart).format("YYYY-MM-DD")}${moment(info.orderCycleEnd).format("YYYY-MM-DD")}`;
let userInfo = await findOnce(TABLEENUM.用户表, {userId:itemData.userId}, ["memberState", "name"]);
itemData.name = userInfo.name;
if (!info.isReplenishReturnInfo) itemData.state = "资料补充中";
else {
if (info.refundSuccessful) itemData.state = "已退款";
else itemData.state = "待退款";
}
dataList.push(itemData);
}
return {dataList, dataCount};
}
/**
* 退款确认
*/
export async function refundApprove({id, refundImgUrl}) {
let orderInfo = await findOnce(TABLEENUM.订单表, {id});
if (!orderInfo || !orderInfo.id ) throw new BizError(ERRORENUM.目标数据不存在);
// if (orderInfo.isFirst && !orderInfo.firstPayExamine ) throw new BizError(ERRORENUM.重复提交, '发票管理-财务核对页-收款确认', `提交通过时订单未通过待支付页的校验`);
if (orderInfo.confirmReceipt != RECEIPTCONFIRMATION.退回) throw new BizError(ERRORENUM.订单非退回状态, '发票管理-退款列表页-退款确认', `退款确认时订单已经不是退款状态 是${orderInfo.confirmReceipt}`);
if (orderInfo.paymentMethod == PAYMENTTYPE.微信支付) throw new BizError(ERRORENUM.微信支付无法被退回);
if (orderInfo.isReceive != ISRECEIVE.提供账户_zkh需退款_ykh) throw new BizError(ERRORENUM.该类型退款无需确认);
let updateInfo:any = {refundSuccessful:true, refundImgUrl};
await updateOneData(TABLEENUM.订单表, {id}, updateInfo);
//添加日志
let addLogInfo = {
orderId:id,
operationTime:new Date().valueOf(),
operationBehavior:ORDEREXAMINE.退回,
isReceiveMoney:true,
remarks:`已退款`,
refundImgUrl
};
await addOneData(TABLEENUM.订单审批历史表, addLogInfo );
return successResult();
}
/**
* 审批历史
*/
export async function approveLog({id}) {
// let logsList = await find(TABLEENUM.订单审批历史表, {orderId:id});
// let dataList = [];
// logsList.forEach(info => {
// let { operationTime, operationBehavior, isReceiveMoney, remarks } = info;
// let desc = "";
// let addInfo:any = {
// operationTime:moment(operationTime).format("YYYY-MM-DD HH:mm:SS"),
// operationBehavior:changeEnumValue(ORDEREXAMINE, info.operationBehavior),
// remarks,
// other
// };
// if (info.refundImgUrl) {
// addInfo.refundImgUrl = refundImgUrl;
// }
// } );
}
......
......@@ -24,10 +24,10 @@ export async function login({loginId, pwd}) {
let selectParam = { "$or":[{loginId:loginId}, {phone:loginId}] };
let userInfo = await findOnce(TABLEENUM.用户表, selectParam);
if (userInfo.isBlackUser == STATE.) throw new BizError(ERRORENUM.黑名单用户不允许登录, "您的会员服务已过期,如需恢复请联系秘书处:010-86208681");
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.账号或密码错误);
if (userInfo.isBlackUser == STATE.) throw new BizError(ERRORENUM.黑名单用户不允许登录, "您的会员服务已过期,如需恢复请联系秘书处:010-86208681");
if (userInfo.isInput && !userInfo.inputUserChangePwd) {
return {
isInput:userInfo.isInput,
......@@ -85,7 +85,12 @@ export async function changePwd({phone, pwd, confirmation, code}) {
if (pwd.search(/^[A-Za-z0-9]{6,18}$/) < 0) throw new BizError(ERRORENUM.密码只能由618位字符和数字组成);
if (pwd != confirmation) throw new BizError(ERRORENUM.两次密码不一致);
let userInfo = await findOnce(TABLEENUM.用户表, {phone}, ["userId"]);
let codeInfo = await findOnce(TABLEENUM.验证码表, {codeNum:code, phone, type:CODETYPE.修改密码, isUse:false});
if (!codeInfo || !codeInfo.codeNum) {
throw new BizError(ERRORENUM.验证码错误);
}
let userInfo = await findOnce(TABLEENUM.用户表, {phone}, ["userId", "isInput", "inputUserChangePwd"]);
if (!userInfo || !userInfo.userId) throw new BizError(ERRORENUM.手机号不正确);
// let pwdStr = generatePwd(userInfo.userId, pwd); todo
let pwdStr = pwd;
......@@ -95,6 +100,7 @@ export async function changePwd({phone, pwd, confirmation, code}) {
}
await updateOneData(TABLEENUM.用户表, {userId:userInfo.userId}, updateInfo);
await updateOneData(TABLEENUM.验证码表, {codeNum:code, phone, type:CODETYPE.修改密码, isUse:false}, {isUse:true});
return successResult();
}
......
......@@ -60,3 +60,5 @@ function getExcel(filePath) {
return {sheetMap, sheetList}
}
......@@ -686,6 +686,7 @@ export enum OOSCODE {
单位会员详情,
注册信息,
退款凭证 = 18,
退款确认
}
......@@ -748,3 +749,12 @@ export enum ISRECEIVE {
未收到款项_xg其他 = 1,
提供账户_zkh需退款_ykh
}
/**
* 订单审批
*/
export enum ORDEREXAMINE {
用户提交 = 1,
退回
}
\ No newline at end of file
......@@ -60,7 +60,10 @@ export enum ERRORENUM {
线下活动的活动时间必填,
用户没有在此活动对象内,
黑名单用户不允许登录,
该订单未被退回
该订单未被退回,
不可重复提交,
订单非退回状态,
该类型退款无需确认
}
export enum ERRORCODEENUM {
......
......@@ -494,10 +494,18 @@ const ModelArray = [
//2.0新加
invoiceMail:'String',//发票邮箱
desc:'String',//描述
isReceive:{type:"Number"},//退回理由中的是否受到款项【财务核对页收款退回】 ISRECEIVE
isReceive:{type:"Number", default:0},//退回理由中的是否受到款项【财务核对页收款退回】 ISRECEIVE
returnsReasons:'String',//退回理由中的退回理由描述【财务核对页收款退回】
//退款信息
refundName:"String",
refundBankCarId:"String",
refundBankName:"String",
refundDesc:"String",
isReplenishReturnInfo:{type:'Boolean', default:false},//是否补充退款信息
refundSuccessful:{type:"Boolean", default:false},//退款确认
refundImgUrl:"String"
}
},
{
......@@ -583,7 +591,19 @@ const ModelArray = [
userId:{type:'String'},//活动报名用户id
enrollUrl:{type:'String'}//报名表位置
}
},
{
tableName:TABLEENUM.订单审批历史表,//会员
source:TABLESOURCEENUM.mongo,
schema:{
orderId:{type:'String', index:true},//订单表 外键
operationTime:{ type:'Number' },//操作时间
operationBehavior:{ type:'Number'},//操作行为 枚举 ORDEREXAMINE
isReceiveMoney:{type:'Boolean', default:false},//是否收到款项
remarks:{ type:'String' },//备注
refundImgUrl:"String"//退款确认发票地址
}
},
];
......
......@@ -95,18 +95,18 @@ export const Config = {
subUrl:'/order/invoice/examine/upinvoice',
param:[
{key:"id", type:"String", desc:"订单id"},
{key:"invoiceUrl", type:"String", desc:"发票地址"},
// {key:"invoiceUrl", type:"String", desc:"发票地址"},
],
bindBiz:orderBiz.upInvoice
},
{
apiName:"待开发票-退回发票",
subUrl:'/order/invoice/examine/backinvoice',
param:[
{key:"id", type:"String", desc:"订单id"}
],
bindBiz:orderBiz.backInvoice
},
// {
// apiName:"待开发票-退回发票", 弃用
// subUrl:'/order/invoice/examine/backinvoice',
// param:[
// {key:"id", type:"String", desc:"订单id"}
// ],
// bindBiz:orderBiz.backInvoice
// },
{
apiName:"发票管理-已开发票",
subUrl:'/order/invoice/examine/invoicedlist',
......@@ -141,6 +141,31 @@ export const Config = {
],
bindBiz:orderBiz.invoicePop
},
{
apiName:"退款列表",
subUrl:'/order/refundlist',
param:[
{key:"pageNumber", type:"Number", desc:"当前页"},
],
bindBiz:orderBiz.refundList
},
{
apiName:"退款确认",
subUrl:'/order/refundapprove',
param:[
{key:"id", type:"String", desc:"订单id"},
{key:"refundImgUrl", type:"String", desc:"订单id"},
],
bindBiz:orderBiz.refundApprove
},
// {
// apiName:"审批历史",
// subUrl:'/order/approve/log',
// param:[
// {key:"id", type:"String", desc:"订单id"},
// ],
// bindBiz:orderBiz.
// },
],
"会员个人页":[
{
......@@ -204,15 +229,24 @@ export const Config = {
param:[
{key:"id", type:"String", desc:"会员缴费列表返回id"},
],
bindBiz:orderBiz.
bindBiz:orderBiz.reasonInfo
},
{
apiName:"退款信息",
subUrl:'/order/refund/accountinfo',
param:[
{key:"id", type:"String", desc:"会员缴费列表返回id"},
{key:"form", type:"Object", sub:
{
refundName:{type:"String", desc:"姓名"},
refundBankCarId:{typs:"String", desc:"银行账号"},
refundBankName:{type:"String", desc:"银行开户行"},
refundDesc:{type:"String", desc:"备注"},
},
desc:"表单"
}
],
bindBiz:orderBiz.
bindBiz:orderBiz.accountInfo
},
],
......
......@@ -28,7 +28,7 @@ export async function setRouter(httpServer){
if (Look) {
await getDoc();
// await initDoc(portalRouter.FirstName, portalRouter.Config, portalRouter.FirstRouter);//网站编辑
await initDoc(publicRouter.FirstName, publicRouter.Config, publicRouter.FirstRouter);//公用组件
// await initDoc(publicRouter.FirstName, publicRouter.Config, publicRouter.FirstRouter);//公用组件
// await initDoc(memberRouter.FirstName, memberRouter.Config, memberRouter.FirstRouter);//用户路由
// await initDoc(officalWebsiteRouter.FirstName, officalWebsiteRouter.Config, officalWebsiteRouter.FirstRouter);//官网路由
await initDoc(orderRouter.FirstName, orderRouter.Config, orderRouter.FirstRouter);//会费相关
......
......@@ -99,9 +99,15 @@ export function getTodayMs() {
export function generateWXOrderId(memberType, userId) {
let thisDate = new Date();
return `${md5(`${memberType}${userId}${Math.random() * 100}${thisDate.valueOf()}${Math.floor(Math.random() * 1000)}`)}`
return `${md5(`${memberType}${userId}${Math.random() * 100}${thisDate.valueOf()}${Math.floor(Math.random() * 1000)}`)}`;
}
/**
* 倒推 届次
*/
export function getSessionByEdition(jie, ci) {
}
/**
......
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