address.model.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. /**
  3. * 我的地址
  4. *
  5. *
  6. *
  7. *
  8. */
  9. defined('InShopNC') or exit('Access Invalid!');
  10. class addressModel extends Model {
  11. public function __construct() {
  12. parent::__construct('address');
  13. }
  14. /**
  15. * 取得买家默认收货地址
  16. *
  17. * @param array $condition
  18. */
  19. public function getDefaultAddressInfo($condition = array(), $order = 'is_default desc,dlyp_id asc,address_id desc') {
  20. return $this->getAddressInfo($condition, $order);
  21. }
  22. /**
  23. * 取得单条地址信息
  24. * @param array $condition
  25. * @param string $order
  26. */
  27. public function getAddressInfo($condition, $order = '') {
  28. $addr_info = $this->where($condition)->order($order)->find();
  29. if (C('delivery_isuse') && $addr_info['dlyp_id'])
  30. {
  31. $model_delivery = Model('delivery_point');
  32. $dlyp_info = $model_delivery->getDeliveryPointOpenInfo(array('dlyp_id' => $addr_info['dlyp_id']));
  33. if (!empty($dlyp_info)) {
  34. $addr_info['dlyp_mobile'] = $dlyp_info['dlyp_mobile'];
  35. $addr_info['dlyp_telephony'] = $dlyp_info['dlyp_telephony'];
  36. $addr_info['dlyp_address_name'] = $dlyp_info['dlyp_address_name'];
  37. $addr_info['dlyp_area_info'] = $dlyp_info['dlyp_area_info'];
  38. $addr_info['dlyp_address'] = $dlyp_info['dlyp_address'];
  39. $addr_info['dlyp_mobile'] = $dlyp_info['dlyp_mobile'];
  40. $addr_info['area_id'] = $dlyp_info['dlyp_area_3'];
  41. $addr_info['area_info'] = $dlyp_info['dlyp_area_info'];
  42. $addr_info['address'] = '('.$dlyp_info['dlyp_address_name'].') '.$dlyp_info['dlyp_address'] . ',电话:'.trim($dlyp_info['dlyp_mobile'].','.$dlyp_info['dlyp_telephony'],',');
  43. }
  44. }
  45. return $addr_info;
  46. }
  47. /**
  48. * 读取地址列表
  49. *
  50. * @param
  51. * @return array 数组格式的返回结果
  52. */
  53. public function getAddressList($condition, $order='address_id desc'){
  54. $address_list = $this->where($condition)->order($order)->select();
  55. if (empty($address_list)) return array();
  56. if (C('delivery_isuse')) {
  57. $dlyp_ids = array();$dlyp_new_list = array();
  58. foreach ($address_list as $k => $v) {
  59. if ($v['dlyp_id']) {
  60. $dlyp_ids[] = $v['dlyp_id'];
  61. }
  62. }
  63. if (!empty($dlyp_ids)) {
  64. $model_delivery = Model('delivery_point');
  65. $condition = array();
  66. $condition['dlyp_id'] = array('in',$dlyp_ids);
  67. $dlyp_list = $model_delivery->getDeliveryPointOpenList($condition);
  68. foreach ($dlyp_list as $k => $v) {
  69. $dlyp_new_list[$v['dlyp_id']]= $v;
  70. }
  71. }
  72. if (!empty($dlyp_new_list)) {
  73. foreach ($address_list as $k => $v) {
  74. if (!$v['dlyp_id']) continue;
  75. $dlyp_info = $dlyp_new_list[$v['dlyp_id']];
  76. $address_list[$k]['area_info'] = $dlyp_info['dlyp_area_info'];
  77. $address_list[$k]['address'] = '('.$dlyp_info['dlyp_address_name'].') '.$dlyp_info['dlyp_address']
  78. . ',电话:'.trim($dlyp_info['dlyp_mobile'].','.$dlyp_info['dlyp_telephony'],',');
  79. }
  80. }
  81. }
  82. return $address_list;
  83. }
  84. /**
  85. * 取数量
  86. * @param unknown $condition
  87. */
  88. public function getAddressCount($condition = array()) {
  89. return $this->where($condition)->count();
  90. }
  91. /**
  92. * 构造检索条件
  93. *
  94. * @param array $condition 检索条件
  95. * @return string 数组形式的返回结果
  96. */
  97. private function _condition($condition){
  98. $condition_str = '';
  99. if ($condition['member_id'] != ''){
  100. $condition_str .= " member_id = '". intval($condition['member_id']) ."'";
  101. }
  102. return $condition_str;
  103. }
  104. /**
  105. * 新增地址
  106. *
  107. * @param array $param 参数内容
  108. * @return bool 布尔类型的返回结果
  109. */
  110. public function addAddress($param){
  111. return $this->insert($param);
  112. }
  113. /**
  114. * 取单个地址
  115. *
  116. * @param int $area_id 地址ID
  117. * @return array 数组类型的返回结果
  118. */
  119. public function getOneAddress($id){
  120. if (intval($id) > 0){
  121. $param = array();
  122. $param['table'] = 'address';
  123. $param['field'] = 'address_id';
  124. $param['value'] = intval($id);
  125. $result = Db::getRow($param);
  126. return $result;
  127. }else {
  128. return false;
  129. }
  130. }
  131. /**
  132. * 更新地址信息
  133. *
  134. * @param array $param 更新数据
  135. * @return bool 布尔类型的返回结果
  136. */
  137. public function editAddress($update, $condition){
  138. return $this->where($condition)->update($update);
  139. }
  140. /**
  141. * 验证地址是否属于当前用户
  142. *
  143. * @param array $param 参数内容
  144. * @return bool 布尔类型的返回结果
  145. */
  146. public function checkAddress($member_id,$address_id) {
  147. /**
  148. * 验证地址是否属于当前用户
  149. */
  150. $check_array = self::getOneAddress($address_id);
  151. if ($check_array['member_id'] == $member_id){
  152. unset($check_array);
  153. return true;
  154. }
  155. unset($check_array);
  156. return false;
  157. }
  158. /**
  159. * 删除地址
  160. *
  161. * @param int $id 记录ID
  162. * @return bool 布尔类型的返回结果
  163. */
  164. public function delAddress($condition){
  165. return $this->where($condition)->delete();
  166. }
  167. }