fanli/src/main/java/com/yeshi/fanli/controller/client/v2/UserCloudControllerV2.java
@@ -570,6 +570,10 @@ } } if (state != null && state == UserCloudGoods.STATE_INVALID) { commonGoods.setState(1); } GoodsDetailVO detailVO = GoodsDetailVOFactory.convertCommonGoods(commonGoods, paramsDTO); detailVO.setId(commonGoods.getId()); fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java
@@ -332,8 +332,8 @@ List<Criteria> list = new ArrayList<Criteria>(); list.add(Criteria.where("dynamicType").is(1)); list.add(Criteria.where("state").is(1)); list.add(Criteria.where("startTime").gt(new Date())); list.add(Criteria.where("startTime").lte(date)); list.add(Criteria.where("startTime").gt(date)); list.add(Criteria.where("startTime").lte(new Date())); list.add(new Criteria().orOperator(Criteria.where("type").is("single"), new Criteria().andOperator(Criteria.where("type").is("activity")))); @@ -344,7 +344,7 @@ cas[i] = list.get(i); query.addCriteria(new Criteria().andOperator(cas)); } query.with(new Sort(Sort.Direction.ASC,"startTime")); query.with(new Sort(Sort.Direction.DESC,"startTime")); return mongoTemplate.find(query, GoodsEvaluate.class); } fanli/src/main/java/com/yeshi/fanli/entity/bus/user/cloud/UserCloudGoods.java
@@ -19,6 +19,7 @@ public static int STATE_NORMAL = 0;// 初始 public static int STATE_SHARED = 1;// 1已分享 public static int STATE_INVALID = 2;// 2已失效 @Expose @Column(name = "ug_id") fanli/src/main/java/com/yeshi/fanli/mapping/user/cloud/UserCloudMapper.xml
@@ -100,7 +100,7 @@ <select id="listValidUid" resultType="Long"> SELECT * FROM (SELECT DISTINCT d.`uc_uid` FROM yeshi_ec_user_cloud d WHERE d.`uc_end_time` > NOW() AND d.uc_wx_id IS NOT NULL)A LIMIT #{start},{count} LIMIT #{start},#{count} </select> <select id="query" resultMap="BaseResultMap"> fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudGoodsServiceImpl.java
@@ -5,6 +5,7 @@ import javax.annotation.Resource; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import com.aliyun.openservices.ons.api.Message; @@ -178,6 +179,7 @@ return result; } @Async @Override public void sendGoodsMQMsg(Long uid) { if (Constant.IS_TEST) { fanli/src/main/java/com/yeshi/fanli/service/impl/user/cloud/UserCloudServiceImpl.java
@@ -511,7 +511,7 @@ sendRecord.setWxId(wxId); sendRecord.setRobotId(robotId); sendRecord.setSendTime(new Date()); sendRecord.setSendOrigin(UserCloudSendRecord.ORIGIN_STORE); sendRecord.setSendOrigin(UserCloudSendRecord.ORIGIN_EVALUATE); UserCloudSendRecord result = userCloudSendRecordService.save(sendRecord); String pid = result.getId(); @@ -605,7 +605,7 @@ @Override @Transactional(rollbackFor = Exception.class) public void sendCustomGoods(Long uid, Long goodsId, Integer goodsType, Long sellerId) throws UserCloudException{ sendCircleByGoods(uid, goodsId, goodsType, null, sellerId); sendCircleByGoods(uid, goodsId, goodsType, null, sellerId, UserCloudSendRecord.SEND_WAY_MANUAL); } @Override @@ -632,13 +632,14 @@ try { // 发送商品 sendCircleByGoods(uid, cgoods.getGoodsId(), cgoods.getGoodsType(), id, cgoods.getSellerId()); sendCircleByGoods(uid, cgoods.getGoodsId(), cgoods.getGoodsType(), id, cgoods.getSellerId(), UserCloudSendRecord.SEND_WAY_AUTO); } catch (UserCloudException e) { LogHelper.cloudInfo("autoSendCustomGoods - [uid:" +uid + " 库id:"+ id + "]原因:"+ e.getMsg()); } } private void sendCircleByGoods(Long uid, Long goodsId, Integer goodsType, Long storeId, Long sellerId) throws UserCloudException { private void sendCircleByGoods(Long uid, Long goodsId, Integer goodsType, Long storeId, Long sellerId, int way) throws UserCloudException { // 验证是否授权 UserInfo user = userInfoService.getUserByIdWithMybatis(uid); if (user == null) @@ -687,7 +688,7 @@ custom = cloudManage.getCustom(); } if (!custom) { throw new UserCloudException(0, "成功加入云发单库"); return; } Integer robotId = userCloud.getRobotId(); @@ -742,6 +743,7 @@ } UserCloudSendRecord result = userCloudSendRecordService.save(sendRecord); try { if (goodsType == Constant.SOURCE_TYPE_TAOBAO) { sendTaoBaoGoods(user, robotId, wxId, goodsId, relationId, listOpen, result.getId()); } else if (goodsType == Constant.SOURCE_TYPE_JD) { @@ -753,7 +755,6 @@ } else if (goodsType == Constant.SOURCE_TYPE_SUNING) { sendSuNingGoods(user, robotId, wxId, goodsId, sellerId, relationId, listOpen, result.getId()); } // 更新发单记录 if (storeId != null) { UserCloudGoods record = new UserCloudGoods(); @@ -763,6 +764,22 @@ record.setUpdateTime(new Date()); userCloudGoodsService.updateByPrimaryKeySelective(record); } } catch (UserCloudException e) { LogHelper.cloudInfo("autoSendCustomGoods - [uid:" +uid + " 库id:"+ storeId + "]原因:"+ e.getMsg()); // 更新发单记录 if (storeId != null) { UserCloudGoods record = new UserCloudGoods(); record.setId(storeId); record.setState(UserCloudGoods.STATE_INVALID); record.setSendTime(new Date()); record.setUpdateTime(new Date()); userCloudGoodsService.updateByPrimaryKeySelective(record); } } } /** @@ -1102,17 +1119,20 @@ Date lastTime = new Date(time); for (int i = 0; i < 1000; i ++) { List<Long> list = userCloudMapper.listValidUid((i-1)*1000, 1000); // 查询哪些用户开通 List<Long> list = userCloudMapper.listValidUid(i*1000, 1000); if (list == null || list.size() == 0) { break; } for (Long uid: list) { try { // 判断是否该 内容已发 UserCloudSendRecord record = userCloudSendRecordService.getByUidAndSendId(uid, id); if (record != null) continue; // 是否在一个小时内已发送过 UserCloudSendRecord last = userCloudSendRecordService.getLastByUid(uid, lastTime); if (last != null) continue; fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/user/UserCloudMessageListener.java
@@ -41,23 +41,18 @@ String tag = message.getTag(); if (tag == null) tag = ""; if (java.lang.System.currentTimeMillis() <= Constant.NEW_ORDER_FANLI_RULE_TIME) { return Action.CommitMessage; } // 邀请相关 if (MQTopicName.TOPIC_USER.name().equalsIgnoreCase(message.getTopic())) { if (tag.equalsIgnoreCase(UserTopicTagEnum.userCloud.name())) {// 用户等级发生变化 if (tag.equalsIgnoreCase(UserTopicTagEnum.userCloud.name())) { UserCloudMQMsg msg = new Gson().fromJson(new String(message.getBody()),UserCloudMQMsg.class); if (msg.getType() == UserCloudMQMsg.TYPE_EVALUATE) { LogHelper.cloudInfo("发圈中信息 -" + msg.getId() ); userCloudService.autoSendByDynamic(msg.getUid(), msg.getId()); } else { LogHelper.cloudInfo("选品库信息 -" + msg.getId() ); userCloudService.autoSendCustomGoods(msg.getUid(), Long.parseLong(msg.getId())); } } } return Action.CommitMessage; } }