|
|
@@ -131,7 +131,7 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
|
|
|
return this.removeById(id);
|
|
|
}
|
|
|
|
|
|
- public LifeUserDynamics getDynamicsById(int id){
|
|
|
+ public LifeUserDynamics getDynamicsById(int id) {
|
|
|
return this.getById(id);
|
|
|
}
|
|
|
|
|
|
@@ -621,7 +621,7 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
|
|
|
|
|
|
LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>()
|
|
|
.eq(LifeUserExpertOrder::getId, expertOrderId)
|
|
|
- .eq(LifeUserExpertOrder::getDeleteFlag,0));
|
|
|
+ .eq(LifeUserExpertOrder::getDeleteFlag, 0));
|
|
|
//查询达人购买商户订单状态不是已完成
|
|
|
//判断达人动态浏览数和gmv 是否达到达人设置的限定值
|
|
|
if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 5) {
|
|
|
@@ -651,60 +651,94 @@ public class LifeUserDynamicsService extends ServiceImpl<LifeUserDynamicsMapper,
|
|
|
|
|
|
public boolean addUserStoreBrowseNumber(LifeBrowseRecord lifeBrowseRecord) {
|
|
|
int liulanNum = 0;
|
|
|
- int threeSecondsNum = 0;
|
|
|
+ // 1.处理当天浏览记录(去重插入)
|
|
|
+ handleTodayBrowseRecord(lifeBrowseRecord);
|
|
|
+
|
|
|
+ // 2.更新动态浏览统计数据并获取浏览数
|
|
|
+ LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectById(lifeBrowseRecord.getDynamicsId());
|
|
|
+ if (lifeUserDynamics == null) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ liulanNum = updateDynamicsBrowseCount(lifeBrowseRecord, lifeUserDynamics);
|
|
|
+
|
|
|
+ //3.查询gmv和动态浏览数是否满足当前达人订单规定值 都满足修改订单状态为已完成
|
|
|
+ LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>()
|
|
|
+ .eq(LifeUserExpertOrder::getId, lifeBrowseRecord.getOrderId())
|
|
|
+ .eq(LifeUserExpertOrder::getDeleteFlag, 0));
|
|
|
+ if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 5) {
|
|
|
+ LifeUserExpertWorks lifeUserExpertWorks = lifeUserExpertWorksMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertWorks>().eq(LifeUserExpertWorks::getDynamicsId, lifeBrowseRecord.getDynamicsId())
|
|
|
+ .eq(LifeUserExpertWorks::getOrderId, lifeBrowseRecord.getOrderId())
|
|
|
+ .eq(LifeUserExpertWorks::getDeleteFlag, 0));
|
|
|
+ if (lifeUserExpertWorks != null) {
|
|
|
+ if (lifeUserExpertWorks.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0 && liulanNum >= lifeUserExpertOrder.getOrderPlayCount()) {
|
|
|
+ lifeUserExpertOrder.setStatus(5);
|
|
|
+ lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 处理当天浏览记录(如果不存在则插入)
|
|
|
+ */
|
|
|
+ private void handleTodayBrowseRecord(LifeBrowseRecord lifeBrowseRecord) {
|
|
|
// 获取当天开始时间(00:00:00)
|
|
|
LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
|
|
|
// 获取当天结束时间(23:59:59.999)
|
|
|
LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
|
|
|
- LifeBrowseRecord selectOne = lifeBrowseRecordMapper.selectOne(new LambdaQueryWrapper<LifeBrowseRecord>().eq(LifeBrowseRecord::getUserId, lifeBrowseRecord.getUserId())
|
|
|
- .between(LifeBrowseRecord::getLiulanTime, todayStart, todayEnd).in(LifeBrowseRecord::getDeleteFlag, 0, 1).eq(LifeBrowseRecord::getDynamicsId, lifeBrowseRecord.getDynamicsId())
|
|
|
- .eq(LifeBrowseRecord::getOrderId, lifeBrowseRecord.getOrderId())
|
|
|
- .eq(LifeBrowseRecord::getDynamicsType, lifeBrowseRecord.getDynamicsType()));
|
|
|
- if (selectOne == null) {
|
|
|
+
|
|
|
+ LifeBrowseRecord existingRecord = lifeBrowseRecordMapper.selectOne(
|
|
|
+ new LambdaQueryWrapper<LifeBrowseRecord>()
|
|
|
+ .eq(LifeBrowseRecord::getUserId, lifeBrowseRecord.getUserId())
|
|
|
+ .between(LifeBrowseRecord::getLiulanTime, todayStart, todayEnd)
|
|
|
+ .in(LifeBrowseRecord::getDeleteFlag, 0, 1)
|
|
|
+ .eq(LifeBrowseRecord::getDynamicsId, lifeBrowseRecord.getDynamicsId())
|
|
|
+ .eq(LifeBrowseRecord::getOrderId, lifeBrowseRecord.getOrderId())
|
|
|
+ .eq(LifeBrowseRecord::getDynamicsType, lifeBrowseRecord.getDynamicsType())
|
|
|
+ );
|
|
|
+
|
|
|
+ if (existingRecord == null) {
|
|
|
lifeBrowseRecord.setCreatedTime(new DateTime());
|
|
|
lifeBrowseRecord.setLiulanTime(new DateTime());
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
lifeBrowseRecord.setLiulanDate(sdf.format(new Date()));
|
|
|
lifeBrowseRecordMapper.insert(lifeBrowseRecord);
|
|
|
}
|
|
|
- LifeUserDynamics lifeUserDynamics = lifeUserDynamicsMapper.selectById(lifeBrowseRecord.getDynamicsId());
|
|
|
- if(lifeUserDynamics != null){
|
|
|
- //查询达人动态正常浏览数
|
|
|
- liulanNum = lifeBrowseRecordMapper.getCountBrowseNum(lifeBrowseRecord.getDynamicsId(),lifeBrowseRecord.getOrderId(),0);
|
|
|
- if (liulanNum > lifeUserDynamics.getLiulanCount()) {
|
|
|
- LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
- lambdaUpdateWrapper.eq(LifeUserDynamics::getId, lifeBrowseRecord.getDynamicsId());
|
|
|
- lambdaUpdateWrapper.set(LifeUserDynamics::getLiulanCount, liulanNum);
|
|
|
- lifeUserDynamicsMapper.update(null, lambdaUpdateWrapper);
|
|
|
- }
|
|
|
- //查询达人动态停留三秒浏览数
|
|
|
- threeSecondsNum = lifeBrowseRecordMapper.getCountBrowseNum(lifeBrowseRecord.getDynamicsId(),lifeBrowseRecord.getOrderId(),1);
|
|
|
- if (threeSecondsNum > lifeUserDynamics.getRealityCount()) {
|
|
|
- LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
- lambdaUpdateWrapper.eq(LifeUserDynamics::getId, lifeBrowseRecord.getDynamicsId());
|
|
|
- lambdaUpdateWrapper.set(LifeUserDynamics::getRealityCount, threeSecondsNum);
|
|
|
- lifeUserDynamicsMapper.update(null, lambdaUpdateWrapper);
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- //查询gmv和动态浏览数是否满足当前达人订单规定值 都满足修改订单状态为已完成
|
|
|
- LifeUserExpertOrder lifeUserExpertOrder = lifeUserExpertOrderMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertOrder>()
|
|
|
- .eq(LifeUserExpertOrder::getId, lifeBrowseRecord.getOrderId())
|
|
|
- .eq(LifeUserExpertOrder::getDeleteFlag, 0));
|
|
|
- if (lifeUserExpertOrder != null && lifeUserExpertOrder.getStatus() != 5) {
|
|
|
- LifeUserExpertWorks lifeUserExpertWorks = lifeUserExpertWorksMapper.selectOne(new LambdaQueryWrapper<LifeUserExpertWorks>().eq(LifeUserExpertWorks::getDynamicsId, lifeBrowseRecord.getDynamicsId())
|
|
|
- .eq(LifeUserExpertWorks::getOrderId, lifeBrowseRecord.getOrderId())
|
|
|
- .eq(LifeUserExpertWorks::getDeleteFlag, 0));
|
|
|
- if (lifeUserExpertWorks != null) {
|
|
|
- if (lifeUserExpertWorks.getOrderGmv().compareTo(lifeUserExpertOrder.getOrderGmv()) >= 0 && liulanNum >= lifeUserExpertOrder.getOrderPlayCount()) {
|
|
|
- lifeUserExpertOrder.setStatus(5);
|
|
|
- lifeUserExpertOrderMapper.updateById(lifeUserExpertOrder);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ /**
|
|
|
+ * 更新动态浏览统计数据
|
|
|
+ *
|
|
|
+ * @return 正常浏览数,用于后续订单状态判断
|
|
|
+ */
|
|
|
+ private int updateDynamicsBrowseCount(LifeBrowseRecord lifeBrowseRecord, LifeUserDynamics lifeUserDynamics) {
|
|
|
+ String dynamicsId = lifeBrowseRecord.getDynamicsId();
|
|
|
+ String orderId = lifeBrowseRecord.getOrderId();
|
|
|
+
|
|
|
+ // 更新正常浏览数
|
|
|
+ int liulanNum = lifeBrowseRecordMapper.getCountBrowseNum(dynamicsId, orderId, 0);
|
|
|
+ if (liulanNum > lifeUserDynamics.getLiulanCount()) {
|
|
|
+ LambdaUpdateWrapper<LifeUserDynamics> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ updateWrapper.eq(LifeUserDynamics::getId, dynamicsId)
|
|
|
+ .set(LifeUserDynamics::getLiulanCount, liulanNum);
|
|
|
+ lifeUserDynamicsMapper.update(null, updateWrapper);
|
|
|
}
|
|
|
- return true;
|
|
|
+
|
|
|
+ // 更新停留三秒浏览数
|
|
|
+ int threeSecondsNum = lifeBrowseRecordMapper.getCountBrowseNum(dynamicsId, orderId, 1);
|
|
|
+ if (threeSecondsNum > lifeUserDynamics.getRealityCount()) {
|
|
|
+ LambdaUpdateWrapper<LifeUserDynamics> updateWrapper = new LambdaUpdateWrapper<>();
|
|
|
+ updateWrapper.eq(LifeUserDynamics::getId, dynamicsId)
|
|
|
+ .set(LifeUserDynamics::getRealityCount, threeSecondsNum);
|
|
|
+ lifeUserDynamicsMapper.update(null, updateWrapper);
|
|
|
+ }
|
|
|
+
|
|
|
+ return liulanNum;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
public int addTransferCount(String id) {
|
|
|
LambdaUpdateWrapper<LifeUserDynamics> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
|
|
lambdaUpdateWrapper.eq(LifeUserDynamics::getId, id)
|