first
This commit is contained in:
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
# ---> Kotlin
|
||||
# Compiled class file
|
||||
*.class
|
||||
|
||||
# Log file
|
||||
*.log
|
||||
|
||||
# BlueJ files
|
||||
*.ctxt
|
||||
|
||||
# Mobile Tools for Java (J2ME)
|
||||
.mtj.tmp/
|
||||
|
||||
# Package Files #
|
||||
*.jar
|
||||
*.war
|
||||
*.nar
|
||||
*.ear
|
||||
*.zip
|
||||
*.tar.gz
|
||||
*.rar
|
||||
|
||||
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||
hs_err_pid*
|
||||
replay_pid*
|
||||
|
||||
# Kotlin Gradle plugin data, see https://kotlinlang.org/docs/whatsnew20.html#new-directory-for-kotlin-data-in-gradle-projects
|
||||
.kotlin/
|
||||
BIN
.gradle/8.13/checksums/checksums.lock
Normal file
BIN
.gradle/8.13/checksums/checksums.lock
Normal file
Binary file not shown.
BIN
.gradle/8.13/checksums/md5-checksums.bin
Normal file
BIN
.gradle/8.13/checksums/md5-checksums.bin
Normal file
Binary file not shown.
BIN
.gradle/8.13/checksums/sha1-checksums.bin
Normal file
BIN
.gradle/8.13/checksums/sha1-checksums.bin
Normal file
Binary file not shown.
BIN
.gradle/8.13/executionHistory/executionHistory.bin
Normal file
BIN
.gradle/8.13/executionHistory/executionHistory.bin
Normal file
Binary file not shown.
BIN
.gradle/8.13/executionHistory/executionHistory.lock
Normal file
BIN
.gradle/8.13/executionHistory/executionHistory.lock
Normal file
Binary file not shown.
BIN
.gradle/8.13/fileChanges/last-build.bin
Normal file
BIN
.gradle/8.13/fileChanges/last-build.bin
Normal file
Binary file not shown.
BIN
.gradle/8.13/fileHashes/fileHashes.bin
Normal file
BIN
.gradle/8.13/fileHashes/fileHashes.bin
Normal file
Binary file not shown.
BIN
.gradle/8.13/fileHashes/fileHashes.lock
Normal file
BIN
.gradle/8.13/fileHashes/fileHashes.lock
Normal file
Binary file not shown.
BIN
.gradle/8.13/fileHashes/resourceHashesCache.bin
Normal file
BIN
.gradle/8.13/fileHashes/resourceHashesCache.bin
Normal file
Binary file not shown.
0
.gradle/8.13/gc.properties
Normal file
0
.gradle/8.13/gc.properties
Normal file
BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock
Normal file
BIN
.gradle/buildOutputCleanup/buildOutputCleanup.lock
Normal file
Binary file not shown.
2
.gradle/buildOutputCleanup/cache.properties
Normal file
2
.gradle/buildOutputCleanup/cache.properties
Normal file
@@ -0,0 +1,2 @@
|
||||
#Thu Jul 30 09:08:42 CST 2026
|
||||
gradle.version=8.13
|
||||
BIN
.gradle/buildOutputCleanup/outputFiles.bin
Normal file
BIN
.gradle/buildOutputCleanup/outputFiles.bin
Normal file
Binary file not shown.
2
.gradle/config.properties
Normal file
2
.gradle/config.properties
Normal file
@@ -0,0 +1,2 @@
|
||||
#Thu Jul 30 09:08:52 CST 2026
|
||||
java.home=D\:\\Program Files\\Android\\Android Studio\\jbr
|
||||
BIN
.gradle/file-system.probe
Normal file
BIN
.gradle/file-system.probe
Normal file
Binary file not shown.
0
.gradle/vcs-1/gc.properties
Normal file
0
.gradle/vcs-1/gc.properties
Normal file
3
.idea/.gitignore
generated
vendored
Normal file
3
.idea/.gitignore
generated
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
# Default ignored files
|
||||
/shelf/
|
||||
/workspace.xml
|
||||
1
.idea/.name
generated
Normal file
1
.idea/.name
generated
Normal file
@@ -0,0 +1 @@
|
||||
CkCollar_app
|
||||
6
.idea/AndroidProjectSystem.xml
generated
Normal file
6
.idea/AndroidProjectSystem.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="AndroidProjectSystem">
|
||||
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
|
||||
</component>
|
||||
</project>
|
||||
2229
.idea/caches/deviceStreaming.xml
generated
Normal file
2229
.idea/caches/deviceStreaming.xml
generated
Normal file
File diff suppressed because it is too large
Load Diff
6
.idea/compiler.xml
generated
Normal file
6
.idea/compiler.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="CompilerConfiguration">
|
||||
<bytecodeTargetLevel target="21" />
|
||||
</component>
|
||||
</project>
|
||||
11
.idea/deploymentTargetSelector.xml
generated
Normal file
11
.idea/deploymentTargetSelector.xml
generated
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="deploymentTargetSelector">
|
||||
<selectionStates>
|
||||
<SelectionState runConfigName="app">
|
||||
<option name="selectionMode" value="DROPDOWN" />
|
||||
<DialogSelection />
|
||||
</SelectionState>
|
||||
</selectionStates>
|
||||
</component>
|
||||
</project>
|
||||
19
.idea/gradle.xml
generated
Normal file
19
.idea/gradle.xml
generated
Normal file
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="GradleMigrationSettings" migrationVersion="1" />
|
||||
<component name="GradleSettings">
|
||||
<option name="linkedExternalProjectsSettings">
|
||||
<GradleProjectSettings>
|
||||
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
||||
<option name="modules">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
<option value="$PROJECT_DIR$/app" />
|
||||
</set>
|
||||
</option>
|
||||
</GradleProjectSettings>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
8
.idea/markdown.xml
generated
Normal file
8
.idea/markdown.xml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="MarkdownSettings">
|
||||
<option name="previewPanelProviderInfo">
|
||||
<ProviderInfo name="Compose (experimental)" className="com.intellij.markdown.compose.preview.ComposePanelProvider" />
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
10
.idea/migrations.xml
generated
Normal file
10
.idea/migrations.xml
generated
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectMigrations">
|
||||
<option name="MigrateToGradleLocalJavaHome">
|
||||
<set>
|
||||
<option value="$PROJECT_DIR$" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
4
.idea/misc.xml
generated
Normal file
4
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,4 @@
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK" />
|
||||
</project>
|
||||
8
.idea/modules/app/CkCollar_app.app.main.iml
generated
Normal file
8
.idea/modules/app/CkCollar_app.app.main.iml
generated
Normal file
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module version="4">
|
||||
<component name="AdditionalModuleElements">
|
||||
<content url="file://$MODULE_DIR$/../../../app/src/main" dumb="true">
|
||||
<sourceFolder url="file://$MODULE_DIR$/../../../app/src/main/assets" type="java-resource" />
|
||||
</content>
|
||||
</component>
|
||||
</module>
|
||||
17
.idea/runConfigurations.xml
generated
Normal file
17
.idea/runConfigurations.xml
generated
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RunConfigurationProducerService">
|
||||
<option name="ignoredProducers">
|
||||
<set>
|
||||
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
|
||||
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
|
||||
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
|
||||
</set>
|
||||
</option>
|
||||
</component>
|
||||
</project>
|
||||
6
.idea/vcs.xml
generated
Normal file
6
.idea/vcs.xml
generated
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"java.configuration.updateBuildConfiguration": "interactive"
|
||||
}
|
||||
BIN
android_123456.keystore
Normal file
BIN
android_123456.keystore
Normal file
Binary file not shown.
1
app/.gitignore
vendored
Normal file
1
app/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/build
|
||||
159
app/build.gradle
Normal file
159
app/build.gradle
Normal file
@@ -0,0 +1,159 @@
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
id('kotlin-kapt')
|
||||
|
||||
}
|
||||
|
||||
android {
|
||||
signingConfigs {
|
||||
release {
|
||||
storeFile file('../android_123456.keystore')
|
||||
keyAlias 'tangtang_app'
|
||||
keyPassword '123456'
|
||||
storePassword '123456'
|
||||
}
|
||||
debug {
|
||||
storeFile file('../android_123456.keystore')
|
||||
keyAlias 'tangtang_app'
|
||||
keyPassword '123456'
|
||||
storePassword '123456'
|
||||
}
|
||||
config {
|
||||
storeFile file('../android_123456.keystore')
|
||||
keyAlias 'tangtang_app'
|
||||
keyPassword '123456'
|
||||
storePassword '123456'
|
||||
}
|
||||
}
|
||||
namespace 'com.ck.ckcollar.app'
|
||||
compileSdk {
|
||||
version = release(36)
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.ck.ckcollar.app"
|
||||
minSdk 24
|
||||
targetSdk 36
|
||||
versionCode 1
|
||||
versionName "1.0.1"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
minifyEnabled false
|
||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_11
|
||||
targetCompatibility JavaVersion.VERSION_11
|
||||
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '11'
|
||||
}
|
||||
buildFeatures {
|
||||
viewBinding = true
|
||||
}
|
||||
}
|
||||
|
||||
tasks.register('testClasses') {
|
||||
dependsOn 'compileDebugUnitTestSources'
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||
implementation(name: 'library', ext: 'aar')
|
||||
implementation(name: 'changeskin', ext: 'aar')
|
||||
implementation(name: 'pickerview', ext: 'aar')
|
||||
implementation(name: 'wheelview', ext: 'aar')
|
||||
implementation(name: 'MNMLKitScanner', ext: 'aar')
|
||||
implementation(name: 'Flowlayout', ext: 'aar')
|
||||
implementation(name: 'photoview', ext: 'aar')
|
||||
|
||||
implementation libs.androidx.core.ktx
|
||||
implementation libs.androidx.lifecycle.runtime.ktx
|
||||
implementation libs.androidx.activity.compose
|
||||
implementation platform(libs.androidx.compose.bom)
|
||||
implementation libs.androidx.compose.ui
|
||||
implementation libs.androidx.compose.ui.graphics
|
||||
implementation libs.androidx.compose.ui.tooling.preview
|
||||
implementation libs.androidx.compose.material3
|
||||
implementation libs.material
|
||||
implementation libs.appcompat
|
||||
testImplementation libs.junit
|
||||
androidTestImplementation libs.androidx.junit
|
||||
androidTestImplementation libs.androidx.espresso.core
|
||||
androidTestImplementation platform(libs.androidx.compose.bom)
|
||||
androidTestImplementation libs.androidx.compose.ui.test.junit4
|
||||
debugImplementation libs.androidx.compose.ui.tooling
|
||||
debugImplementation libs.androidx.compose.ui.test.manifest
|
||||
|
||||
//可侧滑recyclerview
|
||||
implementation 'com.yanzhenjie.recyclerview:x:1.3.2'
|
||||
|
||||
//glide
|
||||
//implementation("com.github.bumptech.glide:glide:4.16.0")
|
||||
implementation 'com.github.bumptech.glide:glide:5.0.5'
|
||||
kapt 'com.github.bumptech.glide:compiler:5.0.5' // 对于Kotlin项目
|
||||
|
||||
|
||||
implementation 'com.squareup.okhttp3:okhttp:4.12.0'
|
||||
implementation 'com.squareup.okhttp3:logging-interceptor:4.12.0'
|
||||
implementation 'com.squareup.okhttp3:okhttp-sse:4.12.0'
|
||||
|
||||
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
|
||||
implementation("pub.devrel:easypermissions:3.0.0")
|
||||
|
||||
implementation 'com.readystatesoftware.systembartint:systembartint:1.0.3'
|
||||
implementation("org.osmdroid:osmdroid-android:6.1.20")
|
||||
|
||||
api 'com.alipay.sdk:alipaysdk-android:+@aar'
|
||||
// implementation 'com.alipay.sdk:zmcredit-face:3.8.2'
|
||||
//
|
||||
// implementation 'com.alipay.sdk:zmcert-sdk:3.8.0'
|
||||
|
||||
api 'com.tencent.mm.opensdk:wechat-sdk-android:6.8.0'
|
||||
|
||||
//二维码三方库
|
||||
// implementation 'com.github.maning0303:MNMLKitScanner:V1.0.4'
|
||||
implementation 'com.google.mlkit:barcode-scanning:17.0.2'
|
||||
implementation "androidx.camera:camera-core:1.0.2"
|
||||
implementation "androidx.camera:camera-camera2:1.0.2"
|
||||
implementation "androidx.camera:camera-lifecycle:1.0.2"
|
||||
implementation "androidx.camera:camera-view:1.0.0-alpha25"
|
||||
|
||||
|
||||
implementation ("com.huawei.hms:scanplus:2.9.0.300")
|
||||
|
||||
//
|
||||
implementation("com.geyifeng.immersionbar:immersionbar:3.2.2")
|
||||
// kotlin扩展(可选)
|
||||
implementation("com.geyifeng.immersionbar:immersionbar-ktx:3.2.2")
|
||||
|
||||
implementation 'io.github.youth5201314:banner:2.2.3'
|
||||
|
||||
implementation 'com.kyleduo.switchbutton:library:2.1.0'
|
||||
implementation 'com.github.zcweng:switch-button:0.0.3@aar'
|
||||
|
||||
implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0-alpha-14'
|
||||
implementation 'com.scwang.smart:refresh-header-classics:2.0.1'
|
||||
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
|
||||
|
||||
//图片
|
||||
//支付宝
|
||||
api 'com.alipay.sdk:alipaysdk-android:+@aar'
|
||||
|
||||
//websocket
|
||||
implementation 'org.java-websocket:Java-WebSocket:1.5.2'
|
||||
|
||||
implementation 'com.umeng.umsdk:common:9.4.7'// 必选
|
||||
implementation 'com.umeng.umsdk:asms:1.4.0'// 必选
|
||||
implementation 'com.umeng.umsdk:apm:+'
|
||||
|
||||
implementation 'com.github.yyued:SVGAPlayer-Android:2.6.1'
|
||||
|
||||
}
|
||||
BIN
app/libs/Flowlayout.aar
Normal file
BIN
app/libs/Flowlayout.aar
Normal file
Binary file not shown.
BIN
app/libs/MNMLKitScanner.aar
Normal file
BIN
app/libs/MNMLKitScanner.aar
Normal file
Binary file not shown.
BIN
app/libs/changeskin.aar
Normal file
BIN
app/libs/changeskin.aar
Normal file
Binary file not shown.
BIN
app/libs/library.aar
Normal file
BIN
app/libs/library.aar
Normal file
Binary file not shown.
BIN
app/libs/photoview.aar
Normal file
BIN
app/libs/photoview.aar
Normal file
Binary file not shown.
BIN
app/libs/pickerview.aar
Normal file
BIN
app/libs/pickerview.aar
Normal file
Binary file not shown.
BIN
app/libs/wheelview.aar
Normal file
BIN
app/libs/wheelview.aar
Normal file
Binary file not shown.
51
app/proguard-rules.pro
vendored
Normal file
51
app/proguard-rules.pro
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
|
||||
-keep class com.tencent.mm.opensdk.** {
|
||||
*;
|
||||
}
|
||||
|
||||
-keep class com.tencent.wxop.** {
|
||||
*;
|
||||
}
|
||||
|
||||
-keep class com.tencent.mm.sdk.** {
|
||||
*;
|
||||
}
|
||||
-keep class com.uc.** {*;}
|
||||
|
||||
-keep class com.efs.** {*;}
|
||||
|
||||
-keep class com.umeng.** {*;}
|
||||
|
||||
-keep class org.repackage.** {*;}
|
||||
|
||||
-keep class com.uyumao.** { *; }
|
||||
|
||||
-keepclassmembers class * {
|
||||
public <init> (org.json.JSONObject);
|
||||
}
|
||||
|
||||
-keepclassmembers enum * {
|
||||
public static **[] values();
|
||||
public static ** valueOf(java.lang.String);
|
||||
}
|
||||
BIN
app/release/baselineProfiles/0/app-release.dm
Normal file
BIN
app/release/baselineProfiles/0/app-release.dm
Normal file
Binary file not shown.
BIN
app/release/baselineProfiles/1/app-release.dm
Normal file
BIN
app/release/baselineProfiles/1/app-release.dm
Normal file
Binary file not shown.
37
app/release/output-metadata.json
Normal file
37
app/release/output-metadata.json
Normal file
@@ -0,0 +1,37 @@
|
||||
{
|
||||
"version": 3,
|
||||
"artifactType": {
|
||||
"type": "APK",
|
||||
"kind": "Directory"
|
||||
},
|
||||
"applicationId": "com.ck.ckcollar.app",
|
||||
"variantName": "release",
|
||||
"elements": [
|
||||
{
|
||||
"type": "SINGLE",
|
||||
"filters": [],
|
||||
"attributes": [],
|
||||
"versionCode": 1,
|
||||
"versionName": "1.0.1",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
],
|
||||
"elementType": "File",
|
||||
"baselineProfiles": [
|
||||
{
|
||||
"minApi": 28,
|
||||
"maxApi": 30,
|
||||
"baselineProfiles": [
|
||||
"baselineProfiles/1/app-release.dm"
|
||||
]
|
||||
},
|
||||
{
|
||||
"minApi": 31,
|
||||
"maxApi": 2147483647,
|
||||
"baselineProfiles": [
|
||||
"baselineProfiles/0/app-release.dm"
|
||||
]
|
||||
}
|
||||
],
|
||||
"minSdkVersionForDexing": 24
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
package com.ck.ckcollar.app
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class ExampleInstrumentedTest {
|
||||
@Test
|
||||
fun useAppContext() {
|
||||
// Context of the app under test.
|
||||
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
assertEquals("com.ck.ckcollar.app", appContext.packageName)
|
||||
}
|
||||
}
|
||||
329
app/src/main/AndroidManifest.xml
Normal file
329
app/src/main/AndroidManifest.xml
Normal file
@@ -0,0 +1,329 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<application
|
||||
android:name=".CKApp"
|
||||
android:allowBackup="true"
|
||||
android:extractNativeLibs="true"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:icon="@mipmap/icon"
|
||||
android:label="@string/app_name"
|
||||
android:networkSecurityConfig="@xml/network_security_config"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/icon"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.CkCollar_app">
|
||||
<activity
|
||||
android:name=".ui.act.welcome.IndexActivity"
|
||||
android:exported="true"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.act.welcome.WelcomeActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.welcome.PermisstionActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.login.LoginActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.login.RegisterActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.login.BoundPhoneActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.login.RegisterSuccessActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.login.LostActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.login.AgreementActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.home.MainActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/Theme.CkCollar_app.MainTheme"></activity>
|
||||
<activity
|
||||
android:name=".wxapi.WXEntryActivity"
|
||||
android:exported="true"
|
||||
android:label="@string/app_name"
|
||||
android:launchMode="singleTask"
|
||||
android:taskAffinity="com.ck.ckcollar.app"
|
||||
android:theme="@android:style/Theme.Translucent.NoTitleBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.PetManagerActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.AddPetActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.EditPetActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.ViewPetFileActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.customer.CustomerActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.user.UserInfoActivity"
|
||||
android:launchMode="singleTask"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.message.MessageCenterActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.SettingActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.PasswordManagerActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.EditPsswordActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.FindPasswordActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.AddressActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.AddAddressActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.AccountCancellationActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.balance.BalanceActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.balance.RechargeActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.balance.WithDrawActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.balance.WithDrawSuccessActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.balance.OutRecordDetailsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.balance.IncomeRecordDetailsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.points.PointsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.member.MemberActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.member.OpenMemberActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.mine.ReturnDeviceActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.mine.FeedBackActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.shop.SearchActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"
|
||||
android:windowSoftInputMode="stateAlwaysVisible"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.shop.ShopCarActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"
|
||||
android:windowSoftInputMode="stateAlwaysVisible"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.shop.TypeActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"
|
||||
android:windowSoftInputMode="stateAlwaysVisible"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.shop.ProductDetailsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.shop.OrderActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.shop.OrderSuccessActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.order.MyOrderActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.order.OrderDetailsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.order.AfterSalesActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.order.RefundActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.order.ModifyAddressActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.order.AfterSalesProgressActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.order.LogisticsInfoActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.note.NoteDetailsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.EditAddressActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.order.InputLogisticsNumActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.message.MessageDetailsActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.PayPasswordManagerActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.FindPayPasswordActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.setting.EditPayPsswordActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.setting.PayPsswordActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.order.PayOrderActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.deposit.DepositActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.customer.PeopleCustomerActivity"
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.InputInviteCodeActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.BoundSuccessActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.deposit.StartDepositActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.ImageViewActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.customer.MineCustomerActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.customer.ShopCustomerActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.NoActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.WifiListActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.DarkActionBar"></activity>
|
||||
<activity
|
||||
android:name=".ui.act.BlueToothActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.DarkActionBar"></activity>
|
||||
|
||||
<activity
|
||||
android:name=".ui.act.petmanager.MapLocationActivity"
|
||||
android:theme="@style/Theme.CkCollar_app.MapTheme"></activity>
|
||||
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="com.ck.ckcollar.app.fileprovider"
|
||||
android:exported="false"
|
||||
android:grantUriPermissions="true">
|
||||
<meta-data
|
||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||
android:resource="@xml/file_paths" />
|
||||
</provider>
|
||||
|
||||
</application>
|
||||
|
||||
<queries>
|
||||
<package android:name="com.tencent.mm" />
|
||||
</queries>
|
||||
|
||||
<queries>
|
||||
<package android:name="com.eg.android.AlipayGphone" /> <!-- 支付宝 -->
|
||||
<package android:name="hk.alipay.wallet" /> <!-- AlipayHK -->
|
||||
</queries>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
|
||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
|
||||
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />-->
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />-->
|
||||
<!-- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />-->
|
||||
<!-- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />-->
|
||||
|
||||
<!-- <!– 声明应用需要使用蓝牙功能 –>-->
|
||||
<!-- <uses-feature-->
|
||||
<!-- android:name="android.hardware.bluetooth"-->
|
||||
<!-- android:required="true" />-->
|
||||
|
||||
<!-- <!– 必要的蓝牙权限 –>-->
|
||||
<!-- <uses-permission android:name="android.permission.BLUETOOTH" />-->
|
||||
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />-->
|
||||
|
||||
<!-- <!– 从 Android 12 (API 31) 开始,需要新的蓝牙扫描/连接权限 –>-->
|
||||
<!-- <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />-->
|
||||
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
|
||||
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />-->
|
||||
|
||||
|
||||
<!-- 基础网络权限 -->
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<!-- 摄像头权限 -->
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<!-- 声明需要使用摄像头功能 -->
|
||||
<uses-feature android:name="android.hardware.camera" />
|
||||
<uses-feature android:name="android.hardware.camera.autofocus" />
|
||||
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
||||
</manifest>
|
||||
5354
app/src/main/assets/province.json
Normal file
5354
app/src/main/assets/province.json
Normal file
File diff suppressed because it is too large
Load Diff
66
app/src/main/java/com/ck/ckcollar/app/CKApp.kt
Normal file
66
app/src/main/java/com/ck/ckcollar/app/CKApp.kt
Normal file
@@ -0,0 +1,66 @@
|
||||
package com.ck.ckcollar.app
|
||||
|
||||
import android.app.Application
|
||||
import android.text.TextUtils
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.GlideBuilder
|
||||
import com.bumptech.glide.load.DecodeFormat
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.ck.ckcollar.app.exception.ExceptionHandler
|
||||
import com.ck.ckcollar.app.model.UserInfoModel
|
||||
import com.ck.ckcollar.app.utils.Const
|
||||
import com.cyclone.shadowsocks.utils.PreferencesUtils
|
||||
import com.google.gson.Gson
|
||||
import com.tt.kit.base.TTBaseActivity
|
||||
import com.tt.kit.utils.TTLog
|
||||
import com.umeng.analytics.MobclickAgent
|
||||
import com.umeng.commonsdk.UMConfigure
|
||||
import com.umeng.umcrash.customlog.UAPMCustomLog
|
||||
|
||||
|
||||
class CKApp : Application() {
|
||||
|
||||
var activitys = mutableListOf<TTBaseActivity>()
|
||||
lateinit var token : String
|
||||
var wxJump = 0
|
||||
var userInfo : UserInfoModel? = null
|
||||
companion object {
|
||||
lateinit var app: CKApp
|
||||
|
||||
}
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
app = this
|
||||
|
||||
token = PreferencesUtils.getString(this, Const.TOKEN,"").toString()
|
||||
var userData = PreferencesUtils.getString(this, Const.USER_DATA,"").toString()
|
||||
if (!TextUtils.isEmpty(userData)){
|
||||
userInfo = Gson().fromJson<UserInfoModel>(userData, UserInfoModel::class.java)
|
||||
}
|
||||
|
||||
ExceptionHandler.instance.init(this)
|
||||
|
||||
val defaultOptions = RequestOptions()
|
||||
.format(DecodeFormat.PREFER_RGB_565) // 设置图片格式为RGB_565以减少内存使用
|
||||
.disallowHardwareConfig()
|
||||
// 禁止硬件位图配置以避免潜在的颜色问题
|
||||
// 可以添加更多配置...
|
||||
|
||||
|
||||
Glide.init(this, GlideBuilder().setDefaultRequestOptions(defaultOptions))
|
||||
//SkinManager.getInstance().init(this);
|
||||
|
||||
UMConfigure.setLogEnabled(true)
|
||||
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.MANUAL);
|
||||
|
||||
UMConfigure.preInit(this, "6a618cf0e88ae439bf379f37", "UM");
|
||||
|
||||
|
||||
UMConfigure.init(this, "6a618cf0e88ae439bf379f37", "UM", UMConfigure.DEVICE_TYPE_PHONE, "");
|
||||
|
||||
TTLog.isLogEable(true)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
182
app/src/main/java/com/ck/ckcollar/app/action/ActionCode.kt
Normal file
182
app/src/main/java/com/ck/ckcollar/app/action/ActionCode.kt
Normal file
@@ -0,0 +1,182 @@
|
||||
package com.ck.ckcollar.app.action
|
||||
|
||||
import com.tt.kit.utils.TTLog
|
||||
|
||||
object ActionCode {
|
||||
//const val BASE_URL = "https://oval-discolor-onshore.ngrok-free.dev";
|
||||
//const val BASE_URL = "https://ragged-parting-unrushed.ngrok-free.dev";
|
||||
//const val BASE_URL = "https://ragged-parting-unrushed.ngrok-free.dev";
|
||||
// const val BASE_URL = "https://ragged-parting-unrushed.ngrok-free.dev";
|
||||
const val BASE_URL = "https://d.chongdunpet.com"
|
||||
const val CUSTOMER_URL = "wss://d.chongdunpet.com/ws/chat?role=customer&token=";
|
||||
|
||||
|
||||
|
||||
|
||||
fun getUrl(actionCode: String): String {
|
||||
var url = ""
|
||||
when (actionCode) {
|
||||
"demo" -> url = "/sys/dept/list/enterprise"
|
||||
|
||||
"登录" -> url = "/app/login"
|
||||
"微信登录" -> url = "/app/login/wx"
|
||||
|
||||
"宠物列表" -> url = "/app/pet/list"
|
||||
|
||||
"添加宠物" -> url = "/app/pet"
|
||||
|
||||
"上传照片" -> url = "/minio/upload"
|
||||
|
||||
"上传照片s" -> url = "/minio/uploads"
|
||||
|
||||
"宠物档案" -> url = "/app/pet"
|
||||
|
||||
"编辑宠物" -> url = "/app/pet"
|
||||
|
||||
"删除宠物" -> url = "/app/pet"
|
||||
|
||||
"首页" -> url = "/app/home/data"
|
||||
|
||||
"绑定设备" -> url = "/app/device/bind"
|
||||
|
||||
"切换设备" -> url = "/app/device/switchCurrentPet"
|
||||
|
||||
"解绑设备" -> url = "/app/device/unbind"
|
||||
|
||||
"设备信息" -> url = "/app/device/info"
|
||||
|
||||
"协议" -> url = "/app/setting/pageContent"
|
||||
|
||||
"用户注销检查" -> url = "/app/setting/accountDeleteCheck"
|
||||
|
||||
"用户注销" -> url = "/app/setting/deleteAccount"
|
||||
|
||||
"宠物知识列表" -> url = "/app/health/knowledge/list"
|
||||
|
||||
"宠物知识明细" -> url = "/app/health/knowledge"
|
||||
|
||||
"客服在线状态" -> url = "/app/health/consult/status"
|
||||
|
||||
"会话消息列表" -> url = "/app/health/consult/messages"
|
||||
|
||||
"发送会话消息" -> url = "/app/health/ai/chat"
|
||||
"发送会话消息stream" -> url = "/app/health/ai/chat/stream"
|
||||
|
||||
"发送人工会话消息" -> url = "/app/health/consult/message"
|
||||
|
||||
|
||||
"获取会话消息" -> url = "/app/health/consult/session"
|
||||
|
||||
"商品列表" -> url = "/commodityApp/list/list"
|
||||
|
||||
"商品明细" -> url = "/commodityApp/list"
|
||||
|
||||
"精选好物" -> url = "/commodityApp/list/recommended_slot"
|
||||
"商品分类列表" -> url = "/colcategory/category/app/list"
|
||||
|
||||
"发送验证码" -> url = "/app/sms/send"
|
||||
|
||||
"验证码登录" -> url = "/app/login/sms"
|
||||
|
||||
"注册" -> url = "/app/register"
|
||||
|
||||
"找回密码" -> url = "/app/password/reset"
|
||||
"添加购物车" -> url = "/app/cart/add"
|
||||
"购物车列表" -> url = "/app/cart/list"
|
||||
"购物车数量和合计" -> url = "/app/cart/cartInfo"
|
||||
"购物车全部选中" -> url = "/app/cart/selectAll"
|
||||
"购物车更新数量" -> url = "/app/cart/quantity"
|
||||
"购物车更新选中" -> url = "/app/cart/selected"
|
||||
"购物车删除商品" -> url = "/app/cart"
|
||||
|
||||
"个人资料" -> url = "/app/profile/detail"
|
||||
|
||||
"收货地址列表" -> url = "/user/address/list"
|
||||
"新增收货地址" -> url = "/user/address/add"
|
||||
"收货地址明细" -> url = "/user/address"
|
||||
"编辑收货地址" -> url = "/user/address/edit"
|
||||
"删除收货地址" -> url = "/user/address"
|
||||
"设置默认地址" -> url = "/user/address/setDefault"
|
||||
|
||||
"地址标签列表" -> url = "/user/address/label/list"
|
||||
"新增标签" -> url = "/user/address/label/add"
|
||||
"删除标签" -> url = "/user/address/label"
|
||||
"商品种类" -> url = "/colcategory/category/app/list"
|
||||
|
||||
"余额明细列表" -> url = "/app/balance/list"
|
||||
"余额" -> url = "/app/balance/overview"
|
||||
"余额明细" -> url = "/app/balance/detail"
|
||||
|
||||
"充值" -> url = "/app/balance/recharge"
|
||||
"提现" -> url = "/app/balance/withdraw"
|
||||
"修改登录密码" -> url = "/app/setting/loginPassword/change"
|
||||
|
||||
"积分总览" -> url = "/app/points/overview"
|
||||
"积分明细" -> url = "/app/points/list"
|
||||
|
||||
|
||||
"会员信息" -> url = "/app/member/info"
|
||||
"会员套餐列表" -> url = "/app/member/packages"
|
||||
"开通会员" -> url = "/app/member/pay"
|
||||
|
||||
"我的订单" -> url = "/orderApp/list/query"
|
||||
"我的订单明细" -> url = "/orderApp/list/queryDetails"
|
||||
"取消订单" -> url = "/orderApp/list/cancel"
|
||||
"删除订单" -> url = "/orderApp/list/delete"
|
||||
"确认收货" -> url = "/orderItemsApp/list/confirmReceive"
|
||||
"修改收货地址" -> url = "/orderItemsApp/list/updateAddress"
|
||||
"查看物流信息" -> url = "/orderItemsApp/list/logistics"
|
||||
"查看物流信息" -> url = "/orderItemsApp/list/logistics"
|
||||
|
||||
"直接购买确认订单" -> url = "/orderApp/list/confirmDirect"
|
||||
"购物车购买确认订单" -> url = "/orderApp/list/confirm"
|
||||
"下单" -> url = "/app/order/createAndPay"
|
||||
"申请售后" -> url = "/orderItemsApp/list/refund/apply"
|
||||
"售后进度" -> url = "/orderItemsApp/list/refundApply"
|
||||
"物流公司" -> url = "/orderItemsApp/list/enums"
|
||||
"填写快递单号" -> url = "/orderItemsApp/list/refund/returnLogistics"
|
||||
|
||||
|
||||
"AI拍照识别" -> url = "/app/home/ai/pet-recognition"
|
||||
"消息通知列表" -> url = "/app/notice/list"
|
||||
"读取消息" -> url = "/app/notice/markRead"
|
||||
"读取全部消息" -> url = "/app/notice/markReadAll"
|
||||
|
||||
|
||||
"意见反馈" -> url = "/app/feedback/submit"
|
||||
"设备退回" -> url = "/app/return/submit"
|
||||
|
||||
"单条余额明细" -> url = "/app/balance/detail"
|
||||
|
||||
"修改支付密码" -> url = "/app/setting/payPassword/change"
|
||||
"找回支付密码" -> url = "/app/setting/payPassword/reset"
|
||||
"查询支付密码状态" -> url = "/app/setting/payPassword/status"
|
||||
"订单支付" -> url = "/app/order/pay"
|
||||
|
||||
|
||||
"修改个人信息" -> url = "/app/profile/update"
|
||||
"修改绑定手机" -> url = "/app/profile/phone/update"
|
||||
|
||||
"押金信息" -> url = "/app/deposit/info"
|
||||
"芝麻授权" -> url = "/app/deposit/free"
|
||||
"退还押金" -> url = "/app/deposit/refund"
|
||||
|
||||
|
||||
"获取我的联系客服会话" -> url = "/app/chat/consult/session"
|
||||
"订单ID获取确认信息" -> url = "/orderApp/list/confirmByOrderId"
|
||||
|
||||
"微信绑定手机" -> url = "/app/wx/bindPhone"
|
||||
"商城轮训图" -> url = "/app/home/bannerMallData"
|
||||
|
||||
"取消退款" -> url = "/orderItemsApp/list/refund/cancel"
|
||||
|
||||
"更新" -> url = "/app/update"
|
||||
"未读消息数量" -> url = "/app/notice/unreadCount"
|
||||
"绑定微信" -> url = "/app/profile/wx/bind"
|
||||
|
||||
|
||||
}
|
||||
TTLog.e(url)
|
||||
return url;
|
||||
}
|
||||
}
|
||||
37
app/src/main/java/com/ck/ckcollar/app/config/Config.kt
Normal file
37
app/src/main/java/com/ck/ckcollar/app/config/Config.kt
Normal file
@@ -0,0 +1,37 @@
|
||||
package com.ck.ckcollar.app.config
|
||||
|
||||
import android.util.Log
|
||||
import org.osmdroid.tileprovider.tilesource.OnlineTileSourceBase
|
||||
import org.osmdroid.tileprovider.tilesource.TileSourceFactory
|
||||
import org.osmdroid.tileprovider.tilesource.XYTileSource
|
||||
import org.osmdroid.util.GeoPoint
|
||||
import org.osmdroid.util.MapTileIndex
|
||||
|
||||
object Config : TileSourceFactory() {
|
||||
|
||||
const val MAP_KEY = "9ada0ca4ea55f17b72ff46c7a88d9225"
|
||||
|
||||
// 默认GeoPoint
|
||||
val defaultGeoPoint = GeoPoint(39.909, 116.39742)
|
||||
|
||||
/**
|
||||
* 天地图 有标注电子地图
|
||||
*/
|
||||
var TDTCIA_W: OnlineTileSourceBase = object : XYTileSource(
|
||||
"Tian Di Tu CIA",
|
||||
0, 20, 256, "",
|
||||
arrayOf(
|
||||
"http://t0.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t1.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t2.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t3.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t4.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t5.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t6.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY",
|
||||
"http://t7.tianditu.com/DataServer?T=cia_w&tk=$MAP_KEY"
|
||||
)
|
||||
) {
|
||||
override fun getTileURLString(pMapTileIndex: Long) =
|
||||
("$baseUrl&X=${MapTileIndex.getX(pMapTileIndex)}&Y=${MapTileIndex.getY(pMapTileIndex)}&L=${MapTileIndex.getZoom(pMapTileIndex)}")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,283 @@
|
||||
package com.ck.ckcollar.app.exception
|
||||
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.os.Build
|
||||
import android.os.Environment
|
||||
import android.os.Looper
|
||||
import android.os.Process
|
||||
import android.util.Log
|
||||
import com.cyclone.shadowsocks.utils.PreferencesUtils
|
||||
import com.tt.kit.utils.ToastHelper
|
||||
import com.umeng.umcrash.UMCrash
|
||||
import com.umeng.umcrash.customlog.UAPMCustomLog
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
import java.io.PrintWriter
|
||||
import java.io.StringWriter
|
||||
import java.net.UnknownHostException
|
||||
import java.text.DateFormat
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.lang.Thread.UncaughtExceptionHandler
|
||||
|
||||
class ExceptionHandler : UncaughtExceptionHandler {
|
||||
// 系统默认的UncaughtException处理类
|
||||
private var mDefaultHandler: Thread.UncaughtExceptionHandler? = null
|
||||
|
||||
// 程序的Context对象
|
||||
private var mContext: Context? = null
|
||||
|
||||
// 用来存储设备信息和异常信息
|
||||
private val infos: MutableMap<String?, String?> = HashMap<String?, String?>()
|
||||
|
||||
// 用于格式化日期,作为日志文件名的一部分
|
||||
private val formatter: DateFormat = SimpleDateFormat("yyyyMMdd_HHmmss")
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @param context
|
||||
*/
|
||||
fun init(context: Context) {
|
||||
mContext = context
|
||||
// 获取系统默认的UncaughtException处理器
|
||||
mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler()
|
||||
// 设置该CrashHandler为程序的默认处理器
|
||||
Thread.setDefaultUncaughtExceptionHandler(this)
|
||||
}
|
||||
|
||||
/**
|
||||
* 当UncaughtException发生时会转入该函数来处理
|
||||
*/
|
||||
override fun uncaughtException(thread: Thread?, ex: Throwable?) {
|
||||
if (!handleException(ex) && mDefaultHandler != null) {
|
||||
// 如果用户没有处理则让系统默认的异常处理器来处理
|
||||
mDefaultHandler!!.uncaughtException(thread, ex)
|
||||
}
|
||||
val crashFileName = saveInfoToSD(ex)
|
||||
// 3. 缓存崩溃日志文件
|
||||
cacheCrashFile(crashFileName)
|
||||
|
||||
Process.killProcess(Process.myPid())
|
||||
}
|
||||
|
||||
/**
|
||||
* 缓存崩溃日志文件
|
||||
*
|
||||
* @param fileName
|
||||
*/
|
||||
private fun cacheCrashFile(fileName: String?) {
|
||||
PreferencesUtils.putString(mContext!!, "CRASH_FILE_NAME", fileName!!)
|
||||
}
|
||||
|
||||
val crashFile: File
|
||||
/**
|
||||
* 获取崩溃文件名称
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
get() {
|
||||
val crashFileName: String =
|
||||
PreferencesUtils
|
||||
.getString(mContext!!, "CRASH_FILE_NAME", "")!!
|
||||
return File(crashFileName)
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存获取的 软件信息,设备信息和出错信息保存在SDcard中
|
||||
*
|
||||
* @param ex
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private fun saveInfoToSD(ex: Throwable?): String? {
|
||||
var fileName: String? = null
|
||||
val sb = StringBuffer()
|
||||
|
||||
for (entry in collectDeviceInfo(mContext!!).entries) {
|
||||
val key = entry.key
|
||||
val value = entry.value
|
||||
sb.append(key).append(" = ").append(value).append("\n")
|
||||
}
|
||||
|
||||
|
||||
// sb.append(obtainExceptionInfo(ex));
|
||||
sb.append("exception").append(" = ").append(getStackTraceString(ex))
|
||||
|
||||
UAPMCustomLog.e("chong_dun",sb.toString())
|
||||
UMCrash.generateCustomLog(ex,"chongdunException");
|
||||
if (Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED) {
|
||||
val dir = File(
|
||||
mContext!!.getFilesDir().toString() + File.separator + "crash" + File.separator
|
||||
)
|
||||
// 先删除之前的异常信息
|
||||
if (dir.exists()) {
|
||||
deleteDir(dir)
|
||||
}
|
||||
// 再从新创建文件夹
|
||||
if (!dir.exists()) {
|
||||
dir.mkdir()
|
||||
}
|
||||
try {
|
||||
fileName =
|
||||
dir.toString() + File.separator + SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(
|
||||
Date()
|
||||
) + ".txt"
|
||||
val fos = FileOutputStream(fileName)
|
||||
fos.write(sb.toString().toByteArray())
|
||||
fos.flush()
|
||||
fos.close()
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
return fileName
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取系统未捕捉的错误信息
|
||||
*
|
||||
* @param throwable
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private fun obtainExceptionInfo(throwable: Throwable): String? {
|
||||
val stringWriter = StringWriter()
|
||||
val printWriter = PrintWriter(stringWriter)
|
||||
throwable.printStackTrace(printWriter)
|
||||
printWriter.close()
|
||||
return stringWriter.toString()
|
||||
}
|
||||
|
||||
/**
|
||||
* 自定义错误处理,收集错误信息 发送错误报告等操作均在此完成.
|
||||
*
|
||||
* @param ex
|
||||
*
|
||||
* @return true:如果处理了该异常信息;否则返回false.
|
||||
*/
|
||||
private fun handleException(ex: Throwable?): Boolean {
|
||||
if (ex == null) {
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
// 使用Toast来显示异常信息
|
||||
object : Thread() {
|
||||
override fun run() {
|
||||
Looper.prepare()
|
||||
//new TuiChuHttp(mContext).execute();
|
||||
ToastHelper.show(mContext!!, "程序出现异常,自行重新启动")
|
||||
// Toast.makeText(mContext, "程序出现异常,自行重新启动", Toast.LENGTH_SHORT).show();
|
||||
Looper.loop()
|
||||
}
|
||||
}.start()
|
||||
|
||||
|
||||
// 收集设备参数信息
|
||||
// collectDeviceInfo(mContext);
|
||||
|
||||
// 保存日志文件
|
||||
val str = saveCrashInfo2File(ex)
|
||||
Log.e("错误日志:::", str)
|
||||
// submitLog(str);
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* 收集设备参数信息
|
||||
*
|
||||
* @param ctx
|
||||
*/
|
||||
fun collectDeviceInfo(ctx: Context): MutableMap<String?, String?> {
|
||||
try {
|
||||
val pm = ctx.getPackageManager()
|
||||
val pi = pm.getPackageInfo(ctx.getPackageName(), PackageManager.GET_ACTIVITIES)
|
||||
if (pi != null) {
|
||||
val versionName: String = (if (pi.versionName == null) "null" else pi.versionName)!!
|
||||
infos.put("apkversion", versionName)
|
||||
infos.put("devicename", Build.BRAND)
|
||||
infos.put("devicetype", Build.MODEL)
|
||||
infos.put("android", Build.VERSION.RELEASE)
|
||||
infos.put("time", SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Date()))
|
||||
}
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
Log.e(TAG, "an error occured when collect package info", e)
|
||||
}
|
||||
return infos
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存错误信息到文件中
|
||||
*
|
||||
* @param ex
|
||||
*
|
||||
* @return 返回文件名称, 便于将文件传送到服务器
|
||||
*/
|
||||
private fun saveCrashInfo2File(ex: Throwable?): String {
|
||||
val sb = StringBuffer()
|
||||
for (entry in infos.entries) {
|
||||
val key = entry.key
|
||||
val value = entry.value
|
||||
sb.append("[" + key + ", " + value + "]\n")
|
||||
}
|
||||
sb.append("\n" + getStackTraceString(ex))
|
||||
return sb.toString() //sb接到完成异常报告,可在此断点获取错误信息
|
||||
}
|
||||
|
||||
companion object {
|
||||
val TAG: String = ExceptionHandler::class.java.getCanonicalName()
|
||||
|
||||
/**
|
||||
* 获取实例 ,单例模式
|
||||
*/
|
||||
// CrashHandler实例
|
||||
val instance: ExceptionHandler = ExceptionHandler()
|
||||
|
||||
/**
|
||||
* 递归删除目录下的所有文件及子目录下所有文件
|
||||
*
|
||||
* @param dir 将要删除的文件目录
|
||||
*
|
||||
* @return boolean Returns "true" if all deletions were successful. If a deletion fails, the
|
||||
* method stops attempting to delete and returns "false".
|
||||
*/
|
||||
fun deleteDir(dir: File): Boolean {
|
||||
if (dir.isDirectory()) {
|
||||
val children = dir.list()
|
||||
// 递归删除目录中的子目录下
|
||||
for (i in children!!.indices) {
|
||||
val success = deleteDir(File(dir, children[i]))
|
||||
if (!success) {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
// 目录此时为空,可以删除
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取捕捉到的异常的字符串
|
||||
*/
|
||||
fun getStackTraceString(tr: Throwable?): String? {
|
||||
if (tr == null) {
|
||||
return ""
|
||||
}
|
||||
|
||||
var t: Throwable? = tr
|
||||
while (t != null) {
|
||||
if (t is UnknownHostException) {
|
||||
return ""
|
||||
}
|
||||
t = t.cause
|
||||
}
|
||||
|
||||
val sw = StringWriter()
|
||||
val pw = PrintWriter(sw)
|
||||
tr.printStackTrace(pw)
|
||||
return sw.toString()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ck.ckcollar.app.listenner
|
||||
|
||||
import com.ck.ckcollar.app.model.HealthNoteModel
|
||||
|
||||
interface OnItemClickListenner {
|
||||
fun onClick(pos : Int,model : Any)
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ck.ckcollar.app.listenner
|
||||
|
||||
import com.ck.ckcollar.app.model.HealthNoteModel
|
||||
|
||||
interface OnItemLongClickListenner {
|
||||
fun onClick(pos : Int,model : Any)
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ck.ckcollar.app.listenner
|
||||
|
||||
/**
|
||||
* 自定义接口,用于给密码输入完成添加回掉事<E68E89>?
|
||||
*/
|
||||
interface OnPasswordInputFinish {
|
||||
fun inputFinish();
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class AIMessageModel: CkBaseModel() {
|
||||
var answer :String? = ""
|
||||
var chatId :String? = ""
|
||||
var conversationId :String? = ""
|
||||
|
||||
}
|
||||
12
app/src/main/java/com/ck/ckcollar/app/model/AIPhotoModel.kt
Normal file
12
app/src/main/java/com/ck/ckcollar/app/model/AIPhotoModel.kt
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class AIPhotoModel : CkBaseModel() {
|
||||
var chatId: String? = "" // 聊天ID
|
||||
var species: String? = "" // 物种
|
||||
var variety: String? = "" // 品种
|
||||
var rawAnswer: String? = "" // 原始回答
|
||||
var conversationId: String? = "" // 会话ID
|
||||
var imageUrl: String? = "" // 图片URL
|
||||
var speciesCode: String? = "" // 物种编码
|
||||
var confidence: String? = "" // 置信度
|
||||
}
|
||||
27
app/src/main/java/com/ck/ckcollar/app/model/AddressModel.kt
Normal file
27
app/src/main/java/com/ck/ckcollar/app/model/AddressModel.kt
Normal file
@@ -0,0 +1,27 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class AddressModel {
|
||||
var addressTag: String? = "" // 地址标签
|
||||
var areaName: String? = "" // 区名
|
||||
var cityName: String? = "" // 城市名
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var customTag: String? = "" // 自定义标签标识
|
||||
var detailAddress: String? = "" // 详细地址
|
||||
var fullAddress: String? = "" // 完整地址
|
||||
var id: Int = 0 // ID
|
||||
var isDefault: String? = "" // 是否默认地址
|
||||
var postalCode: String? = "" // 邮政编码
|
||||
var provinceName: String? = "" // 省份名称
|
||||
var receiverName: String? = "" // 收货人姓名
|
||||
var receiverPhone: String? = "" // 收货人电话
|
||||
var remark: String? = "" // 备注
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var userAddressLables: String? = "" // 用户地址标签
|
||||
var userId: Int = 0 // 用户ID
|
||||
|
||||
|
||||
var colUserAddressLabel : TagModel? = null
|
||||
}
|
||||
|
||||
@@ -0,0 +1,68 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class AfterSalesPrograss {
|
||||
var applyStatus: String? = "" // 申请状态 case "0": return "待审核case "1": return "审核通过 case "2": return "审核拒绝"
|
||||
var applyTime: String? = "" // 申请时间
|
||||
var areaName: String? = "" // 区名
|
||||
var attachmentUrls: String? = "" // 附件URL
|
||||
var auditResult: String? = "" // 审核结果
|
||||
var auditTime: String? = "" // 审核时间
|
||||
var cityName: String? = "" // 城市名
|
||||
var colLogistics: String? = "" // 物流信息
|
||||
var colOrderItems: String? = "" // 订单商品列表
|
||||
var colOrderProgresses: List<OrderProgress>? = null // 订单进度列表
|
||||
var commodityState: String? = "" // 商品状态
|
||||
var confirmInfo: String? = "" // 确认信息
|
||||
var confirmSign: String? = "" // 确认标识
|
||||
var confirmTime: String? = "" // 确认时间
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var currentStage: Int = 0 // 当前阶段
|
||||
var deliveryMethod: String? = "" // 配送方式
|
||||
var detailAddress: String? = "" // 详细地址
|
||||
var discountAmount: Double = 0.0 // 优惠金额
|
||||
var exchangeItemId: String? = "" // 换货商品ID
|
||||
var exchangeLogisticsNo: String? = "" // 换货物流单号
|
||||
var exchangecolLogistics: String? = "" // 换货物流信息
|
||||
var id: Int = 0 // ID
|
||||
var logisticsCode: String? = "" // 物流编码
|
||||
var logisticsNo: String? = "" // 物流单号
|
||||
var orderId: Int = 0 // 订单ID
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var postalCode: String? = "" // 邮政编码
|
||||
var provinceName: String? = "" // 省份名称
|
||||
var quantity: Int = 0 // 数量
|
||||
var receiverName: String? = "" // 收货人姓名
|
||||
var receiverPhone: String? = "" // 收货人电话
|
||||
var refundAmount: Double = 0.0 // 退款金额
|
||||
var refundReason: String? = "" // 退款原因
|
||||
var refundType: String? = "" // 退款类型
|
||||
var remark: String? = "" // 备注
|
||||
var returnItemId: String? = "" // 退货商品ID
|
||||
var returnLogisticsNo: String? = "" // 退货物流单号
|
||||
var returncolLogistics: String? = "" // 退货物流信息
|
||||
var shipmentSign: String? = "" // 发货标识
|
||||
var shipmentTime: String? = "" // 发货时间
|
||||
var subtotalAmount: Double = 0.0 // 小计金额
|
||||
var supplementInfo: String? = "" // 补充信息
|
||||
var unitPrice: Double = 0.0 // 单价
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var userId: Int = 0 // 用户ID
|
||||
var userName: String? = "" // 用户姓名
|
||||
var userPhone: String? = "" // 用户电话
|
||||
|
||||
class OrderProgress {
|
||||
var completeTime: String? = "" // 完成时间
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var orderId: Int = 0 // 订单ID
|
||||
var remark: String? = "" // 备注
|
||||
var stageName: String? = "" // 阶段名称
|
||||
var stageNo: Int = 0 // 阶段编号
|
||||
var stageType: String? = "" // 阶段类型
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class AgreementModel : CkBaseModel() {
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var pageMsg: String? = "" // 页面内容
|
||||
var pageType: String? = "" // 页面类型
|
||||
var remark: String? = "" // 备注
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class BalanceModle : CkBaseModel() {
|
||||
|
||||
var balance : Double = 0.0
|
||||
var totalExpense : Double = 0.0
|
||||
var totalRecharge : Double = 0.0
|
||||
}
|
||||
14
app/src/main/java/com/ck/ckcollar/app/model/BannarModel.kt
Normal file
14
app/src/main/java/com/ck/ckcollar/app/model/BannarModel.kt
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class BannarModel : CkBaseModel(){
|
||||
var bannerStatus: String? = ""
|
||||
var bannerUrl: String? = ""
|
||||
var createBy: String? = ""
|
||||
var createTime: String? = ""
|
||||
var id: Int = 0
|
||||
var pageName: String? = ""
|
||||
var remark: String? = ""
|
||||
var sortOrder: Int = 0
|
||||
var updateBy: String? = ""
|
||||
var updateTime: String? = ""
|
||||
}
|
||||
15
app/src/main/java/com/ck/ckcollar/app/model/CancelModel.kt
Normal file
15
app/src/main/java/com/ck/ckcollar/app/model/CancelModel.kt
Normal file
@@ -0,0 +1,15 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class CancelModel : CkBaseModel() {
|
||||
var allPassed: Boolean = false // 是否全部通过
|
||||
var conditions: List<Condition>? = null // 注销条件列表
|
||||
var phoneNumber: String? = "" // 手机号
|
||||
|
||||
var assetsUncleared: Boolean = false //账户是否仍有未结清的余额或积分
|
||||
}
|
||||
|
||||
class Condition {
|
||||
var name: String? = "" // 条件名称
|
||||
var passed: Boolean = false // 是否通过
|
||||
var message: String? = "" // 提示消息
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import java.io.Serializable
|
||||
open class CkBaseModel : Serializable {
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class CollarModel {
|
||||
var name : String? = ""
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class CollarTypeModel : CkBaseModel(){
|
||||
|
||||
|
||||
var total : Int = 0
|
||||
var rows : List<TypeDataModel> = listOf()
|
||||
class TypeDataModel : CkBaseModel(){
|
||||
|
||||
var createBy: String = ""
|
||||
var createTime: String = ""
|
||||
var updateBy: String = ""
|
||||
var updateTime: String = ""
|
||||
var remark: String = ""
|
||||
var id: Long = 0
|
||||
var customerId: Int = 0
|
||||
var patName: String = ""
|
||||
var patSpecies: String = ""
|
||||
var patVariety: String = ""
|
||||
var patAge: String = ""
|
||||
var patHeight: String = ""
|
||||
var patWeight: String = ""
|
||||
var patBodytype: String = ""
|
||||
var patColor: String = ""
|
||||
var patProphylactic: String = ""
|
||||
var patUser: String = ""
|
||||
var collNum: String = ""
|
||||
var patPhoto: String = ""
|
||||
var tenantId: String = ""
|
||||
var createDept: Int = 0
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ConfirmOrderModel {
|
||||
var address: AddressModel? = null // 地址信息
|
||||
var addressId: Int = 0 // 地址ID
|
||||
var availablePoints: Double = 0.0 // 可用积分
|
||||
var buyerNote: String? = "" // 买家备注
|
||||
var discountAmount: Double = 0.0 // 优惠金额
|
||||
var freightAmount: Double = 0.0 // 运费金额
|
||||
var goodsTotalAmount: Double = 0.0 // 商品总金额
|
||||
var items: List<OrderItem>? = null // 订单商品列表
|
||||
var memberAmount: Double = 0.0 // 会员价金额
|
||||
var memberDiscount: Double = 0.0 // 会员折扣金额
|
||||
var orderId: Int = 0 // 订单ID
|
||||
var orderSource: String? = "" // 订单来源
|
||||
var payAmount: Double = 0.0 // 支付金额
|
||||
var payAmounts: String? = "" // 支付金额列表
|
||||
var payType: String? = "" // 支付方式
|
||||
var payTypes: String? = "" // 支付方式列表
|
||||
var pointsDeduction: Double = 0.0 // 积分抵扣金额
|
||||
var userId: Int = 0 // 用户ID
|
||||
var isPoint : Int = 0 //积分是否足够(0足够1不足)
|
||||
|
||||
class OrderItem {
|
||||
var cartId: Int = 0 // 购物车ID
|
||||
var comCover: String? = "" // 商品封面图
|
||||
var comId: Int = 0 // 商品ID
|
||||
var comName: String? = "" // 商品名称
|
||||
var comNum: Long = 0L // 商品编号
|
||||
var comPrice: Double = 0.0 // 商品价格
|
||||
var memPrice: Double = 0.0 // 会员价格
|
||||
var memSubtotal: Double = 0.0 // 会员价小计金额
|
||||
var quantity: Int = 0 // 数量
|
||||
var specId: Int = 0 // 规格ID
|
||||
var specName: String? = "" // 规格名称
|
||||
var subtotal: Double = 0.0 // 小计金额
|
||||
}
|
||||
|
||||
class AddressModel {
|
||||
var areaName: String? = "" // 区名
|
||||
var cityName: String? = "" // 城市名
|
||||
var detailAddress: String? = "" // 详细地址
|
||||
var fullAddress: String? = "" // 完整地址
|
||||
var id: Int = 0 // ID
|
||||
var postalCode: String? = "" // 邮政编码
|
||||
var provinceName: String? = "" // 省份名称
|
||||
var receiverName: String? = "" // 收货人姓名
|
||||
var receiverPhone: String? = "" // 收货人电话
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class CreateOrderModel : CkBaseModel() {
|
||||
var userId: Int = 0 // 用户ID
|
||||
var orderId: Int = 0 // 订单ID
|
||||
var addressId: Int = 0 // 地址ID
|
||||
var orderSource: String? = "" // 订单来源
|
||||
var address: OrderAddress? = null // 收货地址
|
||||
var items: List<OrderItem>? = null // 订单商品列表
|
||||
var goodsTotalAmount: Double = 0.0 // 商品总金额
|
||||
var memberDiscount: Double = 0.0 // 会员折扣金额
|
||||
var memberAmount: Double = 0.0 // 会员价金额
|
||||
var freightAmount: Double = 0.0 // 运费金额
|
||||
var discountAmount: Double = 0.0 // 优惠金额
|
||||
var availablePoints: Double = 0.0 // 可用积分
|
||||
var pointsDeduction: Double = 0.0 // 积分抵扣金额
|
||||
var payAmount: Double = 0.0 // 实付金额
|
||||
var payType: String? = "" // 支付方式
|
||||
var buyerNote: String? = "" // 买家备注
|
||||
|
||||
class OrderAddress {
|
||||
var id: Int = 0 // 地址ID
|
||||
var receiverName: String? = "" // 收货人姓名
|
||||
var receiverPhone: String? = "" // 收货人电话
|
||||
var provinceName: String? = "" // 省份名称
|
||||
var cityName: String? = "" // 城市名
|
||||
var areaName: String? = "" // 区名
|
||||
var detailAddress: String? = "" // 详细地址
|
||||
var postalCode: String? = "" // 邮政编码
|
||||
var fullAddress: String? = "" // 完整地址
|
||||
}
|
||||
|
||||
class OrderItem {
|
||||
var cartId: Int = 0 // 购物车ID
|
||||
var comId: Int = 0 // 商品ID
|
||||
var comNum: Long = 0L // 商品编号
|
||||
var comName: String? = "" // 商品名称
|
||||
var comCover: String? = "" // 商品封面图
|
||||
var comPrice: Double = 0.0 // 商品价格
|
||||
var memPrice: Double = 0.0 // 会员价格
|
||||
var quantity: Int = 0 // 数量
|
||||
var specName: String? = "" // 规格名称
|
||||
var specId: Int = 0 // 规格ID
|
||||
var subtotal: Double = 0.0 // 小计金额
|
||||
var memSubtotal: Double = 0.0 // 会员价小计金额
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class CustomerMessageModel {
|
||||
var total : Int = 0
|
||||
var rows: List<MessageItemModel>? = null
|
||||
|
||||
class MessageItemModel {
|
||||
var content: String? = "" // 消息内容
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var customerId: Int = 0 // 客户ID
|
||||
var delFlag: String? = "" // 删除标记
|
||||
var isRead: String? = "" // 是否已读
|
||||
var msgId: Int = 0 // 消息ID
|
||||
var readTime: String? = "" // 读取时间
|
||||
var remark: String? = "" // 备注
|
||||
var senderAvatar: String? = "" // 发送者头像
|
||||
var senderId: Int = 0 // 发送者ID
|
||||
var senderName: String? = "" // 发送者名称
|
||||
var senderType: String? = "" // 发送者类型
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
|
||||
var url : String? = ""
|
||||
|
||||
var uuid : String? = ""
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class CustomerStatusModel : CkBaseModel(){
|
||||
|
||||
var tip : String? = null
|
||||
var agentOnline : Boolean =false
|
||||
|
||||
var servicePhone :String? = ""
|
||||
|
||||
var serviceStartTime : String? = ""
|
||||
var serviceEndTime : String? = ""
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class DepositModel : CkBaseModel(){
|
||||
|
||||
var depositType: String? = "" // 押金类型
|
||||
var outOrderNo: String? = "" // 外部订单号
|
||||
var orderStr: String? = "" // 订单字符串
|
||||
var amount: Double = 0.0 // 金额
|
||||
}
|
||||
35
app/src/main/java/com/ck/ckcollar/app/model/ExpressModel.kt
Normal file
35
app/src/main/java/com/ck/ckcollar/app/model/ExpressModel.kt
Normal file
@@ -0,0 +1,35 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ExpressModel {
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var remark: String? = "" // 备注
|
||||
var params: Map<String, Any?>? = null // 参数
|
||||
var id: Int = 0 // ID
|
||||
var orderId: Int = 0 // 订单ID
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var logisticsCode: String? = "" // 物流编码
|
||||
var logisticsCompanyName: String? = "" // 物流公司名称
|
||||
var logisticsNo: String? = "" // 物流单号
|
||||
var logisticsStatus: String? = "" // 物流状态
|
||||
var signTime: String? = "" // 签收时间
|
||||
var deliveryMethod: String? = "" // 配送方式
|
||||
var routeMapUrl: String? = "" // 路线地图URL
|
||||
var logisticsPhone: String? = "" // 物流电话
|
||||
var colLogisticsInfos: List<ColLogisticsInfo>? = null // 物流信息列表
|
||||
|
||||
class ColLogisticsInfo {
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var remark: String? = "" // 备注
|
||||
var params: Map<String, Any?>? = null // 参数
|
||||
var id: Int = 0 // ID
|
||||
var logisticsId: Int = 0 // 物流ID
|
||||
var logisticsTime: String? = "" // 物流时间
|
||||
var logisticsDesc: String? = "" // 物流描述
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class HealthNoteModel : CkBaseModel(){
|
||||
var total : Int = 0
|
||||
var rows : List<NoteModel> = listOf()
|
||||
class NoteModel : CkBaseModel(){
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var knowledgeMsg: String? = "" // 知识内容
|
||||
var imageUrl: String? = "" // 图片
|
||||
var pageName: String? = "" // 页面名称
|
||||
var pageStatus: String? = "" // 页面状态
|
||||
var remark: String? = "" // 备注
|
||||
var sortOrder: Int = 0 // 排序顺序
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
46
app/src/main/java/com/ck/ckcollar/app/model/HomeModel.kt
Normal file
46
app/src/main/java/com/ck/ckcollar/app/model/HomeModel.kt
Normal file
@@ -0,0 +1,46 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class HomeModel : CkBaseModel() {
|
||||
|
||||
var banners: List<BannarModel>? = listOf()
|
||||
|
||||
var equipment: EquipmentModel? = null
|
||||
|
||||
var lowBattery: Boolean? = false
|
||||
|
||||
class EquipmentModel : CkBaseModel() {
|
||||
var collNum: String? = "" // 设备编号
|
||||
var createBy: String? = "" // 创建人
|
||||
var createDept: String? = "" // 创建部门
|
||||
var createTime: String? = "" // 创建时间
|
||||
var custName: String? = "" // 客户名称
|
||||
var customerId: Int = 0 // 客户ID
|
||||
var equStatus: String? = "" // 设备状态
|
||||
var equUpdatetime: String? = "" // 设备更新时间
|
||||
var firmVersion: String? = "" // 固件版本
|
||||
var healthVitality: String? = "" // 健康活力值
|
||||
var id: Int = 0 // 设备ID
|
||||
var lastLocation: String? = "" // 最后位置
|
||||
var latitude: Double = 0.0 // 纬度
|
||||
var longitude: Double = 0.0 // 经度
|
||||
var mileage: Double = 0.0 // 里程
|
||||
var patId: Int = 0 // 宠物ID
|
||||
var patName: String? = "" // 宠物名称
|
||||
var powerLevel: String? = "" // 电量等级
|
||||
var remark: String? = "" // 备注
|
||||
var steps: String? = "" // 步数
|
||||
var tenantId: String? = "" // 租户ID
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
|
||||
/**
|
||||
|
||||
是否无法接收经纬度(即无法定位):设备当前拿不到有效GPS(如进入遮挡/地下/盲区),
|
||||
|
||||
或已离线/超时无法上报位置。前端可在该值为 true 时展示
|
||||
|
||||
“当前位置无法接收信号,最后一次定位是:xxx”
|
||||
*/
|
||||
var noSignal : Boolean = false //
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ImageModel {
|
||||
|
||||
var isAdd : Boolean = false
|
||||
var path : String? = ""
|
||||
var url : String? = ""
|
||||
|
||||
}
|
||||
28
app/src/main/java/com/ck/ckcollar/app/model/JsonBean.kt
Normal file
28
app/src/main/java/com/ck/ckcollar/app/model/JsonBean.kt
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
import com.contrarywind.interfaces.IPickerViewData
|
||||
|
||||
class JsonBean : IPickerViewData {
|
||||
/**
|
||||
* name : 省份
|
||||
* city : [{"name":"北京市","area":["东城区","西城区","崇文区","宣武区","朝阳区"]}]
|
||||
*/
|
||||
var name: String? = null
|
||||
var city: MutableList<CityBean?>? = null
|
||||
|
||||
// 实现 IPickerViewData 接口,
|
||||
// 这个用来显示在PickerView上面的字符串,
|
||||
// PickerView会通过IPickerViewData获取getPickerViewText方法显示出来。
|
||||
override fun getPickerViewText(): String? {
|
||||
return this.name
|
||||
}
|
||||
|
||||
|
||||
class CityBean {
|
||||
/**
|
||||
* name : 城市
|
||||
* area : ["东城区","西城区","崇文区","昌平区"]
|
||||
*/
|
||||
var name: String? = null
|
||||
var area: MutableList<String?>? = null
|
||||
}
|
||||
}
|
||||
12
app/src/main/java/com/ck/ckcollar/app/model/LoginModel.kt
Normal file
12
app/src/main/java/com/ck/ckcollar/app/model/LoginModel.kt
Normal file
@@ -0,0 +1,12 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class LoginModel{
|
||||
|
||||
var token : String ? = ""
|
||||
|
||||
var needBindPhone : Boolean = false
|
||||
|
||||
var wxAvatar : String? = ""
|
||||
var wxNickname : String? = ""
|
||||
var openid : String? = ""
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class LogisticsModel : CkBaseModel() {
|
||||
var code : String? = ""
|
||||
var name : String? = ""
|
||||
}
|
||||
36
app/src/main/java/com/ck/ckcollar/app/model/MemberModel.kt
Normal file
36
app/src/main/java/com/ck/ckcollar/app/model/MemberModel.kt
Normal file
@@ -0,0 +1,36 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class MemberModel {
|
||||
var balance: Double = 0.0 // 余额
|
||||
var deadlineTime: String? = "" // 截止时间
|
||||
var isMember: Boolean = false // 是否会员
|
||||
var points: Double = 0.0 // 积分
|
||||
var registrationTime: String? = "" // 注册时间
|
||||
var orderStr: String? = "" // 订单字符串
|
||||
var amount: Double = 0.0 // 金额
|
||||
var payType: String? = "" // 支付方式
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var order: MemberOrder? = null // 订单信息
|
||||
|
||||
class MemberOrder {
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var durationMonths: Int = 0 // 持续月份数
|
||||
var id: Int = 0 // ID
|
||||
var memberEndTime: String? = "" // 会员结束时间
|
||||
var memberStartTime: String? = "" // 会员开始时间
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var orderStatus: Int = 0 // 订单状态
|
||||
var packageId: Int = 0 // 套餐ID
|
||||
var packageName: String? = "" // 套餐名称
|
||||
var payAmount: Double = 0.0 // 支付金额
|
||||
var payTime: String? = "" // 支付时间
|
||||
var payType: String? = "" // 支付方式
|
||||
var placeTime: String? = "" // 下单时间
|
||||
var remark: String? = "" // 备注
|
||||
var transactionId: String? = "" // 交易ID
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var userId: Int = 0 // 用户ID
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class MemberPriceModel {
|
||||
var actualPrice: Double = 0.0 // 实际价格
|
||||
var durationMonths: Int = 0 // 持续月份数
|
||||
var id: Int = 0 // ID
|
||||
var memDesc: String? = "" // 会员描述
|
||||
var packageName: String? = "" // 套餐名称
|
||||
var price: Double = 0.0 // 价格
|
||||
}
|
||||
17
app/src/main/java/com/ck/ckcollar/app/model/MessageModel.kt
Normal file
17
app/src/main/java/com/ck/ckcollar/app/model/MessageModel.kt
Normal file
@@ -0,0 +1,17 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class MessageModel : CkBaseModel() {
|
||||
var userId: Int = 0 // 用户ID
|
||||
var noticeType: String? = "" // 通知类型
|
||||
var noticeTitle: String? = "" // 通知标题
|
||||
var noticeContent: String? = "" // 通知内容
|
||||
var businessType: String? = "" // 业务类型
|
||||
var businessId: String? = "" // 业务ID
|
||||
var isRead: Int = 0 // 是否已读
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var remark: String? = "" // 备注
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
}
|
||||
155
app/src/main/java/com/ck/ckcollar/app/model/OrderModel.kt
Normal file
155
app/src/main/java/com/ck/ckcollar/app/model/OrderModel.kt
Normal file
@@ -0,0 +1,155 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
import com.ck.ckcollar.app.R
|
||||
import com.ck.ckcollar.app.ui.act.order.AfterSalesActivity
|
||||
import com.ck.ckcollar.app.ui.act.order.AfterSalesProgressActivity
|
||||
import com.ck.ckcollar.app.ui.act.order.InputLogisticsNumActivity
|
||||
import com.ck.ckcollar.app.ui.act.order.LogisticsInfoActivity
|
||||
import com.ck.ckcollar.app.ui.act.setting.AddressActivity
|
||||
import com.ck.ckcollar.app.ui.dialog.CKAlertDialog
|
||||
import com.ck.ckcollar.app.utils.networkone.ICallback
|
||||
import com.ck.ckcollar.app.utils.networkone.TTHttpClient
|
||||
import com.ck.ckcollar.app.utils.networkone.model.TTRequestData
|
||||
import com.ck.ckcollar.app.utils.networkone.model.TTRequestParam
|
||||
import com.google.gson.Gson
|
||||
import com.tt.kit.model.Data
|
||||
import com.tt.kit.model.DataCollection
|
||||
|
||||
class OrderModel {
|
||||
|
||||
var total : Int = 0
|
||||
var rows : List<Order>? = null
|
||||
|
||||
class Order{
|
||||
var buyerNote: String? = "" // 买家备注
|
||||
// var colLogistics: List<ColLogistics>? = null // 物流信息
|
||||
var colOrderItems: List<OrderItem>? = null // 订单商品列表
|
||||
// var colOrderProgressList: String? = "" // 订单进度列表
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var createTimeScope: String? = "" // 创建时间范围
|
||||
var currentStage: Int = 0 // 当前阶段
|
||||
var delFlag: String? = "" // 删除标记
|
||||
var deliveryType: String? = "" // 配送类型
|
||||
var discountAmount: Double = 0.0 // 优惠金额
|
||||
var finishTime: String? = "" // 完成时间
|
||||
var freightAmount: Double = 0.0 // 运费金额
|
||||
var goodsTotalAmount: Double = 0.0 // 商品总金额
|
||||
var id: Int = 0 // ID
|
||||
var integral: Double = 0.0 // 积分
|
||||
var lastLoginTime: String? = "" // 最后登录时间
|
||||
var nickname: String? = "" // 昵称
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var orderSource: String? = "" // 订单来源
|
||||
/**
|
||||
* 0待付款 1待发货 2已发货 3已收货 4已完成 5已关闭 6已取消 7待审核 8已退款 9退款中 10拒绝退款
|
||||
*/
|
||||
var orderStatus: Int = 0 // 订单状态
|
||||
var orderType: String? = "" // 订单类型
|
||||
var packageId: String? = "" // 套餐ID
|
||||
var payAmount: Double = 0.0 // 支付金额
|
||||
var payTime: String? = "" // 支付时间
|
||||
var payType: String? = "" // 支付方式
|
||||
var placeTime: String? = "" // 下单时间
|
||||
var placeTimeArr: String? = "" // 下单时间数组
|
||||
var receiveTime: String? = "" // 收货时间
|
||||
var receiverAddress: String? = "" // 收货地址
|
||||
var receiverName: String? = "" // 收货人姓名
|
||||
var receiverPhone: String? = "" // 收货人电话
|
||||
var registerTime: String? = "" // 注册时间
|
||||
var remark: String? = "" // 备注
|
||||
var shipTime: String? = "" // 发货时间
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var userAge: String? = "" // 用户年龄
|
||||
var userGender: Int = 0 // 用户性别
|
||||
var userId: Int = 0 // 用户ID
|
||||
var userName: String? = "" // 用户姓名
|
||||
var userPhone: String? = "" // 用户电话
|
||||
var shopName: String? = "" // 商店名称
|
||||
|
||||
|
||||
var colRefundApply : RefundApply? = null //退货信息
|
||||
|
||||
var islogisticsNo :String? = null // 0未填写1已填写
|
||||
}
|
||||
class OrderItem {
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var deliveryStatus: String? = "" // 配送状态
|
||||
var discountAmount: Double = 0.0 // 优惠金额
|
||||
var goodsId: Int = 0 // 商品ID
|
||||
var goodsImg: String? = "" // 商品图片
|
||||
var goodsName: String? = "" // 商品名称
|
||||
var id: Int = 0 // ID
|
||||
var orderId: Int = 0 // 订单ID
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var quantity: Int = 0 // 数量
|
||||
var remark: String? = "" // 备注
|
||||
var specId: Int = 0 // 规格ID
|
||||
var specInfo: String? = "" // 规格信息
|
||||
var subtotalAmount: Double = 0.0 // 小计金额
|
||||
var unitPrice: Double = 0.0 // 单价
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
}
|
||||
|
||||
/**
|
||||
* 物流信息表
|
||||
*/
|
||||
class ColLogistics {
|
||||
/**
|
||||
* 创建者
|
||||
*/
|
||||
var createBy: String? = null
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
var createTime: String? = null
|
||||
|
||||
/**
|
||||
* ID
|
||||
*/
|
||||
private var id: Long = 0
|
||||
|
||||
/**
|
||||
* 物流
|
||||
*/
|
||||
var logisticsCode: String? = null
|
||||
|
||||
/**
|
||||
* 订单ID
|
||||
*/
|
||||
var orderId: Long = 0
|
||||
|
||||
/**
|
||||
* 订单号
|
||||
*/
|
||||
var orderNo: String? = null
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
var remark: String? = null
|
||||
|
||||
/**
|
||||
* 更新者
|
||||
*/
|
||||
var updateBy: String? = null
|
||||
|
||||
/**
|
||||
* 更新时间
|
||||
*/
|
||||
var updateTime: String? = null
|
||||
|
||||
}
|
||||
|
||||
|
||||
class RefundApply{
|
||||
var id: Int = 0
|
||||
var applyStatus : String? = ""
|
||||
var returnLogisticsNo : String? = ""
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class PayOrderModel : CkBaseModel(){
|
||||
var orderStr: String? = "" // 订单字符串
|
||||
var amount: String? = "" // 金额
|
||||
var orderNo: String? = "" // 订单编号
|
||||
var info : String? = ""
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class PayPasswordStatus : CkBaseModel(){
|
||||
|
||||
var isSet : Boolean = false
|
||||
var status : String? = ""
|
||||
}
|
||||
48
app/src/main/java/com/ck/ckcollar/app/model/PayResult.kt
Normal file
48
app/src/main/java/com/ck/ckcollar/app/model/PayResult.kt
Normal file
@@ -0,0 +1,48 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
import android.text.TextUtils
|
||||
|
||||
|
||||
class PayResult(rawResult: Map<String?, String?>?) {
|
||||
/**
|
||||
* @return the resultStatus
|
||||
*/
|
||||
var resultStatus: String? = null
|
||||
private set
|
||||
|
||||
/**
|
||||
* @return the result
|
||||
*/
|
||||
var result: String? = null
|
||||
private set
|
||||
|
||||
/**
|
||||
* @return the memo
|
||||
*/
|
||||
var memo: String? = null
|
||||
private set
|
||||
|
||||
init {
|
||||
if (rawResult == null) {
|
||||
|
||||
}
|
||||
|
||||
if (rawResult != null){
|
||||
for (key in rawResult.keys) {
|
||||
if (TextUtils.equals(key, "resultStatus")) {
|
||||
resultStatus = rawResult.get(key)
|
||||
} else if (TextUtils.equals(key, "result")) {
|
||||
result = rawResult.get(key)
|
||||
} else if (TextUtils.equals(key, "memo")) {
|
||||
memo = rawResult.get(key)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return ("resultStatus={" + resultStatus + "};memo={" + memo
|
||||
+ "};result={" + result + "}")
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class PeopleCustomerMessageModel {
|
||||
var messages: List<CustomerMessageModel.MessageItemModel>? = null
|
||||
|
||||
|
||||
}
|
||||
14
app/src/main/java/com/ck/ckcollar/app/model/PointsModel.kt
Normal file
14
app/src/main/java/com/ck/ckcollar/app/model/PointsModel.kt
Normal file
@@ -0,0 +1,14 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class PointsModel : CkBaseModel(){
|
||||
|
||||
var memberPoints: Double = 0.0
|
||||
var totalGained: Double = 0.0
|
||||
var totalUsed: Double = 0.0
|
||||
|
||||
class PointsRecordModel : CkBaseModel(){
|
||||
var title:String? = ""
|
||||
var amount:Double = 0.0
|
||||
var createTime:String? = ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ProductTypeModel : CkBaseModel() {
|
||||
|
||||
var comId: Int = 0 // 商品ID
|
||||
var comPrice: Double = 0.0 // 商品价格
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var inventory: Int = 0 // 库存
|
||||
var memPrice: Double = 0.0 // 会员价格
|
||||
var profitRatio: Int = 0 // 利润比例
|
||||
var remark: String? = "" // 备注
|
||||
var salesVolume: Int = 0 // 销量
|
||||
var specifyName: String? = "" // 规格名称
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var weight: Double = 0.0 // 重量
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class RechargeModel {
|
||||
var orderStr :String? = null
|
||||
var amount : Double? = null
|
||||
var RC1782974779440000002 : String? = null
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class RecordDetailsModel {
|
||||
var actualAmount: Double = 0.0 // 实际金额
|
||||
var amount: Double = 0.0 // 金额
|
||||
var applyTime: String? = "" // 申请时间
|
||||
var arriveTime: String? = "" // 到账时间
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var payMethod: String? = "" // 支付方式
|
||||
var payeeAccount: String? = "" // 收款人账户
|
||||
var processTime: String? = "" // 处理时间
|
||||
var revenueType: String? = "" // 收支类型
|
||||
var serialNo: String? = "" // 流水号
|
||||
var serviceFee: Double = 0.0 // 服务费
|
||||
var status: String? = "" // 状态
|
||||
var title: String? = "" // 标题
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class RecordModel {
|
||||
var amount: Double = 0.0 // 金额
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var title: String? = "" // 标题
|
||||
var revenueType : String? = "" //0充值1提现2订单支付3退款
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ShopCarCoutTotalModel : CkBaseModel() {
|
||||
|
||||
var count : Int = 0
|
||||
var totalMoney : Double? = 0.0
|
||||
}
|
||||
43
app/src/main/java/com/ck/ckcollar/app/model/ShopCarModel.kt
Normal file
43
app/src/main/java/com/ck/ckcollar/app/model/ShopCarModel.kt
Normal file
@@ -0,0 +1,43 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
import java.math.BigDecimal
|
||||
|
||||
class ShopCarModel {
|
||||
|
||||
var comCover: String? = "" // 商品封面图
|
||||
var comId: Int = 0 // 商品ID
|
||||
var comName: String? = "" // 商品名称
|
||||
var comNum: Long = 0L // 商品编号
|
||||
var comPrice: Double = 0.0 // 商品价格
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var memPrice: Double = 0.0 // 会员价格
|
||||
var quantity: Int = 0 // 数量
|
||||
var remark: String? = "" // 备注
|
||||
var selected: String? = "" // 是否选中
|
||||
var specId: Int = 0 // 规格ID
|
||||
var specName: String? = "" // 规格名称
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var userId: Int = 0 // 用户ID
|
||||
|
||||
fun toOrderItem(): CreateOrderModel.OrderItem {
|
||||
var model = CreateOrderModel.OrderItem()
|
||||
|
||||
model.comId = id
|
||||
model.comNum = comNum
|
||||
model.comName = comName
|
||||
model.comCover = comCover
|
||||
model.comPrice = comPrice
|
||||
model.memPrice = memPrice
|
||||
model.quantity = quantity
|
||||
|
||||
var countDecial = BigDecimal(quantity)
|
||||
|
||||
model.subtotal = BigDecimal(model.comPrice).multiply(countDecial).toDouble()
|
||||
model.memSubtotal = BigDecimal(model.memPrice).multiply(countDecial).toDouble()
|
||||
|
||||
return model
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ShopHotModel {
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ShopItemModel {
|
||||
var id : Int? = -1
|
||||
var imgUrl : String? = ""
|
||||
var comType : String? = ""
|
||||
var sort : Int? = 0
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class ShopProductModel : CkBaseModel() {
|
||||
|
||||
var total : Int = 0
|
||||
var rows: List<ProductModel>? = listOf()
|
||||
|
||||
class ProductModel : CkBaseModel() {
|
||||
var colCommodityListCbs: List<ProductTypeModel>? = null // 集合类型
|
||||
var comCarousel: String? = "" // 轮播图
|
||||
var comCover: String? = "" // 封面图
|
||||
var comDetail: String? = "" // 商品详情
|
||||
var comName: String? = "" // 商品名称
|
||||
var comNum: Long = 0L // 商品编号
|
||||
var comPrice: Double = 0.0 // 商品价格
|
||||
var comStatus: String? = "" // 商品状态
|
||||
var comType: String? = "" // 商品类型
|
||||
var comTypeName: String? = "" // 商品类型名称
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var createTimeScope: String? = "" // 创建时间范围
|
||||
var id: Int = 0 // ID
|
||||
var inventory: Int = 0 // 库存
|
||||
var memPrice: Double = 0.0 // 会员价格
|
||||
var recomSlot: String? = "" // 推荐位
|
||||
var releaseTime: String? = "" // 发布时间
|
||||
var releaseTimeArr: List<String>? = null // 发布时间数组
|
||||
var remark: String? = "" // 备注
|
||||
var salesVolume: Int = 0 // 销量
|
||||
var serialNum: Int = 0 // 序列号
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
|
||||
|
||||
fun toOrderItem(): CreateOrderModel.OrderItem {
|
||||
var model = CreateOrderModel.OrderItem()
|
||||
|
||||
model.comId = id
|
||||
model.comNum = comNum
|
||||
model.comName = comName
|
||||
model.comCover = comCover
|
||||
model.comPrice = comPrice
|
||||
model.memPrice = memPrice
|
||||
return model
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
18
app/src/main/java/com/ck/ckcollar/app/model/TagModel.kt
Normal file
18
app/src/main/java/com/ck/ckcollar/app/model/TagModel.kt
Normal file
@@ -0,0 +1,18 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class TagModel {
|
||||
var isAdd : Boolean? = false
|
||||
var isMore : Boolean? = false
|
||||
|
||||
var addressKey: String? = "" // 地址键值
|
||||
var addressLabel: String? = "" // 地址标签名称
|
||||
var createBy: String? = "" // 创建人
|
||||
var createTime: String? = "" // 创建时间
|
||||
var id: Int = 0 // ID
|
||||
var isDefault: String? = "" // 是否默认标签
|
||||
var remark: String? = "" // 备注
|
||||
var updateBy: String? = "" // 更新人
|
||||
var updateTime: String? = "" // 更新时间
|
||||
var userId: Int = 0 // 用户ID
|
||||
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class UnReadModel : CkBaseModel(){
|
||||
|
||||
var unreadCount : Int = 0
|
||||
|
||||
|
||||
}
|
||||
11
app/src/main/java/com/ck/ckcollar/app/model/UpdateModel.kt
Normal file
11
app/src/main/java/com/ck/ckcollar/app/model/UpdateModel.kt
Normal file
@@ -0,0 +1,11 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class UpdateModel : CkBaseModel(){
|
||||
//{"androidVersion":1,"content":"","iosVersion":1,"isForce":false}
|
||||
|
||||
var androidVersion : Int = 0
|
||||
var iosVersion : Int = 0
|
||||
var isForce : Boolean = false
|
||||
var content : String? = ""
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.ck.ckcollar.app.model
|
||||
|
||||
class UploadModel: CkBaseModel() {
|
||||
|
||||
var urls : String = ""
|
||||
var newFileNames : String = ""
|
||||
var fileNames : String = ""
|
||||
var originalFilenames : String = ""
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user