From 86781a876c05b7dff591d4371dc0c2afef5d065a Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期六, 26 一月 2019 16:52:13 +0800
Subject: [PATCH] 一个月只更新一次等级
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java | 210 +++++++++++++---------------------------------------
1 files changed, 54 insertions(+), 156 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java
index 23bf316..2b1a085 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserShareGoodsGroupServiceImpl.java
@@ -1,50 +1,29 @@
package com.yeshi.fanli.service.impl.user;
import java.math.BigDecimal;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
-import java.util.Map;
import javax.annotation.Resource;
-import net.sf.json.JSONArray;
-import net.sf.json.JSONObject;
-
-import org.springframework.core.task.TaskExecutor;
import org.springframework.stereotype.Service;
import org.yeshi.utils.DateUtil;
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.taobao.TbImgUtil;
-import com.google.gson.Gson;
-import com.google.gson.GsonBuilder;
import com.yeshi.fanli.dao.mybatis.share.UserShareGoodsGroupMapper;
import com.yeshi.fanli.entity.bus.share.UserShareGoodsGroup;
-import com.yeshi.fanli.entity.goods.CommonGoods;
-import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
+import com.yeshi.fanli.entity.bus.share.UserShareGoodsRecord.ShareSourceTypeEnum;
+import com.yeshi.fanli.entity.bus.user.HongBao;
import com.yeshi.fanli.exception.share.UserShareGoodsRecordException;
-import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
import com.yeshi.fanli.service.inter.goods.CommonGoodsService;
import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsGroupService;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.factory.CommonGoodsFactory;
-import com.yeshi.fanli.util.taobao.TaoBaoUtil;
@Service
public class UserShareGoodsGroupServiceImpl implements UserShareGoodsGroupService {
- @Resource(name = "taskExecutor")
- private TaskExecutor executor;
-
@Resource
private HongBaoManageService hongBaoManageService;
-
- @Resource
- private RedisManager redisManager;
@Resource
private CommonGoodsService commonGoodsService;
@@ -84,7 +63,7 @@
@Override
public UserShareGoodsGroup getSingleGoods(Long cid, Long uid) {
- return userShareGoodsGroupMapper.getSingleGoods(cid, uid);
+ return userShareGoodsGroupMapper.getSingleGoods(ShareSourceTypeEnum.goodsDetail,cid, uid );
}
@Override
@@ -99,39 +78,54 @@
/**
- * 鏇存柊娴忚璁板綍鏁版嵁
+ * 鏇存柊璁㈠崟璁板綍鏁版嵁
* @param uid
* @param auctionId
*/
@Override
- public void updateBrowseRecord (Long uid, Long auctionId, int count) throws UserShareGoodsRecordException{
+ public void updateOrderRecord (HongBao hongBao) throws UserShareGoodsRecordException{
+
+ if (hongBao == null) {
+ throw new UserShareGoodsRecordException(1, "hongBao涓嶈兘涓虹┖");
+ }
+
+ if (hongBao.getUserInfo() == null) {
+ throw new UserShareGoodsRecordException(1, "鐢ㄦ埛淇℃伅涓嶈兘涓虹┖");
+ }
+
+ Long uid = hongBao.getUserInfo().getId();
if (uid == null) {
throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
}
- if (auctionId == null) {
+ if (hongBao.getAuctionId() == null) {
throw new UserShareGoodsRecordException(1, "鍟嗗搧ID涓嶈兘涓虹┖");
}
- UserShareGoodsGroup newestRecord = getNewestRecord(uid, auctionId);
+ UserShareGoodsGroup newestRecord = getNewestRecord(uid, hongBao.getAuctionId());
if (newestRecord != null) {
- // 娉ㄦ剰锛� 淇敼璁板綍鏁版嵁銆佷絾涓嶅彲淇敼鏇存柊璁剧疆
+ // 鏇存柊璁㈠崟鏁伴噺
UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup(newestRecord.getId());
+ Integer totalOrder = newestRecord.getTotalOrder();
- shareGoodsGroup.setTotalBrowse(newestRecord.getTotalBrowse() + count);
-
- Date browseTime = newestRecord.getBrowseTime();
- if (DateUtil.isSameDay(browseTime, new Date())) {
- shareGoodsGroup.setTodayBrowse(newestRecord.getTodayBrowse() + count);
- } else {
- shareGoodsGroup.setTodayBrowse(count);
- shareGoodsGroup.setBrowseTime(new Date());
+ if (totalOrder == null) {
+ totalOrder = 0;
}
+ shareGoodsGroup.setTotalOrder(totalOrder + 1);
+
+ // 鏇存柊棰勮鏀剁泭
+ BigDecimal totalMoney = newestRecord.getTotalMoney();
+ if (totalMoney == null) {
+ totalMoney = new BigDecimal(0);
+ }
+ BigDecimal resultMoney = MoneyBigDecimalUtil.add(totalMoney, hongBao.getMoney());
+ shareGoodsGroup.setTotalMoney(resultMoney);
updateByPrimaryKeySelective(shareGoodsGroup);
}
}
+
/**
* 鏇存柊璁㈠崟璁板綍鏁版嵁
@@ -139,135 +133,39 @@
* @param auctionId
*/
@Override
- public void updateOrderRecord (Long uid, TaoBaoGoodsBrief taoBaoGoodsBrief, int count)
+ public void updateBrowseRecord (Long uid, Long auctionId, int count)
throws UserShareGoodsRecordException{
if (uid == null) {
throw new UserShareGoodsRecordException(1, "鐢ㄦ埛ID涓嶈兘涓虹┖");
}
- if (taoBaoGoodsBrief == null) {
- throw new UserShareGoodsRecordException(1, "鍟嗗搧涓嶈兘涓虹┖");
+ if (auctionId == null) {
+ throw new UserShareGoodsRecordException(1, "鍟嗗搧Id涓嶈兘涓虹┖");
}
- UserShareGoodsGroup newestRecord = getNewestRecord(uid, taoBaoGoodsBrief.getAuctionId());
+ UserShareGoodsGroup group = getNewestRecord(uid, auctionId);
- if (newestRecord != null) {
- // 娉ㄦ剰锛� 淇敼璁板綍鏁版嵁銆佷絾涓嶅彲淇敼鏇存柊璁剧疆
- UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup(newestRecord.getId());
- shareGoodsGroup.setTotalOrder(newestRecord.getTotalOrder() + count);
-
- // 鍗曚釜鍟嗗搧棰勮閲戦
- String rateStr = hongBaoManageService.get("hongbao_goods_proportion");
- BigDecimal money = TaoBaoUtil.getGoodsHongBaoMoney(taoBaoGoodsBrief, new BigDecimal(rateStr));
-
- // 鏇存柊棰勮鏀剁泭
- BigDecimal resultMoney = MoneyBigDecimalUtil.mul(new BigDecimal(shareGoodsGroup.getTotalOrder()), money);
- shareGoodsGroup.setTotalMoney(resultMoney);
-
- updateByPrimaryKeySelective(shareGoodsGroup);
- }
- }
-
- @Override
- public JSONObject getGoodsGroup(Long recordId) throws UserShareGoodsRecordException {
-
- List<CommonGoods> listUpadteCommonGoods = new ArrayList<CommonGoods>();
-
- JSONArray array = new JSONArray();
-
- List<UserShareGoodsGroup> list = listByRecordId(recordId);
- if (list != null && list.size() > 0) {
-
- Date nowDate = new Date();
- long nh = 1000 * 60 * 60;
- long nd = 1000 * 24 * 60 * 60;
-
- Gson gson = JsonUtil.getConvertBigDecimalToStringSubZeroBuilder(new GsonBuilder())
- .excludeFieldsWithoutExposeAnnotation().setDateFormat("yyyy-MM-dd").create();
-
- Map<String, String> map = hongBaoManageService.convertMap();
- String proportion = map.get("hongbao_goods_proportion");
- String fcRate = map.get("hongbao_fc_ratio");
-
- for (UserShareGoodsGroup userShareGoodsGroup : list) {
- CommonGoods commonGoods = userShareGoodsGroup.getCommonGoods();
- if (commonGoods == null) {
- continue;
- }
-
- TaoBaoGoodsBrief goodsBrief = null;
- JSONObject dataObject = new JSONObject();
-
- // 鏇存柊涓�涓皬鏃朵箣鍐呯殑鍟嗗搧涓嶅啀鏇存柊
- Integer goodsState = commonGoods.getState();
- // 鐘舵�佹湭涓嬫灦鏃惰繘琛屾洿鏂�
- if (goodsState != null && (goodsState != 1 || !goodsState.equals(1))) {
- Date updateTime = commonGoods.getUpdateTime();
- if (updateTime != null) {
- long diff = nowDate.getTime() - updateTime.getTime();
- // 璁$畻宸灏戝皬鏃�
- long hour = diff % nd / nh;
- if (hour > 1) {
- try {
- if (commonGoods.getGoodsType() == CommonGoods.GOODS_TYPE_TB) {
- goodsBrief = redisManager.getTaoBaoGoodsBrief(commonGoods.getGoodsId());
- goodsBrief.setState(0);
- goodsState = 0;
- }
- } catch (TaobaoGoodsDownException e) {
- // 宸蹭笅鏋�
- goodsState = 1;
- commonGoods.setState(1);
- e.printStackTrace();
- }
- }
- }
- }
-
- if (goodsBrief == null) {
- goodsBrief = TaoBaoUtil.convert(commonGoods);
- } else {
- CommonGoods upadeteCommonGoods = CommonGoodsFactory.create(goodsBrief);
- upadeteCommonGoods.setState(goodsState);
- listUpadteCommonGoods.add(upadeteCommonGoods);
- }
-
- // 鏀瑰彉鍥剧墖灏哄
- String pictUrl = commonGoods.getPicture();
- if (!StringUtil.isNullOrEmpty(pictUrl) && !pictUrl.contains("320x320")) {
- commonGoods.setPicture(TbImgUtil.getTBSize320Img(pictUrl));
- }
-
- String json = gson
- .toJson(TaoBaoUtil.getTaoBaoGoodsBriefExtra(goodsBrief, proportion, fcRate, null));
-
- dataObject.put("groupId", userShareGoodsGroup.getId());
- dataObject.put("goods", json);
- array.add(dataObject);
+ if (group != null) {
+ UserShareGoodsGroup shareGoodsGroup = new UserShareGoodsGroup(group.getId());
+ // 绱娴忚
+ Integer totalBrowse = group.getTotalBrowse();
+ if (totalBrowse == null) {
+ totalBrowse = 0;
}
-
+ shareGoodsGroup.setTotalBrowse(totalBrowse + count);
+
+ // 浠婃棩娴忚
+ Date date = new Date();
+ Date browseTime = group.getBrowseTime();
+ if (DateUtil.isSameDay(browseTime, date)) {
+ shareGoodsGroup.setTodayBrowse(group.getTodayBrowse() + count);
+ } else {
+ shareGoodsGroup.setTodayBrowse(count);
+ }
+ shareGoodsGroup.setBrowseTime(date);
+
+ userShareGoodsGroupMapper.updateByPrimaryKeySelective(shareGoodsGroup);
}
-
- JSONObject data = new JSONObject();
- data.put("count", list.size());
- data.put("result_list", array);
-
- if (listUpadteCommonGoods.size() > 0) {
- executor.execute(new Runnable() {
- @Override
- public void run() {
- try {
- // 鏇存柊绠�鐗堜俊鎭�
- commonGoodsService.updateBatchCommonGoods(listUpadteCommonGoods);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
-
- return data;
}
-
}
--
Gitblit v1.8.0