Просмотр исходного кода

通过小绵羊服务器获取有米积分任务余额

zengjiebin лет назад: 7
Родитель
Сommit
8558a34fa3

+ 11 - 2
app/src/main/java/com/sheep/gamegroup/model/api/ApiService.java

@@ -1067,8 +1067,7 @@ public interface ApiService {
 
 
 
-//---------------------------下面是sdk相关接口-------------------------------------
-
+//---------------------------start 游戏sdk相关接口-------------------------------------
     /**
      * 请求授权
      * @return
@@ -1085,4 +1084,14 @@ public interface ApiService {
      */
     @POST("app/sdk/pay/order")
     Observable<BaseMessage> sdkPayOrder(@Header("Authorization") String token, @Query("order_no") String out_trade_no);
+//---------------------------end 游戏sdk相关接口-------------------------------------
+
+//---------------------------start 有米科技相关接口-------------------------------------
+    /**
+     * 获取有米积分余额
+     * @return
+     */
+    @GET("youmi/youmi_total_price")
+    Observable<BaseMessage> getYmTotalPrice();
+//---------------------------end 有米科技相关接口-------------------------------------
 }

+ 2 - 1
app/src/main/java/com/sheep/gamegroup/util/ConnectAddress.java

@@ -50,7 +50,8 @@ public enum ConnectAddress {
         @Override
         public String getAppUrl() {
 //            return "http://10.8.210.229:8080/";
-            return "http://10.8.210.243:8080/";
+//            return "http://10.8.210.243:8080/";
+            return "http://10.8.210.235:8080/";
         }
         @Override
         public String getName() {

+ 11 - 3
app/src/main/java/com/sheep/gamegroup/util/DataUtil.java

@@ -9,6 +9,7 @@ import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.kfzs.duanduan.utils.NumberFormatUtils;
 import com.sheep.gamegroup.model.api.BaseMessageConverter;
 import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.ScreenShotConfig;
@@ -261,17 +262,24 @@ public class DataUtil {
     //-----------------------------------------缓存数据部分-----------------------------------------------------结束
 
     //-----------------------------------------其它数据部分-----------------------------------------------------开始
+    public static int getAsInt(String key, int defaultValue) {
+        String result = aCache.getAsString(key);
+        return NumberFormatUtils.parseInteger(result, defaultValue);
+    }
+    public static void putAsInt(String key, int value) {
+        aCache.put(key, String.valueOf(value));
+    }
     public static String getAsString(String key, String defaultValue) {
         String result = aCache.getAsString(key);
         return result == null ? defaultValue : result;
     }
+    public static void putAsString(String key, String value) {
+        aCache.put(key, value);
+    }
     public static boolean getAsBoolean(String key, boolean defaultValue) {
         String result = aCache.getAsString(key);
         return result == null ? defaultValue : TextUtils.equals(result, "true");
     }
-    public static void putAsString(String key, String value) {
-        aCache.put(key, value);
-    }
     public static void putAsBoolean(String key, boolean value) {
         aCache.put(key, Boolean.toString(value));
     }

+ 20 - 3
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -124,6 +124,7 @@ import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.youmi.android.offer.BaseActYmPermissionCheck;
 import com.youmi.android.offerdemo.PermissionCheckActivity;
 
+import org.afinal.simplecache.DataKey;
 import org.xutils.ex.DbException;
 
 import java.io.File;
@@ -2033,8 +2034,24 @@ public class Jump2View {
      * 有米科技
      * @param activity
      */
-    public void goYm(Activity activity) {
-        if(activity instanceof BaseActYmPermissionCheck)
-            ((BaseActYmPermissionCheck) activity).checkOrShowYmOffersAds();
+    public void goYm(final Activity activity) {
+        if(activity instanceof BaseActYmPermissionCheck) {
+            //获取总积分
+            SheepApp.getInstance().getNetComponent().getApiService().getYmTotalPrice()
+                            .subscribeOn(Schedulers.io())
+                            .observeOn(AndroidSchedulers.mainThread())
+                            .subscribe(new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+                                @Override
+                                public void onNext(BaseMessage baseMessage) {
+                                    DataUtil.putAsInt(DataKey.YM_TOTAL_PRICE, baseMessage.getData(Integer.class));
+                                    ((BaseActYmPermissionCheck) activity).checkOrShowYmOffersAds();
+                                }
+
+                                @Override
+                                public void onError(BaseMessage baseMessage) {
+                                    G.showToast(baseMessage);
+                                }
+                            });
+        }
     }
 }

+ 14 - 6
app/src/main/java/com/youmi/android/offer/YmPermissionUtil.java

@@ -18,6 +18,10 @@ import android.widget.Toast;
 import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.jiuyan.samllsheep.utils.G;
 
+import org.afinal.simplecache.DataKey;
+
+import java.util.Locale;
+
 import cde.ewd.adw.AdManager;
 import cde.ewd.adw.os.EarnPointsOrderInfo;
 import cde.ewd.adw.os.EarnPointsOrderList;
@@ -77,7 +81,6 @@ public class YmPermissionUtil implements PointsChangeNotify, PointsEarnNotify {
 
     public void showYmOffersAds() {
         initYoumi();
-        setOfferBrowserConfig();
         OffersManager.getInstance(activity).showOffersWall();
     }
 
@@ -87,14 +90,19 @@ public class YmPermissionUtil implements PointsChangeNotify, PointsEarnNotify {
         AdManager.getInstance(activity).init(YmConfig.getAppId(), YmConfig.getAppSecret(), YmConfig.isShowLog());
 
         // 有米android 积分墙sdk 5.0.0之后支持定制浏览器顶部标题栏的部分UI
-        // setOfferBrowserConfig();
+         setOfferBrowserConfig();
 
         // 如果开发者使用积分墙的服务器回调,
         // 1.需要告诉sdk,现在采用服务器回调
         // 2.建议开发者传入自己系统中用户id(如:邮箱账号之类的)(请限制在50个字符串以内)
         // 3.务必在下面的OffersManager.getInstance(this).onAppLaunch();代码之前声明使用服务器回调
-
-         OffersManager.getInstance(activity).setUsingServerCallBack(true);
+//        如果使用了服务器订单回调,则上文所述的客户端积分功能
+//                积分管理
+//        监听积分余额变动
+//                监听积分订单到账通知
+//        配置积分到账提醒
+//        将不再适用,即SDK将不会通知客户端应用订单到账,所有积分流程只能通过服务器实现,可以极大地提高积分 安全性
+        OffersManager.getInstance(activity).setUsingServerCallBack(true);
          OffersManager.getInstance(activity).setCustomUserId(DataUtil.getInstance().getUserId());
 
         // 如果使用积分广告,请务必调用积分广告的初始化接口:
@@ -123,8 +131,8 @@ public class YmPermissionUtil implements PointsChangeNotify, PointsEarnNotify {
 
         // 查询积分余额
         // 从5.3.0版本起,客户端积分托管将由 int 转换为 float
-        float pointsBalance = PointsManager.getInstance(activity).queryPoints();
-        G.showToast("积分余额:" + pointsBalance);
+//        float pointsBalance = PointsManager.getInstance(activity).queryPoints();
+        G.showToast("积分余额:" + DataUtil.getAsInt(DataKey.YM_TOTAL_PRICE, 0));
     }
 
     /**

+ 11 - 0
app/src/main/java/org/afinal/simplecache/DataKey.java

@@ -0,0 +1,11 @@
+package org.afinal.simplecache;
+
+/**
+ * Created by realicing on 2018/10/29.
+ * realicing@sina.com
+ * 缓存数据的key
+ */
+public class DataKey {
+    //有米积分总余额的key
+    public static final String YM_TOTAL_PRICE = "ym_total_price";
+}