Skip to content

Commit c9f5f25

Browse files
committed
商品模块:商品详情以及sku选择
1 parent 95fa366 commit c9f5f25

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1420
-44
lines changed

.idea/codeStyles/Project.xml

Lines changed: 0 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

App/src/main/java/com/hyd/mallofkotlin/ui/fragment/HomeFragment.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@ import android.support.v7.widget.LinearLayoutManager
55
import android.view.LayoutInflater
66
import android.view.View
77
import android.view.ViewGroup
8+
import com.hyd.base.ext.onClick
89
import com.hyd.base.ui.fragment.BaseFragment
910
import com.hyd.base.widgets.BannerImageLoader
11+
import com.hyd.goodscenter.ui.activity.SearchGoodsActivity
1012
import com.hyd.mallofkotlin.R
1113
import com.hyd.mallofkotlin.common.*
1214
import com.hyd.mallofkotlin.ui.adapter.HomeDiscountAdapter
@@ -15,6 +17,7 @@ import com.youth.banner.BannerConfig
1517
import com.youth.banner.Transformer
1618
import kotlinx.android.synthetic.main.fragment_home.*
1719
import me.crosswall.lib.coverflow.CoverFlow
20+
import org.jetbrains.anko.support.v4.startActivity
1821

1922
/**
2023
* Created by hydCoder on 2019/7/26.
@@ -49,6 +52,9 @@ class HomeFragment : BaseFragment() {
4952

5053
private fun initNews() {
5154
mNewsFlipperView.setData(arrayOf("夏日炎炎,第一波福利还有30秒到达战场", "新用户立领1000元优惠券", "大牌上新,诚意满满"))
55+
mSearchEt.onClick {
56+
startActivity<SearchGoodsActivity>()
57+
}
5258
}
5359

5460
private fun initDiscount() {

BaseLibrary/build.gradle

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,14 @@ dependencies {
8383
implementation 'com.github.shts:TriangleLabelView:1.1.2'
8484
//画廊
8585
api 'com.github.crosswall:Android-Coverflow:release-v1.0.4'
86-
8786
//MultiStateView
8887
api "com.github.Kennyc1012:MultiStateView:$multi_state_view_version"
89-
9088
api 'ren.qinc.numberbutton:numberbutton:0.0.1'
91-
9289
//上下拉刷新
9390
api 'cn.bingoogolapple:bga-refreshlayout:1.1.7@aar'
91+
//Kotlin Bus
92+
api 'com.eightbitlab:rxbus:1.0.2'
93+
//FlowLayout
94+
api 'com.zhy:flowlayout-lib:1.0.3'
9495

9596
}

BaseLibrary/src/main/java/com/hyd/base/ui/activity/BaseActivity.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,15 @@ package com.hyd.base.ui.activity
33
import android.os.Build
44
import android.os.Bundle
55
import android.support.annotation.RequiresApi
6+
import android.view.View
7+
import android.widget.FrameLayout
68
import com.hyd.base.R
79
import com.hyd.base.common.AppManager
810
import com.hyd.base.common.StatusBarCompat
911
import com.trello.rxlifecycle.components.support.RxAppCompatActivity
12+
import org.jetbrains.anko.find
1013

11-
open class BaseActivity : RxAppCompatActivity(){
14+
open class BaseActivity : RxAppCompatActivity() {
1215

1316
@RequiresApi(Build.VERSION_CODES.M)
1417
override fun onCreate(savedInstanceState: Bundle?) {
@@ -22,4 +25,11 @@ open class BaseActivity : RxAppCompatActivity(){
2225
super.onDestroy()
2326
AppManager.instance.finishActivity(this)
2427
}
28+
29+
//获取Window中视图content
30+
val contentView: View
31+
get() {
32+
val content = find<FrameLayout>(android.R.id.content)
33+
return content.getChildAt(0)
34+
}
2535
}

BaseLibrary/src/main/res/values/styles.xml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,22 +83,22 @@
8383
<item name="android:textSize">@dimen/text_big_size</item>
8484
</style>
8585
<!-- TabLayout通用样式-->
86-
<!-- <style name="TabsStyle">
86+
<style name="TabsStyle">
8787
<item name="android:layout_width">match_parent</item>
8888
<item name="android:layout_height">wrap_content</item>
8989
<item name="tabIndicatorColor">@color/common_white</item>
9090
<item name="tabBackground">@drawable/tab_selector</item>
9191
<item name="tabTextAppearance">@style/TabLayoutTextStyle</item>
9292
<item name="tabTextColor">@color/text_light_dark</item>
9393
<item name="tabSelectedTextColor">@color/common_white</item>
94-
</style>-->
94+
</style>
9595
<!-- 订单中Tab样式-->
96-
<!-- <style name="TabsStyle.Order" parent="@style/TabsStyle">
97-
<item name="tabIndicatorColor">@color/common_blue</item>
98-
<item name="tabBackground">@drawable/border_bottom</item>
99-
<item name="tabTextColor">@color/text_normal</item>
100-
<item name="tabSelectedTextColor">@color/common_blue</item>
101-
</style>-->
96+
<style name="TabsStyle.Order" parent="@style/TabsStyle">
97+
<item name="tabIndicatorColor">@color/common_blue</item>
98+
<item name="tabBackground">@drawable/border_bottom</item>
99+
<item name="tabTextColor">@color/text_normal</item>
100+
<item name="tabSelectedTextColor">@color/common_blue</item>
101+
</style>
102102
<!-- 横向分隔线 -->
103103
<style name="DividerFixedHeight">
104104
<item name="android:background">@color/common_divider</item>

GoodsCenter/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ android {
88

99

1010
defaultConfig {
11-
minSdkVersion 16
11+
minSdkVersion 23
1212
targetSdkVersion 28
1313
versionCode 1
1414
versionName "1.0"

GoodsCenter/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,7 @@
33

44
<application>
55
<activity android:name=".ui.activity.GoodsActivity"/>
6+
<activity android:name=".ui.activity.SearchGoodsActivity"/>
7+
<activity android:name=".ui.activity.GoodsDetailActivity"/>
68
</application>
79
</manifest>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.hyd.goodscenter
2+
3+
import android.widget.EditText
4+
import org.jetbrains.anko.find
5+
import ren.qinc.numberbutton.NumberButton
6+
7+
/**
8+
* Created by hydCoder on 2019/8/1.
9+
* 以梦为马,明日天涯。
10+
*/
11+
/*
12+
三方控件扩展
13+
*/
14+
fun NumberButton.getEditText(): EditText {
15+
return find(R.id.text_count)
16+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.hyd.goodscenter.data.api
2+
3+
import com.hyd.base.data.protocal.BaseResp
4+
import com.hyd.goodscenter.data.protocal.AddCartReq
5+
import com.hyd.goodscenter.data.protocal.CartGoods
6+
import com.hyd.goodscenter.data.protocal.DeleteCartReq
7+
import com.hyd.goodscenter.data.protocal.SubmitCartReq
8+
import retrofit2.http.Body
9+
import retrofit2.http.POST
10+
import rx.Observable
11+
12+
/**
13+
* Created by hydCoder on 2019/8/1.
14+
* 以梦为马,明日天涯。
15+
*/
16+
/*
17+
购物车 接口
18+
*/
19+
interface CartApi {
20+
/*
21+
获取购物车列表
22+
*/
23+
@POST("cart/getList")
24+
fun getCartList(): Observable<BaseResp<MutableList<CartGoods>?>>
25+
26+
/*
27+
添加商品到购物车
28+
*/
29+
@POST("cart/add")
30+
fun addCart(@Body req: AddCartReq): Observable<BaseResp<Int>>
31+
32+
/*
33+
删除购物车商品
34+
*/
35+
@POST("cart/delete")
36+
fun deleteCartList(@Body req: DeleteCartReq): Observable<BaseResp<String>>
37+
38+
/*
39+
提交购物车商品
40+
*/
41+
@POST("cart/submit")
42+
fun submitCart(@Body req: SubmitCartReq): Observable<BaseResp<Int>>
43+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.hyd.goodscenter.data.protocal
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
添加商品到购物车请求
9+
*/
10+
data class AddCartReq(
11+
val goodsId: Int, //商品ID
12+
val goodsDesc: String, //商品描述
13+
val goodsIcon: String, //商品图标
14+
val goodsPrice: Long, //商品价格
15+
val goodsCount: Int, //商品数量
16+
val goodsSku: String //商品SKU
17+
)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.hyd.goodscenter.data.protocal
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
购物车商品数据类
9+
*/
10+
data class CartGoods(
11+
val id: Int,//购物车单项商品ID
12+
val goodsId:Int,//具体商品ID
13+
val goodsDesc: String,//商品描述
14+
val goodsIcon: String,//商品图片
15+
val goodsPrice: Long,//商品价格
16+
var goodsCount: Int,//商品数量
17+
val goodsSku:String,//商品SKU
18+
var isSelected:Boolean//是否选中
19+
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.hyd.goodscenter.data.protocal
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
删除购物车商品请求
9+
*/
10+
data class DeleteCartReq(val cartIdList: List<Int> = arrayListOf())
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.hyd.goodscenter.data.protocal
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
提交购物车
9+
*/
10+
data class SubmitCartReq(val goodsList: List<CartGoods>,val totalPrice: Long)
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.hyd.goodscenter.data.repository
2+
3+
import com.hyd.base.data.net.RetrofitFactory
4+
import com.hyd.base.data.protocal.BaseResp
5+
import com.hyd.goodscenter.data.api.CartApi
6+
import com.hyd.goodscenter.data.protocal.AddCartReq
7+
import com.hyd.goodscenter.data.protocal.CartGoods
8+
import com.hyd.goodscenter.data.protocal.DeleteCartReq
9+
import com.hyd.goodscenter.data.protocal.SubmitCartReq
10+
import rx.Observable
11+
import javax.inject.Inject
12+
13+
/**
14+
* Created by hydCoder on 2019/8/1.
15+
* 以梦为马,明日天涯。
16+
*/
17+
/*
18+
购物车数据层
19+
*/
20+
class CartRepository @Inject constructor() {
21+
22+
/*
23+
获取购物车列表
24+
*/
25+
fun getCartList(): Observable<BaseResp<MutableList<CartGoods>?>> {
26+
return RetrofitFactory.instance.create(CartApi::class.java).getCartList()
27+
}
28+
29+
/*
30+
添加商品到购物车
31+
*/
32+
fun addCart(goodsId: Int, goodsDesc: String, goodsIcon: String, goodsPrice: Long,
33+
goodsCount: Int, goodsSku: String): Observable<BaseResp<Int>> {
34+
return RetrofitFactory.instance.create(CartApi::class.java)
35+
.addCart(AddCartReq(goodsId, goodsDesc, goodsIcon, goodsPrice, goodsCount, goodsSku))
36+
}
37+
38+
/*
39+
删除购物车商品
40+
*/
41+
fun deleteCartList(list: List<Int>): Observable<BaseResp<String>> {
42+
return RetrofitFactory.instance.create(CartApi::class.java).deleteCartList(DeleteCartReq(list))
43+
}
44+
45+
/*
46+
购物车结算
47+
*/
48+
fun submitCart(list: MutableList<CartGoods>, totalPrice: Long): Observable<BaseResp<Int>> {
49+
return RetrofitFactory.instance.create(CartApi::class.java).submitCart(SubmitCartReq(list, totalPrice))
50+
}
51+
52+
53+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.hyd.goodscenter.event
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
加入购物车事件
9+
*/
10+
class AddCartEvent {
11+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.hyd.goodscenter.event
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
商品详情Tab two 事件
9+
*/
10+
class GoodsDetailImageEvent(val imgOne: String, val imgTwo: String)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.hyd.goodscenter.event
2+
3+
/**
4+
* Created by hydCoder on 2019/8/1.
5+
* 以梦为马,明日天涯。
6+
*/
7+
/*
8+
SKU变化事件
9+
*/
10+
class SkuChangedEvent

0 commit comments

Comments
 (0)