Authored by 张文文

定位fix

... ... @@ -181,3 +181,34 @@ exports.updateFavGoodsStatus = function(req, res, next) {
});
}).catch(next);
};
exports.queryFindgoodsFavInfo = function(req, res, next) {
/* 判断参数是否有效 */
let goodsId = req.query.goodsId,
app = req.query.appInfo;
let uid = {
toString: () => {
return _.parseInt(app.uid);
},
sessionKey: app.session_key,
appSessionType: app.client_type,
appVersion: app.app_version
};
// 执行收藏或取消操作
return req.ctx(FindGoods).queryFindgoodsFavInfo(uid, goodsId).then(data => {
if (!data) {
res.json({
code: 400,
message: '操作失败'
});
return;
}
res.json({
code: 200,
message: data.message,
data: data.data
});
}).catch(next);
};
... ...
... ... @@ -64,4 +64,24 @@ module.exports = class FindGoods extends global.yoho.BaseModel {
}
});
}
/**
* @param {[int]} uid [用户ID]
* @param {[int]} goodId [好货ID]
* @return {[array]}
*/
queryFindgoodsFavInfo(uid, goodsId) {
return this.get({
data: Object.assign(
{
method: 'app.grass.queryFindgoodsFavInfo',
uid,
findgoodsId: goodsId
}
),
param: {
cache: false
}
});
}
};
... ...
... ... @@ -479,4 +479,6 @@ router.get('/find/favGoods/more', FindGoods.fetchFavMore);
router.get('/find/userFavGoods.html', FindGoods.userFavGoods); // 用户喜欢的好货
router.get('/find/updateFavGoodsStatus', FindGoods.updateFavGoodsStatus); // 好货收藏/取消收藏
router.get('/find/queryFindgoodsFavInfo', FindGoods.queryFindgoodsFavInfo); // 根据goodsId判断喜欢状态
module.exports = router;
... ...
{
"name": "yohobuywap-node-activity",
"version": "6.9.15-20",
"version": "6.9.15-21",
"private": true,
"description": "A New Yohobuy Project With Express",
"repository": {
... ...
... ... @@ -21,6 +21,7 @@ let app_info = {
};
const FAV_STORAGE = 'fav-storage';
const FAV_GOODSIDSTORAGE = 'fav-goodsIdStorage';
function getParams() { // 获取登录相关信息
let app_uid = parseInt(app_info.uid, 10) || qs.uid || cookie.get('app_uid');
... ... @@ -90,6 +91,8 @@ window.onItemClick = function(item = {}) {
findGood: { productSkn, productType, id } = {},
} = item;
localStorage.setItem(FAV_GOODSIDSTORAGE, id);
// 点击上报事件
yasReport.clickReport({ productSkn, type: 1, articleId, authorUid });
... ... @@ -215,27 +218,73 @@ $(function() {
document.addEventListener('visibilitychange', function() {
var hidden = document.hidden;
// 我的喜欢页面返回重新刷新页面
// 我的喜欢,有货精选返回重新刷新页面
if (!hidden) {
let fav_storage = localStorage.getItem(FAV_STORAGE) || '';
let storageArr = fav_storage.split('|||');
for (let i = 0; i < storageArr.length; i++) {
let item = storageArr[i];
if (item) {
item = JSON.parse(item);
let id = item.id;
let status = item.status;
let favNum = item.favNum;
if (status === false && $('#good_item_' + id).find('.like-option-btn').hasClass('fav')) {
$('#good_item_' + id).find('.like-option-btn').removeClass('fav');
$('#good_item_' + id).find('.fav-text').text(favNum ? favNum + '人喜欢' : '喜欢');
// 根据goodId获取状态
getParams();
let goodsId = localStorage.getItem(FAV_GOODSIDSTORAGE);
if (goodsId) {
$.ajax({
url: '/find/queryFindgoodsFavInfo',
type: 'get',
dataType: 'json',
data: {
goodsId: goodsId,
appInfo: app_info
},
xhrFields: {
withCredentials: true
},
success: function(res) {
if (res.data) {
let item = res.data;
if (item) {
let id = goodsId;
let status = item.isFavorite;
let favNum = item.favoriteNum;
let oldFavStatus = $('#good_item_' + id).find('.like-option-btn').hasClass('fav');
let currentStatus = status === 0 ? false : true;
if (currentStatus !== oldFavStatus) {
if (status) {
$('#good_item_' + id).find('.like-option-btn').addClass('fav');
} else {
$('#good_item_' + id).find('.like-option-btn').removeClass('fav');
}
$('#good_item_' + id).find('.fav-text').text(favNum ? favNum + '人喜欢' : '喜欢');
}
}
}
}
});
} else {
let fav_storage = localStorage.getItem(FAV_STORAGE) || '';
let storageArr = fav_storage.split('|||');
for (let i = 0; i < storageArr.length; i++) {
let item = storageArr[i];
if (item) {
item = JSON.parse(item);
let id = item.id;
let status = item.status;
let favNum = item.favNum;
if (status === false && $('#good_item_' + id).find('.like-option-btn').hasClass('fav')) {
$('#good_item_' + id).find('.like-option-btn').removeClass('fav');
$('#good_item_' + id).find('.fav-text').text(favNum ? favNum + '人喜欢' : '喜欢');
}
}
}
}
localStorage.removeItem(FAV_STORAGE);
localStorage.removeItem(FAV_GOODSIDSTORAGE);
}
});
});
... ...