diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt new file mode 100644 index 0000000..e25348a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -0,0 +1,42 @@ +package com.casic.xz.meterage.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.vm.BaseViewModel + +class NoticeViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val noticeResult = MutableLiveData() + + fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ) = launch({ + val response = RetrofitServiceManager.getNoticeList( + noticeNo, + noticeTitle, + noticePublisher, + noticeStartTime, + noticeEndTime, + offset + ) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + noticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt new file mode 100644 index 0000000..e25348a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -0,0 +1,42 @@ +package com.casic.xz.meterage.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.vm.BaseViewModel + +class NoticeViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val noticeResult = MutableLiveData() + + fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ) = launch({ + val response = RetrofitServiceManager.getNoticeList( + noticeNo, + noticeTitle, + noticePublisher, + noticeStartTime, + noticeEndTime, + offset + ) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + noticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml new file mode 100644 index 0000000..8017b3b --- /dev/null +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt new file mode 100644 index 0000000..e25348a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -0,0 +1,42 @@ +package com.casic.xz.meterage.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.vm.BaseViewModel + +class NoticeViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val noticeResult = MutableLiveData() + + fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ) = launch({ + val response = RetrofitServiceManager.getNoticeList( + noticeNo, + noticeTitle, + noticePublisher, + noticeStartTime, + noticeEndTime, + offset + ) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + noticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml new file mode 100644 index 0000000..8017b3b --- /dev/null +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml new file mode 100644 index 0000000..41d2ef1 --- /dev/null +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1c93a4b..97c55c3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt new file mode 100644 index 0000000..e25348a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -0,0 +1,42 @@ +package com.casic.xz.meterage.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.vm.BaseViewModel + +class NoticeViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val noticeResult = MutableLiveData() + + fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ) = launch({ + val response = RetrofitServiceManager.getNoticeList( + noticeNo, + noticeTitle, + noticePublisher, + noticeStartTime, + noticeEndTime, + offset + ) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + noticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml new file mode 100644 index 0000000..8017b3b --- /dev/null +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml new file mode 100644 index 0000000..41d2ef1 --- /dev/null +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index e478dd3..8d76acb 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -43,10 +43,26 @@ android:textSize="@dimen/sp_16" /> - + android:layout_height="wrap_content"> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt new file mode 100644 index 0000000..e25348a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -0,0 +1,42 @@ +package com.casic.xz.meterage.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.vm.BaseViewModel + +class NoticeViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val noticeResult = MutableLiveData() + + fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ) = launch({ + val response = RetrofitServiceManager.getNoticeList( + noticeNo, + noticeTitle, + noticePublisher, + noticeStartTime, + noticeEndTime, + offset + ) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + noticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml new file mode 100644 index 0000000..8017b3b --- /dev/null +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml new file mode 100644 index 0000000..41d2ef1 --- /dev/null +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index e478dd3..8d76acb 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -43,10 +43,26 @@ android:textSize="@dimen/sp_16" /> - + android:layout_height="wrap_content"> + + + + + - + android:layout_width="wrap_content" + android:layout_height="wrap_content"> + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt index f78b3a2..9b5faf6 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/HomePageFragment.kt @@ -1,14 +1,35 @@ package com.casic.xz.meterage.fragment +import android.view.View +import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.adapter.HomeGridAdapter import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import kotlinx.android.synthetic.main.fragment_home.* class HomePageFragment : KotlinBaseFragment() { override fun initData() { + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) + val homeAdapter = HomeGridAdapter(requireContext(), LocaleConstant.HOME_FUNC_OPERATE) homeFuncRecyclerView.adapter = homeAdapter homeAdapter.setOnGridItemClickListener(object : HomeGridAdapter.OnGridItemClickListener { diff --git a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt index fbd0cf1..aaeb9df 100644 --- a/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt +++ b/app/src/main/java/com/casic/xz/meterage/fragment/MinePageFragment.kt @@ -1,8 +1,10 @@ package com.casic.xz.meterage.fragment +import android.view.View import androidx.lifecycle.ViewModelProvider import com.casic.xz.meterage.R import com.casic.xz.meterage.utils.LocaleConstant +import com.casic.xz.meterage.vm.NoticeViewModel import com.casic.xz.meterage.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseFragment import com.pengxh.kt.lite.utils.SaveKeyValues @@ -21,6 +23,24 @@ userUnitView.text = data.deptName } }) + + val noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + noticeViewModel.getNoticeList("", "", "", "", "", 1) + noticeViewModel.noticeResult.observe(this, { + if (it.code == 200) { + val total = it.data.total + if (total.toString() == "") { + noticeCountView.visibility = View.GONE + } else { + noticeCountView.visibility = View.VISIBLE + if (total <= 9) { + noticeCountView.text = total.toString() + } else { + noticeCountView.text = "9+" + } + } + } + }) } override fun initEvent() { diff --git a/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java new file mode 100644 index 0000000..ce9ae03 --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/model/NoticeListModel.java @@ -0,0 +1,166 @@ +package com.casic.xz.meterage.model; + +import java.util.List; + +public class NoticeListModel { + + private int code; + private DataModel data; + private String message; + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public DataModel getData() { + return data; + } + + public void setData(DataModel data) { + this.data = data; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public static class DataModel { + private List rows; + private int total; + + public List getRows() { + return rows; + } + + public void setRows(List rows) { + this.rows = rows; + } + + public int getTotal() { + return total; + } + + public void setTotal(int total) { + this.total = total; + } + + public static class RowsModel { + private String createTime; + private String id; + private int isDel; + private String minioFileName; + private String noticeCompany; + private String noticeContent; + private String noticeNo; + private String noticePublisher; + private String noticeSketch; + private String noticeTime; + private String noticeTitle; + private String updateTime; + + public String getCreateTime() { + return createTime; + } + + public void setCreateTime(String createTime) { + this.createTime = createTime; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public int getIsDel() { + return isDel; + } + + public void setIsDel(int isDel) { + this.isDel = isDel; + } + + public String getMinioFileName() { + return minioFileName; + } + + public void setMinioFileName(String minioFileName) { + this.minioFileName = minioFileName; + } + + public String getNoticeCompany() { + return noticeCompany; + } + + public void setNoticeCompany(String noticeCompany) { + this.noticeCompany = noticeCompany; + } + + public String getNoticeContent() { + return noticeContent; + } + + public void setNoticeContent(String noticeContent) { + this.noticeContent = noticeContent; + } + + public String getNoticeNo() { + return noticeNo; + } + + public void setNoticeNo(String noticeNo) { + this.noticeNo = noticeNo; + } + + public String getNoticePublisher() { + return noticePublisher; + } + + public void setNoticePublisher(String noticePublisher) { + this.noticePublisher = noticePublisher; + } + + public String getNoticeSketch() { + return noticeSketch; + } + + public void setNoticeSketch(String noticeSketch) { + this.noticeSketch = noticeSketch; + } + + public String getNoticeTime() { + return noticeTime; + } + + public void setNoticeTime(String noticeTime) { + this.noticeTime = noticeTime; + } + + public String getNoticeTitle() { + return noticeTitle; + } + + public void setNoticeTitle(String noticeTitle) { + this.noticeTitle = noticeTitle; + } + + public String getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(String updateTime) { + this.updateTime = updateTime; + } + } + } +} diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt index b762c4a..a3f514f 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitService.kt @@ -24,4 +24,15 @@ @Header("token") token: String, @Query("account") account: String ): String + + /** + * 获取通知公告列表 + */ + @POST("/system/notice/listPage") + suspend fun getNoticeList( + @Header("token") token: String, + @Body requestBody: RequestBody, + @QueryMap limit: Map, + @QueryMap offset: Map + ): String } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt index 702e6bc..444a872 100644 --- a/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/xz/meterage/utils/retrofit/RetrofitServiceManager.kt @@ -44,4 +44,33 @@ suspend fun getUserInfo(account: String): String { return api.getUserInfo(AuthenticationHelper.token!!, account) } + + /** + * 获取通知公告列表 + */ + suspend fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ): String { + val paramObject = JSONObject() + paramObject.put("noticeNo", noticeNo) + paramObject.put("noticeTitle", noticeTitle) + paramObject.put("noticePublisher", noticePublisher) + paramObject.put("noticeStartTime", noticeStartTime) + paramObject.put("noticeEndTime", noticeEndTime) + val requestBody = paramObject.toString().toRequestBody( + "application/json;charset=UTF-8".toMediaType() + ) + + val limitMap = HashMap() + limitMap["limit"] = LocaleConstant.PAGE_LIMIT + + val offsetMap = HashMap() + offsetMap["offset"] = offset + return api.getNoticeList(AuthenticationHelper.token!!, requestBody, limitMap, offsetMap) + } } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt new file mode 100644 index 0000000..6dde53b --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/view/NoticeListActivity.kt @@ -0,0 +1,29 @@ +package com.casic.xz.meterage.view + +import androidx.lifecycle.ViewModelProvider +import com.casic.xz.meterage.R +import com.casic.xz.meterage.vm.NoticeViewModel +import com.pengxh.kt.lite.base.KotlinBaseActivity + +class NoticeListActivity : KotlinBaseActivity() { + + private lateinit var noticeViewModel: NoticeViewModel + + override fun initData() { + noticeViewModel = ViewModelProvider(this)[NoticeViewModel::class.java] + } + + override fun initEvent() { + + } + + override fun initLayoutView(): Int = R.layout.activity_notice_list + + override fun observeRequestState() { + + } + + override fun setupTopBarLayout() { + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt new file mode 100644 index 0000000..e25348a --- /dev/null +++ b/app/src/main/java/com/casic/xz/meterage/vm/NoticeViewModel.kt @@ -0,0 +1,42 @@ +package com.casic.xz.meterage.vm + +import androidx.lifecycle.MutableLiveData +import com.casic.xz.meterage.extensions.separateResponseCode +import com.casic.xz.meterage.model.NoticeListModel +import com.casic.xz.meterage.utils.retrofit.RetrofitServiceManager +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.vm.BaseViewModel + +class NoticeViewModel : BaseViewModel() { + + private val gson by lazy { Gson() } + val noticeResult = MutableLiveData() + + fun getNoticeList( + noticeNo: String, + noticeTitle: String, + noticePublisher: String, + noticeStartTime: String, + noticeEndTime: String, + offset: Int + ) = launch({ + val response = RetrofitServiceManager.getNoticeList( + noticeNo, + noticeTitle, + noticePublisher, + noticeStartTime, + noticeEndTime, + offset + ) + val responseCode = response.separateResponseCode() + if (responseCode == 200) { + noticeResult.value = gson.fromJson( + response, object : TypeToken() {}.type + ) + } + }, { + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_text_view_red_radius_10.xml b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml new file mode 100644 index 0000000..8017b3b --- /dev/null +++ b/app/src/main/res/drawable/bg_text_view_red_radius_10.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_notice_list.xml b/app/src/main/res/layout/activity_notice_list.xml new file mode 100644 index 0000000..41d2ef1 --- /dev/null +++ b/app/src/main/res/layout/activity_notice_list.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index e478dd3..8d76acb 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -43,10 +43,26 @@ android:textSize="@dimen/sp_16" /> - + android:layout_height="wrap_content"> + + + + + - + android:layout_width="wrap_content" + android:layout_height="wrap_content"> + + + + + + 10sp 12sp 14sp 16sp