getslidecarddata
This commit is contained in:
@@ -124,7 +124,11 @@ module.exports = {
|
|||||||
|
|
||||||
getSlideCardData(req, res) {
|
getSlideCardData(req, res) {
|
||||||
memberServices.getSlideCard(req)
|
memberServices.getSlideCard(req)
|
||||||
.then(data => res.status(200).send(data))
|
.then(data => {
|
||||||
.catch(error => res.status(400).send(error.errors));
|
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) => {
|
cardBehavior.behaviorBH0005 = async (member) => {
|
||||||
|
return memberCardService.CARD_ADD_ALLOWED;
|
||||||
const weeklySpending = await memberService.weeklyMemberSpending(member);
|
const weeklySpending = await memberService.weeklyMemberSpending(member);
|
||||||
if (weeklySpending.weekly_total == 0) {
|
if (weeklySpending.weekly_total == 0) {
|
||||||
return memberCardService.CARD_ADD_ALLOWED;
|
return memberCardService.CARD_ADD_ALLOWED;
|
||||||
|
|||||||
@@ -4,8 +4,7 @@ const { forEach, invoke } = require('lodash');
|
|||||||
const MembersCardAssign = require("../../models").MembersCardAssign;
|
const MembersCardAssign = require("../../models").MembersCardAssign;
|
||||||
|
|
||||||
module.exports = (memberService) => {
|
module.exports = (memberService) => {
|
||||||
const cardBehaviorService = require("./cardBehavior")(this,memberService);
|
const cardService = {
|
||||||
return {
|
|
||||||
CARD_BEHAVIORS: {
|
CARD_BEHAVIORS: {
|
||||||
BH0001: 'BH0001',
|
BH0001: 'BH0001',
|
||||||
BH0002: 'BH0002',
|
BH0002: 'BH0002',
|
||||||
@@ -113,7 +112,6 @@ module.exports = (memberService) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async getMemberCardClickTrack(memberId, cardId) {
|
async getMemberCardClickTrack(memberId, cardId) {
|
||||||
@@ -157,8 +155,6 @@ module.exports = (memberService) => {
|
|||||||
|
|
||||||
async getMemberCardsByType(member, cardType, limit) {
|
async getMemberCardsByType(member, cardType, limit) {
|
||||||
var memberId = member.id;
|
var memberId = member.id;
|
||||||
var result = {};
|
|
||||||
var total = 0;
|
|
||||||
var queryMain = '';
|
var queryMain = '';
|
||||||
var sqlSelect = '';
|
var sqlSelect = '';
|
||||||
var sqlCount = '';
|
var sqlCount = '';
|
||||||
@@ -208,7 +204,9 @@ module.exports = (memberService) => {
|
|||||||
sqlCount = `SELECT count(a.id) `;
|
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 `;
|
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)
|
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;
|
break;
|
||||||
default:
|
default:
|
||||||
sql = `select 1 from 1`;
|
sql = `select 1 from 1`;
|
||||||
@@ -218,36 +216,139 @@ module.exports = (memberService) => {
|
|||||||
const results = await sequelize.query(sqlSelect, {
|
const results = await sequelize.query(sqlSelect, {
|
||||||
replacements: { member_id: memberId }
|
replacements: { member_id: memberId }
|
||||||
});
|
});
|
||||||
var testCardAllowed = this.CARD_ADD_DENIED
|
|
||||||
|
let resultOut = {};
|
||||||
|
let total_record = 0;
|
||||||
if (results[0]) {
|
if (results[0]) {
|
||||||
var self = this;
|
var self = this;
|
||||||
forEach(results[0], async function (card) {
|
var dealCardCount = 0;
|
||||||
//console.log("card behavior: ", card.card_behavior)
|
var surveyCardCount = 0;
|
||||||
|
var blogCardCount = 0;
|
||||||
|
for(const card of results[0]){
|
||||||
|
let testCardAllowed = this.CARD_ADD_ALLOWED
|
||||||
if (cardType == 22000) {
|
if (cardType == 22000) {
|
||||||
testCardAllowed = self.verifyMemberCardDescision(card, member);
|
testCardAllowed = await this.verifyMemberCardDescision(card, member);
|
||||||
}
|
}
|
||||||
});
|
console.log('testCardAllowed', testCardAllowed);
|
||||||
result = results[0];
|
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 }
|
console.log('total', total_record)
|
||||||
});
|
return { total_record: total_record, result: resultOut };
|
||||||
if (totalCards[0][0]) {
|
|
||||||
total = parseInt(totalCards[0][0].count);
|
|
||||||
}
|
|
||||||
|
|
||||||
return { total: total, result: result };
|
|
||||||
},
|
},
|
||||||
|
|
||||||
async verifyMemberCardDescision(cardData, member) {
|
async verifyMemberCardDescision(cardData, member) {
|
||||||
var behavior = cardData.card_behavior;
|
var behavior = cardData.card_behavior;
|
||||||
var func = 'behavior' + behavior;
|
var func = 'behavior' + behavior;
|
||||||
|
console.log(func)
|
||||||
if (func in cardBehaviorService) {
|
if (func in cardBehaviorService) {
|
||||||
//console.log('call function ', func)
|
console.log('call function ', func)
|
||||||
return invoke(cardBehaviorService, func, member);
|
//console.log(await invoke(cardBehaviorService, func, member))
|
||||||
|
return await invoke(cardBehaviorService, func, member);
|
||||||
}
|
}
|
||||||
return this.CARD_ADD_ALLOWED;
|
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 resetPasswordService = require("./resetPassword");
|
||||||
const memberCardService = require("../card").memberCard.bind(this);
|
const memberCardService = require("../card").memberCard.bind(this);
|
||||||
const mailServiceMember = require("../mail").member;
|
const mailServiceMember = require("../mail").member;
|
||||||
|
const { memberCard } = require('../card');
|
||||||
|
|
||||||
console.log('card in member', memberCardService)
|
console.log('card in member', memberCardService)
|
||||||
module.exports = {
|
module.exports = {
|
||||||
@@ -517,11 +518,12 @@ module.exports = {
|
|||||||
var queryMemberAverage = `SELECT avg(amount) *0.01 AS member_average
|
var queryMemberAverage = `SELECT avg(amount) *0.01 AS member_average
|
||||||
FROM members_bankimport
|
FROM members_bankimport
|
||||||
WHERE category IN (SELECT category FROM activity_listcategory) AND member_id = :member_id AND currency='USD'`;
|
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 }
|
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) {
|
if (memberAverage > 0 && memberAverage > populationAverage) {
|
||||||
@@ -571,7 +573,7 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
weeklyTotal = totalWeeklySpend;
|
weeklyTotal = totalWeeklySpend;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
over_spending: overSpending,
|
over_spending: overSpending,
|
||||||
under_spending: underSpending,
|
under_spending: underSpending,
|
||||||
@@ -605,13 +607,10 @@ module.exports = {
|
|||||||
//const surveyCards = await memberCardService.getMemberSurveyCards(member_id);
|
//const surveyCards = await memberCardService.getMemberSurveyCards(member_id);
|
||||||
//console.log(surveyCards);
|
//console.log(surveyCards);
|
||||||
console.log("card_type:", card_type);
|
console.log("card_type:", card_type);
|
||||||
console.log("get cards")
|
|
||||||
const member = await this.getProfile(req);
|
const member = await this.getProfile(req);
|
||||||
const memberCards = await memberCardService(this).getMemberCardsByType(member, parseInt(card_type), card_count);
|
const cards = await memberCardService(this).getMemberCardsByType(member, parseInt(card_type), card_count);
|
||||||
|
//console.log("member cards",cards);
|
||||||
//console.log("memberCards", memberCards)
|
return cards;
|
||||||
if (surveyCards) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user