Kaynağa Gözat

处理全部扣减后,后续VIP前移,当天剩余时间属于赠送

yuanliang 11 ay önce
ebeveyn
işleme
1250ee3898

+ 20 - 15
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/VipCardRecordServiceImpl.java

@@ -675,22 +675,27 @@ public class VipCardRecordServiceImpl extends ServiceImpl<VipCardRecordDao, VipC
                 deductMills = endTime.getTime() - deductedStartDate.getTime();
                 endDeductMills = endTime.getTime() - formatEnd(deductedStartDate).getTime();
             } else {
-                // 有扣减,整体时间前移
-                if (deductMills != null) {
-                    VipCardRecord newRecord = JSON.parseObject(JSON.toJSONString(vipCardRecord), VipCardRecord.class);
-                    newRecord.setId(null);
-                    newRecord.setDisplayFlag(false);
-                    newRecord.setEfficientFlag(true);
-                    if (!vipCardRecord.getVipType().equals(vipType) && !giveFlag) {
-                        newRecord.setStartTime(new Date(newRecord.getStartTime().getTime() - deductMills));
-                        giveFlag = true;
-                    } else {
-                        newRecord.setStartTime(new Date(newRecord.getStartTime().getTime() - endDeductMills));
+                if (vipCardRecord.getVipType().equals(vipType)) {
+                    deductMills = endTime.getTime() - deductedStartDate.getTime();
+                    endDeductMills = endTime.getTime() - formatEnd(deductedStartDate).getTime();
+                } else {
+                    // 有扣减,整体时间前移
+                    if (deductMills != null) {
+                        VipCardRecord newRecord = JSON.parseObject(JSON.toJSONString(vipCardRecord), VipCardRecord.class);
+                        newRecord.setId(null);
+                        newRecord.setDisplayFlag(false);
+                        newRecord.setEfficientFlag(true);
+                        if (!giveFlag) {
+                            newRecord.setStartTime(new Date(newRecord.getStartTime().getTime() - deductMills));
+                            giveFlag = true;
+                        } else {
+                            newRecord.setStartTime(new Date(newRecord.getStartTime().getTime() - endDeductMills));
+                        }
+                        newRecord.setEndTime(new Date(newRecord.getEndTime().getTime() - endDeductMills));
+                        newRecord.setStatus(EVipRecordStatus.UPDATE);
+                        save(newRecord);
+                        addId = newRecord.getId();
                     }
-                    newRecord.setEndTime(new Date(newRecord.getEndTime().getTime() - endDeductMills));
-                    newRecord.setStatus(EVipRecordStatus.UPDATE);
-                    save(newRecord);
-                    addId = newRecord.getId();
                 }
             }