member_address.php 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. <?php
  2. /**
  3. * 收货地址
  4. *
  5. *
  6. *
  7. ***/
  8. defined('InShopNC') or exit('Access Invalid!');
  9. class member_addressControl extends BaseMemberControl{
  10. /**
  11. * 会员地址
  12. *
  13. * @param
  14. * @return
  15. */
  16. public function addressOp() {
  17. Language::read('member_member_index');
  18. $lang = Language::getLangContent();
  19. $address_class = Model('address');
  20. /**
  21. * 判断页面类型
  22. */
  23. if (!empty($_GET['type'])){
  24. /**
  25. * 新增/编辑地址页面
  26. */
  27. if (intval($_GET['id']) > 0){
  28. /**
  29. * 得到地址信息
  30. */
  31. $address_info = $address_class->getOneAddress(intval($_GET['id']));
  32. if ($address_info['member_id'] != $_SESSION['member_id']){
  33. showMessage($lang['member_address_wrong_argument'],'index.php?act=member_address&op=address','html','error');
  34. }
  35. /**
  36. * 输出地址信息
  37. */
  38. Tpl::output('address_info',$address_info);
  39. }
  40. /**
  41. * 增加/修改页面输出
  42. */
  43. Tpl::output('type',$_GET['type']);
  44. Tpl::showpage('member_address.edit','null_layout');
  45. exit();
  46. }
  47. /**
  48. * 判断操作类型
  49. */
  50. if (chksubmit()){
  51. /**
  52. * 验证表单信息
  53. */
  54. $obj_validate = new Validator();
  55. $obj_validate->validateparam = array(
  56. array("input"=>$_POST["true_name"],"require"=>"true","message"=>$lang['member_address_receiver_null']),
  57. array("input"=>$_POST["area_id"],"require"=>"true","validator"=>"Number","message"=>$lang['member_address_wrong_area']),
  58. array("input"=>$_POST["city_id"],"require"=>"true","validator"=>"Number","message"=>$lang['member_address_wrong_area']),
  59. array("input"=>$_POST["area_info"],"require"=>"true","message"=>$lang['member_address_area_null']),
  60. array("input"=>$_POST["address"],"require"=>"true","message"=>$lang['member_address_address_null']),
  61. array("input"=>$_POST['tel_phone'].$_POST['mob_phone'],'require'=>'true','message'=>$lang['member_address_phone_and_mobile'])
  62. );
  63. $error = $obj_validate->validate();
  64. if ($error != ''){
  65. showValidateError($error);
  66. }
  67. $data = array();
  68. $data['member_id'] = $_SESSION['member_id'];
  69. $data['true_name'] = $_POST['true_name'];
  70. $data['area_id'] = intval($_POST['area_id']);
  71. $data['city_id'] = intval($_POST['city_id']);
  72. $data['area_info'] = $_POST['area_info'];
  73. $data['address'] = $_POST['address'];
  74. $data['tel_phone'] = $_POST['tel_phone'];
  75. $data['mob_phone'] = $_POST['mob_phone'];
  76. $data['is_default'] = $_POST['is_default'] ? 1 : 0;
  77. if ($_POST['is_default']) {
  78. $address_class->editAddress(array('is_default'=>0),array('member_id'=>$_SESSION['member_id'],'is_default'=>1));
  79. }
  80. if (intval($_POST['id']) > 0){
  81. $rs = $address_class->editAddress($data, array('address_id' => $_POST['id']));
  82. if (!$rs){
  83. showDialog($lang['member_address_modify_fail'],'','error');
  84. }
  85. }else {
  86. $count = $address_class->getAddressCount(array('member_id'=>$_SESSION['member_id']));
  87. if ($count >= 20) {
  88. showDialog('最多允许添加20个有效地址','','error');
  89. }
  90. $rs = $address_class->addAddress($data);
  91. if (!$rs){
  92. showDialog($lang['member_address_add_fail'],'','error');
  93. }
  94. }
  95. showDialog($lang['nc_common_op_succ'],'reload','js');
  96. }
  97. $del_id = isset($_GET['id']) ? intval(trim($_GET['id'])) : 0 ;
  98. if ($del_id > 0){
  99. $rs = $address_class->delAddress(array('address_id'=>$del_id,'member_id'=>$_SESSION['member_id']));
  100. if ($rs){
  101. showDialog(Language::get('member_address_del_succ'),'index.php?act=member_address&op=address','js');
  102. }else {
  103. showDialog(Language::get('member_address_del_fail'),'','error');
  104. }
  105. }
  106. $address_list = $address_class->getAddressList(array('member_id'=>$_SESSION['member_id']));
  107. self::profile_menu('address','address');
  108. Tpl::output('address_list',$address_list);
  109. Tpl::showpage('member_address.index');
  110. }
  111. /**
  112. * 添加自提点型收货地址
  113. */
  114. public function delivery_addOp() {
  115. if (chksubmit()) {
  116. $info = Model('delivery_point')->getDeliveryPointOpenInfo(array('dlyp_id'=>intval($_POST['dlyp_id'])));
  117. if (empty($info)) {
  118. showDialog('该自提点不存在','','error');
  119. }
  120. $data = array();
  121. $data['member_id'] = $_SESSION['member_id'];
  122. $data['true_name'] = $_POST['true_name'];
  123. $data['area_id'] = $info['dlyp_area_3'];
  124. $data['city_id'] = $info['dlyp_area_2'];
  125. $data['area_info'] = $info['dlyp_area_info'];
  126. $data['address'] = $info['dlyp_address'];
  127. $data['tel_phone'] = $_POST['tel_phone'];
  128. $data['mob_phone'] = $_POST['mob_phone'];
  129. $data['dlyp_id'] = $info['dlyp_id'];
  130. $data['is_default'] = 0;
  131. if (intval($_POST['address_id'])) {
  132. $result = Model('address')->editAddress($data, array('address_id' => intval($_POST['address_id'])));
  133. } else {
  134. $result = Model('address')->addAddress($data);
  135. }
  136. if (!$result){
  137. showDialog('保存失败','','error');
  138. }
  139. showDialog('保存成功','reload','js');
  140. } else {
  141. if (intval($_GET['id']) > 0) {
  142. $model_addr = Model('address');
  143. $condition = array('address_id'=>intval($_GET['id']),'member_id'=>$_SESSION['member_id']);
  144. $address_info = $model_addr->getAddressInfo($condition);
  145. //取出省级ID
  146. $area_info = Model('area')->getAreaInfo(array('area_id'=>$address_info['city_id']));
  147. $address_info['province_id'] = $area_info['area_parent_id'];
  148. Tpl::output('address_info',$address_info);
  149. }
  150. Tpl::showpage('member_address.delivery_add','null_layout');
  151. }
  152. }
  153. /**
  154. * 展示自提点列表
  155. */
  156. public function delivery_listOp() {
  157. $model_delivery = Model('delivery_point');
  158. $condition = array();
  159. $condition['dlyp_area_3'] = intval($_GET['area_id']);
  160. $list = $model_delivery->getDeliveryPointOpenList($condition,5);
  161. Tpl::output('show_page',$model_delivery->showpage());
  162. Tpl::output('list',$list);
  163. Tpl::showpage('member_address.delivery_list','null_layout');
  164. }
  165. /**
  166. * 用户中心右边,小导航
  167. *
  168. * @param string $menu_type 导航类型
  169. * @param string $menu_key 当前导航的menu_key
  170. * @return
  171. */
  172. private function profile_menu($menu_type,$menu_key='') {
  173. /**
  174. * 读取语言包
  175. */
  176. Language::read('member_layout');
  177. $menu_array = array();
  178. switch ($menu_type) {
  179. case 'address':
  180. $menu_array = array(
  181. 1=>array('menu_key'=>'address','menu_name'=>Language::get('nc_member_path_address_list'), 'menu_url'=>'index.php?act=member_adderss&op=address'));
  182. break;
  183. }
  184. Tpl::output('member_menu',$menu_array);
  185. Tpl::output('menu_key',$menu_key);
  186. }
  187. }