Commit 6107ffa1 by 刘鹏

Merge branch '4.1.69_log' into 4.1.69(强绑手机号)

parents c445a1b7 a0681f68
......@@ -19,24 +19,24 @@ import com.umeng.analytics.MobclickAgent
import com.ydl.component.music.FragmentContainerActivity
import com.ydl.component.mvp.DemoContract
import com.ydl.component.mvp.DemoPresenter
import com.ydl.component.route.PlatformTempCommonRouteImpl
import com.ydl.confide.home.ConfideHomeActivity
import com.ydl.media.audio.PlayService
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.mvp.lce.BaseLceActivity
import com.ydl.ydlcommon.router.YdlCommonRouterManager
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.ToastUtil
import com.yidianling.consultant.api.IConsultantService
import com.yidianling.fm.api.service.IFMService
import com.yidianling.tests.home.NewTestHomeActivity
import com.yidianling.user.StatusUtils
import com.yidianling.user.ui.collect.CollectSexAndBirthActivity
import com.yidianling.user.ui.login.OneKeyLoginHelp
import com.yidianling.user.widget.SecretDescriptionDialog
import com.yidianling.user.widget.SecretDialog
import com.yidianling.user.widget.SecretDialog.OnSecretDialogListener
import kotlinx.android.synthetic.main.activity_main.*
import com.ydl.component.route.PlatformTempCommonRouteImpl
import com.ydl.confide.home.ConfideHomeActivity
import com.ydl.ydlcommon.router.YdlCommonRouterManager
import com.yidianling.common.tools.LogUtil
import com.yidianling.consultant.api.IConsultantService
import com.yidianling.user.StatusUtils
import com.yidianling.user.ui.login.OneKeyLoginHelp
/**
......
......@@ -5,12 +5,12 @@ ext {
ydlPublishVersion = [
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.49.02",
"m-confide" : "0.0.49.06",
"m-consultant" : "0.0.59.69",
"m-fm" : "0.0.30.01",
"m-user" : "0.0.61.29",
"m-home" : "0.0.22.59",
"m-im" : "0.0.18.41",
"m-im" : "0.0.18.48",
"m-dynamic" : "0.0.7.19",
"m-article" : "0.0.0.6",
......@@ -33,18 +33,18 @@ ext {
//-------------- 功能组件 --------------
//第一步
"ydl-platform" : "0.0.39.98",
"ydl-platform" : "0.0.40.00",
//第二步 若干
"ydl-webview" : "0.0.38.36",
"ydl-webview" : "0.0.38.41",
"ydl-media" : "0.0.21.6",
"ydl-pay" : "0.0.18.13",
"ydl-pay" : "0.0.18.18",
"m-audioim" : "0.0.49.29.36",
"ydl-flutter-base": "0.0.14.23",
//以下 几乎不会动
"router" : "0.0.1",
"ydl-net" : "0.0.3.7",
"ydl-net" : "0.0.3.9",
"ydl-utils" : "0.0.3.1",
]
ydl_app = [
......@@ -88,12 +88,12 @@ ext {
// -------------- 业务模块 --------------
//第三步 若干
"m-confide" : "0.0.49.02",
"m-confide" : "0.0.49.06",
"m-consultant" : "0.0.59.69",
"m-fm" : "0.0.30.01",
"m-user" : "0.0.61.29",
"m-home" : "0.0.22.59",
"m-im" : "0.0.18.40",
"m-im" : "0.0.18.48",
"m-dynamic" : "0.0.7.19",
"m-article" : "0.0.0.6",
......@@ -115,18 +115,18 @@ ext {
//-------------- 功能组件 --------------
//第一步
"ydl-platform" : "0.0.39.98",
"ydl-platform" : "0.0.40.00",
//第二步 若干
"ydl-webview" : "0.0.38.36",
"ydl-webview" : "0.0.38.41",
"ydl-media" : "0.0.21.6",
"ydl-pay" : "0.0.18.11",
"ydl-pay" : "0.0.18.18",
"m-audioim" : "0.0.49.29.36",
"ydl-flutter-base": "0.0.14.23",
//以下 几乎不会动
"router" : "0.0.1",
"ydl-net" : "0.0.3.7",
"ydl-net" : "0.0.3.9",
"ydl-utils" : "0.0.3.1",
]
......@@ -199,6 +199,7 @@ ext {
"androideventbus" : "org.simple:androideventbus:1.0.5.1",
"otto" : "com.squareup:otto:1.3.8",
"gson" : "com.google.code.gson:gson:2.8.5",
"aliyun" : "com.aliyun.openservices:aliyun-log-android-sdk:2.5.13",
"javax.annotation" : "javax.annotation:jsr250-api:1.0",
"arouter" : "com.alibaba:arouter-api:1.4.1",
"progressmanager" : "me.jessyan:progressmanager:1.5.0",
......
......@@ -47,6 +47,8 @@ import com.ydl.ydlcommon.utils.LogUtil
import com.ydl.ydlcommon.utils.StatusBarUtils
import com.ydl.ydlcommon.utils.Utils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.log.LogHelper
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.yidianling.user.api.service.IUserService
......@@ -137,7 +139,7 @@ class ConsultantAudioHomeActivity :
super.onJoinChannelSuccess(channel, uid, elapsed)
LogUtil.e("[agora]$uid 加入频道回调")
writeAgoraLog("被叫(用户)加入声网($channel)频道成功")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "被叫(用户)加入声网($channel)频道成功")
runOnUiThread {
// 加入频道后再通知用户已接受
// YDLRTMClient.instances.acceptCall(mAudioMessageBean?.channelId)
......@@ -165,6 +167,9 @@ class ConsultantAudioHomeActivity :
super.onRejoinChannelSuccess(channel, uid, elapsed)
LogUtil.e("[agora]$uid 重新加入频道回调")
writeAgoraLog("被叫(用户)重新加入声网频道($channel)成功")
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.AGORA, "被叫(用户)重新加入声网频道($channel)成功")
runOnUiThread {
if (!isConnectSuccess) {
tv_toast.visibility = View.VISIBLE
......@@ -182,6 +187,8 @@ class ConsultantAudioHomeActivity :
super.onUserJoined(uid, elapsed)
LogUtil.e("[agora]远端用户加入频道回调")
writeAgoraLog("主叫(专家)加入声网频道成功")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "主叫(专家)加入声网频道成功")
//另一方加入频道成功
runOnUiThread {
isConnectSuccess = true
......@@ -223,6 +230,8 @@ class ConsultantAudioHomeActivity :
override fun onLeaveChannel(stats: IRtcEngineEventHandler.RtcStats?) {
super.onLeaveChannel(stats)
LogUtil.e("[agora]自己离开频道回调")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "自己离开频道回调")
//通知php 通话已结束
close(RESULT_ANSWERED_CODE, "")
}
......@@ -249,6 +258,8 @@ class ConsultantAudioHomeActivity :
)
showToast("对方已挂断")
writeAgoraLog("通话接通后挂断:主叫(专家)离开频道")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "通话接通后挂断:主叫(专家)离开频道")
if (null != totalDisposable) {
totalDisposable!!.dispose()
}
......@@ -265,6 +276,8 @@ class ConsultantAudioHomeActivity :
}
LogUtil.e("[agora]发生警告回调=$warn")
writeAgoraLog("声网警告回调码:($warn)")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "声网警告回调码:($warn)")
//103:没有可用的频道资源。可能是因为服务端没法分配频道资源
//104:查找频道超时。在加入频道时 SDK 先要查找指定的频道,出现该警告一般是因为网络太差,连接不到服务器
//105:查找频道请求被服务器拒绝。服务器可能没有办法处理这个请求或请求是非法的
......@@ -290,6 +303,7 @@ class ConsultantAudioHomeActivity :
uploadException("mRtcEventHandler-onError:errorCode--%${err}")
LogUtil.e("[agora] 发生错误回调 =$err")
writeAgoraLog("声网错误回调errorCode--%${err}")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "声网错误回调errorCode--%${err}")
//3:SDK 初始化失败。Agora 建议尝试以下处理方法
//7:SDK 尚未初始化,就调用其 API。请确认在调用 API 之前已创建 RtcEngine 对象并完成初始化
......@@ -510,6 +524,8 @@ class ConsultantAudioHomeActivity :
override fun channelTokenResponse(token: String?, needJoinChannel: Boolean) {
if (TextUtils.isEmpty(token)) {
LogUtil.e("[agora]token not null")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "token isEmpty ")
showToast("通话频道不存在")
finish()
return
......@@ -583,6 +599,8 @@ class ConsultantAudioHomeActivity :
val account = YdlCommonRouterManager.getYdlCommonRoute().getUid()
if (!TextUtils.isEmpty(mAudioMessageBean?.channelId)) {
LogUtil.e("[agora] joinChannel:$account")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "joinChannel:$account")
voiceManage?.getVoiceApi()?.joinChannel(
channelToken
?: "", mAudioMessageBean!!.channelId!!, "Extra Optional Data", account
......@@ -807,6 +825,9 @@ class ConsultantAudioHomeActivity :
fun close(code: Int, msg: String) {
runOnUiThread {
LogUtil.e("[agora]close(code:$code,msg:$msg)")
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.AGORA, "close(code:$code,msg:$msg)")
//上传日志文件
uploadLog()
stopMusic()
......@@ -837,6 +858,7 @@ class ConsultantAudioHomeActivity :
}
ActivityManager.getInstance().removeStack(activity = this)
LogUtil.e("[agora]页面移除")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.AGORA, "页面移除")
finish()
}
}
......@@ -945,9 +967,11 @@ class ConsultantAudioHomeActivity :
Observable.create<Any> {
try {
AudioLogUtils.writeAgoraLog(
"$content-------Time:${AudioLogUtils.format.format(
"$content-------Time:${
AudioLogUtils.format.format(
Calendar.getInstance().time
)}", "consult.log"
)
}", "consult.log"
)
} catch (e: Exception) {
}
......
......@@ -10,6 +10,8 @@ import com.netease.nimlib.sdk.avchat.AVChatManager;
import com.netease.nimlib.sdk.avchat.constant.AVChatControlCommand;
import com.netease.nimlib.sdk.avchat.model.AVChatData;
import com.ydl.ydlcommon.base.BaseActivityMgr;
import com.ydl.ydlcommon.utils.log.AliYunLogConfig;
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper;
import com.yidianling.avchatkit.activity.AVChatActivity;
import com.yidianling.avchatkit.common.log.ILogUtil;
import com.yidianling.avchatkit.common.log.LogUtil;
......@@ -149,6 +151,8 @@ public class AVChatKit {
*/
public static void outgoingCall(Context context, String account, String displayName, int callType, int source) {
AVChatActivity.outgoingCall(context, account, displayName, callType, source);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"outgoingCall 发起音视频通话呼叫");
}
/**
......@@ -162,7 +166,7 @@ public class AVChatKit {
*/
public static void outgoingTeamCall(Context context, boolean receivedCall, String teamId, String roomId, ArrayList<String> accounts, String teamName) {
TeamAVChatActivity.startActivity(context, receivedCall, teamId, roomId, accounts, teamName);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"outgoingTeamCall 发起群组音视频通话呼叫");
}
/**
......
......@@ -35,6 +35,7 @@ public abstract class AVChatBaseUI extends AppCompatActivity {
super.onStart();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
......
......@@ -157,6 +157,7 @@ public class CustomAlertDialog extends AlertDialog {
}
}
@Override
public void setTitle(int resId) {
this.title = context.getString(resId);
isTitleVisible = TextUtils.isEmpty(title) ? false : true;
......
......@@ -11,6 +11,8 @@ import android.os.Build;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import com.ydl.ydlcommon.utils.log.AliYunLogConfig;
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper;
import com.yidianling.avchatkit.common.log.LogUtil;
public class NetworkUtil {
......@@ -79,9 +81,10 @@ public class NetworkUtil {
NetworkInfo networkInfo = getActiveNetworkInfo(context);
if (networkInfo == null) {
return -1;
} else
} else {
return networkInfo.getType();
}
}
/**
......@@ -145,7 +148,7 @@ public class NetworkUtil {
}
}
curNetworkType = type;
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.NETSTATUS, "网络类型:" + type);
return type;
}
......@@ -271,8 +274,11 @@ public class NetworkUtil {
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni != null) {
if (ni.getType() == ConnectivityManager.TYPE_WIFI) {
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.NETSTATUS, "网络类型:TYPE_WIFI");
return true;
} else {
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.NETSTATUS, "网络类型:非WIFI环境");
return false;
}
} else {
......
......@@ -35,6 +35,8 @@ import com.netease.nimlib.sdk.avchat.model.AVChatParameters;
import com.netease.nimlib.sdk.avchat.video.AVChatCameraCapturer;
import com.netease.nimlib.sdk.avchat.video.AVChatVideoCapturerFactory;
import com.netease.nrtc.video.render.IVideoRender;
import com.ydl.ydlcommon.utils.log.AliYunLogConfig;
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper;
import com.yidianling.avchatkit.AVChatKit;
import com.yidianling.avchatkit.TeamAVChatProfile;
import com.yidianling.avchatkit.common.activity.AVChatBaseUI;
......@@ -436,6 +438,7 @@ public class TeamAVChatActivity extends AVChatBaseUI {
public void onSuccess(AVChatData data) {
chatId = data.getChatId();
LogUtil.i(TAG, "join room success, roomId=" + roomId + ", chatId=" + chatId);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"join room success, roomId=" + roomId + ", chatId=" + chatId);
}
@Override
......@@ -458,13 +461,17 @@ public class TeamAVChatActivity extends AVChatBaseUI {
startLocalPreview();
startTimerForCheckReceivedCall();
LogUtil.i(TAG, "team avchat running..." + ", roomId=" + roomId);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"onJoinRoomSuccess 进入房间成功");
}
private void onJoinRoomFailed(int code, Throwable e) {
if (code == ResponseCode.RES_ENONEXIST) {
showToast(getString(R.string.im_t_avchat_join_fail_not_exist));
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"startRtc 进入房间失败 房间不存在 code:"+code);
} else {
showToast("join room failed, code=" + code + ", e=" + (e == null ? "" : e.getMessage()));
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"join room failed, code=" + code + ", e=" + (e == null ? "" : e.getMessage()));
}
}
......@@ -483,6 +490,7 @@ public class TeamAVChatActivity extends AVChatBaseUI {
updateAudioMuteButtonState();
LogUtil.i(TAG, "on user joined, account=" + account);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"on user joined, account=" + account);
}
public void onAVChatUserLeave(String account) {
......@@ -496,6 +504,7 @@ public class TeamAVChatActivity extends AVChatBaseUI {
updateAudioMuteButtonState();
LogUtil.i(TAG, "on user leave, account=" + account);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"on user leave, account=" + account);
}
private void startLocalPreview() {
......
......@@ -17,6 +17,8 @@ import com.ydl.ydlcommon.ui.LoadingDialogFragment
import com.ydl.ydlcommon.ui.LoadingDialogFragment.Companion.newInstance
import com.ydl.ydlcommon.utils.NetworkParamsUtils
import com.ydl.ydlcommon.utils.UserInfoCache
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.remind.HttpErrorUtils.Companion.handleError
import com.ydl.ydlcommon.view.dialog.CommonDialog
import com.yidianling.common.tools.LogUtil
......@@ -194,6 +196,7 @@ object IMChatUtil {
isFromQingShu: Int,
context: AppCompatActivity
) {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.YUNXIN, "startChatSession 开启聊天会话")
val p2PCustomActionHandlerImpl = P2PCustomActionHandlerImpl(toUid, expertInfo)
p2PCustomActionHandlerImpl.isFromQingShu = isFromQingShu
SessionHelper.startP2PSession(
......@@ -278,7 +281,7 @@ object IMChatUtil {
} else {
upLoadLog("consult/get-expert", resp.code, resp.msg)
if (resp.code == ImConstants.HTTP_CODE_UNLOGIN) {
ImIn.loginByOneKeyLogin(context,true)
ImIn.loginByOneKeyLogin(context, true)
ToastUtil.toastShort(resp.msg)
} else if (resp.code == ImConstants.SILENCED_CODE) { //禁言
showSilencedDialog(context, resp.data.tips, resp.data.url)
......@@ -326,7 +329,7 @@ object IMChatUtil {
} else {
upLoadLog("consult/get-expert", resp.code, resp.msg)
if (resp.code == ImConstants.HTTP_CODE_UNLOGIN) {
ImIn.loginByOneKeyLogin(context,true)
ImIn.loginByOneKeyLogin(context, true)
ToastUtil.toastShort(resp.msg)
} else if (resp.code == ImConstants.SILENCED_CODE) { //禁言
showSilencedDialog(context, resp.data.tips, resp.data.url)
......@@ -367,7 +370,9 @@ object IMChatUtil {
tb.setmMinTitleVisiable(View.GONE)
} else {
//对方是用户,自己是助理
if (actionHandler.userType == USER_TYPE_USER && ModularServiceManager.provide(IUserService::class.java)
if (actionHandler.userType == USER_TYPE_USER && ModularServiceManager.provide(
IUserService::class.java
)
.getUserInfo()?.user_type == USER_TYPE_ASSISTANT
) {
tb.setTitleTextRightIcon(R.drawable.user_info_icon) {
......
......@@ -5,6 +5,8 @@ import android.content.Context;
import com.netease.nimlib.sdk.msg.attachment.MsgAttachment;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.ydl.ydlcommon.utils.log.AliYunLogConfig;
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper;
import com.yidianling.nimbase.api.BaseNimUIKit;
import com.yidianling.nimbase.api.model.session.SessionCustomization;
import com.yidianling.uikit.business.contact.selector.activity.ContactSelectActivity;
......@@ -30,6 +32,7 @@ public class NimUIKit extends BaseNimUIKit {
*/
public static void startYDLChatting(Context context, String id, SessionTypeEnum sessionType, SessionCustomization
customization, IMMessage anchor, IP2PCustomActionHandler handler) {
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN, "startYDLChatting 打开壹点灵定制聊天窗口,开始聊天");
NimUIKitImpl.startChatting(context, id, sessionType, customization, anchor, handler);
}
......
......@@ -4,7 +4,6 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.WindowManager;
import com.alibaba.fastjson.JSON;
......@@ -17,6 +16,8 @@ import com.netease.nimlib.sdk.msg.MsgServiceObserve;
import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum;
import com.netease.nimlib.sdk.msg.model.CustomNotification;
import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.ydl.ydlcommon.utils.log.AliYunLogConfig;
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper;
import com.yidianling.common.tools.ToastUtil;
import com.yidianling.im.R;
import com.yidianling.im.api.bean.IMRegisterObserverCustomNotificationCallBack;
......@@ -82,9 +83,8 @@ public class YDLP2PMessageActivity extends YDLBaseMessageActivity {
/**
* 切换到客服界面
*
*/
public static void startChangeDoctor(Context context, String contactId, SessionCustomization customization, IMMessage anchor, IP2PCustomActionHandler l){
public static void startChangeDoctor(Context context, String contactId, SessionCustomization customization, IMMessage anchor, IP2PCustomActionHandler l) {
Intent intent = new Intent();
intent.putExtra(Extras.EXTRA_ACCOUNT, contactId);
intent.putExtra(Extras.EXTRA_CUSTOMIZATION, customization);
......@@ -106,7 +106,7 @@ public class YDLP2PMessageActivity extends YDLBaseMessageActivity {
// 如果isChangeDoctor为true表示切换客服
if (isChangeDoctor) {
messageFragment = (YDLMessageFragment) switchContent(switchServiceFragment(intent));
isChangeDoctor=false;
isChangeDoctor = false;
}
}
......@@ -137,7 +137,7 @@ public class YDLP2PMessageActivity extends YDLBaseMessageActivity {
isChangeDoctor = true;
String serviceUid = String.valueOf(serviceBean.getData().getToUid());
tb.setTitle(serviceBean.getData().getName());
YDLP2PMessageActivity.startChangeDoctor(YDLP2PMessageActivity.this, serviceUid, SessionHelper.getP2pCustomization(-1), null,new P2PCustomActionHandlerImpl(serviceUid, serviceBean.getData().getName(), serviceUid));
YDLP2PMessageActivity.startChangeDoctor(YDLP2PMessageActivity.this, serviceUid, SessionHelper.getP2pCustomization(-1), null, new P2PCustomActionHandlerImpl(serviceUid, serviceBean.getData().getName(), serviceUid));
}
}
});
......@@ -145,13 +145,13 @@ public class YDLP2PMessageActivity extends YDLBaseMessageActivity {
@Override
protected void onDestroy() {
if (ActionHandlerStorage.getL(sessionId) != null)
if (ActionHandlerStorage.getL(sessionId) != null) {
ActionHandlerStorage.getL(sessionId).clear(sessionId);
}
registerObservers(false);
super.onDestroy();
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN,"退出聊天页面");
}
@Override
......
......@@ -49,6 +49,8 @@ import com.ydl.ydlcommon.utils.LogUtil;
import com.ydl.ydlcommon.utils.SharedPreferencesEditor;
import com.ydl.ydlcommon.utils.YdlBuryPointUtil;
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils;
import com.ydl.ydlcommon.utils.log.AliYunLogConfig;
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper;
import com.ydl.ydlcommon.utils.log.LogHelper;
import com.ydl.ydlcommon.view.CircleImageView;
import com.ydl.ydlcommon.view.dialog.CommonDialog;
......@@ -754,15 +756,21 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
// 帮助人数
help_num = String.valueOf(ActionHandlerStorage.getL(sessionId).getInfo().doctorBriefInfoOrderNum);
if (TextUtils.isEmpty(help_num)) help_num = "0";
if (TextUtils.isEmpty(help_num)) {
help_num = "0";
}
help_num_tv.setText(help_num);
// 服务时长
server_num = String.valueOf((int) Math.ceil((double) ActionHandlerStorage.getL(sessionId).getInfo().doctorBriefInfoHelpLong / 60.0));
if (TextUtils.isEmpty(server_num)) server_num = "0";
if (TextUtils.isEmpty(server_num)) {
server_num = "0";
}
server_num_tv.setText(server_num);
// 好评率
good_num = ActionHandlerStorage.getL(sessionId).getInfo().doctorBriefInfoFeedbackRateForShow;
if (TextUtils.isEmpty(good_num)) good_num = "0.0";
if (TextUtils.isEmpty(good_num)) {
good_num = "0.0";
}
good_num_tv.setText(good_num);
try {
......@@ -1176,13 +1184,14 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
});
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN, "sendMessage 该消息发送成功 sessionId:" + sessionId);
} else {
// 替换成tip
message = MessageBuilder.createTipMessage(message.getSessionId(), message.getSessionType());
message.setContent("该消息无法发送");
message.setStatus(MsgStatusEnum.success);
NIMClient.getService(MsgService.class).saveMessageToLocal(message, false);
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN, "sendMessage 该消息无法发送 sessionId:" + sessionId);
}
messageListPanel.onMsgSend(message);
......@@ -1210,9 +1219,12 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
LogHelper.Companion.getInstance().writeLogSync("发送消息失败:已被对方拉黑");
ToastUtil.toastLong(getActivity(), "您已被对方拉黑!");
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN, "sendFailWithBlackList 发送消息失败:已被对方拉黑 sessionId:" + sessionId);
} else if (code == 404) {
LogHelper.Companion.getInstance().writeLogSync("发送消息失败:对象不见了");
ToastUtil.toastLong(getActivity(), "对象不见了!");
AliYunRichLogsHelper.Companion.getInstance().sendRichLog(AliYunLogConfig.YUNXIN, "sendFailWithBlackList 发送消息失败:对象不见了 404 sessionId:" + sessionId);
} else {
//上传至后台
if (!TextUtils.isEmpty(sessionId) && ActionHandlerStorage.getL(sessionId) != null) {
......
......@@ -6,6 +6,8 @@ import com.tencent.bugly.crashreport.CrashReport
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.utils.ActivityManager
import com.ydl.ydlcommon.utils.BuryPointUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.yidianling.common.tools.LogUtil
import com.yidianling.im.api.bean.IMLoginInfo
import com.yidianling.im.api.bean.IMRequestCallback
......@@ -57,16 +59,22 @@ object LoginUtils {
val info = IMLoginInfo(userInfo?.uid ?: "", userInfo?.hxpwd ?: "")
val callback = object : IMRequestCallback<IMLoginInfo> {
override fun onSuccess(t: IMLoginInfo?) {
LogUtil.e("IM登录成功:"+"info.account:"+info.account+"info.passWord"+info.passWord)
LogUtil.e("IM登录成功:" + "info.account:" + info.account + "info.passWord" + info.passWord)
UserIn.imSetAccount(userInfo?.uid ?: "")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.LOGIN, "IM登录成功")
}
override fun onFailed(i: Int) {
LogUtil.e("IM登录失败:$i"+"info.account:"+info.account+"info.passWord"+info.passWord)
LogUtil.e("IM登录失败:$i" + "info.account:" + info.account + "info.passWord" + info.passWord)
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.LOGIN, "IM登录失败")
}
override fun onException(throwable: Throwable?) {
LogUtil.e("IM登录onException:${throwable?.message}")
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "IM登录onException:${throwable?.message}")
}
}
......@@ -90,6 +98,7 @@ object LoginUtils {
@JvmStatic
fun logoutClearLocal() {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.LOGIN, "退出登录")
UserIn.imLogout()
UserIn.closePlayer()
UserIn.clearImData()
......@@ -105,7 +114,7 @@ object LoginUtils {
ActivityManager.finishAll()
if (StatusUtils.isFirstLogin && StatusUtils.isFirstStartApp) {
activity.startActivity(Intent(activity, CollectSexAndBirthActivity::class.java))
}else {
} else {
UserIn.mainIntent(activity)
}
} else {//需要判断stack中是否有MainActivity
......
......@@ -14,6 +14,8 @@ import com.ydl.ydlcommon.router.YdlCommonOut
import com.ydl.ydlcommon.utils.ActivityManager
import com.ydl.ydlcommon.utils.UserInfoCache
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.yidianling.im.api.bean.IMLoginInfo
import com.yidianling.im.api.bean.IMRequestCallback
......@@ -136,7 +138,10 @@ class SmsLoginActivity : BaseActivity() {
return
}
ActionCountUtils.count(UserBIConstants.POSITION_LOGIN_CLICK, UserBIConstants.ACTION_TYPE_CODE_LOGIN)
ActionCountUtils.count(
UserBIConstants.POSITION_LOGIN_CLICK,
UserBIConstants.ACTION_TYPE_CODE_LOGIN
)
Log.e("短信验证码:", code + " - " + phoneNum + " - " + et_code.text.toString());
loginSub = userHttp.login(LoginParam(code, phoneNum, null, 2, et_code.text.toString()))
......@@ -152,8 +157,12 @@ class SmsLoginActivity : BaseActivity() {
if (it.firstLogin == 1) {
StatusUtils.isFirstLogin = true
baiduActionBury()
}else {
ActionCountUtils.countUid(UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,it.uid!!,UserBIConstants.ACTION_TYPE_CODE_LOGIN)
} else {
ActionCountUtils.countUid(
UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,
it.uid!!,
UserBIConstants.ACTION_TYPE_CODE_LOGIN
)
}
// ActivityManager.finishActivity(LoginActivity::class.java)
// if (ActivityManager.getActivitySize() <= 1) {
......@@ -161,10 +170,15 @@ class SmsLoginActivity : BaseActivity() {
// }
// finish()
LoginUtils.loginSuccessOperate(this)
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "短信验证码 成功")
}, object : ThrowableConsumer() {
override fun accept(msg: String) {
dismissProgressDialog()
YdlCommonOut.showToast(msg)
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "短信验证码 失败 msg:$msg ")
}
})
}
......@@ -224,9 +238,11 @@ class SmsLoginActivity : BaseActivity() {
try {
if (userInfo != null) {
UserIn.imSetAccount(userInfo.uid.toString())
UserInfoCache.getInstance().saveYDLUser(userInfo.uid.toString(),
UserInfoCache.getInstance().saveYDLUser(
userInfo.uid.toString(),
userInfo.nick_name,
userInfo.head)
userInfo.head
)
}
} catch (e: Exception) {
e.printStackTrace()
......
......@@ -7,7 +7,6 @@ import android.content.Context
import android.content.pm.ActivityInfo
import android.graphics.Color
import android.text.TextUtils
import android.util.Log
import android.util.TypedValue
import android.view.Gravity
import android.view.View
......@@ -17,17 +16,19 @@ import android.widget.TextView
import com.fm.openinstall.OpenInstall
import com.fm.openinstall.listener.AppInstallAdapter
import com.fm.openinstall.model.AppData
import com.fm.openinstall.model.Error
import com.meituan.android.walle.WalleChannelReader
import com.mobile.auth.gatewayauth.*
import com.mobile.auth.gatewayauth.model.TokenRet
import com.tbruyelle.rxpermissions2.RxPermissions
import com.ydl.webview.NewH5Activity
import com.ydl.ydlcommon.base.BaseActivity
import com.ydl.ydlcommon.base.BaseApp
import com.ydl.ydlcommon.utils.JPushUtils
import com.ydl.ydlcommon.utils.LogUtil
import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.log.LogHelper
import com.yidianling.common.tools.RxAppTool
import com.yidianling.common.tools.RxDeviceTool
......@@ -430,6 +431,8 @@ object OneKeyLoginHelp {
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
if (it.code == 200) {
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "一键登录成功")
ToastUtil.toastShort("登录成功")
saveUserData(it.data)
if (it.data.firstLogin == 1) {//第一次登录:是注册
......@@ -463,10 +466,18 @@ object OneKeyLoginHelp {
LoginUtils.loginSuccessOperate(mActivity)
}
} else {
AliYunRichLogsHelper.getInstance().sendRichLog(
AliYunLogConfig.LOGIN,
"一键登录失败 msg:${it.msg}"
)
ToastUtil.toastShort(it.msg)
mPhoneNumberAuthHelper?.hideLoginLoading()
}
}, {
AliYunRichLogsHelper.getInstance().sendRichLog(
AliYunLogConfig.LOGIN,
"一键登录Error msg:${it.message}"
)
ToastUtil.toastShort(it.message)
mPhoneNumberAuthHelper?.hideLoginLoading()
})
......@@ -580,6 +591,7 @@ object OneKeyLoginHelp {
* */
@SuppressLint("CheckResult")
fun startLogin(context: Activity, isOpenDialog: Boolean) {
try {
RxPermissions(context)
.request(Manifest.permission.READ_PHONE_STATE)
.subscribe { hasPermission: Boolean? ->
......@@ -598,5 +610,10 @@ object OneKeyLoginHelp {
}
}
}
} catch (e: Exception) {
RegisterAndLoginActivity.start(context)
e.printStackTrace()
}
}
}
......@@ -612,6 +612,7 @@ class RegisterAndLoginActivity : BaseMvpActivity<ILoginContract.View, ILoginCont
runOnUiThread {
showLoading(false)
}
if (chcekPhoneResponeBean != null && chcekPhoneResponeBean?.hasPwd == 1) {//用户码有设置密码:跳转到密登录
InputPassWordActivity.start(
this,
......
......@@ -7,6 +7,8 @@ import com.ydl.ydlcommon.router.YdlCommonOut
import com.ydl.ydlcommon.utils.StringUtils
import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.log.LogHelper
import com.yidianling.common.tools.ToastUtil
import com.yidianling.user.LoginUtils
......@@ -28,7 +30,9 @@ import java.math.BigDecimal
* @Company 壹点灵
* @date 2018/12/2
*/
class InputPassWordPresenterImpl : BasePresenter<IInputPassWordContract.View, IInputPassWordContract.Model>(), IInputPassWordContract.Presenter {
class InputPassWordPresenterImpl :
BasePresenter<IInputPassWordContract.View, IInputPassWordContract.Model>(),
IInputPassWordContract.Presenter {
override fun createModel(): IInputPassWordContract.Model {
return InputPassWordModelImpl()
......@@ -37,11 +41,20 @@ class InputPassWordPresenterImpl : BasePresenter<IInputPassWordContract.View, II
/**
* 重新设置密码
*/
override fun resetPwd(newPassword: String, phone: String, msgCode: String, phoneCountryCode: String) {
override fun resetPwd(
newPassword: String,
phone: String,
msgCode: String,
phoneCountryCode: String
) {
ActionCountUtils.count(UserBIConstants.POSITION_LOGIN_CLICK, UserBIConstants.ACTION_TYPE_RESET_PWD)
ActionCountUtils.count(
UserBIConstants.POSITION_LOGIN_CLICK,
UserBIConstants.ACTION_TYPE_RESET_PWD
)
var param = PhoneResetPwdParam(StringUtils.md5(newPassword), phoneCountryCode, msgCode, phone)
var param =
PhoneResetPwdParam(StringUtils.md5(newPassword), phoneCountryCode, msgCode, phone)
mModel.resetPwd(param)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
......@@ -56,7 +69,11 @@ class InputPassWordPresenterImpl : BasePresenter<IInputPassWordContract.View, II
} else {
ToastUtil.toastShort("修改密码成功")
saveUserData(it.data)
ActionCountUtils.countUid(UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,it.data.uid!!,UserBIConstants.ACTION_TYPE_RESET_PWD)
ActionCountUtils.countUid(
UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,
it.data.uid!!,
UserBIConstants.ACTION_TYPE_RESET_PWD
)
if (it.data.firstLogin == 1) {//第一次登录:是注册
StatusUtils.isFirstLogin = true
// 重设密码登录已经不可能是首次登录,所以不进行百度埋点
......@@ -76,8 +93,15 @@ class InputPassWordPresenterImpl : BasePresenter<IInputPassWordContract.View, II
* 手机号密码登录
*/
@SuppressLint("CheckResult")
override fun userLoginByPassword(inputPassword: String, phone: String, phoneCountryCode: String) {
ActionCountUtils.count( UserBIConstants.POSITION_LOGIN_CLICK,UserBIConstants.ACTION_TYPE_PWD_LOGIN)
override fun userLoginByPassword(
inputPassword: String,
phone: String,
phoneCountryCode: String
) {
ActionCountUtils.count(
UserBIConstants.POSITION_LOGIN_CLICK,
UserBIConstants.ACTION_TYPE_PWD_LOGIN
)
var param = PhoneLoginPwdParam(StringUtils.md5(inputPassword), phoneCountryCode, phone)
mModel.userLoginByPassword(param)
......@@ -87,6 +111,8 @@ class InputPassWordPresenterImpl : BasePresenter<IInputPassWordContract.View, II
.doAfterTerminate { mView.showLoading(false) }
.subscribe({
if (it?.data == null) {
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "手机号密码 登录失败 msg: ${it.msg}")
ToastUtil.toastShort(it.msg)
mView.startAnim()
} else {
......@@ -98,13 +124,22 @@ class InputPassWordPresenterImpl : BasePresenter<IInputPassWordContract.View, II
StatusUtils.isFirstLogin = true
mView.baiduActionBury()
} else {
ActionCountUtils.countUid(UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,it.data.uid!!,UserBIConstants.ACTION_TYPE_PWD_LOGIN)
ActionCountUtils.countUid(
UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,
it.data.uid!!,
UserBIConstants.ACTION_TYPE_PWD_LOGIN
)
}
mView.closeActivity()
}
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.LOGIN, "手机号密码 登录成功")
}
}, {
YdlCommonOut.showToast(it.message!!)
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "手机号密码 Error msg: ${it.message}")
})
}
......
......@@ -9,6 +9,8 @@ import com.ydl.ydlcommon.mvp.base.BasePresenter
import com.ydl.ydlcommon.router.YdlCommonOut
import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.log.LogHelper
import com.yidianling.common.tools.ToastUtil
import com.yidianling.user.LoginUtils
......@@ -33,7 +35,8 @@ import java.math.BigDecimal
* @Company 壹点灵
* @date 2018/11/29
*/
class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContract.View, ILoginContract.Model>(), ILoginContract.Presenter {
class LoginPresenterImpl(view: ILoginContract.View) :
BasePresenter<ILoginContract.View, ILoginContract.Model>(), ILoginContract.Presenter {
@SuppressLint("CheckResult")
override fun bindPhone(param: BindPhoneJavaParam) {
mModel.bindPhone(param)
......@@ -60,7 +63,10 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
@SuppressLint("CheckResult")
override fun autoLogin(bean: PhoneLoginAutoParam) {
ActionCountUtils.count( UserBIConstants.POSITION_LOGIN_CLICK,UserBIConstants.ACTION_TYPE_DIRECT_LOGIN)
ActionCountUtils.count(
UserBIConstants.POSITION_LOGIN_CLICK,
UserBIConstants.ACTION_TYPE_DIRECT_LOGIN
)
mModel.autoLogin(bean)
.subscribeOn(Schedulers.io())
......@@ -73,18 +79,33 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
saveUserData(it.data)
if (it.data.firstLogin == 1) {//第一次登录:是注册
StatusUtils.isFirstLogin = true
mView.baiduActionBury(it.data.uid, UserBIConstants.POSITION_ALIYUN_REGISTER_CLICK)
mView.baiduActionBury(
it.data.uid,
UserBIConstants.POSITION_ALIYUN_REGISTER_CLICK
)
} else {
ActionCountUtils.countUid(UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,it.data.uid!!,UserBIConstants.ACTION_TYPE_DIRECT_LOGIN)
ActionCountUtils.countUid(
UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,
it.data.uid!!,
UserBIConstants.ACTION_TYPE_DIRECT_LOGIN
)
}
mView.autoLoginSuccess()
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "通过一键认证服务登录成功")
} else {
// ToastUtil.toastShort(it.msg)
mView.aliAuthFailed()
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "通过一键认证服务登陆 失败 msg: ${it.msg}")
}
}, {
//走验证码、密码登录
mView.aliAuthFailed()
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, "通过一键认证服务登陆 Error msg: ${it.message}")
})
}
......@@ -161,7 +182,7 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
}
}, {
mView.showLoading(false)
if (null != it && !TextUtils.isEmpty(it.message)){
if (null != it && !TextUtils.isEmpty(it.message)) {
YdlCommonOut.showToast(it.message!!)
}
})
......@@ -173,7 +194,8 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
@SuppressLint("CheckResult")
override fun loginByThird(activity: Activity, media: SHARE_MEDIA) {
val sign1 = if (media == SHARE_MEDIA.QQ) UserBIConstants.ACTION_TYPE_QQ_THIRD_LOGIN else UserBIConstants.ACTION_TYPE_WX_THIRD_LOGIN
val sign1 =
if (media == SHARE_MEDIA.QQ) UserBIConstants.ACTION_TYPE_QQ_THIRD_LOGIN else UserBIConstants.ACTION_TYPE_WX_THIRD_LOGIN
ActionCountUtils.count(UserBIConstants.POSITION_LOGIN_CLICK, sign1)
UserHttpImpl.getInstance()
......@@ -183,7 +205,9 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
mView.dismissProgressView()
}
.observeOn(Schedulers.io())
.flatMap { thirdLoginParam -> UserHttpImpl.getInstance().thirdPartJavaLogin(thirdLoginParam) }
.flatMap { thirdLoginParam ->
UserHttpImpl.getInstance().thirdPartJavaLogin(thirdLoginParam)
}
.doOnNext { LoginUtils.saveData(it.data) }
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
......@@ -195,7 +219,10 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
if (it.data.firstLogin == 1) {//第一次登录:是注册
StatusUtils.isFirstLogin = true
if (media == SHARE_MEDIA.QQ) {
mView.baiduActionBury(it.data.uid,UserBIConstants.POSITION_QQ_REGISTER_CLICK)
mView.baiduActionBury(
it.data.uid,
UserBIConstants.POSITION_QQ_REGISTER_CLICK
)
ActionCountUtils.baiduCount(
it.data.uid,
UserBIConstants.APP_REGISTER_PAGE,
......@@ -205,8 +232,11 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
25,
OneKeyLoginHelp.openInstallKey
)
}else{
mView.baiduActionBury(it.data.uid,UserBIConstants.POSITION_WX_REGISTER_CLICK)
} else {
mView.baiduActionBury(
it.data.uid,
UserBIConstants.POSITION_WX_REGISTER_CLICK
)
ActionCountUtils.baiduCount(
it.data.uid,
UserBIConstants.APP_REGISTER_PAGE,
......@@ -219,16 +249,29 @@ class LoginPresenterImpl(view: ILoginContract.View) : BasePresenter<ILoginContra
}
// 用户注册成功后调用
OpenInstall.reportRegister()
}else{
ActionCountUtils.countUid(UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK, it.data.uid!!,sign1)
} else {
ActionCountUtils.countUid(
UserBIConstants.POSITION_LOGIN_SUCCESS_CLICK,
it.data.uid!!,
sign1
)
}
LoginUtils.onLogin(it.data)
mView.thirdLoginSuccess(it.data.userInfo!!,if (media == SHARE_MEDIA.QQ) "qq" else "weixin")
mView.thirdLoginSuccess(
it.data.userInfo!!,
if (media == SHARE_MEDIA.QQ) "qq" else "weixin"
)
LogHelper.getInstance().writeLogSync(media.getName() + "登录成功")
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, media.getName() + "登录成功")
}, {
mView.dismissProgressView()
YdlCommonOut.showToast(it.message!!)
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.LOGIN, media.getName() + "登录失败")
})
}
......
......@@ -41,6 +41,7 @@ dependencies {
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
api rootProject.ext.dependencies["gson"]
api rootProject.ext.dependencies["aliyun"]
api rootProject.ext.dependencies["rxjava2"]
api(rootProject.ext.dependencies["rxandroid2"]) {
exclude module: 'rxjava'
......
package com.ydl.ydlnet.builder.api
import com.google.gson.Gson
import com.ydl.ydlnet.YDLHttpUtils.Companion.obtainApi
import com.ydl.ydlnet.builder.bean.ApiErrorActionBean
import com.ydl.ydlnet.builder.bean.BaseAPIResponse
import io.reactivex.Observable
import okhttp3.MediaType
import okhttp3.RequestBody
/**
* Created by Ykai on 2021/3/15.
*/
class ApiUtil{
companion object {
/**
* 行为数据埋点统计
*/
fun actionDataCount(actionDataParams: ApiErrorActionBean): Observable<BaseAPIResponse<String>> {
val body = RequestBody.create(
MediaType.parse("application/json; charset=utf-8"),
Gson().toJson(actionDataParams)
)
return obtainApi(NetApi::class.java).actionDataCount(body)
}
}
}
\ No newline at end of file
package com.ydl.ydlnet.builder.api
import com.ydl.ydlnet.builder.bean.BaseAPIResponse
import io.reactivex.Observable
import okhttp3.RequestBody
import retrofit2.http.Body
import retrofit2.http.Headers
import retrofit2.http.POST
/**
* Created by Ykai on 2021/3/15.
*/
interface NetApi {
/**
* 行为动作埋点统计
*/
@Headers("Domain-Name:JAVA_BASE_URL")
@POST("data/bigdata/maidian/writeMaiDianData")
fun actionDataCount(@Body body: RequestBody): Observable<BaseAPIResponse<String>>
}
\ No newline at end of file
......@@ -2,7 +2,6 @@ package com.ydl.ydlnet.builder.interceptor.log;
import android.support.annotation.Nullable;
import com.ydl.ydlnet.utils.ApiErrorCountUtils;
import com.ydl.ydlnet.utils.CharacterHandler;
import com.ydl.ydlnet.utils.NetLogUtils;
import com.ydl.ydlnet.utils.UrlEncoderUtils;
......@@ -23,13 +22,14 @@ import okhttp3.Response;
import okhttp3.ResponseBody;
import okio.Buffer;
import okio.BufferedSource;
/**
* Created by haorui on 2019-09-01 .
* Des: 解析框架中的网络请求和响应结果并打印
*/
public class RequestLogInterceptor implements Interceptor {
private DefaultFormatPrinter mPrinter = new DefaultFormatPrinter();
private boolean mIsDebug ;
private boolean mIsDebug;
private RequestHandler mRequestHandler;
public RequestLogInterceptor(boolean isDebug, RequestHandler requestHandler) {
......@@ -48,10 +48,10 @@ public class RequestLogInterceptor implements Interceptor {
mPrinter.printFileRequest(request);
}
if (mRequestHandler != null)
if (mRequestHandler != null) {
request = mRequestHandler.onHttpRequestBefore(chain, request);
long t1 =System.nanoTime() ;
}
long t1 = System.nanoTime();
Response originalResponse;
try {
originalResponse = chain.proceed(request);
......@@ -59,7 +59,7 @@ public class RequestLogInterceptor implements Interceptor {
NetLogUtils.debugInfo("Http Error: " + e);
throw e;
}
long t2 = System.nanoTime() ;
long t2 = System.nanoTime();
ResponseBody responseBody = originalResponse.body();
......@@ -67,12 +67,12 @@ public class RequestLogInterceptor implements Interceptor {
String bodyString = null;
if (responseBody != null && isParseable(responseBody.contentType())) {
bodyString = printResult(request, originalResponse);
if (mRequestHandler != null){
if (mRequestHandler != null) {
mRequestHandler.onHttpResultResponse(bodyString, chain, originalResponse);
}
}
if(mIsDebug) {
if (mIsDebug) {
final List<String> segmentList = request.url().encodedPathSegments();
final String header = originalResponse.headers().toString();
final int code = originalResponse.code();
......@@ -87,21 +87,6 @@ public class RequestLogInterceptor implements Interceptor {
mPrinter.printFileResponse(TimeUnit.NANOSECONDS.toMillis(t2 - t1),
isSuccessful, code, header, segmentList, message, url);
}
}else {
int code = originalResponse.code();
// 接口返回错误的情况下,埋点告诉服务器原因
if (code!=200){
String params = "";
Request rq = originalResponse.request();
if (rq.method().equals("GET")){
params = rq.url().query();
}else if (rq.method().equals("POST")){
params = parseParams(rq);
}
String message = originalResponse.message();
ApiErrorCountUtils.Companion.baiDuCount("pardId-ydl_user_error_business","error_log",params,message);
}
}
return originalResponse;
}
......
package com.ydl.ydlnet.utils
import android.annotation.SuppressLint
import android.util.Log
import com.ydl.ydlnet.builder.api.ApiUtil
import com.ydl.ydlnet.builder.bean.ApiErrorActionBean
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
/**
* Created by Ykai on 2021/3/15.
*/
class ApiErrorCountUtils {
companion object {
private const val TAG: String = "ActionCountUtils"
/**
* 接口返回错误埋点调用该方法
* @param partId pardId-ydl_user_error_business
* @param position error_log
* @param sign1 访问接口对应的参数
* @param sign2 接口返回的错误信息
*/
fun baiDuCount(
partId: String,
position: String,
sign1: String,
sign2: String
) {
val actionDataParams = ApiErrorActionBean.Builder()
actionDataParams.partId = partId
actionDataParams.position = position
actionDataParams.sign1 = sign1
actionDataParams.sign2 = sign2
//请求
request(actionDataParams.build())
}
/**
* 传入ActionDataParams参数,访问接口
*/
@SuppressLint("CheckResult")
private fun request(actionDataBean: ApiErrorActionBean) {
try {
ApiUtil.actionDataCount(actionDataBean)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({
Log.i(TAG, it.data)
}) {
Log.i(TAG, it.toString())
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
}
\ No newline at end of file
......@@ -18,6 +18,8 @@ import com.ydl.ydlcommon.data.PlatformDataManager
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.log.LogHelper
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.ToastUtil
......@@ -65,6 +67,7 @@ class PayActivity : BaseActivity() {
*/
private const val PARAMS = "params"
private const val PARAMS_RED = "params_redPacket"
/**
* 支付类型
* 1.微信支付 2.支付宝支付
......@@ -91,29 +94,41 @@ class PayActivity : BaseActivity() {
//订单信息数据
private var payParams: PayParams? = null
//红包列表数据+支付金额
private var redPacketPayBean: RedPacketPayBean? = null
//入口
private var inlet = PayParams.INLET_NORMAL
//红包列表弹窗
private var redPacketPopWindow: RedPacketPopWindow? = null
//加载中弹窗
private var dialog: AlertDialog? = null
private var dialogContentView: View? = null
//红包id 默认为0
private var redPacketId: String? = "0"
//使用红包金额
private var redPacketMoney: Float = 0f
//使用红包文案
private var redPacketMoneyContent: String = ""
//账户余额
private var balanceMoney: Float = 0f
//支付金额
private var payMoney: Float = 0F
//可使用余额
private var canBalanceMoney = 0F
//支付类型
private var payType = PAY_ALI
//测评下单数据bean
private var testAddOrderBean: TestAddOrderBean? = null
......@@ -538,6 +553,7 @@ class PayActivity : BaseActivity() {
* 点击支付
*/
private fun onClickPay() {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "点击支付")
when (inlet) {
INLET_NORMAL -> {
//正常入口
......@@ -603,6 +619,7 @@ class PayActivity : BaseActivity() {
if (null == payParams) {
return
}
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "进入充值, 0微信充值,其他支付宝充值:$select")
HttpUtils.recharge(RechargeParam(payParams!!.needPay.toInt().toString()))
.subscribeOn(Schedulers.io())
......@@ -622,6 +639,8 @@ class PayActivity : BaseActivity() {
.doOnSubscribe { showProgressDialog("") }
.doAfterTerminate { dismissProgressDialog() }
.subscribe(Consumer {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付成功")
LogHelper.getInstance().writeLogSync("支付成功")
ToastUtil.toastShort("支付成功")
var intent = Intent()
......@@ -633,6 +652,8 @@ class PayActivity : BaseActivity() {
override fun accept(msg: String) {
ToastUtil.toastShort(msg)
LogHelper.getInstance().writeLogSync("支付失败$msg")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付失败$msg")
}
})
......@@ -644,13 +665,19 @@ class PayActivity : BaseActivity() {
when (inlet) {
INLET_NORMAL -> {
//正常入口
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "余额支付 正常入口")
balancePayById(payParams!!.payId)
}
INLET_TEST -> {
//测评入口
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "余额支付 测评入口")
balancePayById(testAddOrderBean!!.payId!!)
}
else -> {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "余额支付")
balancePayById(payParams!!.payId)
}
}
......@@ -673,6 +700,7 @@ class PayActivity : BaseActivity() {
.doAfterTerminate { dismissProgressDialog() }
.subscribe(Consumer {
LogHelper.getInstance().writeLogSync("支付成功")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "余额支付:支付成功")
ToastUtil.toastShort("支付成功")
setResult(Activity.RESULT_OK)
finish()
......@@ -680,6 +708,8 @@ class PayActivity : BaseActivity() {
override fun accept(msg: String) {
ToastUtil.toastShort(msg)
LogHelper.getInstance().writeLogSync("支付失败:$msg")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "余额支付:支付失败:$msg")
}
})
}
......@@ -689,6 +719,7 @@ class PayActivity : BaseActivity() {
*/
@SuppressLint("CheckResult")
private fun appPay() {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "微信支付 0 其他支付宝支付 select:${select}")
Observable.just(select)
.subscribeOn(Schedulers.io())
......@@ -706,6 +737,7 @@ class PayActivity : BaseActivity() {
.doOnSubscribe { showProgressDialog("") }
.doAfterTerminate { dismissProgressDialog() }
.subscribe(Consumer {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付成功")
LogHelper.getInstance().writeLogSync("支付成功")
setResult(Activity.RESULT_OK)
finish()
......@@ -713,6 +745,8 @@ class PayActivity : BaseActivity() {
override fun accept(msg: String) {
ToastUtil.toastShort(msg)
LogHelper.getInstance().writeLogSync("支付失败:$msg")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付失败:$msg")
}
})
}
......@@ -724,18 +758,21 @@ class PayActivity : BaseActivity() {
return when (inlet) {
INLET_NORMAL -> {
//正常入口
wxPayById(payParams!!.payId,payParams?.merchantType.toString())
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "微信支付:正常入口")
wxPayById(payParams!!.payId, payParams?.merchantType.toString())
}
INLET_TEST -> {
//测评入口
if (null != testAddOrderBean && !TextUtils.isEmpty(testAddOrderBean!!.payId!!)) {
wxPayById(testAddOrderBean!!.payId!!,payParams?.merchantType.toString())
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "微信支付:测评入口")
wxPayById(testAddOrderBean!!.payId!!, payParams?.merchantType.toString())
} else {
null
}
}
else -> {
wxPayById(payParams!!.payId,payParams?.merchantType.toString())
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "微信支付")
wxPayById(payParams!!.payId, payParams?.merchantType.toString())
}
}
}
......@@ -744,8 +781,8 @@ class PayActivity : BaseActivity() {
* 微信支付
* @param payId 支付id
*/
private fun wxPayById(payId: String,merchantType:String): Observable<PayStatus> {
val bean = WxPayParam(payId, 1,merchantType)
private fun wxPayById(payId: String, merchantType: String): Observable<PayStatus> {
val bean = WxPayParam(payId, 1, merchantType)
return HttpUtils.wxPay(bean)
.compose(RxUtils.resultData())
.observeOn(AndroidSchedulers.mainThread())
......@@ -760,17 +797,23 @@ class PayActivity : BaseActivity() {
return when (inlet) {
INLET_NORMAL -> {
//正常入口
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付宝支付:正常入口")
aliPayById(payParams!!.payId)
}
INLET_TEST -> {
//测评入口
if (null != testAddOrderBean && !TextUtils.isEmpty(testAddOrderBean!!.payId!!)) {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付宝支付:测评入口")
aliPayById(testAddOrderBean!!.payId!!)
} else {
null
}
}
else -> {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付宝支付")
aliPayById(payParams!!.payId)
}
}
......@@ -811,7 +854,8 @@ class PayActivity : BaseActivity() {
.create()
}
if (dialogContentView == null) {
dialogContentView = LayoutInflater.from(this).inflate(R.layout.pay_fragment_loading_dialog, null)
dialogContentView =
LayoutInflater.from(this).inflate(R.layout.pay_fragment_loading_dialog, null)
dialogContentView?.tvMsg?.visibility = View.GONE
}
dialog?.show()
......
......@@ -3,14 +3,16 @@ package com.yidianling.ydl_pay.pay
import android.app.Activity
import android.content.Context
import com.alipay.sdk.app.PayTask
import com.yidianling.ydl_pay.pay.bean.PayStatus
import com.tencent.mm.opensdk.constants.Build
import com.tencent.mm.opensdk.modelpay.PayReq
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.yidianling.ydl_pay.pay.bean.WXPayEvent
import com.ydl.ydlcommon.data.http.CustomThrowable
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.yidianling.ydl_pay.common.bean.CommonWXPayBean
import com.yidianling.ydl_pay.common.bean.PayResult
import com.yidianling.ydl_pay.pay.bean.PayStatus
import com.yidianling.ydl_pay.pay.bean.WXPayEvent
import de.greenrobot.event.EventBus
import io.reactivex.Emitter
import io.reactivex.Observable
......@@ -59,8 +61,18 @@ object RxPay {
val result = alipay.payV2(aliSign, true)
val payResult = PayResult(result)
when {
"9000" == payResult.resultStatus -> it.onNext(PayStatus(true))
else -> it.onError(CustomThrowable(payResult.memo))
"9000" == payResult.resultStatus -> {
it.onNext(PayStatus(true))
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY, "支付宝支付成功")
}
else -> {
it.onError(CustomThrowable(payResult.memo))
AliYunRichLogsHelper.getInstance()
.sendRichLog(AliYunLogConfig.PAY, "支付宝支付失败 memo:${payResult.memo}")
}
}
it.onComplete()
}
......
......@@ -9,6 +9,8 @@ import android.support.v7.app.AlertDialog
import android.view.*
import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.utils.StringUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlcommon.utils.log.LogHelper
import com.ydl.ydlcommon.utils.remind.ToastHelper
import com.yidianling.ydl_pay.R
......@@ -160,6 +162,7 @@ class PayDialog : Dialog {
if (data?.payId == null) {
ToastHelper.show("支付id有误,请返回重试")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY,"支付id有误,请返回重试")
return
}
......@@ -187,9 +190,12 @@ class PayDialog : Dialog {
this.callBack?.onSuccess()
}
LogHelper.getInstance().writeLogSync("支付成功")
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY,"支付成功")
this.callBack?.onSuccess()
dismiss()
}, {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY,"支付失败:${it.message}")
ToastHelper.show(it.message ?: "支付失败")
LogHelper.getInstance().writeLogSync("支付失败:${it.message}")
})
......@@ -200,6 +206,7 @@ class PayDialog : Dialog {
* @param payId 支付id
*/
private fun wxPayById(payId: String,merchantType:String): Observable<PayStatus> {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY,"微信支付")
val bean = WxPayParam(payId, 1,merchantType)
return HttpUtils.wxPay(bean)
.compose(RxUtils.resultData())
......@@ -212,6 +219,8 @@ class PayDialog : Dialog {
* @param payId 支付Id
*/
private fun aliPayById(payId: String): Observable<PayStatus> {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.PAY,"支付宝支付")
var bean = AliPayParam(payId, 1)
return HttpUtils.getAliPayOrderId(bean)
.compose(RxUtils.resultData())
......
......@@ -72,10 +72,11 @@ dependencies {
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
//====================YDL Repository====================
// api rootProject.ext.dependencies["ydl-pushagent"]
// api rootProject.ext.dependencies["ydl-hnet"]
api (rootProject.ext.dependencies["ydl-notracepoint"]){
api(rootProject.ext.dependencies["ydl-notracepoint"]) {
transitive = true
exclude group: 'com.google.code.gson', module: 'gson'
exclude group: 'com.squareup.okhttp3', module: 'okhttp3'
......
......@@ -16,9 +16,13 @@ import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.data.http.api.ApiRequestUtil
import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.utils.YDLCacheUtils
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import com.ydl.ydlcommon.utils.log.AliYunLogConfig
import com.ydl.ydlcommon.utils.log.AliYunRichLogsHelper
import com.ydl.ydlnet.builder.config.OkHttpConfig
import com.ydl.ydlnet.builder.factory.ApiFactory
import com.ydl.ydlnet.builder.interceptor.log.RequestHandler
import com.ydl.ydlnet.builder.interceptor.log.RequestLogInterceptor
import com.yidianling.common.tools.LogUtil
import com.yidianling.common.tools.RxAppTool
import com.yidianling.common.tools.RxDeviceTool
......@@ -118,6 +122,7 @@ class HttpConfig {
var ENCRYPTION_APP_KEY = "" // 接口加密appKey
var ENCRYPTION_APP_SECRET = "" // 接口加密appSecret
var isEncryption = false
var appDebug:Boolean=false
fun getInstance(): HttpConfig {
return Holder.INSTANCE
......@@ -127,7 +132,7 @@ class HttpConfig {
fun createOkHttp(): OkHttpClient {
val globalConfig = BaseApp.instance.getGlobalConfig()
val context = BaseApp.getApp()
val appDebug = globalConfig.appDebug
appDebug = globalConfig.appDebug
val appName = globalConfig.appName
//获取证书
......@@ -144,7 +149,8 @@ class HttpConfig {
.setInterceptor(
commonParams(),
requestHead(appName),
addEncryptionHeaderParamsInterceptor()
addEncryptionHeaderParamsInterceptor(),
responseErrorInterceptor()
)
.setRequestHandler(getRequestHandler())
.setReadTimeout(15)
......@@ -170,7 +176,7 @@ class HttpConfig {
path += it.request().url().encodedPath().substring(5)
}
else -> {
path+it.request().url().encodedPath()
path + it.request().url().encodedPath()
}
}
val sign = EncryptionParams.getSign(path, timestamp)
......@@ -180,12 +186,39 @@ class HttpConfig {
.addHeader("timestamp", timestamp)
.build()
it.proceed(request)
}else{
} else {
it.proceed(it.request())
}
}
}
/**
* 接口返回错误日志埋点
*/
private fun responseErrorInterceptor(): Interceptor {
return Interceptor {
val request: Request = it.request()
val originalResponse: Response = it.proceed(request)
if (!appDebug){
val code = originalResponse.code()
// 接口返回错误的情况下,埋点告诉服务器原因
if (code != 200) {
var params = ""
if (request.method() == "GET") {
params = request.url().query().toString()
} else if (request.method() == "POST") {
params = RequestLogInterceptor.parseParams(request)
}
val message = originalResponse.message()
val api = request.url().encodedPath()
ActionCountUtils.baiDuCount("ydl_user_error_business","error_log",api,params,message)
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.API, "error_log---api:$api---params:$params ---- message:$message")
}
}
originalResponse
}
}
private fun getRequestHandler(): RequestHandler {
return object : RequestHandler {
override fun onHttpResultResponse(
......
......@@ -134,10 +134,10 @@ class ActionCountUtils {
actionDataParams.appVersion(RxDeviceTool.getAppVersionName(BaseApp.getApp()))
actionDataParams.appId(appId)
actionDataParams.api(api)
actionDataParams.manufacturer(android.os.Build.BRAND.trim().toUpperCase())
actionDataParams.model(android.os.Build.MODEL)
actionDataParams.manufacturer(Build.BRAND.trim().toUpperCase())
actionDataParams.model(Build.MODEL)
actionDataParams.os(BIConstants.OS)
actionDataParams.osVersion(android.os.Build.VERSION.RELEASE)
actionDataParams.osVersion(Build.VERSION.RELEASE)
actionDataParams.wifi(if (isWifi()) 0 else 1)
var deviceId = ""
/*
......@@ -243,10 +243,10 @@ class ActionCountUtils {
actionDataParams.appVersion(RxDeviceTool.getAppVersionName(BaseApp.getApp()))
actionDataParams.appId(appId)
actionDataParams.api(api)
actionDataParams.manufacturer(android.os.Build.BRAND.trim().toUpperCase())
actionDataParams.model(android.os.Build.MODEL)
actionDataParams.manufacturer(Build.BRAND.trim().toUpperCase())
actionDataParams.model(Build.MODEL)
actionDataParams.os(BIConstants.OS)
actionDataParams.osVersion(android.os.Build.VERSION.RELEASE)
actionDataParams.osVersion(Build.VERSION.RELEASE)
actionDataParams.wifi(if (isWifi()) 0 else 1)
actionDataParams.screenWidth(RxDeviceTool.getScreenWidth(RxTool.getContext()!!))
actionDataParams.screenHeight(RxDeviceTool.getScreenHeight(RxTool.getContext()!!))
......@@ -287,7 +287,7 @@ class ActionCountUtils {
baiduActionDataParams.androidId(DeviceTool.getAndroidID())//MD5加密的androidId
baiduActionDataParams.ip("")
baiduActionDataParams.ipv6("")//给服务端传IPV6地址DeviceTool.getLocalIpV6()
baiduActionDataParams.tp(android.os.Build.MODEL)
baiduActionDataParams.tp(Build.MODEL)
baiduActionDataParams.network(DeviceTool.getNetworkState(RxTool.getContext()))
baiduActionDataParams.convertParam("")
baiduActionDataParams.uid(uid)
......@@ -316,8 +316,52 @@ class ActionCountUtils {
}
/**
* 接口返回错误埋点调用该方法
* @param partId pardId-ydl_user_error_business
* @param position error_log
* @param sign1 访问接口对应的参数
* @param sign2 接口返回的错误信息
*/
fun baiDuCount(
partId: String,
position: String,
api: String,
sign1: String,
sign2: String
) {
val actionDataParams = ActionDataBean.Builder()
actionDataParams.partId = partId
actionDataParams.position = position
actionDataParams.sign1 = sign1
actionDataParams.sign2 = sign2
actionDataParams.api = api
actionDataParams.appVersion(RxDeviceTool.getAppVersionName(BaseApp.getApp()))
val deviceId = if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
val topTaskActivity = ActivityManager.getInstance().getTopTaskActivity()
//获取imei
Utils.getIMEI(topTaskActivity)
} else {
//android Q及以上取oaid
DeviceIDHelper.getInstance().deviceId
}
actionDataParams.deviceId=deviceId
actionDataParams.time(System.currentTimeMillis())
actionDataParams.appId(appId)
actionDataParams.manufacturer(Build.BRAND.trim().toUpperCase())
actionDataParams.model(Build.MODEL)
actionDataParams.os(BIConstants.OS)
actionDataParams.osVersion(Build.VERSION.RELEASE)
actionDataParams.wifi(if (isWifi()) 0 else 1)
actionDataParams.uid = ModularServiceManager.getPlatformUserService()!!.getUser()?.userId
//请求
request(actionDataParams.build())
}
/**
* 传入ActionDataParams参数,访问接口
*/
@SuppressLint("CheckResult")
fun request(actionDataBean: ActionDataBean) {
try {
ApiRequestUtil.actionDataCount(actionDataBean)
......
package com.ydl.ydlcommon.utils.log
object AliYunLogConfig {
/**接口*/
const val API = "API"
/**声网*/
const val AGORA = "Agora"
/**登录*/
const val LOGIN = "Login"
/**WebView*/
const val WEB = "Web"
/**支付*/
const val PAY = "Pay"
/**云信*/
const val YUNXIN = "YunXin"
/**RTM*/
const val RTM = "Rtm"
/**网络状态*/
const val NETSTATUS = "NetStatus"
/**其他*/
const val OTHER = "Other"
}
\ No newline at end of file
package com.ydl.ydlcommon.utils.log
import com.aliyun.sls.android.producer.*
import com.ydl.ydlcommon.base.BaseApp.Companion.getApp
import com.ydl.ydlcommon.data.PlatformDataManager.getRam
import com.ydl.ydlcommon.modular.ModularServiceManager.getPlatformUserService
import com.yidianling.common.tools.RxAppTool
import com.yidianling.common.tools.RxDeviceTool
/**
* @author liupeng
*
* 阿里云埋点,携带基本参数,方便后续排查问题定位
* */
class AliYunRichLogsHelper {
companion object {
var mConfig: LogProducerConfig? = null
var mClient: LogProducerClient? = null
fun getInstance(): AliYunRichLogsHelper {
return Holder.INSTANCE
}
}
constructor() {
val endpoint = "cn-hangzhou.log.aliyuncs.com"
val project = "ydl-app-log"
val logstore = "ydl-app-log"
val accesskeyid = "LTAI5tH6WGqWUqzo4u5GfrCS"
val accesskeysecret = "uzccm79mr9d4rIsABu3xwfbdUdaeWT"
try {
mConfig = LogProducerConfig(endpoint, project, logstore, accesskeyid, accesskeysecret)
mClient = LogProducerClient(mConfig)
} catch (e: LogProducerException) {
e.printStackTrace()
}
}
private object Holder {
val INSTANCE = AliYunRichLogsHelper()
}
/**
*
* @param key AliYunLogConfig 接口、登录、声网、WebView、支付、其他
* @param value 具体的状态值
* */
fun sendRichLog(key: String, value: String) {
val log = Log()
val userInfo = getPlatformUserService()!!.getUser()
log.putContent(key, value)
log.putContent("ffrom", getRam().getChannelName())
log.putContent("isFromApp", "1")
log.putContent("osBuild", RxDeviceTool.getBuildBrandModel())
log.putContent(RxDeviceTool.getSDKVersionName(), RxAppTool.getAppVersionName(getApp()))
log.putContent("version", RxAppTool.getAppVersionName(getApp()))
if (null != userInfo) {
log.putContent("uid", userInfo.userId)
log.putContent("accessToken", userInfo.token)
}
if (mClient != null) {
val res: LogProducerResult = mClient!!.addLog(log)
}
}
/**
*
* @param key AliYunLogConfig 接口、登录、声网、WebView、支付、其他
* @param value 具体的状态值
* */
fun sendLog(key: String, value: String) {
val log = Log()
log.putContent(key, value)
if (mClient != null) {
val res: LogProducerResult = mClient!!.addLog(log)
}
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment