Sfoglia il codice sorgente

[코인][New] 소멸 예정 3일 전 코인 알림

hyodong.min 6 anni fa
parent
commit
d3651fc1ea

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/activity/ScreenStarter.java

@@ -27,6 +27,7 @@ import kr.co.zumo.app.lifeplus.model.module.APIPopupLoadModule;
 import kr.co.zumo.app.lifeplus.model.module.IEmergency;
 import kr.co.zumo.app.lifeplus.model.module.IModuleEmergencyHandler;
 import kr.co.zumo.app.lifeplus.supervisor.ActivityDeliveryHelper;
+import kr.co.zumo.app.lifeplus.supervisor.GuestCoinManager;
 import kr.co.zumo.app.lifeplus.tool.ReviewCounter;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.util.StringUtil;
@@ -110,6 +111,10 @@ public class ScreenStarter implements IModuleEmergencyHandler {
   }
 
   private void doGuestAction() {
+
+    // coin extinction noti
+    GuestCoinManager.notifyCoinExtinction(GuestCoinManager.getSavedCoinInfoResult());
+
     // 로컬에서 좋아요 등 정보를 가져오기 위해서 로딩 실행
 
     disposable = new APIGuestModule().call(new RequestBean(), new APIModuleSimpleListener<>());

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/model/module/APIGuestModule.java

@@ -9,6 +9,7 @@ import io.reactivex.Single;
 import kr.co.zumo.app.lifeplus.bean.api.LifeplusAPIBean;
 import kr.co.zumo.app.lifeplus.bean.api.RequestBean;
 import kr.co.zumo.app.lifeplus.supervisor.ContentsFlagHelper;
+import kr.co.zumo.app.lifeplus.supervisor.GuestCoinManager;
 
 /**
  * APIGuestModule

+ 9 - 7
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/GuestCoinManager.java

@@ -101,7 +101,7 @@ public class GuestCoinManager {
     CoinInfoBean coinInfoBean;
     // 당일 +휴효 날짜 비교하면 적립 시각(18:00) 만큼 코인의 유효기한이 짧아지므로(1일짜리 코인이라면 24-18=6시간) 유효날짜 +1일로 비교
     long todayMillis = Calendar.getInstance().getTimeInMillis();
-    Log.e("APP#  GuestCoinManager | expireCoin", "|" + "today --------> " + Formatter.format(todayMillis, CoinInfoBean.DATE_PATTERN));
+    Log.d("APP#  GuestCoinManager | expireCoin", "|" + "today --------> " + Formatter.format(todayMillis, CoinInfoBean.DATE_PATTERN));
     for (int i = len - 1; i >= 0; --i) {
       coinInfoBean = list.get(i);
       long coinDayMillis = Formatter.dateStringToMillis(CoinInfoBean.DATE_PATTERN, coinInfoBean.getDate());
@@ -113,7 +113,7 @@ public class GuestCoinManager {
         coinInfoBean = list.remove(i);
         modifyCoin(coinInfoBean.getGoodsAmount(), true);
         ++isRemoved;
-        Log.e("APP#  GuestCoinManager | expireCoin", "|" + "removed ==> " + coinInfoBean.toJson());
+        Log.d("APP#  GuestCoinManager | expireCoin", "|" + "removed ==> " + coinInfoBean.toJson());
       }
     }
 
@@ -136,13 +136,13 @@ public class GuestCoinManager {
       coinInfoBean = list.get(i);
       long coinDayMillis = Formatter.dateStringToMillis(CoinInfoBean.DATE_PATTERN, coinInfoBean.getDate());
       long limitDayMillis = TimeUnit.DAYS.toMillis(coinInfoBean.getLimitDays() + 1);
-      long targetDayMillis = limitDayMillis - TimeUnit.DAYS.toMillis(day); // 3일 전
+      long targetDayMillis = coinDayMillis + limitDayMillis - TimeUnit.DAYS.toMillis(day + 1); // +1일하여 당일 소멸 코인도 포함 시킴
 
       if (targetDayMillis < todayMillis && coinInfoBean.isNotified() == false/* && todayMillis > targetDayMillis + TimeUnit.DAYS.toMillis(1)*/) {
         // 3일 전 이라면
         // -> 정확히 3일 남은 시점만 확인하면 2~1일 남은 것 중 알림이 되지 않은 것을 놓칠 수 있다. bean 에 알림을 했는지 표시해서 확인
         coinInfoBean.setNotified(true);
-        totalCoin = Integer.parseInt(coinInfoBean.getGoodsAmount());
+        totalCoin += Integer.parseInt(coinInfoBean.getGoodsAmount());
         Log.d("APP# GuestCoinManager | notifyCoinExtinction", "|" + " totalCoin: " + totalCoin);
         Log.d("APP# GuestCoinManager | notifyCoinExtinction", "|" + " coinInfoBean: " + coinInfoBean.toJson());
       }
@@ -189,7 +189,7 @@ public class GuestCoinManager {
    * @param coinInfoResultBean
    */
   private static void saveCoinInfoResultBean(CoinInfoResultBean coinInfoResultBean) {
-    Log.e("APP#  GuestCoinManager | saveCoinInfoResultBean", "|" + " save ---> " + coinInfoResultBean.toJson());
+    Log.d("APP#  GuestCoinManager | saveCoinInfoResultBean", "|" + " save ---> " + coinInfoResultBean.toJson());
     SuperModel.getInstance().getPreferences().setGuestCoinList(coinInfoResultBean.toJson());
   }
 
@@ -206,7 +206,7 @@ public class GuestCoinManager {
       saveCoinInfoResultBean(manager.getCoinInfoResultBean());
     }
 
-    Log.e("APP#  GuestCoinManager | getCoinInfoWithExpire", "|" + " guest -> " + manager.getCoinInfoResultBean().toJson());
+    Log.d("APP#  GuestCoinManager | getCoinInfoWithExpire", "|" + " guest -> " + manager.getCoinInfoResultBean().toJson());
 
     return manager.getCoinInfoResultBean();
   }
@@ -284,8 +284,10 @@ public class GuestCoinManager {
    * @param wrapper
    */
   public static void notifyCoinExtinction(CoinInfoResultBeanPrivateWrapper wrapper) {
-
     GuestCoinManager manager = new GuestCoinManager(wrapper.coinInfoResultBean);
+    // 소멸 코인 처리
+    manager.expireCoin();
+    // 소멸 예정 코인 값
     int result = manager.getCoinExtinctionValue(3);
 
     if (result > 0) {

+ 2 - 1
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/PushMessageLink.java

@@ -62,9 +62,10 @@ public class PushMessageLink {
         UtilityActivityBean utilityActivityBean;
         switch (code) {
           case PushMessageManager.CODE_EXTINCTION:
+          case PushMessageManager.CODE_EXTINCTION_GUEST:
             // my extinct coin - 프래그먼트 뿐이므로 유틸리티 액티비티를 이용
             utilityActivityBean = new UtilityActivityBean();
-            utilityActivityBean.setScreenId(ScreenID.MY_COIN_EXTINCT);
+            utilityActivityBean.setScreenId(code.equals(PushMessageManager.CODE_EXTINCTION) ? ScreenID.MY_COIN_EXTINCT : ScreenID.MY_COIN_DETAIL_GUEST);
             deliveryHelper.setPackaging(utilityActivityBean);
             id = ScreenID.UTILITY_ACTIVITY;
             break;

+ 1 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/supervisor/PushMessageManager.java

@@ -41,6 +41,7 @@ public class PushMessageManager {
    */
   public static final String CODE_QNA = "CS2002";
   public static final String CODE_EXTINCTION = "MY1002";
+  public static final String CODE_EXTINCTION_GUEST = "MY1002-guest";
   public static final String CODE_EVENT_WINNER = "EV2000";
   public static final String CODE_EVENT_DETAIL = "EV0000";
   public static final String CODE_CONTENTS = "CO5000";

+ 5 - 0
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/menu/AllMenuPresenter.java

@@ -4,6 +4,7 @@ import android.support.annotation.IntRange;
 import android.util.Log;
 
 import kr.co.zumo.app.lifeplus.helper.NavigationBar;
+import kr.co.zumo.app.lifeplus.supervisor.GuestCoinManager;
 import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.view.Event;
 import kr.co.zumo.app.lifeplus.view.presenter.Presenter;
@@ -44,6 +45,10 @@ public class AllMenuPresenter extends Presenter<AllMenuModel, IAllMenuView> {
 
   @Override
   protected void startInternalOnce() {
+
+    // coin extinction noti
+    GuestCoinManager.notifyCoinExtinction(GuestCoinManager.getSavedCoinInfoResult());
+    
     Log.w("APP# AllMenuPresenter | startInternalOnce", "|" + "====> startInternalOnce");
     view.showMenuAnimation();
   }

+ 6 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/view/screen/notification/NotiPresenter.java

@@ -5,7 +5,6 @@ import kr.co.zumo.app.lifeplus.bean.PushBean;
 import kr.co.zumo.app.lifeplus.bean.api.NoticeBean;
 import kr.co.zumo.app.lifeplus.supervisor.PushMessageLink;
 import kr.co.zumo.app.lifeplus.supervisor.PushMessageManager;
-import kr.co.zumo.app.lifeplus.supervisor.ScreenID;
 import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 import kr.co.zumo.app.lifeplus.view.DoubleChecker;
 import kr.co.zumo.app.lifeplus.view.Event;
@@ -115,7 +114,12 @@ public class NotiPresenter extends Presenter<NotiModel, INotiView> {
       switch (bean.getFlag()) {
         case NoticeBean.FLAG_NEWS_COIN:
           // 소멸 예정 코인
-          pushBean.setScreenCode(PushMessageManager.CODE_EXTINCTION);
+          if (model.isActiveMember()) {
+            pushBean.setScreenCode(PushMessageManager.CODE_EXTINCTION);
+          }
+          else {
+            pushBean.setScreenCode(PushMessageManager.CODE_EXTINCTION_GUEST);
+          }
           break;
         case NoticeBean.FLAG_NEWS_WINNER:
           // 당첨 발표

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -538,7 +538,7 @@
   <string name="notice_category_notice">공지</string>
   <string name="notice_news_delete">알림을 삭제하시겠어요?</string>
   <string name="notice_nothing">공지사항이 없습니다.</string>
-  <string name="notice_guest_coin_extinction">%1코인 3일 후 소멸 예정!\n회원가입하면 유효기간이 1년으로 연장됩니다.</string>
+  <string name="notice_guest_coin_extinction">%s코인 3일 후 소멸 예정!\n회원가입하면 유효기간이 1년으로 연장됩니다.</string>
   <!--메인의 날씨-->
   <string name="weather_area">"지금 %s"</string>
   <string name="weather_sunny">맑음입니다</string>