|
|
/* eslint-disable array-callback-return */
|
|
|
const mysqlCli = global.yoho.utils.mysqlCli;
|
|
|
const _ = require('lodash');
|
|
|
const TABLE_COUPON = 'act_coupon';
|
|
|
const TABLE_COUPON_NO = 'act_coupon_no';
|
|
|
const TABLE_COUPON_USER = 'act_coupon_user';
|
|
|
const toLine = (str) => {
|
|
|
return str.replace(/([A-Z])/g, '_$1').toLowerCase();
|
|
|
};
|
|
|
|
|
|
class CouponModel extends global.yoho.BaseModel {
|
|
|
constructor(ctx) {
|
|
|
super(ctx);
|
|
|
}
|
|
|
|
|
|
couponList({pageNo, pageSize}) {
|
|
|
return mysqlCli.query(
|
|
|
`select id, coupon_name couponName, coupon_desc couponDesc, shop_name shopName, shop_logo_url shopLogoUrl, status, type, sort , create_time createTime
|
|
|
from ${TABLE_COUPON}
|
|
|
order by sort desc ,create_time desc
|
|
|
limit :start, :page;`, {
|
|
|
start: (pageNo - 1) * pageSize,
|
|
|
page: _.parseInt(pageSize)
|
|
|
});
|
|
|
}
|
|
|
|
|
|
couponCreate(obj) {
|
|
|
return mysqlCli.insert(
|
|
|
`insert into ${TABLE_COUPON} (coupon_name, coupon_desc, shop_name, shop_logo_url, status,type,sort)
|
|
|
values (:couponName, :couponDesc, :shopName, :shopLogoUrl, :status, :type, :sort);`,
|
|
|
{
|
|
|
couponName: obj.couponName,
|
|
|
couponDesc: obj.couponDesc,
|
|
|
shopName: obj.shopName,
|
|
|
shopLogoUrl: obj.shopLogoUrl,
|
|
|
status: obj.status,
|
|
|
type: obj.type,
|
|
|
sort: obj.sort
|
|
|
});
|
|
|
}
|
|
|
|
|
|
couponUpdate(obj) {
|
|
|
let sql = `UPDATE ${TABLE_COUPON} SET `;
|
|
|
let sqlParam = {};
|
|
|
let keyArr = Object.keys(obj);
|
|
|
|
|
|
keyArr.map((value, index) => {
|
|
|
if (value !== 'id') {
|
|
|
let col = toLine(value);
|
|
|
|
|
|
sql += col + ' = :' + value;
|
|
|
if (index !== (keyArr.length - 1)) {
|
|
|
sql += ',';
|
|
|
}
|
|
|
}
|
|
|
sqlParam[value] = obj[value];
|
|
|
});
|
|
|
sql += 'WHERE id = :id';
|
|
|
return mysqlCli.update(
|
|
|
sql,
|
|
|
sqlParam
|
|
|
);
|
|
|
}
|
|
|
|
|
|
allCouponNum() {
|
|
|
return mysqlCli.query(
|
|
|
`select count(*) as total from ${TABLE_COUPON};`
|
|
|
);
|
|
|
}
|
|
|
|
|
|
couponNoListByCId(couponId) {
|
|
|
return mysqlCli.query(
|
|
|
`select id, coupon_id couponId,coupon_no couponNo,send_flag sendFlag,create_time createTime
|
|
|
from ${TABLE_COUPON_NO}
|
|
|
where coupon_id = :couponId `, {couponId: couponId});
|
|
|
}
|
|
|
|
|
|
couponNoListJoinUser(couponId) {
|
|
|
return mysqlCli.query(
|
|
|
`select cn.coupon_id couponId,cn.coupon_no couponNo,cn.send_flag sendFlag,cu.user_id userId,cu.create_time createTime
|
|
|
from ${TABLE_COUPON_NO} as cn left join ${TABLE_COUPON_USER} as cu
|
|
|
where coupon_id = :couponId `, {couponId: couponId});
|
|
|
}
|
|
|
|
|
|
couponUserListByCId(couponId) {
|
|
|
return mysqlCli.query(
|
|
|
`select id, coupon_id couponId,coupon_no_id couponNoId,user_id userId,create_time createTime
|
|
|
from ${TABLE_COUPON_USER}
|
|
|
where coupon_id = :couponId `, {couponId: couponId});
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
module.export = CouponModel; |
...
|
...
|
|