From 5ad871a2546c7b71c04e0b32db12e9dc12c4b652 Mon Sep 17 00:00:00 2001 From: md Date: Tue, 29 Jun 2021 18:21:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E2=80=98=E6=88=91=E7=9A=84?= =?UTF-8?q?=E2=80=99=E9=A1=B5=E9=9D=A2=E7=9A=84=E9=93=B6=E8=A1=8C=E5=8D=A1?= =?UTF-8?q?=E7=BB=91=E5=AE=9A=E6=8E=A5=E5=8F=A3=E5=92=8C=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=B5=84=E6=96=99=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 2 +- app/src/main/assets/bank.json | 215 ++++++++++++++++++ .../outdoor/activity/UserActivity.java | 72 +++++- .../navinfo/outdoor/adapter/BankAdapter.java | 70 ++++++ .../navinfo/outdoor/bean/BankPathBean.java | 23 ++ .../navinfo/outdoor/bean/BankPhoneBean.java | 32 +++ .../com/navinfo/outdoor/bean/UserBean.java | 32 +++ .../outdoor/fragment/GatheringFragment.java | 172 +++++++++++++- .../fragment/UserAttestationFragment.java | 41 +++- .../navinfo/outdoor/http/HttpInterface.java | 5 + .../main/res/drawable/ic_baseline_camera.xml | 6 + app/src/main/res/layout/bank_item.xml | 15 ++ app/src/main/res/layout/bankadapteritem.xml | 12 + .../main/res/layout/gathering_fragment.xml | 83 ++++--- .../res/layout/user_attestation_fragment.xml | 176 +++++++++----- 15 files changed, 845 insertions(+), 111 deletions(-) create mode 100644 app/src/main/assets/bank.json create mode 100644 app/src/main/java/com/navinfo/outdoor/adapter/BankAdapter.java create mode 100644 app/src/main/java/com/navinfo/outdoor/bean/BankPathBean.java create mode 100644 app/src/main/java/com/navinfo/outdoor/bean/BankPhoneBean.java create mode 100644 app/src/main/java/com/navinfo/outdoor/bean/UserBean.java create mode 100644 app/src/main/res/drawable/ic_baseline_camera.xml create mode 100644 app/src/main/res/layout/bank_item.xml create mode 100644 app/src/main/res/layout/bankadapteritem.xml diff --git a/app/build.gradle b/app/build.gradle index ddad9ff..e1e1655 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,7 +3,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 29 buildToolsVersion '29.0.2' - // ndkVersion '23.0.7123448' + ndkVersion '23.0.7123448' defaultConfig { applicationId "com.navinfo.outdoor" diff --git a/app/src/main/assets/bank.json b/app/src/main/assets/bank.json new file mode 100644 index 0000000..309c0ff --- /dev/null +++ b/app/src/main/assets/bank.json @@ -0,0 +1,215 @@ +[ + {"label": "中国工商银行", "value": "102100099996"}, + {"label": "中国农业银行股份有限公司", "value": "103100000026"}, + {"label": "中国银行总行", "value": "104100000004"}, + {"label": "中国建设银行股份有限公司总行", "value": "105100000017"}, + {"label": "交通银行", "value": "301290000007"}, + {"label": "中国邮政储蓄银行有限责任公司", "value": "403100000004"}, + {"label": "招商银行股份有限公司", "value": "308584000013"}, + {"label": "中信银行股份有限公司", "value": "302100011000"}, + {"label": "中国光大银行", "value": "303100000006"}, + {"label": "中国民生银行", "value": "305100000013"}, + {"label": "兴业银行总行", "value": "309391000011"}, + {"label": "广东发展银行股份有限公司运营作业部", "value": "306581000003"}, + {"label": "上海浦东发展银行", "value": "310290000013"}, + {"label": "平安银行", "value": "307584007998"}, + {"label": "北京银行", "value": "313100000013"}, + {"label": "安徽省农村信用联社资金清算中心", "value": "402361018886"}, + {"label": "鞍山银行股份有限公司", "value": "313223007007"}, + {"label": "包商银行股份有限公司", "value": "313192000013"}, + {"label": "北京农村商业银行股份有限公司", "value": "402100000018"}, + {"label": "北京顺义银座村镇银行股份有限公司", "value": "320100010011"}, + {"label": "渤海银行股份有限公司", "value": "318110000014"}, + {"label": "沧州银行", "value": "313143005157"}, + {"label": "长安银行股份有限公司", "value": "313791030003"}, + {"label": "长沙银行股份有限公司", "value": "313551088886"}, + {"label": "承德银行股份有限公司", "value": "313141052422"}, + {"label": "重庆农村商业银行股份有限公司", "value": "314653000011"}, + {"label": "重庆黔江银座村镇银行股份有限公司", "value": "320687000016"}, + {"label": "重庆银行", "value": "313653000013"}, + {"label": "重庆渝北银座村镇银行股份有限公司", "value": "320653000104"}, + {"label": "大连银行", "value": "313222080002"}, + {"label": "长城华西银行股份有限公司", "value": "313658000014"}, + {"label": "德州银行股份有限公司", "value": "313468000015"}, + {"label": "东莞农村商业银行股份有限公司", "value": "402602000018"}, + {"label": "东莞银行股份有限公司", "value": "313602088017"}, + {"label": "东营银行股份有限公司", "value": "313455000018"}, + {"label": "鄂尔多斯银行股份有限公司", "value": "313205057830"}, + {"label": "佛山顺德农村商业银行股份有限公司", "value": "314588000016"}, + {"label": "福建海峡银行股份有限公司", "value": "313391080007"}, + {"label": "福建省农村信用社联合社", "value": "402391000068"}, + {"label": "阜新银行结算中心", "value": "313229000008"}, + {"label": "富滇银行股份有限公司运营管理部", "value": "313731010015"}, + {"label": "赣州银行股份有限公司", "value": "313428076517"}, + {"label": "广东华兴银行股份有限公司", "value": "313586000006"}, + {"label": "广东南粤银行股份有限公司", "value": "313591001001"}, + {"label": "广西北部湾银行", "value": "313611001018"}, + {"label": "广西壮族自治区农村信用社联合社", "value": "402611099974"}, + {"label": "广州农村商业银行股份有限公司", "value": "314581000011"}, + {"label": "广州银行", "value": "313581003284"}, + {"label": "贵阳银行股份有限公司", "value": "313701098010"}, + {"label": "桂林银行股份有限公司", "value": "313617000018"}, + {"label": "哈尔滨银行结算中心", "value": "313261000018"}, + {"label": "海南省农村信用社联合社资金清算中心", "value": "402641000014"}, + {"label": "邯郸银行股份有限公司", "value": "313127000013"}, + {"label": "韩亚银行(中国)有限公司", "value": "597100000014"}, + {"label": "汉口银行资金清算中心", "value": "313521000011"}, + {"label": "杭州银行股份有限公司", "value": "313331000014"}, + {"label": "河北银行股份有限公司", "value": "313121006888"}, + {"label": "恒丰银行", "value": "315456000105"}, + {"label": "湖北省农村信用社联合社结算中心", "value": "402521000032"}, + {"label": "湖州银行股份有限公司", "value": "313336071575"}, + {"label": "葫芦岛银行股份有限公司", "value": "313227600018"}, + {"label": "徽商银行股份有限公司", "value": "319361000013"}, + {"label": "吉林省农村信用社联合社(不办理转汇业务)", "value": "402241000015"}, + {"label": "吉林银行", "value": "313241066661"}, + {"label": "济宁银行股份有限公司", "value": "313461000012"}, + {"label": "嘉兴银行股份有限公司清算中心(不对外办理业务)", "value": "313335081005"}, + {"label": "江苏长江商业银行", "value": "313312300018"}, + {"label": "江苏常熟农村商业银行股份有限公司清算中心", "value": "314305506621"}, + {"label": "江苏银行股份有限公司", "value": "313301099999"}, + {"label": "江西赣州银座村镇银行股份有限公司", "value": "320428090311"}, + {"label": "锦州银行", "value": "313227000012"}, + {"label": "晋城银行", "value": "313168000003"}, + {"label": "晋商银行股份有限公司", "value": "313161000017"}, + {"label": "昆仑银行股份有限公司", "value": "313882000012"}, + {"label": "昆山农村商业银行", "value": "314305206650"}, + {"label": "莱商银行", "value": "313463400019"}, + {"label": "兰州银行股份有限公司", "value": "313821001016"}, + {"label": "廊坊银行", "value": "313146000019"}, + {"label": "临商银行股份有限公司", "value": "313473070018"}, + {"label": "柳州银行股份有限公司清算中心", "value": "313614000012"}, + {"label": "洛阳银行", "value": "313493080539"}, + {"label": "绵阳市商业银行", "value": "313659000016"}, + {"label": "江西银行股份有限公司", "value": "313421087506"}, + {"label": "南京银行股份有限公司", "value": "313301008887"}, + {"label": "内蒙古银行", "value": "313191000011"}, + {"label": "宁波鄞州农村商业银行股份有限公司(鄞州银行)", "value": "402332010004"}, + {"label": "宁夏黄河农村商业银行股份有限公司", "value": "402871099996"}, + {"label": "宁夏银行总行清算中心", "value": "313871000007"}, + {"label": "攀枝花市商业银行", "value": "313656000019"}, + {"label": "齐鲁银行", "value": "313451000019"}, + {"label": "齐商银行", "value": "313453001017"}, + {"label": "企业银行(中国)有限公司", "value": "596110000013"}, + {"label": "青岛银行", "value": "313452060150"}, + {"label": "青海银行股份有限公司营业部", "value": "313851000018"}, + {"label": "泉州银行股份有限公司(不对外营业)", "value": "313397075189"}, + {"label": "日照银行股份有限公司", "value": "313473200011"}, + {"label": "山东省农村信用社联合社(不对外办理业务)", "value": "402451000010"}, + {"label": "上海农村商业银行", "value": "322290000011"}, + {"label": "上饶银行", "value": "313433076801"}, + {"label": "绍兴银行股份有限公司营业部", "value": "313337009004"}, + {"label": "深圳福田银座村镇银行股份有限公司", "value": "320584002002"}, + {"label": "深圳农村商业银行", "value": "402584009991"}, + {"label": "苏州银行股份有限公司", "value": "313305066661"}, + {"label": "太仓农村商业银行", "value": "314305106644"}, + {"label": "泰安银行股份有限公司", "value": "313463000993"}, + {"label": "天津银行股份有限公司", "value": "313110000017"}, + {"label": "外换银行(中国)有限公司", "value": "591110000016"}, + {"label": "威海市商业银行", "value": "313465000010"}, + {"label": "潍坊银行", "value": "313458000013"}, + {"label": "温州银行股份有限公司", "value": "313333007331"}, + {"label": "乌鲁木齐银行清算中心", "value": "313881000002"}, + {"label": "吴江农村商业银行清算中心", "value": "314305400015"}, + {"label": "西安银行股份有限公司", "value": "313791000015"}, + {"label": "厦门银行股份有限公司", "value": "313393080005"}, + {"label": "新韩银行(中国)有限公司", "value": "595100000007"}, + {"label": "邢台银行股份有限公司", "value": "313131000016"}, + {"label": "烟台银行股份有限公司", "value": "313456000108"}, + {"label": "营口银行股份有限公司资金清算中心", "value": "313228000276"}, + {"label": "友利银行(中国)有限公司", "value": "593100000020"}, + {"label": "云南省农村信用社联合社", "value": "402731057238"}, + {"label": "张家港农村商业银行", "value": "314305670002"}, + {"label": "张家口银行股份有限公司", "value": "313138000019"}, + {"label": "浙江稠州商业银行", "value": "313338707013"}, + {"label": "浙江景宁银座村镇银行股份有限公司", "value": "320343800019"}, + {"label": "浙江民泰商业银行", "value": "313345400010"}, + {"label": "浙江三门银座村镇银行股份有限公司", "value": "320345790018"}, + {"label": "浙江省农村信用社联合社", "value": "402331000007"}, + {"label": "浙江泰隆商业银行", "value": "313345010019"}, + {"label": "浙商银行", "value": "316331000018"}, + {"label": "郑州银行", "value": "313491000232"}, + {"label": "珠海华润银行股份有限公司清算中心", "value": "313585000990"}, + {"label": "自贡市商业银行清算中心", "value": "313655091983"}, + {"label": "海口联合农村商业银行股份有限公司", "value": "314641000014"}, + {"label": "枣庄银行股份有限公司", "value": "313454000016"}, + {"label": "龙江银行股份有限公司", "value": "313261099913"}, + {"label": "宁波银行股份有限公司", "value": "313332082914"}, + {"label": "江苏省农村信用社联合社信息结算中心", "value": "402301099998"}, + {"label": "九江银行股份有限公司", "value": "313424076706"}, + {"label": "台州银行股份有限公司", "value": "313345001665"}, + {"label": "开封市商业银行", "value": "313492070005"}, + {"label": "漯河市商业银行", "value": "313504000010"}, + {"label": "南阳市商业银行", "value": "313513080408"}, + {"label": "商丘市商业银行股份有限公司", "value": "313506082510"}, + {"label": "东亚银行(中国)有限公司", "value": "502290000006"}, + {"label": "成都银行", "value": "313651099999"}, + {"label": "四川天府银行股份有限公司", "value": "313673093259"}, + {"label": "江苏江阴农村商业银行股份有限公司", "value": "314302200018"}, + {"label": "天津农村商业银行股份有限公司", "value": "317110010019"}, + {"label": "四川省农村信用社联合社", "value": "402651020006"}, + {"label": "中原银行股份有限公司", "value": "313491099996"}, + {"label": "湖北银行股份有限公司", "value": "313521006000"}, + {"label": "平顶山银行股份有限公司", "value": "313495081900"}, + {"label": "保定银行股份有限公司", "value": "313134000011"}, + {"label": "焦作中旅银行股份有限公司", "value": "313501080608"}, + {"label": "武汉农村商业银行股份有限公司", "value": "402521090019"}, + {"label": "宁波通商银行股份有限公司", "value": "313332090019"}, + {"label": "东营莱商村镇银行股份有限公司", "value": "320455000019"}, + {"label": "富邦华一银行有限公司", "value": "787290000019"}, + {"label": "晋中银行", "value": "313175000011"}, + {"label": "华融湘江银行股份有限公司", "value": "313551070008"}, + {"label": "曲靖市商业银行", "value": "313736000019"}, + {"label": "陕西省农村信用社联合社资金清算中心", "value": "402791000010"}, + {"label": "乌海银行股份有限公司", "value": "313193057846"}, + {"label": "无锡农村商业银行股份有限公司", "value": "314302066666"}, + {"label": "贵州省农村信用社联合社", "value": "402701002999"}, + {"label": "云南红塔银行股份有限公司", "value": "313741095715"}, + {"label": "盛京银行清算中心(不对外办理业务)", "value": "313221030008"}, + {"label": "石河子国民村镇银行有限责任公司", "value": "320902800016"}, + {"label": "中德住房储蓄银行", "value": "717110000010"}, + {"label": "哈密红星国民村镇银行有限责任公司", "value": "320884000025"}, + {"label": "江苏江南农村商业银行股份有限公司(不对外)", "value": "314304099999"}, + {"label": "新疆绿洲国民村镇银行有限责任公司", "value": "320881000011"}, + {"label": "伊犁国民村镇银行有限责任公司", "value": "320898000010"}, + {"label": "奎屯国民村镇银行有限责任公司", "value": "320898100019"}, + {"label": "贵州银行股份有限公司", "value": "313701099012"}, + {"label": "广西钦州市钦南国民村镇银行有限责任公司", "value": "320631100016"}, + {"label": "广西上林国民村镇银行有限责任公司", "value": "320611000067"}, + {"label": "防城港防城国民村镇银行有限责任公司", "value": "320633000027"}, + {"label": "遂宁银行", "value": "313662000015"}, + {"label": "广西银海国民村镇银行有限责任公司", "value": "320623000015"}, + {"label": "克拉玛依金龙国民村镇银行有限责任公司", "value": "320882000013"}, + {"label": "昌吉国民村镇银行有限责任公司", "value": "320885099990"}, + {"label": "宜宾市商业银行", "value": "313671000017"}, + {"label": "华侨永亨银行(中国)有限公司", "value": "621290000011"}, + {"label": "北屯国民村镇银行有限责任公司", "value": "320884400011"}, + {"label": "五家渠国民村镇银行有限责任公司", "value": "320885800018"}, + {"label": "博乐国民村镇银行有限责任公司", "value": "320887000014"}, + {"label": "河南省农村信用社联合社资金清算中心(不转汇)", "value": "402491000026"}, + {"label": "营口沿海银行股份有限公司", "value": "313228060009"}, + {"label": "乐山市商业银行", "value": "313665092924"}, + {"label": "深圳前海微众银行股份有限公司", "value": "323584000888"}, + {"label": "上海银行股份有限公司", "value": "325290000012"}, + {"label": "江西省农村信用社联合社", "value": "402421099990"}, + {"label": "成都农商银行", "value": "314651000000"}, + {"label": "金华银行股份有限公司", "value": "313338009688"}, + {"label": "浙江网商银行股份有限公司", "value": "323331000001"}, + {"label": "广西浦北国民村镇银行有限责任公司", "value": "320631500019"}, + {"label": "广东省农村信用社联合社", "value": "402581090008"}, + {"label": "厦门国际银行股份有限公司", "value": "781393010011"}, + {"label": "重庆三峡银行股份有限公司", "value": "321667090019"}, + {"label": "天津滨海农村商业银行股份有限公司(不对外办理业务)", "value": "314110000011"}, + {"label": "花旗银行(中国)有限公司", "value": "531290088881"}, + {"label": "东兴国民村镇银行有限责任公司", "value": "320633100011"}, + {"label": "石嘴山银行股份有限公司", "value": "313872097457"}, + {"label": "上海华瑞银行", "value": "323290000016"}, + {"label": "海南银行股份有限公司", "value": "313641099995"}, + {"label": "辽阳银行", "value": "313231000013"}, + {"label": "合浦国民村镇银行有限责任公司", "value": "320623100016"}, + {"label": "辽宁省农村信用社联合社运营管理部", "value": "402221010013"}, + {"label": "丹东银行清算中心", "value": "313226009000"}, + {"label": "平果国民村镇银行有限责任公司", "value": "320626400049"}, + {"label": "甘肃银行股份有限公司", "value": "313821050016"}, + {"label": "衡水银行股份有限公司", "value": "313148053964"} +] \ No newline at end of file diff --git a/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java b/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java index 5ed7257..8354ee2 100644 --- a/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java +++ b/app/src/main/java/com/navinfo/outdoor/activity/UserActivity.java @@ -3,6 +3,7 @@ package com.navinfo.outdoor.activity; import android.content.Intent; import android.graphics.Color; import android.text.TextUtils; +import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; @@ -11,14 +12,25 @@ import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; +import androidx.appcompat.app.AppCompatActivity; + import com.bigkoo.pickerview.builder.OptionsPickerBuilder; import com.bigkoo.pickerview.listener.OnOptionsSelectListener; import com.bigkoo.pickerview.view.OptionsPickerView; import com.google.gson.Gson; +import com.kongzue.dialog.interfaces.OnDialogButtonClickListener; +import com.kongzue.dialog.util.BaseDialog; +import com.kongzue.dialog.v3.MessageDialog; +import com.lzy.okgo.OkGo; +import com.lzy.okgo.model.Response; import com.navinfo.outdoor.R; import com.navinfo.outdoor.base.BaseActivity; +import com.navinfo.outdoor.bean.BankPhoneBean; import com.navinfo.outdoor.bean.CityBean; import com.navinfo.outdoor.bean.JsonBean; +import com.navinfo.outdoor.bean.UserBean; +import com.navinfo.outdoor.http.DialogCallback; +import com.navinfo.outdoor.http.HttpInterface; import com.navinfo.outdoor.util.GetJsonDataUtil; import com.navinfo.outdoor.util.RegexUtil; import org.json.JSONArray; @@ -42,6 +54,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { public static Pattern compile = Pattern.compile("/^[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*(\\.[a-z]{2,})$/"); private Button userSave; private LinearLayout llRegion; + private String userqq; @Override protected int getLayout() { @@ -97,21 +110,11 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { case R.id.ll_region: showPickerView(); break; - case R.id.et_phone: - String phoneEt = etPhone.getText().toString().trim(); - if (TextUtils.isEmpty(phoneEt)) { - Toast.makeText(this, "请输入手机号", Toast.LENGTH_SHORT).show(); - return; - } - if (!RegexUtil.isPhone(phoneEt)) { - Toast.makeText(this, "手机格式有误", Toast.LENGTH_SHORT).show(); - } - break; case R.id.edit_qq: qq(); break; case R.id.edit_mailbox: - if (isEmail(etMailbox.getText().toString().trim()) && etMailbox.getText().toString().trim().length() <= 31) { + if (isEmail(etMailbox.getText().toString().trim()) && etMailbox.getText().toString().trim().length() > 31) { Toast.makeText(this, "邮箱验证成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "邮箱格式错误", Toast.LENGTH_SHORT).show(); @@ -119,7 +122,7 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { break; case R.id.btn_save: final String userphone = etPhone.getText().toString().trim(); - final String userqq = etQq.getText().toString().trim(); + userqq = etQq.getText().toString().trim(); final String usermailbox = etMailbox.getText().toString().trim(); if (!RegexUtil.isPhone(userphone)) { Toast.makeText(this, "手机号输入错误", Toast.LENGTH_SHORT).show(); @@ -132,10 +135,55 @@ public class UserActivity extends BaseActivity implements View.OnClickListener { if (usermailbox.length() > 31) { Toast.makeText(this, "邮箱输入错误", Toast.LENGTH_SHORT).show(); } + netWork(); break; } } + private void netWork() { + + OkGo + // 请求方式和请求url + .post(HttpInterface.USER_UPDATE) + // 请求的 tag, 主要用于取消对应的请求 + .params("pid", "1") + .params("regionId", "530902")//省市区id + .params("qq", userqq)//qq号 + .tag(this) + .execute(new DialogCallback(UserBean.class) { + @Override + public void onSuccess(Response response) { + dismissLoadingDialog(); + Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss"); + if (response.body().equals("0")) { + MessageDialog.show(UserActivity.this, "是否保存", "取消", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + // Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show(); + return false; + } + }); + } else { + MessageDialog.show(UserActivity.this, "是否保存", "确定", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + // Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show(); + return false; + } + }); + } + } + + @Override + public void onError(Response response) { + super.onError(response); + dismissLoadingDialog(); + Toast.makeText(UserActivity.this, response.message(), Toast.LENGTH_SHORT).show(); + Log.d("TAG", "onError: " + response.message()); + } + }); + } + private static String qq() { String qq = "23412312"; String regex = "[1-9][0-9]{4,11}"; diff --git a/app/src/main/java/com/navinfo/outdoor/adapter/BankAdapter.java b/app/src/main/java/com/navinfo/outdoor/adapter/BankAdapter.java new file mode 100644 index 0000000..fe50a33 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/adapter/BankAdapter.java @@ -0,0 +1,70 @@ +package com.navinfo.outdoor.adapter; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.navinfo.outdoor.R; +import com.navinfo.outdoor.bean.BankPathBean; + +import org.jetbrains.annotations.NotNull; + +import java.util.ArrayList; +import java.util.List; + +public class BankAdapter extends RecyclerView.Adapter { + private List bankPathBeans ; + private Context context; + + public BankAdapter(List bankPathBeans, Context context) { + this.bankPathBeans = bankPathBeans; + this.context = context; + } + + @NonNull + @NotNull + @Override + public ViewHolder onCreateViewHolder(@NonNull @NotNull ViewGroup parent, int viewType) { + View inflate = LayoutInflater.from(context).inflate(R.layout.bankadapteritem, parent, false); + return new ViewHolder(inflate); + } + + @Override + public void onBindViewHolder(@NonNull @NotNull ViewHolder holder, int position) { + holder.tvitem.setText(bankPathBeans.get(position).getLabel()); + holder.itemView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onBankClick.onClick(position); + } + }); + } + + @Override + public int getItemCount() { + return bankPathBeans.size(); + } + + class ViewHolder extends RecyclerView.ViewHolder { + TextView tvitem; + + public ViewHolder(@NonNull @NotNull View itemView) { + super(itemView); + tvitem = itemView.findViewById(R.id.tv_bank); + } + } + public interface OnBankClick { + void onClick(int pos); + } + + private OnBankClick onBankClick; + + public void setOnBankClick(OnBankClick onBankClick) { + this.onBankClick = onBankClick; + } +} diff --git a/app/src/main/java/com/navinfo/outdoor/bean/BankPathBean.java b/app/src/main/java/com/navinfo/outdoor/bean/BankPathBean.java new file mode 100644 index 0000000..1156f79 --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/bean/BankPathBean.java @@ -0,0 +1,23 @@ +package com.navinfo.outdoor.bean; + +public class BankPathBean { + + private String label; + private String value; + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/app/src/main/java/com/navinfo/outdoor/bean/BankPhoneBean.java b/app/src/main/java/com/navinfo/outdoor/bean/BankPhoneBean.java new file mode 100644 index 0000000..a67b4eb --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/bean/BankPhoneBean.java @@ -0,0 +1,32 @@ +package com.navinfo.outdoor.bean; + +public class BankPhoneBean { + + private Integer code; + private String message; + private Integer body; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Integer getBody() { + return body; + } + + public void setBody(Integer body) { + this.body = body; + } +} diff --git a/app/src/main/java/com/navinfo/outdoor/bean/UserBean.java b/app/src/main/java/com/navinfo/outdoor/bean/UserBean.java new file mode 100644 index 0000000..f554c5b --- /dev/null +++ b/app/src/main/java/com/navinfo/outdoor/bean/UserBean.java @@ -0,0 +1,32 @@ +package com.navinfo.outdoor.bean; + +public class UserBean { + + private Integer code; + private String message; + private Integer body; + + public Integer getCode() { + return code; + } + + public void setCode(Integer code) { + this.code = code; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public Integer getBody() { + return body; + } + + public void setBody(Integer body) { + this.body = body; + } +} diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/GatheringFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/GatheringFragment.java index c671dc0..312a305 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/GatheringFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/GatheringFragment.java @@ -1,13 +1,42 @@ package com.navinfo.outdoor.fragment; +import android.app.Dialog; +import android.content.Intent; import android.os.Bundle; +import android.util.Log; +import android.view.Gravity; import android.view.View; +import android.view.Window; +import android.view.WindowManager; import android.widget.Button; +import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; - +import android.widget.Toast; +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; +import androidx.recyclerview.widget.DividerItemDecoration; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import com.google.gson.Gson; +import com.kongzue.dialog.interfaces.OnDialogButtonClickListener; +import com.kongzue.dialog.util.BaseDialog; +import com.kongzue.dialog.v3.MessageDialog; +import com.lzy.okgo.OkGo; +import com.lzy.okgo.model.Response; import com.navinfo.outdoor.R; +import com.navinfo.outdoor.adapter.BankAdapter; import com.navinfo.outdoor.base.BaseFragment; +import com.navinfo.outdoor.bean.BankPathBean; +import com.navinfo.outdoor.bean.BankPhoneBean; +import com.navinfo.outdoor.http.DialogCallback; +import com.navinfo.outdoor.http.HttpInterface; +import com.navinfo.outdoor.util.GetJsonDataUtil; +import com.navinfo.outdoor.util.PhotoPathUtil; +import org.json.JSONArray; +import java.io.File; +import java.util.ArrayList; +import static android.app.Activity.RESULT_OK; /** * 收款信息 @@ -17,14 +46,23 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe private ImageView ivGathering, imageBank; private Button btnBank; private TextView tvBank; + private TextView tvName; + private EditText etBankNum; + private ImageView gatheringCamera; + private String gatheringPath; + private ArrayList gatheringList; + public static GatheringFragment newInstance(Bundle bundle) { GatheringFragment fragment = new GatheringFragment(); fragment.setArguments(bundle); return fragment; - } @Override + } + + @Override protected int getLayout() { return R.layout.gathering_fragment; + } @Override @@ -33,8 +71,15 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe ivGathering = findViewById(R.id.iv_gathering); ivGathering.setOnClickListener(this::onClick); imageBank = findViewById(R.id.iv_bank); + imageBank.setOnClickListener(this::onClick); tvBank = findViewById(R.id.tv_bank); + tvBank.setOnClickListener(this::onClick); btnBank = findViewById(R.id.btn_bank); + btnBank.setOnClickListener(this::onClick); + tvName = (TextView) findViewById(R.id.tv_name); + etBankNum = (EditText) findViewById(R.id.et_bank_num); + gatheringCamera = (ImageView) findViewById(R.id.gathering_camera); + gatheringCamera.setOnClickListener(this::onClick); } @Override @@ -44,13 +89,134 @@ public class GatheringFragment extends BaseFragment implements View.OnClickListe @Override public void onClick(View v) { - switch (v.getId()){ + switch (v.getId()) { case R.id.iv_gathering: getActivity().finish(); + break; + case R.id.et_bank_num: + break; case R.id.iv_bank: + String bankJson = new GetJsonDataUtil().getJson(getContext(), "bank.json");//获取assets目录下的json文件数据 + ArrayList jsonBean = parseData(bankJson);//用Gson 转成实体 + Dialog dialog = new Dialog(getContext()); + //弹窗点击周围空白处弹出层自动消失弹窗消失(false时为点击周围空白处弹出层不自动消失) + dialog.setCanceledOnTouchOutside(true); + //将布局设置给Dialog + dialog.setContentView(R.layout.bank_item); + RecyclerView rlvBank = dialog.findViewById(R.id.rlv_bank); + rlvBank.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); + rlvBank.setLayoutManager(new LinearLayoutManager(getContext())); + BankAdapter bankAdapter = new BankAdapter(jsonBean, getContext()); + rlvBank.setAdapter(bankAdapter); + bankAdapter.setOnBankClick(new BankAdapter.OnBankClick() { + @Override + public void onClick(int pos) { + + tvBank.setText(jsonBean.get(pos).getLabel()); + + bankAdapter.notifyDataSetChanged(); + dialog.dismiss(); + } + }); + Window window = dialog.getWindow(); + WindowManager.LayoutParams wlp = window.getAttributes(); + wlp.gravity = Gravity.BOTTOM; + wlp.width = WindowManager.LayoutParams.MATCH_PARENT; + wlp.height = 1000; + window.setAttributes(wlp); + dialog.show(); + break; case R.id.btn_bank: + gatheringNetWork(); + break; + case R.id.gathering_camera: + Intent gatheringNumber = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(gatheringNumber, 400); break; } } + + private void gatheringNetWork() { + gatheringList = new ArrayList<>(); + File gatheringFile = new File(gatheringPath); + if (!gatheringFile.exists()) { + Toast.makeText(getContext(), "身份证照片不能为空", Toast.LENGTH_SHORT).show(); + return; + } + gatheringList.add(gatheringFile); + String etBankAccount = etBankNum.getText().toString().trim(); + if (etBankAccount == null || etBankAccount.equals("")) { + Toast.makeText(getContext(), "银行卡号不能为空", Toast.LENGTH_SHORT).show(); + return; + } + + + OkGo + // 请求方式和请求url + .post(HttpInterface.USER_BANKCARD_UP_DATA) + // 请求的 tag, 主要用于取消对应的请求 + .params("userid", "1") + .params("bankAccount", "123456")//银行id + .params("idNumber", etBankAccount)//银行卡号 + .addFileParams("file", gatheringList)//银行卡拍照 + .tag(this) + .execute(new DialogCallback(BankPhoneBean.class) { + @Override + public void onSuccess(Response response) { + dismissLoadingDialog(); + Log.d("TAG", "onSuccess: " + response.toString() + "sssssssssssss"); + if (response.body().equals("0")) { + MessageDialog.show((AppCompatActivity) getActivity(), "是否绑定银行卡", "取消", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + // Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show(); + return false; + } + }); + } else { + MessageDialog.show((AppCompatActivity) getActivity(), "是否绑定银行卡", "确定", "确定", "取消").setOkButton(new OnDialogButtonClickListener() { + @Override + public boolean onClick(BaseDialog baseDialog, View v) { + // Toast.makeText(getContext(), "点击了确定", Toast.LENGTH_SHORT).show(); + return false; + } + }); + } + } + + @Override + public void onError(Response response) { + super.onError(response); + dismissLoadingDialog(); + Toast.makeText(getActivity(), response.message(), Toast.LENGTH_SHORT).show(); + Log.d("TAG", "onError: " + response.message()); + } + }); + } + + @Override + public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + super.onActivityResult(requestCode, resultCode, data); + if (requestCode == 400 && resultCode == RESULT_OK) { + gatheringPath = PhotoPathUtil.getTakePhotoPath(data, "e"); + return; + } + } + + //所属银行解析 + public ArrayList parseData(String result) {//Gson 解析 + ArrayList detail = new ArrayList<>(); + try { + JSONArray data = new JSONArray(result); + Gson gson = new Gson(); + for (int i = 0; i < data.length(); i++) { + BankPathBean bankPath = gson.fromJson(data.optJSONObject(i).toString(), BankPathBean.class); + detail.add(bankPath); + } + } catch (Exception e) { + e.printStackTrace(); + } + return detail; + } } diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/UserAttestationFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/UserAttestationFragment.java index 8af2cca..fbc68a6 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/UserAttestationFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/UserAttestationFragment.java @@ -44,6 +44,9 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic private EditText etNamePhone; private String takePhotoPath1;//身份证正面照片路径 private String takePhotoPath2;//身份证反面照片路径 + private ImageView ivAttestation3; + private String takePhotoPath3; + private ArrayList takePhoneList; public static UserAttestationFragment newInstance(Bundle bundle) { @@ -74,6 +77,8 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic ivAttestation1.setOnClickListener(this); ivAttestation2 = findViewById(R.id.iv_attestation2); ivAttestation2.setOnClickListener(this); + ivAttestation3 = findViewById(R.id.iv_attestation3); + ivAttestation3.setOnClickListener(this); btnAttestation = (Button) findViewById(R.id.btn_attestation); btnAttestation.setOnClickListener(this::onClick); etAttestationName = (EditText) findViewById(R.id.et_attestationName); @@ -94,41 +99,51 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic Intent ivAttestation2 = new Intent("android.media.action.IMAGE_CAPTURE"); startActivityForResult(ivAttestation2, 200); break; + case R.id.iv_attestation3: + Intent ivAttestation3 = new Intent("android.media.action.IMAGE_CAPTURE"); + startActivityForResult(ivAttestation3, 300); + break; case R.id.btn_attestation: - if (etAttestationName == null || etAttestationName.equals("")) { + if (etAttestationName.getText().toString() == null || etAttestationName.getText().toString().equals("")) { Toast.makeText(getContext(), "姓名不能为空,请输入姓名", Toast.LENGTH_SHORT).show(); return; } - if (etNamePhone == null || etNamePhone.equals("")) { + if (etNamePhone.getText().toString() == null || etNamePhone.getText().toString().equals("")) { Toast.makeText(getContext(), "身份证号不能为空,请输入身份证号", Toast.LENGTH_SHORT).show(); return; } +// if (takePhoneList.size()<=0) { +// Toast.makeText(getContext(), "身份证照不能为空", Toast.LENGTH_SHORT).show(); +// return; +// } nameAuthentication(); break; } } private void nameAuthentication() { - ArrayList takePhoneList = new ArrayList<>(); + takePhoneList = new ArrayList<>(); File takePhotoFile1 = new File(takePhotoPath1); File takePhotoFile2 = new File(takePhotoPath2); - if (!takePhotoFile1.exists() || !takePhotoFile2.exists()) { + File takePhotoFile3 = new File(takePhotoPath3); + if (!takePhotoFile1.exists() || !takePhotoFile2.exists() ||!takePhotoFile3.exists()){ Toast.makeText(getContext(), "身份证照片不能为空", Toast.LENGTH_SHORT).show(); return; } takePhoneList.add(takePhotoFile1); takePhoneList.add(takePhotoFile2); - takePhoneList.add(takePhotoFile2); + takePhoneList.add(takePhotoFile3); + OkGo // 请求方式和请求url .post(HttpInterface.USER_AUTH_ADD) // 请求的 tag, 主要用于取消对应的请求 .params("userid", "1") - .params("name", "李心榕") - .params("idnum", "123456") - .addFileParams("file",takePhoneList) + .params("name", etAttestationName.getFreezesText()) + .params("idnum", etNamePhone.getFreezesText()) + .addFileParams("file", takePhoneList) .tag(this) .execute(new DialogCallback(NameAuthenticationBean.class) { @Override @@ -168,13 +183,19 @@ public class UserAttestationFragment extends BaseFragment implements View.OnClic public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 100 && resultCode == RESULT_OK) { - takePhotoPath1 = PhotoPathUtil.getTakePhotoPath(data,"a"); + takePhotoPath1 = PhotoPathUtil.getTakePhotoPath(data, "a"); Bundle extras = data.getExtras();//从Intent中获取附加值 //从附加值中获取返回的图像 Bitmap bitmap = (Bitmap) extras.get("data"); ivAttestation1.setImageBitmap(bitmap);//显示图像 } else if (requestCode == 200 && resultCode == RESULT_OK) { - takePhotoPath2 = PhotoPathUtil.getTakePhotoPath(data,"b"); + takePhotoPath2 = PhotoPathUtil.getTakePhotoPath(data, "b"); + Bundle extras = data.getExtras();//从Intent中获取附加值 + //从附加值中获取返回的图像 + Bitmap bitmap = (Bitmap) extras.get("data"); + ivAttestation2.setImageBitmap(bitmap);//显示图像 + }else if (requestCode == 300 && resultCode == RESULT_OK) { + takePhotoPath3 = PhotoPathUtil.getTakePhotoPath(data, "c"); Bundle extras = data.getExtras();//从Intent中获取附加值 //从附加值中获取返回的图像 Bitmap bitmap = (Bitmap) extras.get("data"); diff --git a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java index 158a913..f315c2f 100644 --- a/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java +++ b/app/src/main/java/com/navinfo/outdoor/http/HttpInterface.java @@ -21,10 +21,15 @@ public class HttpInterface { public static final String IPm4 = "http://172.23.139.4:8001/m4"; + public static final String MSG_CONTENT = IPm4 + "/1/msg_content";//发现 -富文本详情页请求 //172.23.139.4:8001/m4/userAuth/add public static final String USER_AUTH_ADD = IPm4 + "/userAuth/add"; //实名认证 + //172.23.139.4:8001/m4/user/update + public static final String USER_UPDATE = IPm4+"/user/update";//用户资料 + //172.23.139.4:8001/m4/userBankcard/update + public static final String USER_BANKCARD_UP_DATA = IPm4 + "/userBankcard/update"; //绑定银行卡 } diff --git a/app/src/main/res/drawable/ic_baseline_camera.xml b/app/src/main/res/drawable/ic_baseline_camera.xml new file mode 100644 index 0000000..95ad45c --- /dev/null +++ b/app/src/main/res/drawable/ic_baseline_camera.xml @@ -0,0 +1,6 @@ + + + + diff --git a/app/src/main/res/layout/bank_item.xml b/app/src/main/res/layout/bank_item.xml new file mode 100644 index 0000000..85372f1 --- /dev/null +++ b/app/src/main/res/layout/bank_item.xml @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/bankadapteritem.xml b/app/src/main/res/layout/bankadapteritem.xml new file mode 100644 index 0000000..dfd6a17 --- /dev/null +++ b/app/src/main/res/layout/bankadapteritem.xml @@ -0,0 +1,12 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/gathering_fragment.xml b/app/src/main/res/layout/gathering_fragment.xml index e221071..f60a7d7 100644 --- a/app/src/main/res/layout/gathering_fragment.xml +++ b/app/src/main/res/layout/gathering_fragment.xml @@ -41,10 +41,10 @@ android:layout_width="match_parent" android:layout_height="100dp" android:layout_margin="20dp" + android:background="@drawable/gethering_shape" android:orientation="vertical" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - android:background="@drawable/gethering_shape" app:layout_constraintTop_toBottomOf="@+id/rl_gathering"> + android:textSize="18sp" /> + android:background="@null" + android:hint="持卡人姓名" + android:textSize="16sp" /> + + android:background="#2196F3" /> + + android:textSize="18sp" /> + android:background="@null" + android:hint="银行卡号 " + android:textSize="16sp" /> + + + + + + + + + android:background="#2196F3" /> + + android:gravity="center" + android:text="所属银行:" + android:textColor="#333" + android:textSize="18sp" /> + android:layout_centerVertical="true" + android:layout_toLeftOf="@id/iv_bank" + android:layout_toRightOf="@id/bank" + android:hint="请选择所属银行" + android:textSize="16sp" /> + + android:src="@drawable/ic_baseline_arrow_drop" /> + + + + android:background="#2196F3" /> +