10 金钱
你好,我想做一个功能是这样的:
前台遍历显示的是所有产品列表,用户登录后可以收藏某个喜欢的产品,但是收藏后客户要求这个产品被收藏了就不能显示出来了,但是前台是遍历显示的产品。该怎么做??我用的是JAVA,贴上一些代码。
public static long collectBid(long userId, long bidId, ErrorInfo error) {
error.clear();
error.code = isCollect(userId, bidId);
/* 表示已经收藏,或异常 */
if (error.code == Constants.COLLECT) {
error.code = -1;
error.msg = "标已收藏!";
return -1;
}
long bidUserId = 0l;
try {
bidUserId = t_bids.find("select user_id from t_bids where id = ?", bidId).first();
} catch (Exception e) {
Logger.error("标->收藏某个标:" + e.getMessage());
error.code = -2;
error.msg = "收藏失败!";
return -1;
}
if(bidUserId == userId){
error.code = -3;
error.msg = "您不能收藏自己发布的借款标!";
return -1;
}
t_user_attention_bids bid = new t_user_attention_bids();
bid.time = new Date();
bid.user_id = userId;
bid.bid_id = bidId;
try {
bid.save();
} catch (Exception e) {
Logger.error("标->收藏某个标:" + e.getMessage());
error.code = -4;
error.msg = "收藏失败!";
return -1;
}
if(bid.id < 1){
error.code = -5;
error.msg = "收藏失败!";
return -1;
}
/* 添加事件 */
DealDetail.userEvent(userId, UserEvent.COLLECT_BID, "收藏标", error);
if(error.code < 0){
error.msg = "收藏失败!";
JPA.setRollbackOnly();
return -1;
}
error.msg = "收藏成功!";
return bid.id;
}
/**
* 查询这个标是否已经被收藏
* @param userId 用户ID
* @param bidId 标ID
* @param error 错误信息
* @return 1:已收藏 0:未收藏
*/
private static int isCollect(long userId, long bidId) {
String hql = "select id from t_user_attention_bids where user_id=? and bid_id=?";
Long id = null;
try {
id = t_user_attention_bids.find(hql, userId, bidId).first();
} catch (Exception e) {
Logger.error("标->查询这个标是否已经被收藏:"+ e.getMessage());
return Constants.COLLECT; // 表示已收藏
}
if (id == null || id == 0) return Constants.NOT_COLLECT; // 表示未收藏
return Constants.COLLECT; // 表示已收藏
}
/**
* 判断标是否收藏,并返回收藏id
* @param userId
* @param bidId
* @return
*/
public static long isAttentionBid(long userId, long bidId) {
String hql = "select id from t_user_attention_bids where user_id=? and bid_id=?";
Long id = null;
try {
id = t_user_attention_bids.find(hql, userId, bidId).first();
} catch (Exception e) {
Logger.error("标->查询这个标是否已经被收藏:"+ e.getMessage());
return Constants.COLLECT; // 表示已收藏
}
if (id == null || id == 0) return Constants.NOT_COLLECT; // 表示未收藏
return id; // 表示已收藏
}
我来回答