This commit is contained in:
fengjignqi
2026-07-30 15:22:32 +08:00
parent f689e5ae15
commit 6fc4fc29b9
1004 changed files with 49259 additions and 0 deletions

28
.gitignore vendored Normal file
View 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/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

Binary file not shown.

View File

@@ -0,0 +1,2 @@
#Thu Jul 30 09:08:42 CST 2026
gradle.version=8.13

Binary file not shown.

View 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

Binary file not shown.

View File

3
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,3 @@
# Default ignored files
/shelf/
/workspace.xml

1
.idea/.name generated Normal file
View File

@@ -0,0 +1 @@
CkCollar_app

6
.idea/AndroidProjectSystem.xml generated Normal file
View 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

File diff suppressed because it is too large Load Diff

6
.idea/compiler.xml generated Normal file
View 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
View 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
View 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
View 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
View 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
View 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>

View 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
View 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
View 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
View File

@@ -0,0 +1,3 @@
{
"java.configuration.updateBuildConfiguration": "interactive"
}

BIN
android_123456.keystore Normal file

Binary file not shown.

1
app/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/build

159
app/build.gradle Normal file
View 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

Binary file not shown.

BIN
app/libs/MNMLKitScanner.aar Normal file

Binary file not shown.

BIN
app/libs/changeskin.aar Normal file

Binary file not shown.

BIN
app/libs/library.aar Normal file

Binary file not shown.

BIN
app/libs/photoview.aar Normal file

Binary file not shown.

BIN
app/libs/pickerview.aar Normal file

Binary file not shown.

BIN
app/libs/wheelview.aar Normal file

Binary file not shown.

51
app/proguard-rules.pro vendored Normal file
View 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);
}

Binary file not shown.

Binary file not shown.

View 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
}

View File

@@ -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)
}
}

View 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" />-->
<!-- &lt;!&ndash; 声明应用需要使用蓝牙功能 &ndash;&gt;-->
<!-- <uses-feature-->
<!-- android:name="android.hardware.bluetooth"-->
<!-- android:required="true" />-->
<!-- &lt;!&ndash; 必要的蓝牙权限 &ndash;&gt;-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH" />-->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />-->
<!-- &lt;!&ndash; 从 Android 12 (API 31) 开始,需要新的蓝牙扫描/连接权限 &ndash;&gt;-->
<!-- <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>

File diff suppressed because it is too large Load Diff

View 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)
}
}

View 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;
}
}

View 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)}")
}
}

View File

@@ -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()
}
}
}

View File

@@ -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)
}

View File

@@ -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)
}

View File

@@ -0,0 +1,8 @@
package com.ck.ckcollar.app.listenner
/**
* 自定义接口用于给密码输入完成添加回掉事<E68E89>?
*/
interface OnPasswordInputFinish {
fun inputFinish();
}

View File

@@ -0,0 +1,8 @@
package com.ck.ckcollar.app.model
class AIMessageModel: CkBaseModel() {
var answer :String? = ""
var chatId :String? = ""
var conversationId :String? = ""
}

View 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? = "" // 置信度
}

View 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
}

View File

@@ -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? = "" // 更新时间
}
}

View File

@@ -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? = "" // 更新时间
}

View File

@@ -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
}

View 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? = ""
}

View 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? = "" // 提示消息
}

View File

@@ -0,0 +1,6 @@
package com.ck.ckcollar.app.model
import com.google.gson.annotations.SerializedName
import java.io.Serializable
open class CkBaseModel : Serializable {
}

View File

@@ -0,0 +1,5 @@
package com.ck.ckcollar.app.model
class CollarModel {
var name : String? = ""
}

View File

@@ -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
}
}

View File

@@ -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? = "" // 收货人电话
}
}

View File

@@ -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 // 会员价小计金额
}
}

View File

@@ -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? = ""
}
}

View File

@@ -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? = ""
}

View File

@@ -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 // 金额
}

View 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? = "" // 物流描述
}
}

View File

@@ -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? = "" // 更新时间
}
}

View 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 //
}
}

View File

@@ -0,0 +1,9 @@
package com.ck.ckcollar.app.model
class ImageModel {
var isAdd : Boolean = false
var path : String? = ""
var url : String? = ""
}

View 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
}
}

View 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? = ""
}

View File

@@ -0,0 +1,6 @@
package com.ck.ckcollar.app.model
class LogisticsModel : CkBaseModel() {
var code : String? = ""
var name : String? = ""
}

View 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
}
}

View File

@@ -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 // 价格
}

View 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? = "" // 更新时间
}

View 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? = ""
}
}

View File

@@ -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? = ""
}

View File

@@ -0,0 +1,7 @@
package com.ck.ckcollar.app.model
class PayPasswordStatus : CkBaseModel(){
var isSet : Boolean = false
var status : String? = ""
}

View 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 + "}")
}
}

View File

@@ -0,0 +1,7 @@
package com.ck.ckcollar.app.model
class PeopleCustomerMessageModel {
var messages: List<CustomerMessageModel.MessageItemModel>? = null
}

View 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? = ""
}
}

View File

@@ -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 // 重量
}

View File

@@ -0,0 +1,7 @@
package com.ck.ckcollar.app.model
class RechargeModel {
var orderStr :String? = null
var amount : Double? = null
var RC1782974779440000002 : String? = null
}

View File

@@ -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? = "" // 标题
}

View File

@@ -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退款
}

View File

@@ -0,0 +1,7 @@
package com.ck.ckcollar.app.model
class ShopCarCoutTotalModel : CkBaseModel() {
var count : Int = 0
var totalMoney : Double? = 0.0
}

View 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
}
}

View File

@@ -0,0 +1,4 @@
package com.ck.ckcollar.app.model
class ShopHotModel {
}

View File

@@ -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
}

View File

@@ -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
}
}
}

View 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
}

View File

@@ -0,0 +1,8 @@
package com.ck.ckcollar.app.model
class UnReadModel : CkBaseModel(){
var unreadCount : Int = 0
}

View 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? = ""
}

View File

@@ -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