getslidecarddata
This commit is contained in:
@@ -124,7 +124,11 @@ module.exports = {
|
||||
|
||||
getSlideCardData(req, res) {
|
||||
memberServices.getSlideCard(req)
|
||||
.then(data => res.status(200).send(data))
|
||||
.catch(error => res.status(400).send(error.errors));
|
||||
.then(data => {
|
||||
return res.status(201).send(data)
|
||||
})
|
||||
.catch(error => {
|
||||
res.status(400).send(error.errors)
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -46,6 +46,7 @@ module.exports = (memberCardService, memberService) => {
|
||||
};
|
||||
|
||||
cardBehavior.behaviorBH0005 = async (member) => {
|
||||
return memberCardService.CARD_ADD_ALLOWED;
|
||||
const weeklySpending = await memberService.weeklyMemberSpending(member);
|
||||
if (weeklySpending.weekly_total == 0) {
|
||||
return memberCardService.CARD_ADD_ALLOWED;
|
||||
|
||||
@@ -4,8 +4,7 @@ const { forEach, invoke } = require('lodash');
|
||||
const MembersCardAssign = require("../../models").MembersCardAssign;
|
||||
|
||||
module.exports = (memberService) => {
|
||||
const cardBehaviorService = require("./cardBehavior")(this,memberService);
|
||||
return {
|
||||
const cardService = {
|
||||
CARD_BEHAVIORS: {
|
||||
BH0001: 'BH0001',
|
||||
BH0002: 'BH0002',
|
||||
@@ -113,7 +112,6 @@ module.exports = (memberService) => {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
async getMemberCardClickTrack(memberId, cardId) {
|
||||
@@ -157,8 +155,6 @@ module.exports = (memberService) => {
|
||||
|
||||
async getMemberCardsByType(member, cardType, limit) {
|
||||
var memberId = member.id;
|
||||
var result = {};
|
||||
var total = 0;
|
||||
var queryMain = '';
|
||||
var sqlSelect = '';
|
||||
var sqlCount = '';
|
||||
@@ -208,7 +204,9 @@ module.exports = (memberService) => {
|
||||
sqlCount = `SELECT count(a.id) `;
|
||||
sqlSelect = `SELECT a.*, a.id AS card_id,b.name AS card_action_name,b.type AS card_action_type,b.data AS card_action_data `;
|
||||
queryMain = `FROM main_cards a LEFT JOIN card_actions b ON (b.id=a.card_action_id)
|
||||
WHERE a.status = 1 AND a.deleted IS NULL ORDER BY RANDOM()`;
|
||||
WHERE a.status = 1 AND a.deleted IS NULL`;
|
||||
sqlCount += queryMain;
|
||||
sqlSelect += queryMain + ` ORDER BY RANDOM()`;
|
||||
break;
|
||||
default:
|
||||
sql = `select 1 from 1`;
|
||||
@@ -218,36 +216,139 @@ module.exports = (memberService) => {
|
||||
const results = await sequelize.query(sqlSelect, {
|
||||
replacements: { member_id: memberId }
|
||||
});
|
||||
var testCardAllowed = this.CARD_ADD_DENIED
|
||||
|
||||
let resultOut = {};
|
||||
let total_record = 0;
|
||||
if (results[0]) {
|
||||
var self = this;
|
||||
forEach(results[0], async function (card) {
|
||||
//console.log("card behavior: ", card.card_behavior)
|
||||
var dealCardCount = 0;
|
||||
var surveyCardCount = 0;
|
||||
var blogCardCount = 0;
|
||||
for(const card of results[0]){
|
||||
let testCardAllowed = this.CARD_ADD_ALLOWED
|
||||
if (cardType == 22000) {
|
||||
testCardAllowed = self.verifyMemberCardDescision(card, member);
|
||||
testCardAllowed = await this.verifyMemberCardDescision(card, member);
|
||||
}
|
||||
});
|
||||
result = results[0];
|
||||
console.log('testCardAllowed', testCardAllowed);
|
||||
let cardCountryAllow = true;
|
||||
|
||||
if (card.card_country != "") {
|
||||
//cardCountryAllow = false;
|
||||
if (card.card_country == member.country) {
|
||||
cardCountryAllow = true;
|
||||
}
|
||||
}
|
||||
|
||||
countBlock = false;
|
||||
|
||||
// let see i card expired
|
||||
if (card.card_canexpire == 1 && card.expr_val < 0) {
|
||||
countBlock = true;
|
||||
} else {
|
||||
if (cardType == 22000) {
|
||||
if (card.button1_action == "GOOFFERS") {
|
||||
if (dealCardCount > 0) {
|
||||
countBlock = true;
|
||||
}
|
||||
if (card.card_country == "" || card.card_country == member.country) {
|
||||
dealCardCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if (card.button1_action == "SURVEYA") {
|
||||
if (surveyCardCount > 0) {
|
||||
countBlock = true;
|
||||
}
|
||||
surveyCardCount++;
|
||||
}
|
||||
|
||||
if (card.button1_action == "BLOGCARD") {
|
||||
if (blogCardCount > 0) {
|
||||
countBlock = true;
|
||||
}
|
||||
blogCardCount++;
|
||||
}
|
||||
}
|
||||
} //card is not expired
|
||||
//console.log(testCardAllowed, cardCountryAllow, countBlock, (self.CARD_ADD_ALLOWED == testCardAllowed && true == cardCountryAllow && false == countBlock))
|
||||
if (this.CARD_ADD_ALLOWED == testCardAllowed && true == cardCountryAllow && false == countBlock) {
|
||||
//console.log(testCardAllowed, cardCountryAllow, countBlock)
|
||||
suffix = total_record.toString().padStart(5, '0');
|
||||
|
||||
resultOut['name_' + suffix] = card.name;
|
||||
resultOut['assign_id_' + suffix] = card.assign_id;
|
||||
resultOut['card_id_' + suffix] = card.card_id;
|
||||
resultOut['can_save_' + suffix] = card.can_save;
|
||||
resultOut['short_title_' + suffix] = card.short_title;
|
||||
resultOut['title_' + suffix] = card.short_title;
|
||||
resultOut['background_picture_' + suffix] = card.background_picture;
|
||||
resultOut['button1_' + suffix] = card.button1;
|
||||
resultOut['button1_text_' + suffix] = card.button1_text;
|
||||
resultOut['button1_action_' + suffix] = card.button1_action;
|
||||
resultOut['expires_' + suffix] = card.card_expiration;
|
||||
resultOut['template_' + suffix] = card.template;
|
||||
resultOut['card_canexpire_' + suffix] = card.card_canexpire;
|
||||
resultOut['card_action_type_' + suffix] = card.card_action_type;
|
||||
resultOut['card_action_data_' + suffix] = card.card_action_data;
|
||||
resultOut['titleshow_' + suffix] = card.titleshow;
|
||||
resultOut['multiple_answer_' + suffix] = card.multiple_answer;
|
||||
resultOut['use_short_title_' + suffix] = card.use_short_title;
|
||||
resultOut['target_key_' + suffix] = card.target_key;
|
||||
resultOut['target_text_' + suffix] = card.target_text;
|
||||
resultOut['description_' + suffix] = card.description;
|
||||
resultOut['long_description_' + suffix] = card.long_description;
|
||||
resultOut['card_behavior_' + suffix] = card.card_behavior;
|
||||
resultOut['card_type_' + suffix] = card.card_type;
|
||||
resultOut['card_type_' + suffix] = card.card_type;
|
||||
resultOut['card_country_' + suffix] = card.card_country;
|
||||
resultOut['card_location_' + suffix] = card.card_location;
|
||||
resultOut['latitude_' + suffix] = card.latitude;
|
||||
resultOut['longitude_' + suffix] = card.longitude;
|
||||
resultOut['card_order_' + suffix] = card.card_order;
|
||||
resultOut['background_color_' + suffix] = card.background_color;
|
||||
resultOut['blog_id_' + suffix] = card.blog_id;
|
||||
resultOut['expiration_' + suffix] = card.expiration;
|
||||
|
||||
if (card.button1_action == "CARPOOL") {
|
||||
sqlCarpool = `SELECT * FROM members_carpool_friends WHERE carpool_id IN (select id from members_carpool WHERE member_id =:member_id) AND status = 1`;
|
||||
const carPool = await sequelize.query(sqlCarpool,
|
||||
{
|
||||
replacements: {
|
||||
member_id: member.id
|
||||
}
|
||||
});
|
||||
if (carPool && carPool[0].added) {
|
||||
resultOut['subscribe_' + suffix] = carPool[0].added;
|
||||
} else {
|
||||
resultOut['subscribe_' + suffix] = "";
|
||||
}
|
||||
|
||||
} else {
|
||||
resultOut['subscribe_' + suffix] = card.subscribe;
|
||||
}
|
||||
total_record++;
|
||||
}
|
||||
};
|
||||
}
|
||||
const totalCards = await sequelize.query(sqlCount, {
|
||||
replacements: { member_id: memberId }
|
||||
});
|
||||
if (totalCards[0][0]) {
|
||||
total = parseInt(totalCards[0][0].count);
|
||||
}
|
||||
|
||||
return { total: total, result: result };
|
||||
|
||||
console.log('total', total_record)
|
||||
return { total_record: total_record, result: resultOut };
|
||||
},
|
||||
|
||||
async verifyMemberCardDescision(cardData, member) {
|
||||
var behavior = cardData.card_behavior;
|
||||
var func = 'behavior' + behavior;
|
||||
|
||||
console.log(func)
|
||||
if (func in cardBehaviorService) {
|
||||
//console.log('call function ', func)
|
||||
return invoke(cardBehaviorService, func, member);
|
||||
console.log('call function ', func)
|
||||
//console.log(await invoke(cardBehaviorService, func, member))
|
||||
return await invoke(cardBehaviorService, func, member);
|
||||
}
|
||||
return this.CARD_ADD_ALLOWED;
|
||||
}
|
||||
}
|
||||
|
||||
const cardBehaviorService = require("./cardBehavior")(cardService, memberService);
|
||||
|
||||
return cardService;
|
||||
}
|
||||
@@ -10,6 +10,7 @@ const MembersBankAccount = require("../../models").MembersBankAccounts;
|
||||
const resetPasswordService = require("./resetPassword");
|
||||
const memberCardService = require("../card").memberCard.bind(this);
|
||||
const mailServiceMember = require("../mail").member;
|
||||
const { memberCard } = require('../card');
|
||||
|
||||
console.log('card in member', memberCardService)
|
||||
module.exports = {
|
||||
@@ -517,11 +518,12 @@ module.exports = {
|
||||
var queryMemberAverage = `SELECT avg(amount) *0.01 AS member_average
|
||||
FROM members_bankimport
|
||||
WHERE category IN (SELECT category FROM activity_listcategory) AND member_id = :member_id AND currency='USD'`;
|
||||
const memberAverge = await sequelize.query(queryMemberAverage, {
|
||||
const memberAvg = await sequelize.query(queryMemberAverage, {
|
||||
replacements: { member_id: member.id }
|
||||
});
|
||||
if (memberAverge[0][0]) {
|
||||
memberAverage = parseFloat(memberAverge[0][0].member_average);
|
||||
|
||||
if (memberAvg[0][0]) {
|
||||
memberAverage = parseFloat(memberAvg[0][0].member_average);
|
||||
}
|
||||
|
||||
if (memberAverage > 0 && memberAverage > populationAverage) {
|
||||
@@ -571,7 +573,7 @@ module.exports = {
|
||||
}
|
||||
|
||||
weeklyTotal = totalWeeklySpend;
|
||||
|
||||
|
||||
return {
|
||||
over_spending: overSpending,
|
||||
under_spending: underSpending,
|
||||
@@ -605,13 +607,10 @@ module.exports = {
|
||||
//const surveyCards = await memberCardService.getMemberSurveyCards(member_id);
|
||||
//console.log(surveyCards);
|
||||
console.log("card_type:", card_type);
|
||||
console.log("get cards")
|
||||
const member = await this.getProfile(req);
|
||||
const memberCards = await memberCardService(this).getMemberCardsByType(member, parseInt(card_type), card_count);
|
||||
|
||||
//console.log("memberCards", memberCards)
|
||||
if (surveyCards) {
|
||||
}
|
||||
const cards = await memberCardService(this).getMemberCardsByType(member, parseInt(card_type), card_count);
|
||||
//console.log("member cards",cards);
|
||||
return cards;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user