Browse Source

收货地址,编辑收货地址,关于我们,意见反馈,安全隐私(web),银行卡开头

Ryan8057 2 years ago
parent
commit
07a5d2dd37
56 changed files with 7362 additions and 75 deletions
  1. 5354 0
      BaseLibrary/src/main/assets/province.json
  2. 76 0
      BaseLibrary/src/main/java/com/cooleshow/base/bean/JsonBean.java
  3. 1 0
      BaseLibrary/src/main/java/com/cooleshow/base/common/BaseConstant.java
  4. 19 0
      BaseLibrary/src/main/java/com/cooleshow/base/common/WebConstants.java
  5. 4 0
      BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt
  6. 38 0
      BaseLibrary/src/main/java/com/cooleshow/base/utils/GetJsonDataUtil.java
  7. 3 0
      BaseLibrary/src/main/res/values/colors.xml
  8. 16 0
      teacher/src/main/AndroidManifest.xml
  9. 20 1
      teacher/src/main/java/com/cooleshow/teacher/adapter/AddressListAdapter.java
  10. 50 6
      teacher/src/main/java/com/cooleshow/teacher/api/APIService.java
  11. 9 18
      teacher/src/main/java/com/cooleshow/teacher/bean/AddressBean.java
  12. 47 0
      teacher/src/main/java/com/cooleshow/teacher/bean/ResponseBankCardBean.java
  13. 17 0
      teacher/src/main/java/com/cooleshow/teacher/contract/AboutContract.java
  14. 18 0
      teacher/src/main/java/com/cooleshow/teacher/contract/EditAddressContract.java
  15. 17 0
      teacher/src/main/java/com/cooleshow/teacher/contract/FeedBackContract.java
  16. 18 0
      teacher/src/main/java/com/cooleshow/teacher/contract/MyBankCardContract.java
  17. 14 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/mine/AboutPresenter.java
  18. 76 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/mine/EditAddressPresenter.java
  19. 47 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/mine/FeedBackPresenter.java
  20. 51 0
      teacher/src/main/java/com/cooleshow/teacher/presenter/mine/MyBankCardPresenter.java
  21. 68 25
      teacher/src/main/java/com/cooleshow/teacher/ui/main/MineFragment.java
  22. 43 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/AboutActivity.java
  23. 14 1
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/AddressListActivity.java
  24. 8 1
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/CheckModifyPhoneNumActivity.java
  25. 395 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/EditAddressActivity.java
  26. 84 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/FeedBackActivity.java
  27. 8 7
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyNickNameActivity.java
  28. 11 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyPasswordActivity.java
  29. 9 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyPhoneNumActivity.java
  30. 75 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/MyBankCardActivity.java
  31. 10 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/PersonalCertificationActivity.java
  32. 21 0
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/PersonalSettingActivity.java
  33. 41 4
      teacher/src/main/java/com/cooleshow/teacher/ui/mine/SettingActivity.java
  34. 2 1
      teacher/src/main/java/com/cooleshow/teacher/ui/minestyle/MineStylePageActivity.java
  35. 9 0
      teacher/src/main/java/com/cooleshow/teacher/ui/minestyle/TeachableInstrumentActivity.java
  36. BIN
      teacher/src/main/res/drawable-xhdpi/icon_about_logo.png
  37. BIN
      teacher/src/main/res/drawable-xhdpi/icon_empty_bank_card.png
  38. BIN
      teacher/src/main/res/drawable-xhdpi/icon_mine_feedback.png
  39. BIN
      teacher/src/main/res/drawable-xhdpi/icon_my_bank_card.png
  40. BIN
      teacher/src/main/res/drawable-xxhdpi/icon_about_logo.png
  41. BIN
      teacher/src/main/res/drawable-xxhdpi/icon_bank_card.png
  42. BIN
      teacher/src/main/res/drawable-xxhdpi/icon_empty_bank_card.png
  43. BIN
      teacher/src/main/res/drawable-xxhdpi/icon_mine_feedback.png
  44. BIN
      teacher/src/main/res/drawable-xxhdpi/icon_my_bank_card.png
  45. 10 0
      teacher/src/main/res/drawable/bg_bank_card.xml
  46. 7 0
      teacher/src/main/res/drawable/bg_ff9178_radius.xml
  47. 8 0
      teacher/src/main/res/drawable/bg_white_10dp_border.xml
  48. 115 0
      teacher/src/main/res/layout/activity_about.xml
  49. 235 0
      teacher/src/main/res/layout/activity_edit_address.xml
  50. 74 0
      teacher/src/main/res/layout/activity_feedback.xml
  51. 79 0
      teacher/src/main/res/layout/activity_my_bank_card.xml
  52. 6 10
      teacher/src/main/res/layout/activity_setting.xml
  53. 46 0
      teacher/src/main/res/layout/empty_my_bank_card.xml
  54. 11 0
      teacher/src/main/res/layout/fragment_mine_layout.xml
  55. 2 1
      teacher/src/main/res/layout/layout_address_item.xml
  56. 76 0
      teacher/src/main/res/layout/pickerview_address_layout.xml

+ 5354 - 0
BaseLibrary/src/main/assets/province.json

@@ -0,0 +1,5354 @@
+[
+  {
+    "name": "北京市",
+    "city": [
+      {
+        "name": "北京市",
+        "area": [
+          "东城区",
+          "西城区",
+          "崇文区",
+          "宣武区",
+          "朝阳区",
+          "丰台区",
+          "石景山区",
+          "海淀区",
+          "门头沟区",
+          "房山区",
+          "通州区",
+          "顺义区",
+          "昌平区",
+          "大兴区",
+          "平谷区",
+          "怀柔区",
+          "密云县",
+          "延庆县"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "天津市",
+    "city": [
+      {
+        "name": "天津市",
+        "area": [
+          "和平区",
+          "河东区",
+          "河西区",
+          "南开区",
+          "河北区",
+          "红桥区",
+          "塘沽区",
+          "汉沽区",
+          "大港区",
+          "东丽区",
+          "西青区",
+          "津南区",
+          "北辰区",
+          "武清区",
+          "宝坻区",
+          "宁河县",
+          "静海县",
+          "蓟  县"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "河北省",
+    "city": [
+      {
+        "name": "石家庄市",
+        "area": [
+          "长安区",
+          "桥东区",
+          "桥西区",
+          "新华区",
+          "郊  区",
+          "井陉矿区",
+          "井陉县",
+          "正定县",
+          "栾城县",
+          "行唐县",
+          "灵寿县",
+          "高邑县",
+          "深泽县",
+          "赞皇县",
+          "无极县",
+          "平山县",
+          "元氏县",
+          "赵  县",
+          "辛集市",
+          "藁",
+          "晋州市",
+          "新乐市",
+          "鹿泉市"
+        ]
+      },
+      {
+        "name": "唐山市",
+        "area": [
+          "路南区",
+          "路北区",
+          "古冶区",
+          "开平区",
+          "新  区",
+          "丰润县",
+          "滦  县",
+          "滦南县",
+          "乐亭县",
+          "迁西县",
+          "玉田县",
+          "唐海县",
+          "遵化市",
+          "丰南市",
+          "迁安市"
+        ]
+      },
+      {
+        "name": "秦皇岛市",
+        "area": [
+          "海港区",
+          "山海关区",
+          "北戴河区",
+          "青龙满族自治县",
+          "昌黎县",
+          "抚宁县",
+          "卢龙县"
+        ]
+      },
+      {
+        "name": "邯郸市",
+        "area": [
+          "邯山区",
+          "丛台区",
+          "复兴区",
+          "峰峰矿区",
+          "邯郸县",
+          "临漳县",
+          "成安县",
+          "大名县",
+          "涉  县",
+          "磁  县",
+          "肥乡县",
+          "永年县",
+          "邱  县",
+          "鸡泽县",
+          "广平县",
+          "馆陶县",
+          "魏  县",
+          "曲周县",
+          "武安市"
+        ]
+      },
+      {
+        "name": "邢台市",
+        "area": [
+          "桥东区",
+          "桥西区",
+          "邢台县",
+          "临城县",
+          "内丘县",
+          "柏乡县",
+          "隆尧县",
+          "任  县",
+          "南和县",
+          "宁晋县",
+          "巨鹿县",
+          "新河县",
+          "广宗县",
+          "平乡县",
+          "威  县",
+          "清河县",
+          "临西县",
+          "南宫市",
+          "沙河市"
+        ]
+      },
+      {
+        "name": "保定市",
+        "area": [
+          "新市区",
+          "北市区",
+          "南市区",
+          "满城县",
+          "清苑县",
+          "涞水县",
+          "阜平县",
+          "徐水县",
+          "定兴县",
+          "唐  县",
+          "高阳县",
+          "容城县",
+          "涞源县",
+          "望都县",
+          "安新县",
+          "易  县",
+          "曲阳县",
+          "蠡  县",
+          "顺平县",
+          "博野",
+          "雄县",
+          "涿州市",
+          "定州市",
+          "安国市",
+          "高碑店市"
+        ]
+      },
+      {
+        "name": "张家口",
+        "area": [
+          "桥东区",
+          "桥西区",
+          "宣化区",
+          "下花园区",
+          "宣化县",
+          "张北县",
+          "康保县",
+          "沽源县",
+          "尚义县",
+          "蔚  县",
+          "阳原县",
+          "怀安县",
+          "万全县",
+          "怀来县",
+          "涿鹿县",
+          "赤城县",
+          "崇礼县"
+        ]
+      },
+      {
+        "name": "承德市",
+        "area": [
+          "双桥区",
+          "双滦区",
+          "鹰手营子矿区",
+          "承德县",
+          "兴隆县",
+          "平泉县",
+          "滦平县",
+          "隆化县",
+          "丰宁满族自治县",
+          "宽城满族自治县",
+          "围场满族蒙古族自治县"
+        ]
+      },
+      {
+        "name": "沧州市",
+        "area": [
+          "新华区",
+          "运河区",
+          "沧  县",
+          "青  县",
+          "东光县",
+          "海兴县",
+          "盐山县",
+          "肃宁县",
+          "南皮县",
+          "吴桥县",
+          "献  县",
+          "孟村回族自治县",
+          "泊头市",
+          "任丘市",
+          "黄骅市",
+          "河间市"
+        ]
+      },
+      {
+        "name": "廊坊市",
+        "area": [
+          "安次区",
+          "固安县",
+          "永清县",
+          "香河县",
+          "大城县",
+          "文安县",
+          "大厂回族自治县",
+          "霸州市",
+          "三河市"
+        ]
+      },
+      {
+        "name": "衡水市",
+        "area": [
+          "桃城区",
+          "枣强县",
+          "武邑县",
+          "武强县",
+          "饶阳县",
+          "安平县",
+          "故城县",
+          "景  县",
+          "阜城县",
+          "冀州市",
+          "深州市"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "山西省",
+    "city": [
+      {
+        "name": "太原市",
+        "area": [
+          "小店区",
+          "迎泽区",
+          "杏花岭区",
+          "尖草坪区",
+          "万柏林区",
+          "晋源区",
+          "清徐县",
+          "阳曲县",
+          "娄烦县",
+          "古交市"
+        ]
+      },
+      {
+        "name": "大同市",
+        "area": [
+          "城  区",
+          "矿  区",
+          "南郊区",
+          "新荣区",
+          "阳高县",
+          "天镇县",
+          "广灵县",
+          "灵丘县",
+          "浑源县",
+          "左云县",
+          "大同县"
+        ]
+      },
+      {
+        "name": "阳泉市",
+        "area": [
+          "城  区",
+          "矿  区",
+          "郊  区",
+          "平定县",
+          "盂  县"
+        ]
+      },
+      {
+        "name": "长治市",
+        "area": [
+          "城  区",
+          "郊  区",
+          "长治县",
+          "襄垣县",
+          "屯留县",
+          "平顺县",
+          "黎城县",
+          "壶关县",
+          "长子县",
+          "武乡县",
+          "沁  县",
+          "沁源县",
+          "潞城市"
+        ]
+      },
+      {
+        "name": "晋城市",
+        "area": [
+          "城  区",
+          "沁水县",
+          "阳城县",
+          "陵川县",
+          "泽州县",
+          "高平市"
+        ]
+      },
+      {
+        "name": "朔州市",
+        "area": [
+          "朔城区",
+          "平鲁区",
+          "山阴县",
+          "应  县",
+          "右玉县",
+          "怀仁县"
+        ]
+      },
+      {
+        "name": "忻州市",
+        "area": [
+          "忻府区",
+          "原平市",
+          "定襄县",
+          "五台县",
+          "代  县",
+          "繁峙县",
+          "宁武县",
+          "静乐县",
+          "神池县",
+          "五寨县",
+          "岢岚县",
+          "河曲县",
+          "保德县",
+          "偏关县"
+        ]
+      },
+      {
+        "name": "吕梁市",
+        "area": [
+          "离石区",
+          "孝义市",
+          "汾阳市",
+          "文水县",
+          "交城县",
+          "兴  县",
+          "临  县",
+          "柳林县",
+          "石楼县",
+          "岚  县",
+          "方山县",
+          "中阳县",
+          "交口县"
+        ]
+      },
+      {
+        "name": "晋中市",
+        "area": [
+          "榆次市",
+          "介休市",
+          "榆社县",
+          "左权县",
+          "和顺县",
+          "昔阳县",
+          "寿阳县",
+          "太谷县",
+          "祁  县",
+          "平遥县",
+          "灵石县"
+        ]
+      },
+      {
+        "name": "临汾市",
+        "area": [
+          "临汾市",
+          "侯马市",
+          "霍州市",
+          "曲沃县",
+          "翼城县",
+          "襄汾县",
+          "洪洞县",
+          "古  县",
+          "安泽县",
+          "浮山县",
+          "吉  县",
+          "乡宁县",
+          "蒲  县",
+          "大宁县",
+          "永和县",
+          "隰  县",
+          "汾西县"
+        ]
+      },
+      {
+        "name": "运城市",
+        "area": [
+          "运城市",
+          "永济市",
+          "河津市",
+          "芮城县",
+          "临猗县",
+          "万荣县",
+          "新绛县",
+          "稷山县",
+          "闻喜县",
+          "夏  县",
+          "绛  县",
+          "平陆县",
+          "垣曲县"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "内蒙古",
+    "city": [
+      {
+        "name": "呼和浩特市",
+        "area": [
+          "新城区",
+          "回民区",
+          "玉泉区",
+          "郊  区",
+          "土默特左旗",
+          "托克托县",
+          "和林格尔县",
+          "清水河县",
+          "武川县"
+        ]
+      },
+      {
+        "name": "包头市",
+        "area": [
+          "东河区",
+          "昆都伦区",
+          "青山区",
+          "石拐矿区",
+          "白云矿区",
+          "郊  区",
+          "土默特右旗",
+          "固阳县",
+          "达尔罕茂明安联合旗"
+        ]
+      },
+      {
+        "name": "乌海市",
+        "area": [
+          "海勃湾区",
+          "海南区",
+          "乌达区"
+        ]
+      },
+      {
+        "name": "赤峰市",
+        "area": [
+          "红山区",
+          "元宝山区",
+          "松山区",
+          "阿鲁科尔沁旗",
+          "巴林左旗",
+          "巴林右旗",
+          "林西县",
+          "克什克腾旗",
+          "翁牛特旗",
+          "喀喇沁旗",
+          "宁城县",
+          "敖汉旗"
+        ]
+      },
+      {
+        "name": "呼伦贝尔市",
+        "area": [
+          "海拉尔市",
+          "满洲里市",
+          "扎兰屯市",
+          "牙克石市",
+          "根河市",
+          "额尔古纳市",
+          "阿荣旗",
+          "莫力达瓦达斡尔族自治旗",
+          "鄂伦春自治旗",
+          "鄂温克族自治旗",
+          "新巴尔虎右旗",
+          "新巴尔虎左旗",
+          "陈巴尔虎旗"
+        ]
+      },
+      {
+        "name": "兴安盟",
+        "area": [
+          "乌兰浩特市",
+          "阿尔山市",
+          "科尔沁右翼前旗",
+          "科尔沁右翼中旗",
+          "扎赉特旗",
+          "突泉县"
+        ]
+      },
+      {
+        "name": "通辽市",
+        "area": [
+          "科尔沁区",
+          "霍林郭勒市",
+          "科尔沁左翼中旗",
+          "科尔沁左翼后旗",
+          "开鲁县",
+          "库伦旗",
+          "奈曼旗",
+          "扎鲁特旗"
+        ]
+      },
+      {
+        "name": "锡林郭勒盟",
+        "area": [
+          "二连浩特市",
+          "锡林浩特市",
+          "阿巴嘎旗",
+          "苏尼特左旗",
+          "苏尼特右旗",
+          "东乌珠穆沁旗",
+          "西乌珠穆沁旗",
+          "太仆寺旗",
+          "镶黄旗",
+          "正镶白旗",
+          "正蓝旗",
+          "多伦县"
+        ]
+      },
+      {
+        "name": "乌兰察布盟",
+        "area": [
+          "集宁市",
+          "丰镇市",
+          "卓资县",
+          "化德县",
+          "商都县",
+          "兴和县",
+          "凉城县",
+          "察哈尔右翼前旗",
+          "察哈尔右翼中旗",
+          "察哈尔右翼后旗",
+          "四子王旗"
+        ]
+      },
+      {
+        "name": "伊克昭盟",
+        "area": [
+          "东胜市",
+          "达拉特旗",
+          "准格尔旗",
+          "鄂托克前旗",
+          "鄂托克旗",
+          "杭锦旗",
+          "乌审旗",
+          "伊金霍洛旗"
+        ]
+      },
+      {
+        "name": "巴彦淖尔盟",
+        "area": [
+          "临河市",
+          "五原县",
+          "磴口县",
+          "乌拉特前旗",
+          "乌拉特中旗",
+          "乌拉特后旗",
+          "杭锦后旗"
+        ]
+      },
+      {
+        "name": "阿拉善盟",
+        "area": [
+          "阿拉善左旗",
+          "阿拉善右旗",
+          "额济纳旗"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "辽宁省",
+    "city": [
+      {
+        "name": "沈阳市",
+        "area": [
+          "沈河区",
+          "皇姑区",
+          "和平区",
+          "大东区",
+          "铁西区",
+          "苏家屯区",
+          "东陵区",
+          "于洪区",
+          "新民市",
+          "法库县",
+          "辽中县",
+          "康平县",
+          "新城子区",
+          "其他"
+        ]
+      },
+      {
+        "name": "大连市",
+        "area": [
+          "西岗区",
+          "中山区",
+          "沙河口区",
+          "甘井子区",
+          "旅顺口区",
+          "金州区",
+          "瓦房店市",
+          "普兰店市",
+          "庄河市",
+          "长海县",
+          "其他"
+        ]
+      },
+      {
+        "name": "鞍山市",
+        "area": [
+          "铁东区",
+          "铁西区",
+          "立山区",
+          "千山区",
+          "海城市",
+          "台安县",
+          "岫岩满族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "抚顺市",
+        "area": [
+          "顺城区",
+          "新抚区",
+          "东洲区",
+          "望花区",
+          "抚顺县",
+          "清原满族自治县",
+          "新宾满族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "本溪市",
+        "area": [
+          "平山区",
+          "明山区",
+          "溪湖区",
+          "南芬区",
+          "本溪满族自治县",
+          "桓仁满族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "丹东市",
+        "area": [
+          "振兴区",
+          "元宝区",
+          "振安区",
+          "东港市",
+          "凤城市",
+          "宽甸满族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "锦州市",
+        "area": [
+          "太和区",
+          "古塔区",
+          "凌河区",
+          "凌海市",
+          "黑山县",
+          "义县",
+          "北宁市",
+          "其他"
+        ]
+      },
+      {
+        "name": "营口市",
+        "area": [
+          "站前区",
+          "西市区",
+          "鲅鱼圈区",
+          "老边区",
+          "大石桥市",
+          "盖州市",
+          "其他"
+        ]
+      },
+      {
+        "name": "阜新市",
+        "area": [
+          "海州区",
+          "新邱区",
+          "太平区",
+          "清河门区",
+          "细河区",
+          "彰武县",
+          "阜新蒙古族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "辽阳市",
+        "area": [
+          "白塔区",
+          "文圣区",
+          "宏伟区",
+          "太子河区",
+          "弓长岭区",
+          "灯塔市",
+          "辽阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "盘锦",
+        "area": [
+          "双台子区",
+          "兴隆台区",
+          "盘山县",
+          "大洼县",
+          "其他"
+        ]
+      },
+      {
+        "name": "铁岭市",
+        "area": [
+          "银州区",
+          "清河区",
+          "调兵山市",
+          "开原市",
+          "铁岭县",
+          "昌图县",
+          "西丰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "朝阳市",
+        "area": [
+          "双塔区",
+          "龙城区",
+          "凌源市",
+          "北票市",
+          "朝阳县",
+          "建平县",
+          "喀喇沁左翼蒙古族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "葫芦岛市",
+        "area": [
+          "龙港区",
+          "南票区",
+          "连山区",
+          "兴城市",
+          "绥中县",
+          "建昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "吉林省",
+    "city": [
+      {
+        "name": "长春市",
+        "area": [
+          "朝阳区",
+          "宽城区",
+          "二道区",
+          "南关区",
+          "绿园区",
+          "双阳区",
+          "九台市",
+          "榆树市",
+          "德惠市",
+          "农安县",
+          "其他"
+        ]
+      },
+      {
+        "name": "吉林市",
+        "area": [
+          "船营区",
+          "昌邑区",
+          "龙潭区",
+          "丰满区",
+          "舒兰市",
+          "桦甸市",
+          "蛟河市",
+          "磐石市",
+          "永吉县",
+          "其他"
+        ]
+      },
+      {
+        "name": "四平",
+        "area": [
+          "铁西区",
+          "铁东区",
+          "公主岭市",
+          "双辽市",
+          "梨树县",
+          "伊通满族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "辽源市",
+        "area": [
+          "龙山区",
+          "西安区",
+          "东辽县",
+          "东丰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "通化市",
+        "area": [
+          "东昌区",
+          "二道江区",
+          "梅河口市",
+          "集安市",
+          "通化县",
+          "辉南县",
+          "柳河县",
+          "其他"
+        ]
+      },
+      {
+        "name": "白山市",
+        "area": [
+          "八道江区",
+          "江源区",
+          "临江市",
+          "靖宇县",
+          "抚松县",
+          "长白朝鲜族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "松原市",
+        "area": [
+          "宁江区",
+          "乾安县",
+          "长岭县",
+          "扶余县",
+          "前郭尔罗斯蒙古族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "白城市",
+        "area": [
+          "洮北区",
+          "大安市",
+          "洮南市",
+          "镇赉县",
+          "通榆县",
+          "其他"
+        ]
+      },
+      {
+        "name": "延边朝鲜族自治州",
+        "area": [
+          "延吉市",
+          "图们市",
+          "敦化市",
+          "龙井市",
+          "珲春市",
+          "和龙市",
+          "安图县",
+          "汪清县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "黑龙江省",
+    "city": [
+      {
+        "name": "哈尔滨市",
+        "area": [
+          "松北区",
+          "道里区",
+          "南岗区",
+          "平房区",
+          "香坊区",
+          "道外区",
+          "呼兰区",
+          "阿城区",
+          "双城市",
+          "尚志市",
+          "五常市",
+          "宾县",
+          "方正县",
+          "通河县",
+          "巴彦县",
+          "延寿县",
+          "木兰县",
+          "依兰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "齐齐哈尔市",
+        "area": [
+          "龙沙区",
+          "昂昂溪区",
+          "铁锋区",
+          "建华区",
+          "富拉尔基区",
+          "碾子山区",
+          "梅里斯达斡尔族区",
+          "讷河市",
+          "富裕县",
+          "拜泉县",
+          "甘南县",
+          "依安县",
+          "克山县",
+          "泰来县",
+          "克东县",
+          "龙江县",
+          "其他"
+        ]
+      },
+      {
+        "name": "鹤岗市",
+        "area": [
+          "兴山区",
+          "工农区",
+          "南山区",
+          "兴安区",
+          "向阳区",
+          "东山区",
+          "萝北县",
+          "绥滨县",
+          "其他"
+        ]
+      },
+      {
+        "name": "双鸭山",
+        "area": [
+          "尖山区",
+          "岭东区",
+          "四方台区",
+          "宝山区",
+          "集贤县",
+          "宝清县",
+          "友谊县",
+          "饶河县",
+          "其他"
+        ]
+      },
+      {
+        "name": "鸡西市",
+        "area": [
+          "鸡冠区",
+          "恒山区",
+          "城子河区",
+          "滴道区",
+          "梨树区",
+          "麻山区",
+          "密山市",
+          "虎林市",
+          "鸡东县",
+          "其他"
+        ]
+      },
+      {
+        "name": "大庆市",
+        "area": [
+          "萨尔图区",
+          "红岗区",
+          "龙凤区",
+          "让胡路区",
+          "大同区",
+          "林甸县",
+          "肇州县",
+          "肇源县",
+          "杜尔伯特蒙古族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "伊春市",
+        "area": [
+          "伊春区",
+          "带岭区",
+          "南岔区",
+          "金山屯区",
+          "西林区",
+          "美溪区",
+          "乌马河区",
+          "翠峦区",
+          "友好区",
+          "上甘岭区",
+          "五营区",
+          "红星区",
+          "新青区",
+          "汤旺河区",
+          "乌伊岭区",
+          "铁力市",
+          "嘉荫县",
+          "其他"
+        ]
+      },
+      {
+        "name": "牡丹江市",
+        "area": [
+          "爱民区",
+          "东安区",
+          "阳明区",
+          "西安区",
+          "绥芬河市",
+          "宁安市",
+          "海林市",
+          "穆棱市",
+          "林口县",
+          "东宁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "佳木斯市",
+        "area": [
+          "向阳区",
+          "前进区",
+          "东风区",
+          "郊区",
+          "同江市",
+          "富锦市",
+          "桦川县",
+          "抚远县",
+          "桦南县",
+          "汤原县",
+          "其他"
+        ]
+      },
+      {
+        "name": "七台河市",
+        "area": [
+          "桃山区",
+          "新兴区",
+          "茄子河区",
+          "勃利县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黑河市",
+        "area": [
+          "爱辉区",
+          "北安市",
+          "五大连池市",
+          "逊克县",
+          "嫩江县",
+          "孙吴县",
+          "其他"
+        ]
+      },
+      {
+        "name": "绥化市",
+        "area": [
+          "北林区",
+          "安达市",
+          "肇东市",
+          "海伦市",
+          "绥棱县",
+          "兰西县",
+          "明水县",
+          "青冈县",
+          "庆安县",
+          "望奎县",
+          "其他"
+        ]
+      },
+      {
+        "name": "大兴安岭地区",
+        "area": [
+          "呼玛县",
+          "塔河县",
+          "漠河县",
+          "大兴安岭辖区",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "上海市",
+    "city": [
+      {
+        "name": "上海市",
+        "area": [
+          "黄浦区",
+          "卢湾区",
+          "徐汇区",
+          "长宁区",
+          "静安区",
+          "普陀区",
+          "闸北区",
+          "虹口区",
+          "杨浦区",
+          "宝山区",
+          "闵行区",
+          "嘉定区",
+          "松江区",
+          "金山区",
+          "青浦区",
+          "南汇区",
+          "奉贤区",
+          "浦东新区",
+          "崇明县",
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "江苏省",
+    "city": [
+      {
+        "name": "南京市",
+        "area": [
+          "玄武区",
+          "白下区",
+          "秦淮区",
+          "建邺区",
+          "鼓楼区",
+          "下关区",
+          "栖霞区",
+          "雨花台区",
+          "浦口区",
+          "江宁区",
+          "六合区",
+          "溧水县",
+          "高淳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "苏州市",
+        "area": [
+          "金阊区",
+          "平江区",
+          "沧浪区",
+          "虎丘区",
+          "吴中区",
+          "相城区",
+          "常熟市",
+          "张家港市",
+          "昆山市",
+          "吴江市",
+          "太仓市",
+          "其他"
+        ]
+      },
+      {
+        "name": "无锡市",
+        "area": [
+          "崇安区",
+          "南长区",
+          "北塘区",
+          "滨湖区",
+          "锡山区",
+          "惠山区",
+          "江阴市",
+          "宜兴市",
+          "其他"
+        ]
+      },
+      {
+        "name": "常州市",
+        "area": [
+          "钟楼区",
+          "天宁区",
+          "戚墅堰区",
+          "新北区",
+          "武进区",
+          "金坛市",
+          "溧阳市",
+          "其他"
+        ]
+      },
+      {
+        "name": "镇江市",
+        "area": [
+          "京口区",
+          "润州区",
+          "丹徒区",
+          "丹阳市",
+          "扬中市",
+          "句容市",
+          "其他"
+        ]
+      },
+      {
+        "name": "南通市",
+        "area": [
+          "崇川区",
+          "港闸区",
+          "通州市",
+          "如皋市",
+          "海门市",
+          "启东市",
+          "海安县",
+          "如东县",
+          "其他"
+        ]
+      },
+      {
+        "name": "泰州市",
+        "area": [
+          "海陵区",
+          "高港区",
+          "姜堰市",
+          "泰兴市",
+          "靖江市",
+          "兴化市",
+          "其他"
+        ]
+      },
+      {
+        "name": "扬州市",
+        "area": [
+          "广陵区",
+          "维扬区",
+          "邗江区",
+          "江都市",
+          "仪征市",
+          "高邮市",
+          "宝应县",
+          "其他"
+        ]
+      },
+      {
+        "name": "盐城市",
+        "area": [
+          "亭湖区",
+          "盐都区",
+          "大丰市",
+          "东台市",
+          "建湖县",
+          "射阳县",
+          "阜宁县",
+          "滨海县",
+          "响水县",
+          "其他"
+        ]
+      },
+      {
+        "name": "连云港市",
+        "area": [
+          "新浦区",
+          "海州区",
+          "连云区",
+          "东海县",
+          "灌云县",
+          "赣榆县",
+          "灌南县",
+          "其他"
+        ]
+      },
+      {
+        "name": "徐州市",
+        "area": [
+          "云龙区",
+          "鼓楼区",
+          "九里区",
+          "泉山区",
+          "贾汪区",
+          "邳州市",
+          "新沂市",
+          "铜山县",
+          "睢宁县",
+          "沛县",
+          "丰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "淮安市",
+        "area": [
+          "清河区",
+          "清浦区",
+          "楚州区",
+          "淮阴区",
+          "涟水县",
+          "洪泽县",
+          "金湖县",
+          "盱眙县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宿迁市",
+        "area": [
+          "宿城区",
+          "宿豫区",
+          "沭阳县",
+          "泗阳县",
+          "泗洪县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "浙江省",
+    "city": [
+      {
+        "name": "杭州市",
+        "area": [
+          "拱墅区",
+          "西湖区",
+          "上城区",
+          "下城区",
+          "江干区",
+          "滨江区",
+          "余杭区",
+          "萧山区",
+          "建德市",
+          "富阳市",
+          "临安市",
+          "桐庐县",
+          "淳安县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宁波市",
+        "area": [
+          "海曙区",
+          "江东区",
+          "江北区",
+          "镇海区",
+          "北仑区",
+          "鄞州区",
+          "余姚市",
+          "慈溪市",
+          "奉化市",
+          "宁海县",
+          "象山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "温州市",
+        "area": [
+          "鹿城区",
+          "龙湾区",
+          "瓯海区",
+          "瑞安市",
+          "乐清市",
+          "永嘉县",
+          "洞头县",
+          "平阳县",
+          "苍南县",
+          "文成县",
+          "泰顺县",
+          "其他"
+        ]
+      },
+      {
+        "name": "嘉兴市",
+        "area": [
+          "秀城区",
+          "秀洲区",
+          "海宁市",
+          "平湖市",
+          "桐乡市",
+          "嘉善县",
+          "海盐县",
+          "其他"
+        ]
+      },
+      {
+        "name": "湖州市",
+        "area": [
+          "吴兴区",
+          "南浔区",
+          "长兴县",
+          "德清县",
+          "安吉县",
+          "其他"
+        ]
+      },
+      {
+        "name": "绍兴市",
+        "area": [
+          "越城区",
+          "诸暨市",
+          "上虞市",
+          "嵊州市",
+          "绍兴县",
+          "新昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "金华市",
+        "area": [
+          "婺城区",
+          "金东区",
+          "兰溪市",
+          "义乌市",
+          "东阳市",
+          "永康市",
+          "武义县",
+          "浦江县",
+          "磐安县",
+          "其他"
+        ]
+      },
+      {
+        "name": "衢州市",
+        "area": [
+          "柯城区",
+          "衢江区",
+          "江山市",
+          "龙游县",
+          "常山县",
+          "开化县",
+          "其他"
+        ]
+      },
+      {
+        "name": "舟山市",
+        "area": [
+          "定海区",
+          "普陀区",
+          "岱山县",
+          "嵊泗县",
+          "其他"
+        ]
+      },
+      {
+        "name": "台州市",
+        "area": [
+          "椒江区",
+          "黄岩区",
+          "路桥区",
+          "临海市",
+          "温岭市",
+          "玉环县",
+          "天台县",
+          "仙居县",
+          "三门县",
+          "其他"
+        ]
+      },
+      {
+        "name": "丽水市",
+        "area": [
+          "莲都区",
+          "龙泉市",
+          "缙云县",
+          "青田县",
+          "云和县",
+          "遂昌县",
+          "松阳县",
+          "庆元县",
+          "景宁畲族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他市",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "安徽省",
+    "city": [
+      {
+        "name": "合肥市",
+        "area": [
+          "庐阳区",
+          "瑶海区",
+          "蜀山区",
+          "包河区",
+          "长丰县",
+          "肥东县",
+          "肥西县",
+          "其他"
+        ]
+      },
+      {
+        "name": "芜湖市",
+        "area": [
+          "镜湖区",
+          "弋江区",
+          "鸠江区",
+          "三山区",
+          "芜湖县",
+          "南陵县",
+          "繁昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "蚌埠市",
+        "area": [
+          "蚌山区",
+          "龙子湖区",
+          "禹会区",
+          "淮上区",
+          "怀远县",
+          "固镇县",
+          "五河县",
+          "其他"
+        ]
+      },
+      {
+        "name": "淮南市",
+        "area": [
+          "田家庵区",
+          "大通区",
+          "谢家集区",
+          "八公山区",
+          "潘集区",
+          "凤台县",
+          "其他"
+        ]
+      },
+      {
+        "name": "马鞍山市",
+        "area": [
+          "雨山区",
+          "花山区",
+          "金家庄区",
+          "当涂县",
+          "其他"
+        ]
+      },
+      {
+        "name": "淮北市",
+        "area": [
+          "相山区",
+          "杜集区",
+          "烈山区",
+          "濉溪县",
+          "其他"
+        ]
+      },
+      {
+        "name": "铜陵市",
+        "area": [
+          "铜官山区",
+          "狮子山区",
+          "郊区",
+          "铜陵县",
+          "其他"
+        ]
+      },
+      {
+        "name": "安庆市",
+        "area": [
+          "迎江区",
+          "大观区",
+          "宜秀区",
+          "桐城市",
+          "宿松县",
+          "枞阳县",
+          "太湖县",
+          "怀宁县",
+          "岳西县",
+          "望江县",
+          "潜山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黄山市",
+        "area": [
+          "屯溪区",
+          "黄山区",
+          "徽州区",
+          "休宁县",
+          "歙县",
+          "祁门县",
+          "黟县",
+          "其他"
+        ]
+      },
+      {
+        "name": "滁州市",
+        "area": [
+          "琅琊区",
+          "南谯区",
+          "天长市",
+          "明光市",
+          "全椒县",
+          "来安县",
+          "定远县",
+          "凤阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "阜阳市",
+        "area": [
+          "颍州区",
+          "颍东区",
+          "颍泉区",
+          "界首市",
+          "临泉县",
+          "颍上县",
+          "阜南县",
+          "太和县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宿州市",
+        "area": [
+          "埇桥区",
+          "萧县",
+          "泗县",
+          "砀山县",
+          "灵璧县",
+          "其他"
+        ]
+      },
+      {
+        "name": "巢湖市",
+        "area": [
+          "居巢区",
+          "含山县",
+          "无为县",
+          "庐江县",
+          "和县",
+          "其他"
+        ]
+      },
+      {
+        "name": "六安市",
+        "area": [
+          "金安区",
+          "裕安区",
+          "寿县",
+          "霍山县",
+          "霍邱县",
+          "舒城县",
+          "金寨县",
+          "其他"
+        ]
+      },
+      {
+        "name": "亳州市",
+        "area": [
+          "谯城区",
+          "利辛县",
+          "涡阳县",
+          "蒙城县",
+          "其他"
+        ]
+      },
+      {
+        "name": "池州市",
+        "area": [
+          "贵池区",
+          "东至县",
+          "石台县",
+          "青阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宣城市",
+        "area": [
+          "宣州区",
+          "宁国市",
+          "广德县",
+          "郎溪县",
+          "泾县",
+          "旌德县",
+          "绩溪县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他市",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "福建省",
+    "city": [
+      {
+        "name": "福州市",
+        "area": [
+          "鼓楼区",
+          "台江区",
+          "仓山区",
+          "马尾区",
+          "晋安区",
+          "福清市",
+          "长乐市",
+          "闽侯县",
+          "闽清县",
+          "永泰县",
+          "连江县",
+          "罗源县",
+          "平潭县",
+          "其他"
+        ]
+      },
+      {
+        "name": "厦门市",
+        "area": [
+          "思明区",
+          "海沧区",
+          "湖里区",
+          "集美区",
+          "同安区",
+          "翔安区",
+          "其他"
+        ]
+      },
+      {
+        "name": "莆田市",
+        "area": [
+          "城厢区",
+          "涵江区",
+          "荔城区",
+          "秀屿区",
+          "仙游县",
+          "其他"
+        ]
+      },
+      {
+        "name": "三明市",
+        "area": [
+          "梅列区",
+          "三元区",
+          "永安市",
+          "明溪县",
+          "将乐县",
+          "大田县",
+          "宁化县",
+          "建宁县",
+          "沙县",
+          "尤溪县",
+          "清流县",
+          "泰宁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "泉州市",
+        "area": [
+          "鲤城区",
+          "丰泽区",
+          "洛江区",
+          "泉港区",
+          "石狮市",
+          "晋江市",
+          "南安市",
+          "惠安县",
+          "永春县",
+          "安溪县",
+          "德化县",
+          "金门县",
+          "其他"
+        ]
+      },
+      {
+        "name": "漳州市",
+        "area": [
+          "芗城区",
+          "龙文区",
+          "龙海市",
+          "平和县",
+          "南靖县",
+          "诏安县",
+          "漳浦县",
+          "华安县",
+          "东山县",
+          "长泰县",
+          "云霄县",
+          "其他"
+        ]
+      },
+      {
+        "name": "南平市",
+        "area": [
+          "延平区",
+          "建瓯市",
+          "邵武市",
+          "武夷山市",
+          "建阳市",
+          "松溪县",
+          "光泽县",
+          "顺昌县",
+          "浦城县",
+          "政和县",
+          "其他"
+        ]
+      },
+      {
+        "name": "龙岩市",
+        "area": [
+          "新罗区",
+          "漳平市",
+          "长汀县",
+          "武平县",
+          "上杭县",
+          "永定县",
+          "连城县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宁德市",
+        "area": [
+          "蕉城区",
+          "福安市",
+          "福鼎市",
+          "寿宁县",
+          "霞浦县",
+          "柘荣县",
+          "屏南县",
+          "古田县",
+          "周宁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "江西省",
+    "city": [
+      {
+        "name": "南昌市",
+        "area": [
+          "东湖区",
+          "西湖区",
+          "青云谱区",
+          "湾里区",
+          "青山湖区",
+          "新建县",
+          "南昌县",
+          "进贤县",
+          "安义县",
+          "其他"
+        ]
+      },
+      {
+        "name": "景德镇市",
+        "area": [
+          "珠山区",
+          "昌江区",
+          "乐平市",
+          "浮梁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "萍乡市",
+        "area": [
+          "安源区",
+          "湘东区",
+          "莲花县",
+          "上栗县",
+          "芦溪县",
+          "其他"
+        ]
+      },
+      {
+        "name": "九江市",
+        "area": [
+          "浔阳区",
+          "庐山区",
+          "瑞昌市",
+          "九江县",
+          "星子县",
+          "武宁县",
+          "彭泽县",
+          "永修县",
+          "修水县",
+          "湖口县",
+          "德安县",
+          "都昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "新余市",
+        "area": [
+          "渝水区",
+          "分宜县",
+          "其他"
+        ]
+      },
+      {
+        "name": "鹰潭市",
+        "area": [
+          "月湖区",
+          "贵溪市",
+          "余江县",
+          "其他"
+        ]
+      },
+      {
+        "name": "赣州市",
+        "area": [
+          "章贡区",
+          "瑞金市",
+          "南康市",
+          "石城县",
+          "安远县",
+          "赣县",
+          "宁都县",
+          "寻乌县",
+          "兴国县",
+          "定南县",
+          "上犹县",
+          "于都县",
+          "龙南县",
+          "崇义县",
+          "信丰县",
+          "全南县",
+          "大余县",
+          "会昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "吉安市",
+        "area": [
+          "吉州区",
+          "青原区",
+          "井冈山市",
+          "吉安县",
+          "永丰县",
+          "永新县",
+          "新干县",
+          "泰和县",
+          "峡江县",
+          "遂川县",
+          "安福县",
+          "吉水县",
+          "万安县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宜春市",
+        "area": [
+          "袁州区",
+          "丰城市",
+          "樟树市",
+          "高安市",
+          "铜鼓县",
+          "靖安县",
+          "宜丰县",
+          "奉新县",
+          "万载县",
+          "上高县",
+          "其他"
+        ]
+      },
+      {
+        "name": "抚州市",
+        "area": [
+          "临川区",
+          "南丰县",
+          "乐安县",
+          "金溪县",
+          "南城县",
+          "东乡县",
+          "资溪县",
+          "宜黄县",
+          "广昌县",
+          "黎川县",
+          "崇仁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "上饶市",
+        "area": [
+          "信州区",
+          "德兴市",
+          "上饶县",
+          "广丰县",
+          "鄱阳县",
+          "婺源县",
+          "铅山县",
+          "余干县",
+          "横峰县",
+          "弋阳县",
+          "玉山县",
+          "万年县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "山东省",
+    "city": [
+      {
+        "name": "济南市",
+        "area": [
+          "市中区",
+          "历下区",
+          "天桥区",
+          "槐荫区",
+          "历城区",
+          "长清区",
+          "章丘市",
+          "平阴县",
+          "济阳县",
+          "商河县",
+          "其他"
+        ]
+      },
+      {
+        "name": "青岛市",
+        "area": [
+          "市南区",
+          "市北区",
+          "城阳区",
+          "四方区",
+          "李沧区",
+          "黄岛区",
+          "崂山区",
+          "胶南市",
+          "胶州市",
+          "平度市",
+          "莱西市",
+          "即墨市",
+          "其他"
+        ]
+      },
+      {
+        "name": "淄博市",
+        "area": [
+          "张店区",
+          "临淄区",
+          "淄川区",
+          "博山区",
+          "周村区",
+          "桓台县",
+          "高青县",
+          "沂源县",
+          "其他"
+        ]
+      },
+      {
+        "name": "枣庄市",
+        "area": [
+          "市中区",
+          "山亭区",
+          "峄城区",
+          "台儿庄区",
+          "薛城区",
+          "滕州市",
+          "其他"
+        ]
+      },
+      {
+        "name": "东营市",
+        "area": [
+          "东营区",
+          "河口区",
+          "垦利县",
+          "广饶县",
+          "利津县",
+          "其他"
+        ]
+      },
+      {
+        "name": "烟台市",
+        "area": [
+          "芝罘区",
+          "福山区",
+          "牟平区",
+          "莱山区",
+          "龙口市",
+          "莱阳市",
+          "莱州市",
+          "招远市",
+          "蓬莱市",
+          "栖霞市",
+          "海阳市",
+          "长岛县",
+          "其他"
+        ]
+      },
+      {
+        "name": "潍坊市",
+        "area": [
+          "潍城区",
+          "寒亭区",
+          "坊子区",
+          "奎文区",
+          "青州市",
+          "诸城市",
+          "寿光市",
+          "安丘市",
+          "高密市",
+          "昌邑市",
+          "昌乐县",
+          "临朐县",
+          "其他"
+        ]
+      },
+      {
+        "name": "济宁市",
+        "area": [
+          "市中区",
+          "任城区",
+          "曲阜市",
+          "兖州市",
+          "邹城市",
+          "鱼台县",
+          "金乡县",
+          "嘉祥县",
+          "微山县",
+          "汶上县",
+          "泗水县",
+          "梁山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "泰安市",
+        "area": [
+          "泰山区",
+          "岱岳区",
+          "新泰市",
+          "肥城市",
+          "宁阳县",
+          "东平县",
+          "其他"
+        ]
+      },
+      {
+        "name": "威海市",
+        "area": [
+          "环翠区",
+          "乳山市",
+          "文登市",
+          "荣成市",
+          "其他"
+        ]
+      },
+      {
+        "name": "日照市",
+        "area": [
+          "东港区",
+          "岚山区",
+          "五莲县",
+          "莒县",
+          "其他"
+        ]
+      },
+      {
+        "name": "莱芜市",
+        "area": [
+          "莱城区",
+          "钢城区",
+          "其他"
+        ]
+      },
+      {
+        "name": "临沂市",
+        "area": [
+          "兰山区",
+          "罗庄区",
+          "河东区",
+          "沂南县",
+          "郯城县",
+          "沂水县",
+          "苍山县",
+          "费县",
+          "平邑县",
+          "莒南县",
+          "蒙阴县",
+          "临沭县",
+          "其他"
+        ]
+      },
+      {
+        "name": "德州市",
+        "area": [
+          "德城区",
+          "乐陵市",
+          "禹城市",
+          "陵县",
+          "宁津县",
+          "齐河县",
+          "武城县",
+          "庆云县",
+          "平原县",
+          "夏津县",
+          "临邑县",
+          "其他"
+        ]
+      },
+      {
+        "name": "聊城市",
+        "area": [
+          "东昌府区",
+          "临清市",
+          "高唐县",
+          "阳谷县",
+          "茌平县",
+          "莘县",
+          "东阿县",
+          "冠县",
+          "其他"
+        ]
+      },
+      {
+        "name": "滨州市",
+        "area": [
+          "滨城区",
+          "邹平县",
+          "沾化县",
+          "惠民县",
+          "博兴县",
+          "阳信县",
+          "无棣县",
+          "其他"
+        ]
+      },
+      {
+        "name": "菏泽市",
+        "area": [
+          "牡丹区",
+          "鄄城县",
+          "单县",
+          "郓城县",
+          "曹县",
+          "定陶县",
+          "巨野县",
+          "东明县",
+          "成武县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "河南省",
+    "city": [
+      {
+        "name": "郑州市",
+        "area": [
+          "中原区",
+          "金水区",
+          "二七区",
+          "管城回族区",
+          "上街区",
+          "惠济区",
+          "巩义市",
+          "新郑市",
+          "新密市",
+          "登封市",
+          "荥阳市",
+          "中牟县",
+          "其他"
+        ]
+      },
+      {
+        "name": "开封市",
+        "area": [
+          "鼓楼区",
+          "龙亭区",
+          "顺河回族区",
+          "禹王台区",
+          "金明区",
+          "开封县",
+          "尉氏县",
+          "兰考县",
+          "杞县",
+          "通许县",
+          "其他"
+        ]
+      },
+      {
+        "name": "洛阳市",
+        "area": [
+          "西工区",
+          "老城区",
+          "涧西区",
+          "瀍河回族区",
+          "洛龙区",
+          "吉利区",
+          "偃师市",
+          "孟津县",
+          "汝阳县",
+          "伊川县",
+          "洛宁县",
+          "嵩县",
+          "宜阳县",
+          "新安县",
+          "栾川县",
+          "其他"
+        ]
+      },
+      {
+        "name": "平顶山市",
+        "area": [
+          "新华区",
+          "卫东区",
+          "湛河区",
+          "石龙区",
+          "汝州市",
+          "舞钢市",
+          "宝丰县",
+          "叶县",
+          "郏县",
+          "鲁山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "安阳市",
+        "area": [
+          "北关区",
+          "文峰区",
+          "殷都区",
+          "龙安区",
+          "林州市",
+          "安阳县",
+          "滑县",
+          "内黄县",
+          "汤阴县",
+          "其他"
+        ]
+      },
+      {
+        "name": "鹤壁市",
+        "area": [
+          "淇滨区",
+          "山城区",
+          "鹤山区",
+          "浚县",
+          "淇县",
+          "其他"
+        ]
+      },
+      {
+        "name": "新乡市",
+        "area": [
+          "卫滨区",
+          "红旗区",
+          "凤泉区",
+          "牧野区",
+          "卫辉市",
+          "辉县市",
+          "新乡县",
+          "获嘉县",
+          "原阳县",
+          "长垣县",
+          "封丘县",
+          "延津县",
+          "其他"
+        ]
+      },
+      {
+        "name": "焦作市",
+        "area": [
+          "解放区",
+          "中站区",
+          "马村区",
+          "山阳区",
+          "沁阳市",
+          "孟州市",
+          "修武县",
+          "温县",
+          "武陟县",
+          "博爱县",
+          "其他"
+        ]
+      },
+      {
+        "name": "濮阳市",
+        "area": [
+          "华龙区",
+          "濮阳县",
+          "南乐县",
+          "台前县",
+          "清丰县",
+          "范县",
+          "其他"
+        ]
+      },
+      {
+        "name": "许昌市",
+        "area": [
+          "魏都区",
+          "禹州市",
+          "长葛市",
+          "许昌县",
+          "鄢陵县",
+          "襄城县",
+          "其他"
+        ]
+      },
+      {
+        "name": "漯河市",
+        "area": [
+          "源汇区",
+          "郾城区",
+          "召陵区",
+          "临颍县",
+          "舞阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "三门峡市",
+        "area": [
+          "湖滨区",
+          "义马市",
+          "灵宝市",
+          "渑池县",
+          "卢氏县",
+          "陕县",
+          "其他"
+        ]
+      },
+      {
+        "name": "南阳市",
+        "area": [
+          "卧龙区",
+          "宛城区",
+          "邓州市",
+          "桐柏县",
+          "方城县",
+          "淅川县",
+          "镇平县",
+          "唐河县",
+          "南召县",
+          "内乡县",
+          "新野县",
+          "社旗县",
+          "西峡县",
+          "其他"
+        ]
+      },
+      {
+        "name": "商丘市",
+        "area": [
+          "梁园区",
+          "睢阳区",
+          "永城市",
+          "宁陵县",
+          "虞城县",
+          "民权县",
+          "夏邑县",
+          "柘城县",
+          "睢县",
+          "其他"
+        ]
+      },
+      {
+        "name": "信阳市",
+        "area": [
+          "浉河区",
+          "平桥区",
+          "潢川县",
+          "淮滨县",
+          "息县",
+          "新县",
+          "商城县",
+          "固始县",
+          "罗山县",
+          "光山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "周口市",
+        "area": [
+          "川汇区",
+          "项城市",
+          "商水县",
+          "淮阳县",
+          "太康县",
+          "鹿邑县",
+          "西华县",
+          "扶沟县",
+          "沈丘县",
+          "郸城县",
+          "其他"
+        ]
+      },
+      {
+        "name": "驻马店市",
+        "area": [
+          "驿城区",
+          "确山县",
+          "新蔡县",
+          "上蔡县",
+          "西平县",
+          "泌阳县",
+          "平舆县",
+          "汝南县",
+          "遂平县",
+          "正阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "焦作市",
+        "area": [
+          "济源市",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "湖北省",
+    "city": [
+      {
+        "name": "武汉市",
+        "area": [
+          "江岸区",
+          "武昌区",
+          "江汉区",
+          "硚口区",
+          "汉阳区",
+          "青山区",
+          "洪山区",
+          "东西湖区",
+          "汉南区",
+          "蔡甸区",
+          "江夏区",
+          "黄陂区",
+          "新洲区",
+          "其他"
+        ]
+      },
+      {
+        "name": "黄石市",
+        "area": [
+          "黄石港区",
+          "西塞山区",
+          "下陆区",
+          "铁山区",
+          "大冶市",
+          "阳新县",
+          "其他"
+        ]
+      },
+      {
+        "name": "十堰市",
+        "area": [
+          "张湾区",
+          "茅箭区",
+          "丹江口市",
+          "郧县",
+          "竹山县",
+          "房县",
+          "郧西县",
+          "竹溪县",
+          "其他"
+        ]
+      },
+      {
+        "name": "荆州市",
+        "area": [
+          "沙市区",
+          "荆州区",
+          "洪湖市",
+          "石首市",
+          "松滋市",
+          "监利县",
+          "公安县",
+          "江陵县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宜昌市",
+        "area": [
+          "西陵区",
+          "伍家岗区",
+          "点军区",
+          "猇亭区",
+          "夷陵区",
+          "宜都市",
+          "当阳市",
+          "枝江市",
+          "秭归县",
+          "远安县",
+          "兴山县",
+          "五峰土家族自治县",
+          "长阳土家族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "襄樊市",
+        "area": [
+          "襄城区",
+          "樊城区",
+          "襄阳区",
+          "老河口市",
+          "枣阳市",
+          "宜城市",
+          "南漳县",
+          "谷城县",
+          "保康县",
+          "其他"
+        ]
+      },
+      {
+        "name": "鄂州市",
+        "area": [
+          "鄂城区",
+          "华容区",
+          "梁子湖区",
+          "其他"
+        ]
+      },
+      {
+        "name": "荆门市",
+        "area": [
+          "东宝区",
+          "掇刀区",
+          "钟祥市",
+          "京山县",
+          "沙洋县",
+          "其他"
+        ]
+      },
+      {
+        "name": "孝感市",
+        "area": [
+          "孝南区",
+          "应城市",
+          "安陆市",
+          "汉川市",
+          "云梦县",
+          "大悟县",
+          "孝昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黄冈市",
+        "area": [
+          "黄州区",
+          "麻城市",
+          "武穴市",
+          "红安县",
+          "罗田县",
+          "浠水县",
+          "蕲春县",
+          "黄梅县",
+          "英山县",
+          "团风县",
+          "其他"
+        ]
+      },
+      {
+        "name": "咸宁市",
+        "area": [
+          "咸安区",
+          "赤壁市",
+          "嘉鱼县",
+          "通山县",
+          "崇阳县",
+          "通城县",
+          "其他"
+        ]
+      },
+      {
+        "name": "随州市",
+        "area": [
+          "曾都区",
+          "广水市",
+          "其他"
+        ]
+      },
+      {
+        "name": "恩施土家族苗族自治州",
+        "area": [
+          "恩施市",
+          "利川市",
+          "建始县",
+          "来凤县",
+          "巴东县",
+          "鹤峰县",
+          "宣恩县",
+          "咸丰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "仙桃市",
+        "area": [
+          "仙桃"
+        ]
+      },
+      {
+        "name": "天门市",
+        "area": [
+          "天门"
+        ]
+      },
+      {
+        "name": "潜江市",
+        "area": [
+          "潜江"
+        ]
+      },
+      {
+        "name": "神农架林区",
+        "area": [
+          "神农架林区"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "湖南省",
+    "city": [
+      {
+        "name": "长沙市",
+        "area": [
+          "岳麓区",
+          "芙蓉区",
+          "天心区",
+          "开福区",
+          "雨花区",
+          "浏阳市",
+          "长沙县",
+          "望城县",
+          "宁乡县",
+          "其他"
+        ]
+      },
+      {
+        "name": "株洲市",
+        "area": [
+          "天元区",
+          "荷塘区",
+          "芦淞区",
+          "石峰区",
+          "醴陵市",
+          "株洲县",
+          "炎陵县",
+          "茶陵县",
+          "攸县",
+          "其他"
+        ]
+      },
+      {
+        "name": "湘潭市",
+        "area": [
+          "岳塘区",
+          "雨湖区",
+          "湘乡市",
+          "韶山市",
+          "湘潭县",
+          "其他"
+        ]
+      },
+      {
+        "name": "衡阳市",
+        "area": [
+          "雁峰区",
+          "珠晖区",
+          "石鼓区",
+          "蒸湘区",
+          "南岳区",
+          "耒阳市",
+          "常宁市",
+          "衡阳县",
+          "衡东县",
+          "衡山县",
+          "衡南县",
+          "祁东县",
+          "其他"
+        ]
+      },
+      {
+        "name": "邵阳市",
+        "area": [
+          "双清区",
+          "大祥区",
+          "北塔区",
+          "武冈市",
+          "邵东县",
+          "洞口县",
+          "新邵县",
+          "绥宁县",
+          "新宁县",
+          "邵阳县",
+          "隆回县",
+          "城步苗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "岳阳市",
+        "area": [
+          "岳阳楼区",
+          "云溪区",
+          "君山区",
+          "临湘市",
+          "汨罗市",
+          "岳阳县",
+          "湘阴县",
+          "平江县",
+          "华容县",
+          "其他"
+        ]
+      },
+      {
+        "name": "常德市",
+        "area": [
+          "武陵区",
+          "鼎城区",
+          "津市市",
+          "澧县",
+          "临澧县",
+          "桃源县",
+          "汉寿县",
+          "安乡县",
+          "石门县",
+          "其他"
+        ]
+      },
+      {
+        "name": "张家界市",
+        "area": [
+          "永定区",
+          "武陵源区",
+          "慈利县",
+          "桑植县",
+          "其他"
+        ]
+      },
+      {
+        "name": "益阳市",
+        "area": [
+          "赫山区",
+          "资阳区",
+          "沅江市",
+          "桃江县",
+          "南县",
+          "安化县",
+          "其他"
+        ]
+      },
+      {
+        "name": "郴州市",
+        "area": [
+          "北湖区",
+          "苏仙区",
+          "资兴市",
+          "宜章县",
+          "汝城县",
+          "安仁县",
+          "嘉禾县",
+          "临武县",
+          "桂东县",
+          "永兴县",
+          "桂阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "永州市",
+        "area": [
+          "冷水滩区",
+          "零陵区",
+          "祁阳县",
+          "蓝山县",
+          "宁远县",
+          "新田县",
+          "东安县",
+          "江永县",
+          "道县",
+          "双牌县",
+          "江华瑶族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "怀化市",
+        "area": [
+          "鹤城区",
+          "洪江市",
+          "会同县",
+          "沅陵县",
+          "辰溪县",
+          "溆浦县",
+          "中方县",
+          "新晃侗族自治县",
+          "芷江侗族自治县",
+          "通道侗族自治县",
+          "靖州苗族侗族自治县",
+          "麻阳苗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "娄底市",
+        "area": [
+          "娄星区",
+          "冷水江市",
+          "涟源市",
+          "新化县",
+          "双峰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "湘西土家族苗族自治州",
+        "area": [
+          "吉首市",
+          "古丈县",
+          "龙山县",
+          "永顺县",
+          "凤凰县",
+          "泸溪县",
+          "保靖县",
+          "花垣县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "广东省",
+    "city": [
+      {
+        "name": "广州市",
+        "area": [
+          "越秀区",
+          "荔湾区",
+          "海珠区",
+          "天河区",
+          "白云区",
+          "黄埔区",
+          "番禺区",
+          "花都区",
+          "南沙区",
+          "萝岗区",
+          "增城市",
+          "从化市",
+          "其他"
+        ]
+      },
+      {
+        "name": "深圳市",
+        "area": [
+          "福田区",
+          "罗湖区",
+          "南山区",
+          "宝安区",
+          "龙岗区",
+          "盐田区",
+          "其他"
+        ]
+      },
+      {
+        "name": "东莞市",
+        "area": [
+          "莞城",
+          "常平",
+          "塘厦",
+          "塘厦",
+          "塘厦",
+          "其他"
+        ]
+      },
+      {
+        "name": "中山市",
+        "area": [
+          "中山"
+        ]
+      },
+      {
+        "name": "潮州市",
+        "area": [
+          "湘桥区",
+          "潮安县",
+          "饶平县",
+          "其他"
+        ]
+      },
+      {
+        "name": "揭阳市",
+        "area": [
+          "榕城区",
+          "揭东县",
+          "揭西县",
+          "惠来县",
+          "普宁市",
+          "其他"
+        ]
+      },
+      {
+        "name": "云浮市",
+        "area": [
+          "云城区",
+          "新兴县",
+          "郁南县",
+          "云安县",
+          "罗定市",
+          "其他"
+        ]
+      },
+      {
+        "name": "珠海市",
+        "area": [
+          "香洲区",
+          "斗门区",
+          "金湾区",
+          "其他"
+        ]
+      },
+      {
+        "name": "汕头市",
+        "area": [
+          "金平区",
+          "濠江区",
+          "龙湖区",
+          "潮阳区",
+          "潮南区",
+          "澄海区",
+          "南澳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "韶关市",
+        "area": [
+          "浈江区",
+          "武江区",
+          "曲江区",
+          "乐昌市",
+          "南雄市",
+          "始兴县",
+          "仁化县",
+          "翁源县",
+          "新丰县",
+          "乳源瑶族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "佛山市",
+        "area": [
+          "禅城区",
+          "南海区",
+          "顺德区",
+          "三水区",
+          "高明区",
+          "其他"
+        ]
+      },
+      {
+        "name": "江门市",
+        "area": [
+          "蓬江区",
+          "江海区",
+          "新会区",
+          "恩平市",
+          "台山市",
+          "开平市",
+          "鹤山市",
+          "其他"
+        ]
+      },
+      {
+        "name": "湛江市",
+        "area": [
+          "赤坎区",
+          "霞山区",
+          "坡头区",
+          "麻章区",
+          "吴川市",
+          "廉江市",
+          "雷州市",
+          "遂溪县",
+          "徐闻县",
+          "其他"
+        ]
+      },
+      {
+        "name": "茂名市",
+        "area": [
+          "茂南区",
+          "茂港区",
+          "化州市",
+          "信宜市",
+          "高州市",
+          "电白县",
+          "其他"
+        ]
+      },
+      {
+        "name": "肇庆市",
+        "area": [
+          "端州区",
+          "鼎湖区",
+          "高要市",
+          "四会市",
+          "广宁县",
+          "怀集县",
+          "封开县",
+          "德庆县",
+          "其他"
+        ]
+      },
+      {
+        "name": "惠州市",
+        "area": [
+          "惠城区",
+          "惠阳区",
+          "博罗县",
+          "惠东县",
+          "龙门县",
+          "其他"
+        ]
+      },
+      {
+        "name": "梅州市",
+        "area": [
+          "梅江区",
+          "兴宁市",
+          "梅县",
+          "大埔县",
+          "丰顺县",
+          "五华县",
+          "平远县",
+          "蕉岭县",
+          "其他"
+        ]
+      },
+      {
+        "name": "汕尾市",
+        "area": [
+          "城区",
+          "陆丰市",
+          "海丰县",
+          "陆河县",
+          "其他"
+        ]
+      },
+      {
+        "name": "河源市",
+        "area": [
+          "源城区",
+          "紫金县",
+          "龙川县",
+          "连平县",
+          "和平县",
+          "东源县",
+          "其他"
+        ]
+      },
+      {
+        "name": "阳江市",
+        "area": [
+          "江城区",
+          "阳春市",
+          "阳西县",
+          "阳东县",
+          "其他"
+        ]
+      },
+      {
+        "name": "清远市",
+        "area": [
+          "清城区",
+          "英德市",
+          "连州市",
+          "佛冈县",
+          "阳山县",
+          "清新县",
+          "连山壮族瑶族自治县",
+          "连南瑶族自治县",
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "广西",
+    "city": [
+      {
+        "name": "南宁市",
+        "area": [
+          "青秀区",
+          "兴宁区",
+          "西乡塘区",
+          "良庆区",
+          "江南区",
+          "邕宁区",
+          "武鸣县",
+          "隆安县",
+          "马山县",
+          "上林县",
+          "宾阳县",
+          "横县",
+          "其他"
+        ]
+      },
+      {
+        "name": "柳州市",
+        "area": [
+          "城中区",
+          "鱼峰区",
+          "柳北区",
+          "柳南区",
+          "柳江县",
+          "柳城县",
+          "鹿寨县",
+          "融安县",
+          "融水苗族自治县",
+          "三江侗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "桂林市",
+        "area": [
+          "象山区",
+          "秀峰区",
+          "叠彩区",
+          "七星区",
+          "雁山区",
+          "阳朔县",
+          "临桂县",
+          "灵川县",
+          "全州县",
+          "平乐县",
+          "兴安县",
+          "灌阳县",
+          "荔浦县",
+          "资源县",
+          "永福县",
+          "龙胜各族自治县",
+          "恭城瑶族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "梧州市",
+        "area": [
+          "万秀区",
+          "蝶山区",
+          "长洲区",
+          "岑溪市",
+          "苍梧县",
+          "藤县",
+          "蒙山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "北海市",
+        "area": [
+          "海城区",
+          "银海区",
+          "铁山港区",
+          "合浦县",
+          "其他"
+        ]
+      },
+      {
+        "name": "防城港市",
+        "area": [
+          "港口区",
+          "防城区",
+          "东兴市",
+          "上思县",
+          "其他"
+        ]
+      },
+      {
+        "name": "钦州市",
+        "area": [
+          "钦南区",
+          "钦北区",
+          "灵山县",
+          "浦北县",
+          "其他"
+        ]
+      },
+      {
+        "name": "贵港市",
+        "area": [
+          "港北区",
+          "港南区",
+          "覃塘区",
+          "桂平市",
+          "平南县",
+          "其他"
+        ]
+      },
+      {
+        "name": "玉林市",
+        "area": [
+          "玉州区",
+          "北流市",
+          "容县",
+          "陆川县",
+          "博白县",
+          "兴业县",
+          "其他"
+        ]
+      },
+      {
+        "name": "百色市",
+        "area": [
+          "右江区",
+          "凌云县",
+          "平果县",
+          "西林县",
+          "乐业县",
+          "德保县",
+          "田林县",
+          "田阳县",
+          "靖西县",
+          "田东县",
+          "那坡县",
+          "隆林各族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "贺州市",
+        "area": [
+          "八步区",
+          "钟山县",
+          "昭平县",
+          "富川瑶族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "河池市",
+        "area": [
+          "金城江区",
+          "宜州市",
+          "天峨县",
+          "凤山县",
+          "南丹县",
+          "东兰县",
+          "都安瑶族自治县",
+          "罗城仫佬族自治县",
+          "巴马瑶族自治县",
+          "环江毛南族自治县",
+          "大化瑶族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "来宾市",
+        "area": [
+          "兴宾区",
+          "合山市",
+          "象州县",
+          "武宣县",
+          "忻城县",
+          "金秀瑶族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "崇左市",
+        "area": [
+          "江州区",
+          "凭祥市",
+          "宁明县",
+          "扶绥县",
+          "龙州县",
+          "大新县",
+          "天等县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他市",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "海南省",
+    "city": [
+      {
+        "name": "海口市",
+        "area": [
+          "龙华区",
+          "秀英区",
+          "琼山区",
+          "美兰区",
+          "其他"
+        ]
+      },
+      {
+        "name": "三亚市",
+        "area": [
+          "三亚市",
+          "其他"
+        ]
+      },
+      {
+        "name": "五指山市",
+        "area": [
+          "五指山"
+        ]
+      },
+      {
+        "name": "琼海市",
+        "area": [
+          "琼海"
+        ]
+      },
+      {
+        "name": "儋州市",
+        "area": [
+          "儋州"
+        ]
+      },
+      {
+        "name": "文昌市",
+        "area": [
+          "文昌"
+        ]
+      },
+      {
+        "name": "万宁市",
+        "area": [
+          "万宁"
+        ]
+      },
+      {
+        "name": "东方市",
+        "area": [
+          "东方"
+        ]
+      },
+      {
+        "name": "澄迈县",
+        "area": [
+          "澄迈县"
+        ]
+      },
+      {
+        "name": "定安县",
+        "area": [
+          "定安县"
+        ]
+      },
+      {
+        "name": "屯昌县",
+        "area": [
+          "屯昌县"
+        ]
+      },
+      {
+        "name": "临高县",
+        "area": [
+          "临高县"
+        ]
+      },
+      {
+        "name": "白沙黎族自治县",
+        "area": [
+          "白沙黎族自治县"
+        ]
+      },
+      {
+        "name": "昌江黎族自治县",
+        "area": [
+          "昌江黎族自治县"
+        ]
+      },
+      {
+        "name": "乐东黎族自治县",
+        "area": [
+          "乐东黎族自治县"
+        ]
+      },
+      {
+        "name": "陵水黎族自治县",
+        "area": [
+          "陵水黎族自治县"
+        ]
+      },
+      {
+        "name": "保亭黎族苗族自治县",
+        "area": [
+          "保亭黎族苗族自治县"
+        ]
+      },
+      {
+        "name": "琼中黎族苗族自治县",
+        "area": [
+          "琼中黎族苗族自治县"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "重庆市",
+    "city": [
+      {
+        "name": "重庆市",
+        "area": [
+          "渝中区",
+          "大渡口区",
+          "江北区",
+          "南岸区",
+          "北碚区",
+          "渝北区",
+          "巴南区",
+          "长寿区",
+          "双桥区",
+          "沙坪坝区",
+          "万盛区",
+          "万州区",
+          "涪陵区",
+          "黔江区",
+          "永川区",
+          "合川区",
+          "江津区",
+          "九龙坡区",
+          "南川区",
+          "綦江县",
+          "潼南县",
+          "荣昌县",
+          "璧山县",
+          "大足县",
+          "铜梁县",
+          "梁平县",
+          "开县",
+          "忠县",
+          "城口县",
+          "垫江县",
+          "武隆县",
+          "丰都县",
+          "奉节县",
+          "云阳县",
+          "巫溪县",
+          "巫山县",
+          "石柱土家族自治县",
+          "秀山土家族苗族自治县",
+          "酉阳土家族苗族自治县",
+          "彭水苗族土家族自治县",
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "四川省",
+    "city": [
+      {
+        "name": "成都市",
+        "area": [
+          "青羊区",
+          "锦江区",
+          "金牛区",
+          "武侯区",
+          "成华区",
+          "龙泉驿区",
+          "青白江区",
+          "新都区",
+          "温江区",
+          "都江堰市",
+          "彭州市",
+          "邛崃市",
+          "崇州市",
+          "金堂县",
+          "郫县",
+          "新津县",
+          "双流县",
+          "蒲江县",
+          "大邑县",
+          "其他"
+        ]
+      },
+      {
+        "name": "自贡市",
+        "area": [
+          "大安区",
+          "自流井区",
+          "贡井区",
+          "沿滩区",
+          "荣县",
+          "富顺县",
+          "其他"
+        ]
+      },
+      {
+        "name": "攀枝花市",
+        "area": [
+          "仁和区",
+          "米易县",
+          "盐边县",
+          "东区",
+          "西区",
+          "其他"
+        ]
+      },
+      {
+        "name": "泸州市",
+        "area": [
+          "江阳区",
+          "纳溪区",
+          "龙马潭区",
+          "泸县",
+          "合江县",
+          "叙永县",
+          "古蔺县",
+          "其他"
+        ]
+      },
+      {
+        "name": "德阳市",
+        "area": [
+          "旌阳区",
+          "广汉市",
+          "什邡市",
+          "绵竹市",
+          "罗江县",
+          "中江县",
+          "其他"
+        ]
+      },
+      {
+        "name": "绵阳市",
+        "area": [
+          "涪城区",
+          "游仙区",
+          "江油市",
+          "盐亭县",
+          "三台县",
+          "平武县",
+          "安县",
+          "梓潼县",
+          "北川羌族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "广元市",
+        "area": [
+          "元坝区",
+          "朝天区",
+          "青川县",
+          "旺苍县",
+          "剑阁县",
+          "苍溪县",
+          "市中区",
+          "其他"
+        ]
+      },
+      {
+        "name": "遂宁市",
+        "area": [
+          "船山区",
+          "安居区",
+          "射洪县",
+          "蓬溪县",
+          "大英县",
+          "其他"
+        ]
+      },
+      {
+        "name": "内江市",
+        "area": [
+          "市中区",
+          "东兴区",
+          "资中县",
+          "隆昌县",
+          "威远县",
+          "其他"
+        ]
+      },
+      {
+        "name": "乐山市",
+        "area": [
+          "市中区",
+          "五通桥区",
+          "沙湾区",
+          "金口河区",
+          "峨眉山市",
+          "夹江县",
+          "井研县",
+          "犍为县",
+          "沐川县",
+          "马边彝族自治县",
+          "峨边彝族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "南充",
+        "area": [
+          "顺庆区",
+          "高坪区",
+          "嘉陵区",
+          "阆中市",
+          "营山县",
+          "蓬安县",
+          "仪陇县",
+          "南部县",
+          "西充县",
+          "其他"
+        ]
+      },
+      {
+        "name": "眉山市",
+        "area": [
+          "东坡区",
+          "仁寿县",
+          "彭山县",
+          "洪雅县",
+          "丹棱县",
+          "青神县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宜宾市",
+        "area": [
+          "翠屏区",
+          "宜宾县",
+          "兴文县",
+          "南溪县",
+          "珙县",
+          "长宁县",
+          "高县",
+          "江安县",
+          "筠连县",
+          "屏山县",
+          "其他"
+        ]
+      },
+      {
+        "name": "广安市",
+        "area": [
+          "广安区",
+          "华蓥市",
+          "岳池县",
+          "邻水县",
+          "武胜县",
+          "其他"
+        ]
+      },
+      {
+        "name": "达州市",
+        "area": [
+          "通川区",
+          "万源市",
+          "达县",
+          "渠县",
+          "宣汉县",
+          "开江县",
+          "大竹县",
+          "其他"
+        ]
+      },
+      {
+        "name": "雅安市",
+        "area": [
+          "雨城区",
+          "芦山县",
+          "石棉县",
+          "名山县",
+          "天全县",
+          "荥经县",
+          "宝兴县",
+          "汉源县",
+          "其他"
+        ]
+      },
+      {
+        "name": "巴中市",
+        "area": [
+          "巴州区",
+          "南江县",
+          "平昌县",
+          "通江县",
+          "其他"
+        ]
+      },
+      {
+        "name": "资阳市",
+        "area": [
+          "雁江区",
+          "简阳市",
+          "安岳县",
+          "乐至县",
+          "其他"
+        ]
+      },
+      {
+        "name": "阿坝藏族羌族自治州",
+        "area": [
+          "马尔康县",
+          "九寨沟县",
+          "红原县",
+          "汶川县",
+          "阿坝县",
+          "理县",
+          "若尔盖县",
+          "小金县",
+          "黑水县",
+          "金川县",
+          "松潘县",
+          "壤塘县",
+          "茂县",
+          "其他"
+        ]
+      },
+      {
+        "name": "甘孜藏族自治州",
+        "area": [
+          "康定县",
+          "丹巴县",
+          "炉霍县",
+          "九龙县",
+          "甘孜县",
+          "雅江县",
+          "新龙县",
+          "道孚县",
+          "白玉县",
+          "理塘县",
+          "德格县",
+          "乡城县",
+          "石渠县",
+          "稻城县",
+          "色达县",
+          "巴塘县",
+          "泸定县",
+          "得荣县",
+          "其他"
+        ]
+      },
+      {
+        "name": "凉山彝族自治州",
+        "area": [
+          "西昌市",
+          "美姑县",
+          "昭觉县",
+          "金阳县",
+          "甘洛县",
+          "布拖县",
+          "雷波县",
+          "普格县",
+          "宁南县",
+          "喜德县",
+          "会东县",
+          "越西县",
+          "会理县",
+          "盐源县",
+          "德昌县",
+          "冕宁县",
+          "木里藏族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "贵州省",
+    "city": [
+      {
+        "name": "贵阳市",
+        "area": [
+          "南明区",
+          "云岩区",
+          "花溪区",
+          "乌当区",
+          "白云区",
+          "小河区",
+          "清镇市",
+          "开阳县",
+          "修文县",
+          "息烽县",
+          "其他"
+        ]
+      },
+      {
+        "name": "六盘水市",
+        "area": [
+          "钟山区",
+          "水城县",
+          "盘县",
+          "六枝特区",
+          "其他"
+        ]
+      },
+      {
+        "name": "遵义市",
+        "area": [
+          "红花岗区",
+          "汇川区",
+          "赤水市",
+          "仁怀市",
+          "遵义县",
+          "绥阳县",
+          "桐梓县",
+          "习水县",
+          "凤冈县",
+          "正安县",
+          "余庆县",
+          "湄潭县",
+          "道真仡佬族苗族自治县",
+          "务川仡佬族苗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "安顺市",
+        "area": [
+          "西秀区",
+          "普定县",
+          "平坝县",
+          "镇宁布依族苗族自治县",
+          "紫云苗族布依族自治县",
+          "关岭布依族苗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "铜仁地区",
+        "area": [
+          "铜仁市",
+          "德江县",
+          "江口县",
+          "思南县",
+          "石阡县",
+          "玉屏侗族自治县",
+          "松桃苗族自治县",
+          "印江土家族苗族自治县",
+          "沿河土家族自治县",
+          "万山特区",
+          "其他"
+        ]
+      },
+      {
+        "name": "毕节地区",
+        "area": [
+          "毕节市",
+          "黔西县",
+          "大方县",
+          "织金县",
+          "金沙县",
+          "赫章县",
+          "纳雍县",
+          "威宁彝族回族苗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黔西南布依族苗族自治州",
+        "area": [
+          "兴义市",
+          "望谟县",
+          "兴仁县",
+          "普安县",
+          "册亨县",
+          "晴隆县",
+          "贞丰县",
+          "安龙县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黔东南苗族侗族自治州",
+        "area": [
+          "凯里市",
+          "施秉县",
+          "从江县",
+          "锦屏县",
+          "镇远县",
+          "麻江县",
+          "台江县",
+          "天柱县",
+          "黄平县",
+          "榕江县",
+          "剑河县",
+          "三穗县",
+          "雷山县",
+          "黎平县",
+          "岑巩县",
+          "丹寨县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黔南布依族苗族自治州",
+        "area": [
+          "都匀市",
+          "福泉市",
+          "贵定县",
+          "惠水县",
+          "罗甸县",
+          "瓮安县",
+          "荔波县",
+          "龙里县",
+          "平塘县",
+          "长顺县",
+          "独山县",
+          "三都水族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "云南省",
+    "city": [
+      {
+        "name": "昆明市",
+        "area": [
+          "盘龙区",
+          "五华区",
+          "官渡区",
+          "西山区",
+          "东川区",
+          "安宁市",
+          "呈贡县",
+          "晋宁县",
+          "富民县",
+          "宜良县",
+          "嵩明县",
+          "石林彝族自治县",
+          "禄劝彝族苗族自治县",
+          "寻甸回族彝族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "曲靖市",
+        "area": [
+          "麒麟区",
+          "宣威市",
+          "马龙县",
+          "沾益县",
+          "富源县",
+          "罗平县",
+          "师宗县",
+          "陆良县",
+          "会泽县",
+          "其他"
+        ]
+      },
+      {
+        "name": "玉溪市",
+        "area": [
+          "红塔区",
+          "江川县",
+          "澄江县",
+          "通海县",
+          "华宁县",
+          "易门县",
+          "峨山彝族自治县",
+          "新平彝族傣族自治县",
+          "元江哈尼族彝族傣族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "保山市",
+        "area": [
+          "隆阳区",
+          "施甸县",
+          "腾冲县",
+          "龙陵县",
+          "昌宁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "昭通市",
+        "area": [
+          "昭阳区",
+          "鲁甸县",
+          "巧家县",
+          "盐津县",
+          "大关县",
+          "永善县",
+          "绥江县",
+          "镇雄县",
+          "彝良县",
+          "威信县",
+          "水富县",
+          "其他"
+        ]
+      },
+      {
+        "name": "丽江市",
+        "area": [
+          "古城区",
+          "永胜县",
+          "华坪县",
+          "玉龙纳西族自治县",
+          "宁蒗彝族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "普洱市",
+        "area": [
+          "思茅区",
+          "普洱哈尼族彝族自治县",
+          "墨江哈尼族自治县",
+          "景东彝族自治县",
+          "景谷傣族彝族自治县",
+          "镇沅彝族哈尼族拉祜族自治县",
+          "江城哈尼族彝族自治县",
+          "孟连傣族拉祜族佤族自治县",
+          "澜沧拉祜族自治县",
+          "西盟佤族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "临沧市",
+        "area": [
+          "临翔区",
+          "凤庆县",
+          "云县",
+          "永德县",
+          "镇康县",
+          "双江拉祜族佤族布朗族傣族自治县",
+          "耿马傣族佤族自治县",
+          "沧源佤族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "德宏傣族景颇族自治州",
+        "area": [
+          "潞西市",
+          "瑞丽市",
+          "梁河县",
+          "盈江县",
+          "陇川县",
+          "其他"
+        ]
+      },
+      {
+        "name": "怒江傈僳族自治州",
+        "area": [
+          "泸水县",
+          "福贡县",
+          "贡山独龙族怒族自治县",
+          "兰坪白族普米族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "迪庆藏族自治州",
+        "area": [
+          "香格里拉县",
+          "德钦县",
+          "维西傈僳族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "大理白族自治州",
+        "area": [
+          "大理市",
+          "祥云县",
+          "宾川县",
+          "弥渡县",
+          "永平县",
+          "云龙县",
+          "洱源县",
+          "剑川县",
+          "鹤庆县",
+          "漾濞彝族自治县",
+          "南涧彝族自治县",
+          "巍山彝族回族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "楚雄彝族自治州",
+        "area": [
+          "楚雄市",
+          "双柏县",
+          "牟定县",
+          "南华县",
+          "姚安县",
+          "大姚县",
+          "永仁县",
+          "元谋县",
+          "武定县",
+          "禄丰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "红河哈尼族彝族自治州",
+        "area": [
+          "蒙自县",
+          "个旧市",
+          "开远市",
+          "绿春县",
+          "建水县",
+          "石屏县",
+          "弥勒县",
+          "泸西县",
+          "元阳县",
+          "红河县",
+          "金平苗族瑶族傣族自治县",
+          "河口瑶族自治县",
+          "屏边苗族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "文山壮族苗族自治州",
+        "area": [
+          "文山县",
+          "砚山县",
+          "西畴县",
+          "麻栗坡县",
+          "马关县",
+          "丘北县",
+          "广南县",
+          "富宁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "西双版纳傣族自治州",
+        "area": [
+          "景洪市",
+          "勐海县",
+          "勐腊县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "西藏",
+    "city": [
+      {
+        "name": "拉萨市",
+        "area": [
+          "城关区",
+          "林周县",
+          "当雄县",
+          "尼木县",
+          "曲水县",
+          "堆龙德庆县",
+          "达孜县",
+          "墨竹工卡县",
+          "其他"
+        ]
+      },
+      {
+        "name": "那曲地区",
+        "area": [
+          "那曲县",
+          "嘉黎县",
+          "比如县",
+          "聂荣县",
+          "安多县",
+          "申扎县",
+          "索县",
+          "班戈县",
+          "巴青县",
+          "尼玛县",
+          "其他"
+        ]
+      },
+      {
+        "name": "昌都地区",
+        "area": [
+          "昌都县",
+          "江达县",
+          "贡觉县",
+          "类乌齐县",
+          "丁青县",
+          "察雅县",
+          "八宿县",
+          "左贡县",
+          "芒康县",
+          "洛隆县",
+          "边坝县",
+          "其他"
+        ]
+      },
+      {
+        "name": "林芝地区",
+        "area": [
+          "林芝县",
+          "工布江达县",
+          "米林县",
+          "墨脱县",
+          "波密县",
+          "察隅县",
+          "朗县",
+          "其他"
+        ]
+      },
+      {
+        "name": "山南地区",
+        "area": [
+          "乃东县",
+          "扎囊县",
+          "贡嘎县",
+          "桑日县",
+          "琼结县",
+          "曲松县",
+          "措美县",
+          "洛扎县",
+          "加查县",
+          "隆子县",
+          "错那县",
+          "浪卡子县",
+          "其他"
+        ]
+      },
+      {
+        "name": "日喀则地区",
+        "area": [
+          "日喀则市",
+          "南木林县",
+          "江孜县",
+          "定日县",
+          "萨迦县",
+          "拉孜县",
+          "昂仁县",
+          "谢通门县",
+          "白朗县",
+          "仁布县",
+          "康马县",
+          "定结县",
+          "仲巴县",
+          "亚东县",
+          "吉隆县",
+          "聂拉木县",
+          "萨嘎县",
+          "岗巴县",
+          "其他"
+        ]
+      },
+      {
+        "name": "阿里地区",
+        "area": [
+          "噶尔县",
+          "普兰县",
+          "札达县",
+          "日土县",
+          "革吉县",
+          "改则县",
+          "措勤县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "陕西省",
+    "city": [
+      {
+        "name": "西安市",
+        "area": [
+          "莲湖区",
+          "新城区",
+          "碑林区",
+          "雁塔区",
+          "灞桥区",
+          "未央区",
+          "阎良区",
+          "临潼区",
+          "长安区",
+          "高陵县",
+          "蓝田县",
+          "户县",
+          "周至县",
+          "其他"
+        ]
+      },
+      {
+        "name": "铜川市",
+        "area": [
+          "耀州区",
+          "王益区",
+          "印台区",
+          "宜君县",
+          "其他"
+        ]
+      },
+      {
+        "name": "宝鸡市",
+        "area": [
+          "渭滨区",
+          "金台区",
+          "陈仓区",
+          "岐山县",
+          "凤翔县",
+          "陇县",
+          "太白县",
+          "麟游县",
+          "扶风县",
+          "千阳县",
+          "眉县",
+          "凤县",
+          "其他"
+        ]
+      },
+      {
+        "name": "咸阳市",
+        "area": [
+          "秦都区",
+          "渭城区",
+          "杨陵区",
+          "兴平市",
+          "礼泉县",
+          "泾阳县",
+          "永寿县",
+          "三原县",
+          "彬县",
+          "旬邑县",
+          "长武县",
+          "乾县",
+          "武功县",
+          "淳化县",
+          "其他"
+        ]
+      },
+      {
+        "name": "渭南市",
+        "area": [
+          "临渭区",
+          "韩城市",
+          "华阴市",
+          "蒲城县",
+          "潼关县",
+          "白水县",
+          "澄城县",
+          "华县",
+          "合阳县",
+          "富平县",
+          "大荔县",
+          "其他"
+        ]
+      },
+      {
+        "name": "延安市",
+        "area": [
+          "宝塔区",
+          "安塞县",
+          "洛川县",
+          "子长县",
+          "黄陵县",
+          "延川县",
+          "富县",
+          "延长县",
+          "甘泉县",
+          "宜川县",
+          "志丹县",
+          "黄龙县",
+          "吴起县",
+          "其他"
+        ]
+      },
+      {
+        "name": "汉中市",
+        "area": [
+          "汉台区",
+          "留坝县",
+          "镇巴县",
+          "城固县",
+          "南郑县",
+          "洋县",
+          "宁强县",
+          "佛坪县",
+          "勉县",
+          "西乡县",
+          "略阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "榆林市",
+        "area": [
+          "榆阳区",
+          "清涧县",
+          "绥德县",
+          "神木县",
+          "佳县",
+          "府谷县",
+          "子洲县",
+          "靖边县",
+          "横山县",
+          "米脂县",
+          "吴堡县",
+          "定边县",
+          "其他"
+        ]
+      },
+      {
+        "name": "安康市",
+        "area": [
+          "汉滨区",
+          "紫阳县",
+          "岚皋县",
+          "旬阳县",
+          "镇坪县",
+          "平利县",
+          "石泉县",
+          "宁陕县",
+          "白河县",
+          "汉阴县",
+          "其他"
+        ]
+      },
+      {
+        "name": "商洛市",
+        "area": [
+          "商州区",
+          "镇安县",
+          "山阳县",
+          "洛南县",
+          "商南县",
+          "丹凤县",
+          "柞水县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "甘肃省",
+    "city": [
+      {
+        "name": "兰州市",
+        "area": [
+          "城关区",
+          "七里河区",
+          "西固区",
+          "安宁区",
+          "红古区",
+          "永登县",
+          "皋兰县",
+          "榆中县",
+          "其他"
+        ]
+      },
+      {
+        "name": "嘉峪关市",
+        "area": [
+          "嘉峪关市",
+          "其他"
+        ]
+      },
+      {
+        "name": "金昌市",
+        "area": [
+          "金川区",
+          "永昌县",
+          "其他"
+        ]
+      },
+      {
+        "name": "白银市",
+        "area": [
+          "白银区",
+          "平川区",
+          "靖远县",
+          "会宁县",
+          "景泰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "天水市",
+        "area": [
+          "清水县",
+          "秦安县",
+          "甘谷县",
+          "武山县",
+          "张家川回族自治县",
+          "北道区",
+          "秦城区",
+          "其他"
+        ]
+      },
+      {
+        "name": "武威市",
+        "area": [
+          "凉州区",
+          "民勤县",
+          "古浪县",
+          "天祝藏族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "酒泉市",
+        "area": [
+          "肃州区",
+          "玉门市",
+          "敦煌市",
+          "金塔县",
+          "肃北蒙古族自治县",
+          "阿克塞哈萨克族自治县",
+          "安西县",
+          "其他"
+        ]
+      },
+      {
+        "name": "张掖市",
+        "area": [
+          "甘州区",
+          "民乐县",
+          "临泽县",
+          "高台县",
+          "山丹县",
+          "肃南裕固族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "庆阳市",
+        "area": [
+          "西峰区",
+          "庆城县",
+          "环县",
+          "华池县",
+          "合水县",
+          "正宁县",
+          "宁县",
+          "镇原县",
+          "其他"
+        ]
+      },
+      {
+        "name": "平凉市",
+        "area": [
+          "崆峒区",
+          "泾川县",
+          "灵台县",
+          "崇信县",
+          "华亭县",
+          "庄浪县",
+          "静宁县",
+          "其他"
+        ]
+      },
+      {
+        "name": "定西市",
+        "area": [
+          "安定区",
+          "通渭县",
+          "临洮县",
+          "漳县",
+          "岷县",
+          "渭源县",
+          "陇西县",
+          "其他"
+        ]
+      },
+      {
+        "name": "陇南市",
+        "area": [
+          "武都区",
+          "成县",
+          "宕昌县",
+          "康县",
+          "文县",
+          "西和县",
+          "礼县",
+          "两当县",
+          "徽县",
+          "其他"
+        ]
+      },
+      {
+        "name": "临夏回族自治州",
+        "area": [
+          "临夏市",
+          "临夏县",
+          "康乐县",
+          "永靖县",
+          "广河县",
+          "和政县",
+          "东乡族自治县",
+          "积石山保安族东乡族撒拉族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "甘南藏族自治州",
+        "area": [
+          "合作市",
+          "临潭县",
+          "卓尼县",
+          "舟曲县",
+          "迭部县",
+          "玛曲县",
+          "碌曲县",
+          "夏河县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "青海省",
+    "city": [
+      {
+        "name": "西宁市",
+        "area": [
+          "城中区",
+          "城东区",
+          "城西区",
+          "城北区",
+          "湟源县",
+          "湟中县",
+          "大通回族土族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "海东地区",
+        "area": [
+          "平安县",
+          "乐都县",
+          "民和回族土族自治县",
+          "互助土族自治县",
+          "化隆回族自治县",
+          "循化撒拉族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "海北藏族自治州",
+        "area": [
+          "海晏县",
+          "祁连县",
+          "刚察县",
+          "门源回族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "海南藏族自治州",
+        "area": [
+          "共和县",
+          "同德县",
+          "贵德县",
+          "兴海县",
+          "贵南县",
+          "其他"
+        ]
+      },
+      {
+        "name": "黄南藏族自治州",
+        "area": [
+          "同仁县",
+          "尖扎县",
+          "泽库县",
+          "河南蒙古族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "果洛藏族自治州",
+        "area": [
+          "玛沁县",
+          "班玛县",
+          "甘德县",
+          "达日县",
+          "久治县",
+          "玛多县",
+          "其他"
+        ]
+      },
+      {
+        "name": "玉树藏族自治州",
+        "area": [
+          "玉树县",
+          "杂多县",
+          "称多县",
+          "治多县",
+          "囊谦县",
+          "曲麻莱县",
+          "其他"
+        ]
+      },
+      {
+        "name": "海西蒙古族藏族自治州",
+        "area": [
+          "德令哈市",
+          "格尔木市",
+          "乌兰县",
+          "都兰县",
+          "天峻县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "宁夏",
+    "city": [
+      {
+        "name": "银川市",
+        "area": [
+          "兴庆区",
+          "西夏区",
+          "金凤区",
+          "灵武市",
+          "永宁县",
+          "贺兰县",
+          "其他"
+        ]
+      },
+      {
+        "name": "石嘴山市",
+        "area": [
+          "大武口区",
+          "惠农区",
+          "平罗县",
+          "其他"
+        ]
+      },
+      {
+        "name": "吴忠市",
+        "area": [
+          "利通区",
+          "青铜峡市",
+          "盐池县",
+          "同心县",
+          "其他"
+        ]
+      },
+      {
+        "name": "固原市",
+        "area": [
+          "原州区",
+          "西吉县",
+          "隆德县",
+          "泾源县",
+          "彭阳县",
+          "其他"
+        ]
+      },
+      {
+        "name": "中卫市",
+        "area": [
+          "沙坡头区",
+          "中宁县",
+          "海原县",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "新疆",
+    "city": [
+      {
+        "name": "乌鲁木齐市",
+        "area": [
+          "天山区",
+          "沙依巴克区",
+          "新市区",
+          "水磨沟区",
+          "头屯河区",
+          "达坂城区",
+          "东山区",
+          "乌鲁木齐县",
+          "其他"
+        ]
+      },
+      {
+        "name": "克拉玛依市",
+        "area": [
+          "克拉玛依区",
+          "独山子区",
+          "白碱滩区",
+          "乌尔禾区",
+          "其他"
+        ]
+      },
+      {
+        "name": "吐鲁番地区",
+        "area": [
+          "吐鲁番市",
+          "托克逊县",
+          "鄯善县",
+          "其他"
+        ]
+      },
+      {
+        "name": "哈密地区",
+        "area": [
+          "哈密市",
+          "伊吾县",
+          "巴里坤哈萨克自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "和田地区",
+        "area": [
+          "和田市",
+          "和田县",
+          "洛浦县",
+          "民丰县",
+          "皮山县",
+          "策勒县",
+          "于田县",
+          "墨玉县",
+          "其他"
+        ]
+      },
+      {
+        "name": "阿克苏地区",
+        "area": [
+          "阿克苏市",
+          "温宿县",
+          "沙雅县",
+          "拜城县",
+          "阿瓦提县",
+          "库车县",
+          "柯坪县",
+          "新和县",
+          "乌什县",
+          "其他"
+        ]
+      },
+      {
+        "name": "喀什地区",
+        "area": [
+          "喀什市",
+          "巴楚县",
+          "泽普县",
+          "伽师县",
+          "叶城县",
+          "岳普湖县",
+          "疏勒县",
+          "麦盖提县",
+          "英吉沙县",
+          "莎车县",
+          "疏附县",
+          "塔什库尔干塔吉克自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "克孜勒苏柯尔克孜自治州",
+        "area": [
+          "阿图什市",
+          "阿合奇县",
+          "乌恰县",
+          "阿克陶县",
+          "其他"
+        ]
+      },
+      {
+        "name": "巴音郭楞蒙古自治州",
+        "area": [
+          "库尔勒市",
+          "和静县",
+          "尉犁县",
+          "和硕县",
+          "且末县",
+          "博湖县",
+          "轮台县",
+          "若羌县",
+          "焉耆回族自治县",
+          "其他"
+        ]
+      },
+      {
+        "name": "昌吉回族自治州",
+        "area": [
+          "昌吉市",
+          "阜康市",
+          "奇台县",
+          "玛纳斯县",
+          "吉木萨尔县",
+          "呼图壁县",
+          "木垒哈萨克自治县",
+          "米泉市",
+          "其他"
+        ]
+      },
+      {
+        "name": "博尔塔拉蒙古自治州",
+        "area": [
+          "博乐市",
+          "精河县",
+          "温泉县",
+          "其他"
+        ]
+      },
+      {
+        "name": "石河子",
+        "area": [
+          "石河子"
+        ]
+      },
+      {
+        "name": "阿拉尔",
+        "area": [
+          "阿拉尔"
+        ]
+      },
+      {
+        "name": "图木舒克",
+        "area": [
+          "图木舒克"
+        ]
+      },
+      {
+        "name": "五家渠",
+        "area": [
+          "五家渠"
+        ]
+      },
+      {
+        "name": "伊犁哈萨克自治州",
+        "area": [
+          "伊宁市",
+          "奎屯市",
+          "伊宁县",
+          "特克斯县",
+          "尼勒克县",
+          "昭苏县",
+          "新源县",
+          "霍城县",
+          "巩留县",
+          "察布查尔锡伯自治县",
+          "塔城地区",
+          "阿勒泰地区",
+          "其他"
+        ]
+      },
+      {
+        "name": "其他",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "台湾省",
+    "city": [
+      {
+        "name": "台北市",
+        "area": [
+          "内湖区",
+          "南港区",
+          "中正区",
+          "万华区",
+          "大同区",
+          "中山区",
+          "松山区",
+          "大安区",
+          "信义区",
+          "文山区",
+          "士林区",
+          "北投区"
+        ]
+      },
+      {
+        "name": "新北市",
+        "area": [
+          "板桥区",
+          "汐止区",
+          "新店区",
+          "其他"
+        ]
+      },
+      {
+        "name": "桃园市",
+        "area": [
+          "其他"
+        ]
+      },
+      {
+        "name": "台中市",
+        "area": [
+          "其他"
+        ]
+      },
+      {
+        "name": "台南市",
+        "area": [
+          "其他"
+        ]
+      },
+      {
+        "name": "高雄市",
+        "area": [
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "澳门",
+    "city": [
+      {
+        "name": "澳门",
+        "area": [
+          "花地玛堂区",
+          "圣安多尼堂区",
+          "大堂区",
+          "望德堂区",
+          "风顺堂区",
+          "嘉模堂区",
+          "圣方济各堂区",
+          "路凼",
+          "其他"
+        ]
+      }
+    ]
+  },
+  {
+    "name": "香港",
+    "city": [
+      {
+        "name": "香港",
+        "area": [
+          "深水埗区",
+          "油尖旺区",
+          "九龙城区",
+          "黄大仙区",
+          "观塘区",
+          "北区",
+          "大埔区",
+          "沙田区",
+          "西贡区",
+          "元朗区",
+          "屯门区",
+          "荃湾区",
+          "葵青区",
+          "离岛区",
+          "中西区",
+          "湾仔区",
+          "东区",
+          "南区",
+          "其他"
+        ]
+      }
+    ]
+  }
+]

+ 76 - 0
BaseLibrary/src/main/java/com/cooleshow/base/bean/JsonBean.java

@@ -0,0 +1,76 @@
+package com.cooleshow.base.bean;
+
+
+import com.contrarywind.interfaces.IPickerViewData;
+
+import java.util.List;
+
+/**
+ * TODO<json数据源>
+ *
+ * @author: 小嵩
+ * @date: 2017/3/16 15:36
+ */
+
+public class JsonBean implements IPickerViewData {
+
+
+    /**
+     * name : 省份
+     * city : [{"name":"北京市","area":["东城区","西城区","崇文区","宣武区","朝阳区"]}]
+     */
+
+    private String name;
+    private List<CityBean> city;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public List<CityBean> getCityList() {
+        return city;
+    }
+
+    public void setCityList(List<CityBean> city) {
+        this.city = city;
+    }
+
+    // 实现 IPickerViewData 接口,
+    // 这个用来显示在PickerView上面的字符串,
+    // PickerView会通过IPickerViewData获取getPickerViewText方法显示出来。
+    @Override
+    public String getPickerViewText() {
+        return this.name;
+    }
+
+
+    public static class CityBean {
+        /**
+         * name : 城市
+         * area : ["东城区","西城区","崇文区","昌平区"]
+         */
+
+        private String name;
+        private List<String> area;
+
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public List<String> getArea() {
+            return area;
+        }
+
+        public void setArea(List<String> area) {
+            this.area = area;
+        }
+    }
+}

+ 1 - 0
BaseLibrary/src/main/java/com/cooleshow/base/common/BaseConstant.java

@@ -11,6 +11,7 @@ public class BaseConstant {
     public final static String STUDENT_GROUP = "api-student/";
     public final static String AUTH_GROUP = "api-auth/";
     public final static String MALL_ADMIN_SERVER = "api-mall-admin/";
+    public final static String MALL_PORTAL_SERVER = "api-mall-portal/";
 
 
     public final static String TABLE_PREFS = "Kotlin_mall";

+ 19 - 0
BaseLibrary/src/main/java/com/cooleshow/base/common/WebConstants.java

@@ -33,4 +33,23 @@ public abstract class WebConstants {
     public static final String TEACHER_MUSIC_PERSON_CERT = getBaseUrlH5() + "/#/musicCert";
     //上传乐谱
     public static final String TEACHER_UPLOAD_SHEET_MUSIC = getBaseUrlH5() + "/#/music-upload";
+    //开启直播
+    public static final String TEACHER_OPEN_LIVE = getBaseUrlH5() + "/#/openLive";
+    //帮助中心
+    public static final String TEACHER_HELP_CENTER = getBaseUrlH5() + "/#/helpCenter";
+    //视频课创建
+    public static final String TEACHER_VIDEO_CREATE = getBaseUrlH5() + "/#/videoCreate";
+    //视频课详情
+    public static final String TEACHER_VIDEO_DETAIL = getBaseUrlH5() + "/#/videoDetail?groupId=4";
+    //修改视频课
+    public static final String TEACHER_VIDEO_MODIFY = getBaseUrlH5() + "/#/videoCreate?groupId=4";
+    //创建直播课
+    public static final String TEACHER_LIVE_CREATE = getBaseUrlH5() + "/#/liveCreate";
+    //直播课
+    public static final String TEACHER_LIVE_DETAIL = getBaseUrlH5() + "/#/liveDetail";
+    //陪练课设置
+    public static final String TEACHER_PRACTICE_SETTING = getBaseUrlH5() + "/#/practiceSetting";
+    //我的粉
+    public static final String TEACHER_MY_FANS = getBaseUrlH5() + "/#/myFans";
+
 }

+ 4 - 0
BaseLibrary/src/main/java/com/cooleshow/base/router/RouterPath.kt

@@ -68,6 +68,10 @@ object RouterPath {
             const val MINE_MODIFY_PASSWORD = "/teacher/ui/mine/ModifyPasswordActivity"
             const val MINE_PERSONAL_CERTIFICATION = "/teacher/ui/mine/PersonalCertificationActivity"
             const val MINE_ADDRESS_LIST = "/teacher/ui/mine/AddressListActivity"
+            const val MINE_EDIT_ADDRESS = "/teacher/ui/mine/EditAddressActivity"
+            const val MINE_ABOUT = "/teacher/ui/mine/AboutActivity"
+            const val MINE_FEEDBACK = "/teacher/ui/mine/FeedBackActivity"
+            const val MINE_MY_BANKCARD = "/teacher/ui/mine/MyBankCardActivity"
         }
     }
 }

+ 38 - 0
BaseLibrary/src/main/java/com/cooleshow/base/utils/GetJsonDataUtil.java

@@ -0,0 +1,38 @@
+package com.cooleshow.base.utils;
+
+import android.content.Context;
+import android.content.res.AssetManager;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+/**
+ * <读取Json文件的工具类>
+ *
+ * @author: 小嵩
+ * @date: 2017/3/16 16:22
+
+ */
+
+public class GetJsonDataUtil {
+
+
+    public String getJson(Context context,String fileName) {
+
+        StringBuilder stringBuilder = new StringBuilder();
+        try {
+            AssetManager assetManager = context.getAssets();
+            BufferedReader bf = new BufferedReader(new InputStreamReader(
+                    assetManager.open(fileName)));
+            String line;
+            while ((line = bf.readLine()) != null) {
+                stringBuilder.append(line);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return stringBuilder.toString();
+    }
+}
+

+ 3 - 0
BaseLibrary/src/main/res/values/colors.xml

@@ -66,4 +66,7 @@
     <color name="color_e9fff8">#E9FFF8</color>
     <color name="color_01c0b5">#01C1B5</color>
     <color name="color_f5f5f5">#F5F5F5</color>
+    <color name="color_ff6253">#FF6253</color>
+    <color name="color_ff997b">#FF997B</color>
+    <color name="color_ff9178">#FF9178</color>
 </resources>

+ 16 - 0
teacher/src/main/AndroidManifest.xml

@@ -107,6 +107,22 @@
                 android:name="android.support.FILE_PROVIDER_PATHS"
                 android:resource="@xml/file_paths" />
         </provider>
+        <activity
+            android:name=".ui.mine.EditAddressActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.mine.AboutActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.mine.FeedBackActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
+        <activity
+            android:name=".ui.mine.MyBankCardActivity"
+            android:configChanges="orientation|screenSize|keyboardHidden"
+            android:screenOrientation="portrait" />
     </application>
 
 </manifest>

+ 20 - 1
teacher/src/main/java/com/cooleshow/teacher/adapter/AddressListAdapter.java

@@ -1,10 +1,14 @@
 package com.cooleshow.teacher.adapter;
 
+import android.os.Bundle;
 import android.view.View;
+import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.alibaba.android.arouter.launcher.ARouter;
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.viewholder.BaseViewHolder;
+import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.bean.AddressBean;
 
@@ -30,7 +34,7 @@ public class AddressListAdapter  extends BaseQuickAdapter<AddressBean, BaseViewH
         TextView tv_address=helper.getView(R.id.tv_address);
         View view_line=helper.getView(R.id.view_line);
         tv_name.setText(item.name);
-        String cPhone = item.phone.substring(0, 3) + "****" + item.phone.substring(7, item.phone.length());
+        String cPhone = item.phoneNumber.substring(0, 3) + "****" + item.phoneNumber.substring(7, item.phoneNumber.length());
         tv_phone.setText(cPhone);
         String addressDetail=item.province+item.city+item.region+item.detailAddress;
         tv_address.setText(addressDetail);
@@ -39,6 +43,21 @@ public class AddressListAdapter  extends BaseQuickAdapter<AddressBean, BaseViewH
         }else {
             view_line.setVisibility(View.VISIBLE);
         }
+        ImageView im_modify = helper.getView(R.id.im_modify);
+        im_modify.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                Bundle bundle = new Bundle();
+                bundle.putSerializable("AddressBean", item);
+
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_EDIT_ADDRESS)
+                        .withBoolean("isAdd",false)
+                        .withBundle("bundle",bundle)
+                        .navigation();
+            }
+        });
 
     }
+
+
 }

+ 50 - 6
teacher/src/main/java/com/cooleshow/teacher/api/APIService.java

@@ -7,6 +7,7 @@ import com.cooleshow.teacher.bean.CourseTableDataBean;
 import com.cooleshow.teacher.bean.HomePageSheetMusicListBean;
 import com.cooleshow.teacher.bean.LiveCourseListBean;
 import com.cooleshow.teacher.bean.ReceivedCommentListBean;
+import com.cooleshow.teacher.bean.ResponseBankCardBean;
 import com.cooleshow.teacher.bean.SparringCourseCommentBean;
 import com.cooleshow.teacher.bean.SparringCourseHomeworkBean;
 import com.cooleshow.teacher.bean.SparringCourseListBean;
@@ -30,6 +31,7 @@ import retrofit2.http.Query;
 
 import static com.cooleshow.base.common.BaseConstant.AUTH_GROUP;
 import static com.cooleshow.base.common.BaseConstant.MALL_ADMIN_SERVER;
+import static com.cooleshow.base.common.BaseConstant.MALL_PORTAL_SERVER;
 import static com.cooleshow.base.common.BaseConstant.TEACHER_GROUP;
 
 /**
@@ -220,25 +222,28 @@ public interface APIService {
 
     /**
      * 校验用户手机号和密码
+     *
      * @param phone
      * @param password
      * @return
      */
     @GET(AUTH_GROUP + "user/checkUser")
-    Observable<BaseResponse<Object>> checkUser(@Query("phone") String phone,@Query("password") String password);
+    Observable<BaseResponse<Object>> checkUser(@Query("phone") String phone, @Query("password") String password);
 
     /**
      * 修改手机号
+     *
      * @param authCode
      * @param newPhone
      * @param oldPhone
      * @return
      */
     @GET(AUTH_GROUP + "user/updatePhone")
-    Observable<BaseResponse<Object>> updatePhone(@Query("authCode") String authCode,@Query("newPhone") String newPhone,@Query("oldPhone") String oldPhone);
+    Observable<BaseResponse<Object>> updatePhone(@Query("authCode") String authCode, @Query("newPhone") String newPhone, @Query("oldPhone") String oldPhone);
 
     /**
      * 手机验证码修改密码
+     *
      * @param body
      * @return
      */
@@ -247,9 +252,9 @@ public interface APIService {
 
     /**
      * 发送登录短信验证码
-     * @param body
-     *  mobile 手机号
-     *  type:类型(PASSWD:修改密码,LOGIN:登录,REGISTER:注册)
+     *
+     * @param body mobile 手机号
+     *             type:类型(PASSWD:修改密码,LOGIN:登录,REGISTER:注册)
      * @return
      */
     @POST(TEACHER_GROUP + "code/sendSmsCode")
@@ -257,6 +262,7 @@ public interface APIService {
 
     /**
      * 实名认证
+     *
      * @param body
      * @return
      */
@@ -265,8 +271,46 @@ public interface APIService {
 
     /**
      * 获取所有收货地址
+     *
      * @return
      */
-    @GET(MALL_ADMIN_SERVER + "companyAddress/list")
+    @GET(MALL_PORTAL_SERVER + "member/address/list")
     Observable<BaseResponse<List<AddressBean>>> companyAddressList();
+
+    /**
+     * 添加收货地址
+     *
+     * @param body
+     * @return
+     */
+    @POST(MALL_PORTAL_SERVER + "member/address/add")
+    Observable<BaseResponse<Object>> createNewAddress(@Body RequestBody body);
+
+    /**
+     * 修改地址
+     *
+     * @param id
+     * @param body
+     * @return
+     */
+    @POST(MALL_PORTAL_SERVER + "member/address/update/{id}")
+    Observable<BaseResponse<Object>> updateAddress(@Path("id") int id, @Body RequestBody body);
+
+    /**
+     * 意见反馈
+     *
+     * @param body
+     * @return
+     */
+    @POST(TEACHER_GROUP + "sysSuggestion/add")
+    Observable<BaseResponse<Object>> addSuggestion(@Body RequestBody body);
+
+    /**
+     * 银行卡查询
+     *
+     * @param body
+     * @return
+     */
+    @POST(TEACHER_GROUP + "userBankCard/page")
+    Observable<BaseResponse<ResponseBankCardBean>> queryUserBankCard(@Body RequestBody body);
 }

+ 9 - 18
teacher/src/main/java/com/cooleshow/teacher/bean/AddressBean.java

@@ -1,32 +1,23 @@
 package com.cooleshow.teacher.bean;
 
+import java.io.Serializable;
+
 /**
  * 创建日期:2022/5/17 15:29
  *
  * @author Ryan
  * 类说明:
  */
-public class AddressBean {
-    /**
-     * 	"addressName": "",
-     * 			"city": "",
-     * 			"detailAddress": "",
-     * 			"id": 0,
-     * 			"name": "",
-     * 			"phone": "",
-     * 			"province": "",
-     * 			"receiveStatus": 0,
-     * 			"region": "",
-     * 			"sendStatus": 0
-     */
-    public String addressName;
+public class AddressBean implements Serializable {
+
+    public String city;
+    public int defaultStatus; //是否默认收货地址:0->否;1->是
     public String detailAddress;
     public int id;
+    public String memberId;
     public String name;
-    public String phone;
+    public String phoneNumber;
+    public String postCode;
     public String province;
-    public String city;
     public String region;
-    public int receiveStatus; //是否默认收货地址:0->否;1->是
-    public int sendStatus;//默认发货地址:0->否;1->是
 }

+ 47 - 0
teacher/src/main/java/com/cooleshow/teacher/bean/ResponseBankCardBean.java

@@ -0,0 +1,47 @@
+package com.cooleshow.teacher.bean;
+
+import java.util.ArrayList;
+
+/**
+ * 创建日期:2022/5/18 17:50
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class ResponseBankCardBean {
+    public int limit;
+    public int nextPage;
+    public int offset;
+    public int pageNo;
+    public int prePage;
+    public int total;
+    public int totalPage;
+    public ArrayList<RowsBean> rows;
+    public static class RowsBean {
+        /**
+         * 	"bankCard": "",
+         * 				"bankCode": "",
+         * 				"bankName": "",
+         * 				"createTime": "",
+         * 				"defaultFlag": true,
+         * 				"delFlag": true,
+         * 				"id": 0,
+         * 				"name": "",
+         * 				"phone": "",
+         * 				"updateTime": "",
+         * 				"userId": 0
+          */
+        public String bankCard;
+        public String bankCode;
+        public String bankName;
+        public String createTime;
+        public boolean defaultFlag;
+        public boolean delFlag;
+        public int id;
+        public String name;
+        public String phone;
+        public String updateTime;
+        public int userId;
+    }
+
+}

+ 17 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/AboutContract.java

@@ -0,0 +1,17 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+
+/**
+ * 创建日期:2022/5/18 14:11
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public interface AboutContract {
+    interface AboutView extends BaseView {
+
+    }
+    interface Presenter {
+    }
+}

+ 18 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/EditAddressContract.java

@@ -0,0 +1,18 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+
+/**
+ * 创建日期:2022/5/18 10:20
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public interface EditAddressContract {
+    interface EditAddressView extends BaseView {
+        void createNewAddressSuccess(Object object);
+    }
+
+    interface Presenter {
+    }
+}

+ 17 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/FeedBackContract.java

@@ -0,0 +1,17 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+
+/**
+ * 创建日期:2022/5/18 16:26
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public interface FeedBackContract {
+    interface FeedBackView extends BaseView {
+        void addSuggestionSuccess(Object object);
+    }
+    interface Presenter {
+    }
+}

+ 18 - 0
teacher/src/main/java/com/cooleshow/teacher/contract/MyBankCardContract.java

@@ -0,0 +1,18 @@
+package com.cooleshow.teacher.contract;
+
+import com.cooleshow.base.presenter.view.BaseView;
+import com.cooleshow.teacher.bean.ResponseBankCardBean;
+
+/**
+ * 创建日期:2022/5/18 17:41
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public interface MyBankCardContract {
+    interface MyBankCardView extends BaseView {
+        void querySuccess(int page, ResponseBankCardBean data);
+    }
+    interface Presenter {
+    }
+}

+ 14 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/mine/AboutPresenter.java

@@ -0,0 +1,14 @@
+package com.cooleshow.teacher.presenter.mine;
+
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.teacher.contract.AboutContract;
+
+/**
+ * 创建日期:2022/5/18 14:08
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class AboutPresenter extends BasePresenter<AboutContract.AboutView> implements AboutContract.Presenter {
+
+}

+ 76 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/mine/EditAddressPresenter.java

@@ -0,0 +1,76 @@
+package com.cooleshow.teacher.presenter.mine;
+
+import com.cooleshow.base.data.net.ApiException;
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.base.utils.ToastUtils;
+import com.cooleshow.base.utils.helper.ErrorParse;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.contract.EditAddressContract;
+
+/**
+ * 创建日期:2022/5/18 10:20
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class EditAddressPresenter extends BasePresenter<EditAddressContract.EditAddressView> implements EditAddressContract.Presenter {
+
+    public void createNewAddress(String jsonStr) {
+        getView().showLoading();
+        addSubscribe(create(APIService.class).createNewAddress(RequestBodyUtil.convertToRequestBodyJson(jsonStr)), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object data) {
+                if (getView() != null) {
+                    getView().createNewAddressSuccess(data);
+                }
+            }
+
+            @Override
+            public void onComplete() {
+                super.onComplete();
+                getView().hideLoading();
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+                if (e instanceof ApiException) {
+                    ErrorParse.getInstance().parseError(e);
+                    ApiException apiException = (ApiException) e;
+                    ToastUtils.showShort(apiException.getErrmsg());
+                }
+            }
+        });
+    }
+
+    public void updateAddress(int id,String jsonStr) {
+        getView().showLoading();
+        addSubscribe(create(APIService.class).updateAddress(id,RequestBodyUtil.convertToRequestBodyJson(jsonStr)), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object data) {
+                if (getView() != null) {
+                    getView().createNewAddressSuccess(data);
+                }
+            }
+
+            @Override
+            public void onComplete() {
+                super.onComplete();
+                getView().hideLoading();
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+                if (e instanceof ApiException) {
+                    ErrorParse.getInstance().parseError(e);
+                    ApiException apiException = (ApiException) e;
+                    ToastUtils.showShort(apiException.getErrmsg());
+                }
+            }
+        });
+    }
+
+}

+ 47 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/mine/FeedBackPresenter.java

@@ -0,0 +1,47 @@
+package com.cooleshow.teacher.presenter.mine;
+
+import com.cooleshow.base.data.net.ApiException;
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.base.utils.ToastUtils;
+import com.cooleshow.base.utils.helper.ErrorParse;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.contract.FeedBackContract;
+
+/**
+ * 创建日期:2022/5/18 16:26
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class FeedBackPresenter extends BasePresenter<FeedBackContract.FeedBackView> implements FeedBackContract.Presenter {
+    public void addSuggestion(String jsonStr) {
+        getView().showLoading();
+        addSubscribe(create(APIService.class).addSuggestion(RequestBodyUtil.convertToRequestBodyJson(jsonStr)), new BaseObserver<Object>(getView()) {
+            @Override
+            protected void onSuccess(Object data) {
+                if (getView() != null) {
+                    getView().addSuggestionSuccess(data);
+                }
+            }
+
+            @Override
+            public void onComplete() {
+                super.onComplete();
+                getView().hideLoading();
+            }
+
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+                if (e instanceof ApiException) {
+                    ErrorParse.getInstance().parseError(e);
+                    ApiException apiException = (ApiException) e;
+                    ToastUtils.showShort(apiException.getErrmsg());
+                }
+            }
+        });
+    }
+
+}

+ 51 - 0
teacher/src/main/java/com/cooleshow/teacher/presenter/mine/MyBankCardPresenter.java

@@ -0,0 +1,51 @@
+package com.cooleshow.teacher.presenter.mine;
+
+import android.text.TextUtils;
+
+import com.cooleshow.base.constanst.Constants;
+import com.cooleshow.base.presenter.BasePresenter;
+import com.cooleshow.base.rx.BaseObserver;
+import com.cooleshow.base.utils.RequestBodyUtil;
+import com.cooleshow.teacher.api.APIService;
+import com.cooleshow.teacher.bean.ReceivedCommentListBean;
+import com.cooleshow.teacher.bean.ResponseBankCardBean;
+import com.cooleshow.teacher.contract.MyBankCardContract;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+/**
+ * 创建日期:2022/5/18 17:40
+ *
+ * @author Ryan
+ * 类说明:
+ */
+public class MyBankCardPresenter extends BasePresenter<MyBankCardContract.MyBankCardView> implements MyBankCardContract.Presenter {
+    public void queryUserBankCard( int page) {
+        getView().showLoading();
+        JSONObject jsonObject = new JSONObject();
+        try {
+            jsonObject.putOpt("page", page);
+            jsonObject.putOpt("rows", Constants.DEFAULT_DATA_SIZE);
+        } catch (JSONException e) {
+            e.printStackTrace();
+        }
+        addSubscribe(create(APIService.class).queryUserBankCard(RequestBodyUtil.convertToRequestBodyJson(jsonObject.toString())), new BaseObserver<ResponseBankCardBean>(getView()) {
+            @Override
+            protected void onSuccess(ResponseBankCardBean data) {
+                if (getView() != null) {
+                    getView().querySuccess(page, data);
+                }
+            }
+            @Override
+            public void onComplete() {
+                super.onComplete();
+                getView().hideLoading();
+            }
+            @Override
+            public void onError(Throwable e) {
+                super.onError(e);
+            }
+        });
+    }
+}

+ 68 - 25
teacher/src/main/java/com/cooleshow/teacher/ui/main/MineFragment.java

@@ -33,6 +33,15 @@ public class MineFragment extends BaseMVPFragment<FragmentMineLayoutBinding, Min
         mViewBinding.ivMineStyle.setOnClickListener(this);
         mViewBinding.ivAvatar.setOnClickListener(this);
         mViewBinding.ivSetting.setOnClickListener(this);
+        mViewBinding.ivSparingCourseSet.setOnClickListener(this);
+        mViewBinding.tvSparingCourseSet.setOnClickListener(this);
+        mViewBinding.ivLiveCourse.setOnClickListener(this);
+        mViewBinding.tvLiveCourse.setOnClickListener(this);
+        mViewBinding.ivVideoCourse.setOnClickListener(this);
+        mViewBinding.tvVideoCourse.setOnClickListener(this);
+        mViewBinding.tvHelp.setOnClickListener(this);
+        mViewBinding.tvFeedback.setOnClickListener(this);
+        mViewBinding.tvAuthentication.setOnClickListener(this);
     }
 
     @Override
@@ -99,31 +108,65 @@ public class MineFragment extends BaseMVPFragment<FragmentMineLayoutBinding, Min
 
     @Override
     public void onClick(View v) {
-        int id = v.getId();
-        if (id == R.id.iv_certification_status) {
-            //老师认证
-            ARouter.getInstance().build(RouterPath.WebCenter.ACTIVITY_HTML)
-                    .withString(WebConstants.WEB_URL, WebConstants.TEACHER_CERT)
-                    .navigation();
-        } else if (id == R.id.iv_un_certification_tip) {
-            //关闭认证提示
-            mViewBinding.ivUnCertificationTip.setVisibility(View.GONE);
-        } else if (id == R.id.tv_mine_page || id == R.id.iv_mine_page) {
-            //个人主页
-            ARouter.getInstance().build(RouterPath.MineCenter.HOME_PAGE)
-                    .navigation();
-        }else if (id==R.id.tv_mine_style||id==R.id.iv_mine_style){
-            //个人风采
-            ARouter.getInstance().build(RouterPath.MineCenter.MINE_STYLE_PAGE)
-                    .navigation();
-        }else if (id==R.id.iv_avatar){
-            //个人设置
-            ARouter.getInstance().build(RouterPath.MineCenter.MINE_PERSONAL_SETTING)
-                    .navigation();
-        }else if (id==R.id.iv_setting){
-            //设置
-            ARouter.getInstance().build(RouterPath.MineCenter.MINE_SETTING)
-                    .navigation();
+        switch (v.getId()) {
+            case R.id.iv_certification_status:
+                //老师认证
+                ARouter.getInstance().build(RouterPath.WebCenter.ACTIVITY_HTML)
+                        .withString(WebConstants.WEB_URL, WebConstants.TEACHER_CERT)
+                        .navigation();
+                break;
+            case R.id.iv_un_certification_tip:
+                //关闭认证提示
+                mViewBinding.ivUnCertificationTip.setVisibility(View.GONE);
+                break;
+            case R.id.tv_mine_page:
+            case R.id.iv_mine_page:
+                //个人主页
+                ARouter.getInstance().build(RouterPath.MineCenter.HOME_PAGE)
+                        .navigation();
+                break;
+            case R.id.tv_mine_style:
+            case R.id.iv_mine_style:
+                //个人风采
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_STYLE_PAGE)
+                        .navigation();
+                break;
+            case R.id.iv_avatar:
+                //个人设置
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_PERSONAL_SETTING)
+                        .navigation();
+                break;
+            case R.id.iv_setting:
+                //设置
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_SETTING)
+                        .navigation();
+                break;
+            case R.id.iv_sparing_course_set:
+            case R.id.tv_sparing_course_set:
+                break;
+            case R.id.iv_live_course:
+            case R.id.tv_live_course:
+                break;
+            case R.id.iv_video_course:
+            case R.id.tv_video_course:
+                break;
+            case R.id.tv_help:
+                //帮助中心
+                ARouter.getInstance()
+                        .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                        .withString(WebConstants.WEB_URL, WebConstants.TEACHER_HELP_CENTER)
+                        .navigation();
+                break;
+            case R.id.tv_feedback:
+                //意见反馈
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_FEEDBACK)
+                        .navigation();
+                break;
+            case R.id.tv_authentication:
+                //银行卡
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_MY_BANKCARD)
+                        .navigation();
+                break;
         }
     }
 }

+ 43 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/AboutActivity.java

@@ -0,0 +1,43 @@
+package com.cooleshow.teacher.ui.mine;
+
+import android.view.View;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.AppUtils;
+import com.cooleshow.teacher.contract.AboutContract;
+import com.cooleshow.teacher.databinding.ActivityAboutBinding;
+import com.cooleshow.teacher.presenter.mine.AboutPresenter;
+
+/**
+ * 创建日期:2022/5/18 14:08
+ *
+ * @author Ryan
+ * 类说明:
+ */
+@Route(path = RouterPath.MineCenter.MINE_ABOUT)
+public class AboutActivity extends BaseMVPActivity<ActivityAboutBinding, AboutPresenter> implements AboutContract.AboutView, View.OnClickListener {
+
+    @Override
+    public void onClick(View view) {
+
+    }
+
+    @Override
+    protected void initView() {
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "关于我们");
+        viewBinding.tvVersion.setText("版本号:"+ AppUtils.getAppVersionName());
+    }
+
+    @Override
+    protected ActivityAboutBinding getLayoutView() {
+        return ActivityAboutBinding.inflate(getLayoutInflater());
+
+    }
+
+    @Override
+    protected AboutPresenter createPresenter() {
+        return new AboutPresenter();
+    }
+}

+ 14 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/AddressListActivity.java

@@ -1,12 +1,15 @@
 package com.cooleshow.teacher.ui.mine;
 
+import android.os.Bundle;
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
 import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.teacher.R;
@@ -19,6 +22,8 @@ import com.cooleshow.teacher.presenter.mine.AddressListPresenter;
 import java.util.ArrayList;
 import java.util.List;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/17 15:16
  *
@@ -29,13 +34,22 @@ import java.util.List;
 public class AddressListActivity extends BaseMVPActivity<ActivityAddressListBinding, AddressListPresenter> implements AddressListContract.AddressListView, View.OnClickListener {
 
     private AddressListAdapter addressListAdapter;
+
     @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.tv_add:
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_EDIT_ADDRESS)
+                        .withBoolean("isAdd",true)
+                        .navigation();
                 break;
         }
     }
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
 
     private List<AddressBean> dataList = new ArrayList<>();
 
@@ -68,7 +82,6 @@ public class AddressListActivity extends BaseMVPActivity<ActivityAddressListBind
 
     @Override
     public void companyAddressListSuccess(List<AddressBean> data) {
-        Log.e("asdfs", "companyAddressListSuccess: "+data.size() );
         dataList.clear();
         dataList.addAll(data);
         addressListAdapter.notifyDataSetChanged();

+ 8 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/mine/CheckModifyPhoneNumActivity.java

@@ -1,6 +1,7 @@
 package com.cooleshow.teacher.ui.mine;
 
 import android.content.Intent;
+import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.View;
 
@@ -17,6 +18,8 @@ import com.cooleshow.teacher.databinding.ActivityCheckModifyPhonenumBinding;
 import com.cooleshow.teacher.databinding.ActivityModifyNicknameBinding;
 import com.cooleshow.teacher.presenter.mine.CheckModifyPhoneNumPresenter;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/17 10:02
  *
@@ -45,7 +48,11 @@ public class CheckModifyPhoneNumActivity extends BaseMVPActivity<ActivityCheckMo
                 break;
         }
     }
-
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
     @Override
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "修改手机号");

+ 395 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/EditAddressActivity.java

@@ -0,0 +1,395 @@
+package com.cooleshow.teacher.ui.mine;
+
+import android.annotation.SuppressLint;
+import android.content.Context;
+import android.graphics.Color;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.MotionEvent;
+import android.view.View;
+import android.view.inputmethod.InputMethodManager;
+import android.widget.EditText;
+import android.widget.TextView;
+
+import androidx.annotation.Nullable;
+
+import com.alibaba.android.arouter.facade.annotation.Autowired;
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.bigkoo.pickerview.builder.OptionsPickerBuilder;
+import com.bigkoo.pickerview.listener.CustomListener;
+import com.bigkoo.pickerview.listener.OnOptionsSelectListener;
+import com.bigkoo.pickerview.view.OptionsPickerView;
+import com.cooleshow.base.bean.JsonBean;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.GetJsonDataUtil;
+import com.cooleshow.base.utils.ToastUtils;
+import com.cooleshow.teacher.R;
+import com.cooleshow.teacher.bean.AddressBean;
+import com.cooleshow.teacher.bean.TeachableInstrumentBean;
+import com.cooleshow.teacher.contract.EditAddressContract;
+import com.cooleshow.teacher.databinding.ActivityEditAddressBinding;
+import com.cooleshow.teacher.presenter.mine.EditAddressPresenter;
+import com.google.gson.Gson;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import io.rong.imkit.utils.StatusBarUtil;
+
+/**
+ * 创建日期:2022/5/18 9:47
+ *
+ * @author Ryan
+ * 类说明:
+ */
+@Route(path = RouterPath.MineCenter.MINE_EDIT_ADDRESS)
+public class EditAddressActivity extends BaseMVPActivity<ActivityEditAddressBinding, EditAddressPresenter> implements EditAddressContract.EditAddressView, View.OnClickListener {
+
+    private String province;//省
+    private String city;//市
+    private String region;//区
+    private boolean isDefaultAddress;
+    private int id;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
+
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.im_set_default:
+                isDefaultAddress = !isDefaultAddress;
+                if (isDefaultAddress) {
+                    viewBinding.imSetDefault.setImageResource(R.drawable.icon_switch_off);
+                } else {
+                    viewBinding.imSetDefault.setImageResource(R.drawable.icon_switch_open);
+                }
+                break;
+            case R.id.tv_district_detail:
+                if (isLoaded) {
+                    showPickerView();
+                } else {
+                    ToastUtils.showShort("数据加载中,请稍后重试!");
+                }
+                break;
+            case R.id.tv_save:
+                String name = viewBinding.etName.getText().toString().trim();
+                if (TextUtils.isEmpty(name)) {
+                    ToastUtils.showShort("请输入姓名");
+                    break;
+                }
+                String phoneNumber = viewBinding.etPhone.getText().toString().trim();
+                if (TextUtils.isEmpty(phoneNumber)) {
+                    ToastUtils.showShort("请输入收件人电话号码");
+                    break;
+                }
+                if (TextUtils.isEmpty(province)) {
+                    ToastUtils.showShort("请选择所在地区");
+                    break;
+                }
+                String detailAddress = viewBinding.etDetailAddress.getText().toString().trim();
+                if (TextUtils.isEmpty(detailAddress)) {
+                    ToastUtils.showShort("请输入详细地址");
+                    break;
+                }
+
+                /*
+                	"city": "",
+	"defaultStatus": 0,
+	"detailAddress": "",
+	"id": 0,
+	"memberId": 0,
+	"name": "",
+	"phoneNumber": "",
+	"postCode": "",
+	"province": "",
+	"region": ""
+                 */
+                JSONObject jsonObject = new JSONObject();
+                try {
+                    jsonObject.putOpt("name", name);
+                    jsonObject.putOpt("phoneNumber", phoneNumber);
+                    jsonObject.putOpt("province", province);
+                    jsonObject.putOpt("city", city);
+                    jsonObject.putOpt("region", region);
+                    if (isDefaultAddress) {
+                        jsonObject.putOpt("defaultStatus", 1);
+                    } else {
+                        jsonObject.putOpt("defaultStatus", 0);
+                    }
+                    jsonObject.putOpt("detailAddress", detailAddress);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                if (isAdd) {
+                    presenter.createNewAddress(jsonObject.toString());
+                } else {
+                    presenter.updateAddress(id,jsonObject.toString());
+                }
+
+                break;
+        }
+    }
+
+    @Autowired(name = "isAdd")
+    boolean isAdd;
+
+    @Autowired(name = "bundle")
+    Bundle myBundle;
+
+
+    @Override
+    protected void initView() {
+        ARouter.getInstance().inject(this);
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "地址列表");
+        viewBinding.tvSave.setOnClickListener(this);
+        viewBinding.imSetDefault.setOnClickListener(this);
+        viewBinding.tvDistrictDetail.setOnClickListener(this);
+        mHandler.sendEmptyMessage(MSG_LOAD_DATA);
+        if (null != myBundle) {
+            AddressBean addressBean = (AddressBean) myBundle.getSerializable("AddressBean");
+            viewBinding.etName.setText(addressBean.name);
+            viewBinding.etPhone.setText(addressBean.phoneNumber);
+            if (!TextUtils.isEmpty(addressBean.province)) {
+                viewBinding.tvDistrictDetail.setText(addressBean.province + addressBean.city + addressBean.region);
+                viewBinding.tvDistrictDetail.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a));
+            }
+            viewBinding.etDetailAddress.setText(addressBean.detailAddress);
+            id = addressBean.id;
+        }
+    }
+
+    @Override
+    protected ActivityEditAddressBinding getLayoutView() {
+        return ActivityEditAddressBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected EditAddressPresenter createPresenter() {
+        return new EditAddressPresenter();
+    }
+
+    @Override
+    public void createNewAddressSuccess(Object object) {
+        finish();
+    }
+
+
+    private List<JsonBean> options1Items = new ArrayList<>();
+    private ArrayList<ArrayList<String>> options2Items = new ArrayList<>();
+    private ArrayList<ArrayList<ArrayList<String>>> options3Items = new ArrayList<>();
+    private Thread thread;
+    private static final int MSG_LOAD_DATA = 0x0001;
+    private static final int MSG_LOAD_SUCCESS = 0x0002;
+    private static final int MSG_LOAD_FAILED = 0x0003;
+
+    private static boolean isLoaded = false;
+    private OptionsPickerView pvOptions;
+
+    private void showPickerView() {// 弹出选择器
+
+        pvOptions = new OptionsPickerBuilder(this, new OnOptionsSelectListener() {
+            @Override
+            public void onOptionsSelect(int options1, int options2, int options3, View v) {
+                //返回的分别是三个级别的选中位置
+                String opt1tx = options1Items.size() > 0 ?
+                        options1Items.get(options1).getPickerViewText() : "";
+
+                String opt2tx = options2Items.size() > 0
+                        && options2Items.get(options1).size() > 0 ?
+                        options2Items.get(options1).get(options2) : "";
+
+                String opt3tx = options2Items.size() > 0
+                        && options3Items.get(options1).size() > 0
+                        && options3Items.get(options1).get(options2).size() > 0 ?
+                        options3Items.get(options1).get(options2).get(options3) : "";
+
+                String tx = opt1tx + opt2tx + opt3tx;
+                province = opt1tx;
+                city = opt2tx;
+                region = opt3tx;
+                viewBinding.tvDistrictDetail.setText(tx);
+                viewBinding.tvDistrictDetail.setTextColor(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a));
+            }
+        })
+                .setLayoutRes(R.layout.pickerview_address_layout, new CustomListener() {
+                    @Override
+                    public void customLayout(View v) {
+                        //自定义布局中的控件初始化及事件处理
+                        final TextView tvSubmit = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_finish);
+                        TextView ivCancel = (TextView) v.findViewById(com.cooleshow.base.R.id.tv_cancel);
+                        tvSubmit.setOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View v) {
+                                pvOptions.returnData();
+                                pvOptions.dismiss();
+                            }
+                        });
+                        ivCancel.setOnClickListener(new View.OnClickListener() {
+                            @Override
+                            public void onClick(View v) {
+                                pvOptions.dismiss();
+                            }
+                        });
+
+                    }
+                })
+//                .setLineSpacingMultiplier(2.5f)
+//                .setTextColorCenter(getResources().getColor(com.cooleshow.base.R.color.color_1a1a1a))//设置选中项的颜色
+                .isDialog(false)//是否显示为对话框样式
+                .build();
+        pvOptions.setPicker(options1Items, options2Items, options3Items);//三级选择器
+        pvOptions.show();
+
+    }
+
+    private void initJsonData() {//解析数据
+
+        /**
+         * 注意:assets 目录下的Json文件仅供参考,实际使用可自行替换文件
+         * 关键逻辑在于循环体
+         *
+         * */
+        String JsonData = new GetJsonDataUtil().getJson(this, "province.json");//获取assets目录下的json文件数据
+
+        ArrayList<JsonBean> jsonBean = parseData(JsonData);//用Gson 转成实体
+
+        /**
+         * 添加省份数据
+         *
+         * 注意:如果是添加的JavaBean实体,则实体类需要实现 IPickerViewData 接口,
+         * PickerView会通过getPickerViewText方法获取字符串显示出来。
+         */
+        options1Items = jsonBean;
+
+        for (int i = 0; i < jsonBean.size(); i++) {//遍历省份
+            ArrayList<String> cityList = new ArrayList<>();//该省的城市列表(第二级)
+            ArrayList<ArrayList<String>> province_AreaList = new ArrayList<>();//该省的所有地区列表(第三极)
+
+            for (int c = 0; c < jsonBean.get(i).getCityList().size(); c++) {//遍历该省份的所有城市
+                String cityName = jsonBean.get(i).getCityList().get(c).getName();
+                cityList.add(cityName);//添加城市
+                ArrayList<String> city_AreaList = new ArrayList<>();//该城市的所有地区列表
+                //如果无地区数据,建议添加空字符串,防止数据为null 导致三个选项长度不匹配造成崩溃
+                if (jsonBean.get(i).getCityList().get(c).getArea() == null
+                        || jsonBean.get(i).getCityList().get(c).getArea().size() == 0) {
+                    city_AreaList.add("");
+                } else {
+                    city_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());
+                }
+                city_AreaList.addAll(jsonBean.get(i).getCityList().get(c).getArea());
+                province_AreaList.add(city_AreaList);//添加该省所有地区数据
+            }
+
+            /**
+             * 添加城市数据
+             */
+            options2Items.add(cityList);
+
+            /**
+             * 添加地区数据
+             */
+            options3Items.add(province_AreaList);
+        }
+
+        mHandler.sendEmptyMessage(MSG_LOAD_SUCCESS);
+
+    }
+
+
+    public ArrayList<JsonBean> parseData(String result) {//Gson 解析
+        ArrayList<JsonBean> detail = new ArrayList<>();
+        try {
+            JSONArray data = new JSONArray(result);
+            Gson gson = new Gson();
+            for (int i = 0; i < data.length(); i++) {
+                JsonBean entity = gson.fromJson(data.optJSONObject(i).toString(), JsonBean.class);
+                detail.add(entity);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            mHandler.sendEmptyMessage(MSG_LOAD_FAILED);
+        }
+        return detail;
+    }
+
+    @SuppressLint("HandlerLeak")
+    private Handler mHandler = new Handler() {
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case MSG_LOAD_DATA:
+                    if (thread == null) {//如果已创建就不再重新创建子线程了
+                        Log.e("asdkjhakdsfs", "Begin Parse Data");
+                        thread = new Thread(new Runnable() {
+                            @Override
+                            public void run() {
+                                // 子线程中解析省市区数据
+                                initJsonData();
+                            }
+                        });
+                        thread.start();
+                    }
+                    break;
+
+                case MSG_LOAD_SUCCESS:
+                    Log.e("asdkjhakdsfs", "Parse Succeed");
+                    isLoaded = true;
+                    break;
+
+                case MSG_LOAD_FAILED:
+                    Log.e("asdkjhakdsfs", "Parse Failed");
+                    break;
+            }
+        }
+    };
+
+    @Override
+    public boolean dispatchTouchEvent(MotionEvent ev) {
+        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
+
+            View v = getCurrentFocus();
+            if (isShouldHideInput(v, ev)) {
+
+                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+                if (imm != null) {
+                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
+                }
+            }
+            return super.dispatchTouchEvent(ev);
+        }
+        // 必不可少,否则所有的组件都不会有TouchEvent了
+        if (getWindow().superDispatchTouchEvent(ev)) {
+            return true;
+        }
+        return onTouchEvent(ev);
+    }
+
+    public boolean isShouldHideInput(View v, MotionEvent event) {
+        if (v != null && (v instanceof EditText)) {
+            int[] leftTop = {0, 0};
+            //获取输入框当前的location位置
+            v.getLocationInWindow(leftTop);
+            int left = leftTop[0];
+            int top = leftTop[1];
+            int bottom = top + v.getHeight();
+            int right = left + v.getWidth();
+            return !(event.getX() > left && event.getX() < right
+                    && event.getY() > top && event.getY() < bottom);
+        }
+        return false;
+    }
+
+}

+ 84 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/FeedBackActivity.java

@@ -0,0 +1,84 @@
+package com.cooleshow.teacher.ui.mine;
+
+import android.os.Bundle;
+import android.text.TextUtils;
+import android.view.View;
+
+import androidx.annotation.Nullable;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.ToastUtil;
+import com.cooleshow.base.utils.ToastUtils;
+import com.cooleshow.teacher.R;
+import com.cooleshow.teacher.contract.FeedBackContract;
+import com.cooleshow.teacher.databinding.ActivityFeedbackBinding;
+import com.cooleshow.teacher.presenter.mine.FeedBackPresenter;
+
+import org.json.JSONException;
+import org.json.JSONObject;
+
+import io.rong.imkit.utils.StatusBarUtil;
+
+/**
+ * 创建日期:2022/5/18 16:25
+ *
+ * @author Ryan
+ * 类说明:
+ */
+@Route(path = RouterPath.MineCenter.MINE_FEEDBACK)
+public class FeedBackActivity extends BaseMVPActivity<ActivityFeedbackBinding, FeedBackPresenter> implements FeedBackContract.FeedBackView, View.OnClickListener {
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()){
+            case R.id.tv_submit:
+                String content = viewBinding.etContent.getText().toString().trim();
+                if (TextUtils.isEmpty(content)){
+                    ToastUtils.showShort("请输入您的反馈意见");
+                    break;
+                }
+                String mobileNo = viewBinding.etConnect.getText().toString().trim();
+                if (TextUtils.isEmpty(mobileNo)){
+                    ToastUtils.showShort("请输入您的邮箱或手机号");
+                    break;
+                }
+                JSONObject jsonObject = new JSONObject();
+                try {
+                    jsonObject.putOpt("content", content);
+                    jsonObject.putOpt("mobileNo", mobileNo);
+                } catch (JSONException e) {
+                    e.printStackTrace();
+                }
+                presenter.addSuggestion(jsonObject.toString());
+                break;
+        }
+    }
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
+
+    @Override
+    protected void initView() {
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "意见反馈");
+        viewBinding.tvSubmit.setOnClickListener(this);
+    }
+
+    @Override
+    protected ActivityFeedbackBinding getLayoutView() {
+        return ActivityFeedbackBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected FeedBackPresenter createPresenter() {
+        return new FeedBackPresenter();
+    }
+
+    @Override
+    public void addSuggestionSuccess(Object object) {
+        ToastUtils.showShort("提交成功");
+        finish();
+    }
+}

+ 8 - 7
teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyNickNameActivity.java

@@ -3,7 +3,8 @@ package com.cooleshow.teacher.ui.mine;
 import android.content.Intent;
 import android.os.Bundle;
 import android.view.View;
-import android.widget.TextView;
+
+import androidx.annotation.Nullable;
 
 import com.alibaba.android.arouter.facade.annotation.Autowired;
 import com.alibaba.android.arouter.facade.annotation.Route;
@@ -11,17 +12,13 @@ import com.alibaba.android.arouter.launcher.ARouter;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
 import com.cooleshow.teacher.R;
-import com.cooleshow.teacher.bean.TeachableInstrumentBean;
-import com.cooleshow.teacher.bean.TeacherSelfStyleInfoBean;
-import com.cooleshow.teacher.bean.TeacherUserInfo;
 import com.cooleshow.teacher.contract.ModifyNickNameContract;
 import com.cooleshow.teacher.databinding.ActivityModifyNicknameBinding;
 import com.cooleshow.teacher.presenter.mine.ModifyNickNamePresenter;
 import com.cooleshow.usercenter.bean.SetDetailBean;
 import com.google.gson.Gson;
 
-import java.util.ArrayList;
-import java.util.List;
+import io.rong.imkit.utils.StatusBarUtil;
 
 /**
  * 创建日期:2022/5/16 17:22
@@ -49,7 +46,11 @@ public class ModifyNickNameActivity extends BaseMVPActivity<ActivityModifyNickna
 
         }
     }
-
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
     @Override
     protected void initView() {
         ARouter.getInstance().inject(this);

+ 11 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyPasswordActivity.java

@@ -1,11 +1,14 @@
 package com.cooleshow.teacher.ui.mine;
 
 import android.annotation.SuppressLint;
+import android.os.Bundle;
 import android.os.Handler;
 import android.os.Message;
 import android.text.TextUtils;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+
 import com.alibaba.android.arouter.facade.annotation.Autowired;
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
@@ -24,6 +27,8 @@ import org.json.JSONObject;
 import java.util.Timer;
 import java.util.TimerTask;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/17 13:33
  *
@@ -68,6 +73,12 @@ public class ModifyPasswordActivity extends BaseMVPActivity<ActivityModifyPasswo
                 break;
         }
     }
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
     @Autowired(name = "phoneNum")
     String phoneNum;
 

+ 9 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/ModifyPhoneNumActivity.java

@@ -9,6 +9,8 @@ import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+
 import com.alibaba.android.arouter.facade.annotation.Autowired;
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
@@ -24,6 +26,8 @@ import com.cooleshow.usercenter.bean.SetDetailBean;
 import java.util.Timer;
 import java.util.TimerTask;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/17 10:49
  *
@@ -53,6 +57,11 @@ public class ModifyPhoneNumActivity extends BaseMVPActivity<ActivityModifyPhonen
                 break;
         }
     }
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
     @Autowired(name = "oldPhone")
     String oldPhone;
     @Override

+ 75 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/MyBankCardActivity.java

@@ -0,0 +1,75 @@
+package com.cooleshow.teacher.ui.mine;
+
+import android.view.View;
+
+import com.alibaba.android.arouter.facade.annotation.Route;
+import com.cooleshow.base.router.RouterPath;
+import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.teacher.R;
+import com.cooleshow.teacher.bean.ResponseBankCardBean;
+import com.cooleshow.teacher.contract.MyBankCardContract;
+import com.cooleshow.teacher.databinding.ActivityMyBankCardBinding;
+import com.cooleshow.teacher.databinding.EmptyMyBankCardBinding;
+import com.cooleshow.teacher.presenter.mine.MyBankCardPresenter;
+
+/**
+ * 创建日期:2022/5/18 16:57
+ *
+ * @author Ryan
+ * 类说明:
+ */
+@Route(path = RouterPath.MineCenter.MINE_MY_BANKCARD)
+public class MyBankCardActivity extends BaseMVPActivity<ActivityMyBankCardBinding, MyBankCardPresenter> implements MyBankCardContract.MyBankCardView, View.OnClickListener {
+
+    @Override
+    public void onClick(View view) {
+        switch (view.getId()) {
+            case R.id.tv_right_text:
+                break;
+            case R.id.tv_unbind:
+                break;
+            case R.id.tv_bind_card:
+                break;
+        }
+    }
+
+    @Override
+    protected void initView() {
+        initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "我的银行卡");
+        viewBinding.toolbarInclude.tvRightText.setTextColor(getResources().getColor(com.cooleshow.base.R.color.common_black));
+        viewBinding.toolbarInclude.tvRightText.setVisibility(View.VISIBLE);
+        viewBinding.toolbarInclude.tvRightText.setText("更换绑定卡");
+        viewBinding.toolbarInclude.tvRightText.setOnClickListener(this);
+        viewBinding.tvUnbind.setOnClickListener(this);
+        viewBinding.includeEmpty.tvBindCard.setOnClickListener(this);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        presenter.queryUserBankCard(1);
+    }
+
+    @Override
+    protected ActivityMyBankCardBinding getLayoutView() {
+        return ActivityMyBankCardBinding.inflate(getLayoutInflater());
+    }
+
+    @Override
+    protected MyBankCardPresenter createPresenter() {
+        return new MyBankCardPresenter();
+    }
+
+    @Override
+    public void querySuccess(int page, ResponseBankCardBean data) {
+        if (null != data && null != data.rows && data.rows.size() > 0) {
+            viewBinding.includeEmpty.getRoot().setVisibility(View.GONE);
+            viewBinding.clContent.setVisibility(View.VISIBLE);
+            viewBinding.tvBankName.setText(data.rows.get(0).bankName);
+            viewBinding.tvCardNum.setText(data.rows.get(0).bankCard);
+        }else{
+            viewBinding.includeEmpty.getRoot().setVisibility(View.VISIBLE);
+            viewBinding.clContent.setVisibility(View.GONE);
+        }
+    }
+}

+ 10 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/PersonalCertificationActivity.java

@@ -1,8 +1,11 @@
 package com.cooleshow.teacher.ui.mine;
 
+import android.os.Bundle;
 import android.text.TextUtils;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
@@ -15,6 +18,8 @@ import com.cooleshow.teacher.presenter.mine.PersonalCertificationPresenter;
 import org.json.JSONException;
 import org.json.JSONObject;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/17 14:17
  *
@@ -49,6 +54,11 @@ public class PersonalCertificationActivity extends BaseMVPActivity<ActivityPerso
                 break;
         }
     }
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
 
     @Override
     protected void initView() {

+ 21 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/mine/PersonalSettingActivity.java

@@ -46,6 +46,8 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Locale;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/16 16:07
  *
@@ -62,6 +64,12 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
     public final int REQUEST_CODE_LOCAL = 0x19;
 
     @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
+
+    @Override
     public void onClick(View view) {
         switch (view.getId()) {
             case R.id.cl_header:
@@ -288,6 +296,7 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
     @Override
     public void submitSetDetailSuccess(SetDetailBean setDetailBean) {
         mySetDetailBean.gender = setDetailBean.gender;
+        mySetDetailBean.avatar = setDetailBean.avatar;
         if (setDetailBean.gender == 0) {
             //女
             viewBinding.tvSex.setText("女");
@@ -295,12 +304,24 @@ public class PersonalSettingActivity extends BaseMVPActivity<ActivityPersonalSet
             //男
             viewBinding.tvSex.setText("男");
         }
+        GlideUtils.INSTANCE.loadImage(this, setDetailBean.avatar, viewBinding.imHeader, R.drawable.icon_teacher_default_head);
+
+
     }
 
     @Override
     public void upLoadImageSuccess(String url) {
         hideLoading();
         Log.e("aksjhkasndfs", "upLoadImageSuccess: " + url);
+        SetDetailBean requestBean = new SetDetailBean();
+        requestBean.gender = 1;
+        requestBean.real = mySetDetailBean.real;
+        requestBean.phone = mySetDetailBean.phone;
+        requestBean.birthdate = mySetDetailBean.birthdate;
+        requestBean.avatar = url;
+        requestBean.username = mySetDetailBean.username;
+        Gson gson = new Gson();
+        presenter.submitSetDetail(gson.toJson(requestBean));
     }
 
     @Override

+ 41 - 4
teacher/src/main/java/com/cooleshow/teacher/ui/mine/SettingActivity.java

@@ -1,16 +1,23 @@
 package com.cooleshow.teacher.ui.mine;
 
+import android.os.Bundle;
 import android.view.View;
 
+import androidx.annotation.Nullable;
+
 import com.alibaba.android.arouter.facade.annotation.Route;
 import com.alibaba.android.arouter.launcher.ARouter;
+import com.cooleshow.base.common.WebConstants;
 import com.cooleshow.base.router.RouterPath;
 import com.cooleshow.base.ui.activity.BaseMVPActivity;
+import com.cooleshow.base.utils.SPUtils;
 import com.cooleshow.teacher.R;
 import com.cooleshow.teacher.contract.SettingContract;
 import com.cooleshow.teacher.databinding.ActivitySettingBinding;
 import com.cooleshow.teacher.presenter.mine.SettingPresenter;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/16 16:55
  *
@@ -20,29 +27,59 @@ import com.cooleshow.teacher.presenter.mine.SettingPresenter;
 @Route(path = RouterPath.MineCenter.MINE_SETTING)
 public class SettingActivity extends BaseMVPActivity<ActivitySettingBinding, SettingPresenter> implements SettingContract.SettingView, View.OnClickListener {
 
+
     @Override
     public void onClick(View view) {
-        switch (view.getId()){
+        switch (view.getId()) {
             case R.id.cl_address:
                 ARouter.getInstance().build(RouterPath.MineCenter.MINE_ADDRESS_LIST)
                         .navigation();
                 break;
-            case R.id.cl_detection:
+            case R.id.im_select:
+                is_detection=!is_detection;
+                SPUtils.getInstance().put("IS_DETECTION",is_detection);
+                if (is_detection) {
+                    viewBinding.imSelect.setImageResource(R.drawable.icon_switch_off);
+                } else {
+                    viewBinding.imSelect.setImageResource(R.drawable.icon_switch_open);
+                }
                 break;
             case R.id.cl_private:
+                //跳转隐私协议
+                ARouter.getInstance()
+                        .build(RouterPath.WebCenter.ACTIVITY_HTML)
+                        .withString(WebConstants.WEB_URL, WebConstants.PRIVACY_AGREEMENT)
+                        .navigation();
                 break;
             case R.id.cl_about:
+                ARouter.getInstance().build(RouterPath.MineCenter.MINE_ABOUT)
+                        .navigation();
                 break;
         }
     }
 
     @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
+
+    private boolean is_detection;
+
+    @Override
     protected void initView() {
         initMidTitleToolBar(viewBinding.toolbarInclude.toolbar, "设置");
         viewBinding.clAddress.setOnClickListener(this);
-        viewBinding.clDetection.setOnClickListener(this);
-        viewBinding.clPrivate.setOnClickListener(this);
+        viewBinding.imSelect.setOnClickListener(this);
         viewBinding.clPrivate.setOnClickListener(this);
+        viewBinding.clAbout.setOnClickListener(this);
+        is_detection = SPUtils.getInstance().getBoolean("IS_DETECTION");
+        if (is_detection) {
+            viewBinding.imSelect.setImageResource(R.drawable.icon_switch_off);
+        } else {
+            viewBinding.imSelect.setImageResource(R.drawable.icon_switch_open);
+        }
+
     }
 
     @Override

+ 2 - 1
teacher/src/main/java/com/cooleshow/teacher/ui/minestyle/MineStylePageActivity.java

@@ -63,6 +63,7 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+import io.rong.imkit.utils.StatusBarUtil;
 import retrofit2.Call;
 import retrofit2.Callback;
 import retrofit2.Response;
@@ -129,7 +130,7 @@ public class MineStylePageActivity extends BaseMVPActivity<ActivityMineStylePage
                 (WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN |
                         WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
         super.onCreate(savedInstanceState);
-
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
     }
 
     @Override

+ 9 - 0
teacher/src/main/java/com/cooleshow/teacher/ui/minestyle/TeachableInstrumentActivity.java

@@ -6,6 +6,7 @@ import android.util.Log;
 import android.view.View;
 
 import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
 import androidx.recyclerview.widget.LinearLayoutManager;
 import androidx.recyclerview.widget.RecyclerView;
 
@@ -27,6 +28,8 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 
+import io.rong.imkit.utils.StatusBarUtil;
+
 /**
  * 创建日期:2022/5/13 15:25
  *
@@ -92,6 +95,12 @@ public class TeachableInstrumentActivity extends BaseMVPActivity<ActivityTeachab
     }
 
     @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        StatusBarUtil.setStatusBarDarkTheme(this, true);
+    }
+
+    @Override
     protected ActivityTeachableInstrumentBinding getLayoutView() {
         return ActivityTeachableInstrumentBinding.inflate(getLayoutInflater());
     }

BIN
teacher/src/main/res/drawable-xhdpi/icon_about_logo.png


BIN
teacher/src/main/res/drawable-xhdpi/icon_empty_bank_card.png


BIN
teacher/src/main/res/drawable-xhdpi/icon_mine_feedback.png


BIN
teacher/src/main/res/drawable-xhdpi/icon_my_bank_card.png


BIN
teacher/src/main/res/drawable-xxhdpi/icon_about_logo.png


BIN
teacher/src/main/res/drawable-xxhdpi/icon_bank_card.png


BIN
teacher/src/main/res/drawable-xxhdpi/icon_empty_bank_card.png


BIN
teacher/src/main/res/drawable-xxhdpi/icon_mine_feedback.png


BIN
teacher/src/main/res/drawable-xxhdpi/icon_my_bank_card.png


+ 10 - 0
teacher/src/main/res/drawable/bg_bank_card.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@color/white" />
+    <corners android:radius="10dp" />
+    <gradient
+        android:angle="45"
+        android:endColor="@color/color_ff6253"
+        android:startColor="@color/color_ff997b" />
+</shape>

+ 7 - 0
teacher/src/main/res/drawable/bg_ff9178_radius.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@color/color_ff9178" />
+    <corners
+        android:radius="16dp" />
+</shape>

+ 8 - 0
teacher/src/main/res/drawable/bg_white_10dp_border.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="rectangle">
+    <solid android:color="@color/white" />
+    <corners
+        android:radius="10dp" />
+    <stroke android:width="1dp" android:color="@color/color_e5e5e5"/>
+</shape>

+ 115 - 0
teacher/src/main/res/layout/activity_about.xml

@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/color_f6f8f9"
+    android:orientation="vertical">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="14dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginEnd="14dp"
+        android:background="@drawable/bg_white_10dp">
+
+        <ImageView
+            android:id="@+id/im_logo"
+            android:layout_width="@dimen/dp_135"
+            android:layout_height="@dimen/dp_40"
+            android:layout_marginTop="43dp"
+            android:background="@drawable/icon_about_logo"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/tv_version"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="12dp"
+            android:textColor="@color/color_999999"
+            android:textSize="@dimen/sp_14"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/im_logo" />
+
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="12dp"
+            android:layout_marginTop="88dp"
+            android:text="客服电话"
+            android:textColor="@color/black_333"
+            android:textSize="@dimen/sp_17"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_version" />
+
+        <TextView
+            android:id="@+id/tv_connect_num"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="88dp"
+            android:layout_marginRight="12dp"
+            android:text="027-87718176"
+            android:textColor="@color/color_999999"
+            android:textSize="@dimen/sp_17"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_version" />
+
+        <View
+            android:id="@+id/view_line1"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_marginLeft="10dp"
+            android:layout_marginTop="14dp"
+            android:layout_marginRight="10dp"
+            android:background="@color/color_f2f2f2"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_connect_num" />
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textSize="@dimen/sp_17"
+            android:textColor="@color/black_333"
+            android:layout_marginLeft="12dp"
+            android:layout_marginTop="9dp"
+            android:text="E-mail"
+            android:layout_marginBottom="27dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_line1"
+            />
+
+        <TextView
+            android:id="@+id/tv_email"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="9dp"
+            android:text="dyme2002@dayaedu.com"
+            android:textColor="@color/color_999999"
+            android:textSize="@dimen/sp_17"
+            android:layout_marginRight="12dp"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_line1" />
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="33dp"
+        android:lineSpacingExtra="2dp"
+        android:gravity="center"
+        android:text="Copyright2021-2022\n酷乐秀 colexiu.com 版权所有"
+        android:layout_gravity="center_horizontal"
+        android:textColor="@color/color_999999"
+        android:textSize="@dimen/sp_13"/>
+</LinearLayout>

+ 235 - 0
teacher/src/main/res/layout/activity_edit_address.xml

@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/color_f6f8f9">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/cl_info"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/toolbar_include"
+        android:layout_marginLeft="14dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="14dp"
+        android:background="@drawable/bg_white_10dp">
+
+        <TextView
+            android:id="@+id/tv_name"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_58"
+            android:layout_marginLeft="12dp"
+            android:paddingTop="@dimen/dp_20"
+            android:text="收货人"
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <EditText
+            android:id="@+id/et_name"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_58"
+            android:layout_marginLeft="96dp"
+            android:layout_marginRight="14dp"
+            android:background="@null"
+            android:gravity="left"
+            android:hint="请输入姓名"
+            android:inputType="text"
+            android:paddingTop="@dimen/dp_20"
+            android:textColor="@color/color_1a1a1a"
+            android:textColorHint="@color/color_999999"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_name"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/tv_name" />
+
+
+        <View
+            android:id="@+id/view_line1"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_marginLeft="11dp"
+            android:layout_marginRight="9dp"
+            android:background="@color/color_f2f2f2"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_name" />
+
+
+        <TextView
+            android:id="@+id/tv_phone"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_50"
+            android:layout_marginLeft="12dp"
+            android:paddingTop="12dp"
+            android:text="联系电话"
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_line1" />
+
+        <EditText
+            android:id="@+id/et_phone"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_50"
+            android:layout_marginLeft="96dp"
+            android:layout_marginRight="14dp"
+            android:background="@null"
+            android:gravity="left"
+            android:hint="收件人电话号码"
+            android:inputType="phone"
+            android:paddingTop="12dp"
+            android:textColor="@color/color_1a1a1a"
+            android:textColorHint="@color/color_999999"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_phone"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/tv_phone" />
+
+
+        <View
+            android:id="@+id/view_line2"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_marginLeft="11dp"
+            android:layout_marginRight="9dp"
+            android:background="@color/color_f2f2f2"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_phone" />
+
+
+        <TextView
+            android:id="@+id/tv_district"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_50"
+            android:layout_marginLeft="12dp"
+            android:paddingTop="12dp"
+            android:text="所在地区"
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_line2" />
+
+        <TextView
+            android:id="@+id/tv_district_detail"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_50"
+            android:layout_marginLeft="96dp"
+            android:paddingTop="12dp"
+            android:text="请选择"
+            android:textColor="@color/color_999999"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_district"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/tv_district" />
+
+        <ImageView
+            android:layout_width="12dp"
+            android:layout_height="7dp"
+            android:layout_marginLeft="5dp"
+            android:background="@drawable/icon_go_down"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_district_detail"
+            app:layout_constraintLeft_toRightOf="@+id/tv_district_detail"
+            app:layout_constraintTop_toTopOf="@+id/tv_district_detail" />
+
+        <View
+            android:id="@+id/view_line3"
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:layout_marginLeft="11dp"
+            android:layout_marginRight="9dp"
+            android:background="@color/color_f2f2f2"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/tv_district" />
+
+        <TextView
+            android:id="@+id/tv_detail_address"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_98"
+            android:layout_marginLeft="12dp"
+            android:paddingTop="12dp"
+            android:text="详细地址"
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_line3" />
+
+
+        <EditText
+            android:id="@+id/et_detail_address"
+            android:layout_width="match_parent"
+            android:layout_height="@dimen/dp_98"
+            android:layout_marginLeft="96dp"
+            android:layout_marginRight="14dp"
+            android:background="@null"
+            android:gravity="left"
+            android:hint="请输入"
+            android:inputType="text"
+            android:paddingTop="12dp"
+            android:textColor="@color/color_1a1a1a"
+            android:textColorHint="@color/color_999999"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/view_line3" />
+
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/cl_set"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/cl_info"
+        android:layout_marginLeft="14dp"
+        android:layout_marginTop="12dp"
+        android:layout_marginRight="14dp"
+        android:background="@drawable/bg_white_10dp">
+
+        <TextView
+            android:id="@+id/tv_default_set"
+            android:layout_width="wrap_content"
+            android:layout_height="@dimen/dp_52"
+            android:layout_marginLeft="12dp"
+            android:gravity="center"
+            android:text="设置为默认地址"
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <ImageView
+            android:id="@+id/im_set_default"
+            android:layout_width="@dimen/dp_47"
+            android:layout_height="@dimen/dp_44"
+            android:layout_marginRight="14dp"
+            android:paddingTop="10dp"
+            android:paddingBottom="10dp"
+            android:src="@drawable/icon_switch_off"
+            app:layout_constraintBottom_toBottomOf="@+id/tv_default_set"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="@+id/tv_default_set" />
+    </androidx.constraintlayout.widget.ConstraintLayout>
+
+
+    <TextView
+        android:id="@+id/tv_save"
+        android:layout_width="match_parent"
+        android:layout_height="44dp"
+        android:layout_alignParentBottom="true"
+        android:layout_gravity="bottom"
+        android:layout_marginLeft="28dp"
+        android:layout_marginTop="20dp"
+        android:layout_marginRight="28dp"
+        android:layout_marginBottom="36dp"
+        android:background="@drawable/shape_course_status_ing"
+        android:gravity="center"
+        android:text="保存收货地址"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14" />
+
+</RelativeLayout>

+ 74 - 0
teacher/src/main/res/layout/activity_feedback.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/color_f6f8f9"
+    android:orientation="vertical">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+
+    <EditText
+        android:id="@+id/et_content"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_239"
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="16dp"
+        android:background="@drawable/bg_white_10dp_border"
+        android:gravity="left"
+        android:hint="请输入您的反馈意见"
+        android:inputType="text"
+        android:paddingLeft="12dp"
+        android:paddingTop="14dp"
+        android:paddingRight="12dp"
+        android:paddingBottom="14dp"
+        android:textColor="@color/black_333"
+        android:textColorHint="@color/color_999999"
+        android:textSize="@dimen/sp_16" />
+    <EditText
+        android:id="@+id/et_connect"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_48"
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="8dp"
+        android:layout_marginRight="16dp"
+        android:background="@drawable/bg_white_10dp_border"
+        android:gravity="left"
+        android:hint="您的邮箱或手机号"
+        android:inputType="textEmailAddress"
+        android:paddingLeft="12dp"
+        android:paddingTop="14dp"
+        android:paddingRight="12dp"
+        android:paddingBottom="14dp"
+        android:textColor="@color/black_333"
+        android:textColorHint="@color/color_999999"
+        android:textSize="@dimen/sp_16" />
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="17dp"
+        android:textSize="@dimen/sp_14"
+        android:textColor="@color/gray_777"
+        android:lineSpacingExtra="4dp"
+        android:layout_marginRight="17dp"
+        android:text="或通过以下方式联系我们:\n微信公众号:DYME-2002\n邮箱:dyme2002@dayaedu.com"
+        android:layout_marginTop="14dp"/>
+    <TextView
+        android:id="@+id/tv_submit"
+        android:layout_width="match_parent"
+        android:layout_height="44dp"
+        android:layout_gravity="bottom"
+        android:layout_marginLeft="28dp"
+        android:layout_marginTop="53dp"
+        android:layout_marginRight="28dp"
+        android:background="@drawable/shape_course_status_ing"
+        android:gravity="center"
+        android:text="提交"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14" />
+</LinearLayout>

+ 79 - 0
teacher/src/main/res/layout/activity_my_bank_card.xml

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <include
+        android:id="@+id/toolbar_include"
+        layout="@layout/common_toolbar_layout" />
+
+    <include
+        android:id="@+id/include_empty"
+        layout="@layout/empty_my_bank_card"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@+id/toolbar_include"
+        android:visibility="gone" />
+
+    <androidx.constraintlayout.widget.ConstraintLayout
+        android:id="@+id/cl_content"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_97"
+        android:layout_below="@+id/toolbar_include"
+        android:layout_marginLeft="14dp"
+        android:layout_marginTop="15dp"
+        android:layout_marginRight="14dp"
+        android:visibility="gone"
+        android:background="@drawable/bg_bank_card">
+
+        <ImageView
+            android:id="@+id/im_bank_logo"
+            android:layout_width="44dp"
+            android:layout_height="44dp"
+            android:layout_marginLeft="16dp"
+            android:layout_marginTop="28dp"
+            android:background="@drawable/icon_my_bank_card"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/tv_bank_name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="10dp"
+            android:layout_marginTop="28dp"
+            android:text="中国工商银行储蓄卡"
+            android:textColor="@color/white"
+            android:textSize="@dimen/sp_16"
+            app:layout_constraintLeft_toRightOf="@+id/im_bank_logo"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <TextView
+            android:id="@+id/tv_card_num"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/white"
+            app:layout_constraintBottom_toBottomOf="parent"
+            android:layout_marginBottom="24dp"
+            android:layout_marginLeft="10dp"
+            app:layout_constraintLeft_toRightOf="@+id/im_bank_logo"
+            android:text="6222**** ****1917"/>
+
+        <TextView
+            android:id="@+id/tv_unbind"
+            android:layout_width="@dimen/dp_54"
+            android:layout_height="@dimen/dp_20"
+            android:layout_marginTop="31dp"
+            android:gravity="center"
+            android:layout_marginRight="20dp"
+            android:textSize="@dimen/sp_14"
+            android:text="解绑"
+            android:textColor="@color/white"
+            app:layout_constraintTop_toTopOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            android:background="@drawable/bg_ff9178_radius"
+            />
+
+    </androidx.constraintlayout.widget.ConstraintLayout>
+</RelativeLayout>

+ 6 - 10
teacher/src/main/res/layout/activity_setting.xml

@@ -76,10 +76,13 @@
 
 
             <ImageView
+                android:id="@+id/im_select"
                 android:layout_width="@dimen/dp_47"
-                android:layout_height="@dimen/dp_24"
+                android:layout_height="@dimen/dp_44"
                 android:layout_marginRight="14dp"
-                android:background="@drawable/icon_switch_off"
+                android:paddingTop="10dp"
+                android:paddingBottom="10dp"
+                android:src="@drawable/icon_switch_off"
                 app:layout_constraintBottom_toBottomOf="parent"
                 app:layout_constraintRight_toRightOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
@@ -161,14 +164,7 @@
                 app:layout_constraintRight_toRightOf="parent"
                 app:layout_constraintTop_toTopOf="parent" />
 
-            <View
-                android:layout_width="match_parent"
-                android:layout_height="1dp"
-                android:layout_marginLeft="11dp"
-                android:layout_marginRight="9dp"
-                android:background="@color/color_f2f2f2"
-                app:layout_constraintBottom_toBottomOf="parent"
-                app:layout_constraintLeft_toLeftOf="parent" />
+
         </androidx.constraintlayout.widget.ConstraintLayout>
 
         <View

+ 46 - 0
teacher/src/main/res/layout/empty_my_bank_card.xml

@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content">
+
+
+    <ImageView
+        android:id="@+id/im_empty_logo"
+        android:layout_width="@dimen/dp_260"
+        android:layout_height="@dimen/dp_230"
+        android:layout_marginTop="30dp"
+        android:background="@drawable/icon_empty_bank_card"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/tv_empty_content"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:lineSpacingExtra="4dp"
+        android:layout_marginTop="12dp"
+        android:gravity="center"
+        android:text="您暂未绑定银行卡\n绑定后可将收入提现"
+        android:textColor="@color/color_999999"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/im_empty_logo" />
+
+    <TextView
+        android:id="@+id/tv_bind_card"
+        android:layout_width="match_parent"
+        android:layout_height="44dp"
+        android:layout_gravity="bottom"
+        android:layout_marginLeft="90dp"
+        app:layout_constraintTop_toBottomOf="@+id/tv_empty_content"
+        android:layout_marginTop="32dp"
+        android:layout_marginRight="90dp"
+        android:background="@drawable/shape_course_status_ing"
+        android:gravity="center"
+        android:text="立即绑卡"
+        android:textColor="@color/white"
+        android:textSize="@dimen/sp_14" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 11 - 0
teacher/src/main/res/layout/fragment_mine_layout.xml

@@ -404,6 +404,7 @@
             app:layout_constraintTop_toTopOf="@+id/iv_sparing_course_set" />
 
         <TextView
+            android:id="@+id/tv_live_course"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:includeFontPadding="false"
@@ -428,6 +429,7 @@
             app:layout_constraintTop_toTopOf="@+id/iv_sparing_course_set" />
 
         <TextView
+            android:id="@+id/tv_video_course"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:includeFontPadding="false"
@@ -524,6 +526,15 @@
                 android:visibility="visible"
                 app:layout_constraintLeft_toLeftOf="@+id/tv_equipment_testing"
                 app:layout_constraintTop_toBottomOf="@+id/tv_equipment_testing" />
+            <TextView
+                android:id="@+id/tv_feedback"
+                style="@style/me_btn_style"
+                android:drawableLeft="@drawable/icon_mine_feedback"
+                android:text="意见反馈"
+                android:textSize="@dimen/sp_14"
+                android:visibility="visible"
+                app:layout_constraintLeft_toLeftOf="@+id/tv_help"
+                app:layout_constraintTop_toBottomOf="@+id/tv_help" />
         </androidx.constraintlayout.widget.ConstraintLayout>
 
     </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 1
teacher/src/main/res/layout/layout_address_item.xml

@@ -45,10 +45,11 @@
         tool:text="湖北省武汉市汉街总部" />
 
     <ImageView
-        android:id="@+id/im_address"
+        android:id="@+id/im_modify"
         android:layout_width="@dimen/dp_38"
         android:layout_height="@dimen/dp_39"
         android:padding="@dimen/dp_10"
+        android:layout_marginRight="15dp"
         android:src="@drawable/icon_modify_address"
         app:layout_constraintBottom_toBottomOf="@+id/tv_address"
         app:layout_constraintRight_toRightOf="parent"

+ 76 - 0
teacher/src/main/res/layout/pickerview_address_layout.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/bg_white_top_10dp"
+    android:orientation="vertical">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp">
+
+
+        <TextView
+            android:id="@+id/tv_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="17dp"
+            android:text="取消"
+            android:textColor="@color/color_999999"
+            android:textSize="@dimen/dp_16" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:text=""
+            android:textColor="@color/color_1a1a1a"
+            android:textSize="18dp" />
+
+        <TextView
+            android:id="@+id/tv_finish"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_centerVertical="true"
+            android:layout_marginRight="17dp"
+            android:padding="8dp"
+            android:text="确定"
+            android:textColor="@color/colorPrimary"
+            android:textSize="@dimen/dp_16" />
+
+    </RelativeLayout>
+
+    <View style="@style/line_style" />
+    <!--此部分需要完整复制过去,删减或者更改ID会导致初始化找不到内容而报空-->
+    <LinearLayout
+        android:id="@+id/optionspicker"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/dp_200"
+        android:background="#ffffff"
+        android:gravity="center"
+        android:minHeight="150dp"
+        android:orientation="horizontal">
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options1"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options2"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+
+        <com.contrarywind.view.WheelView
+            android:id="@+id/options3"
+            android:layout_width="0dp"
+            android:layout_height="match_parent"
+            android:layout_weight="1" />
+    </LinearLayout>
+
+
+</LinearLayout>