offpay_area.model.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. /**
  3. * 货到付款地区设置
  4. *
  5. */
  6. defined('InShopNC') or exit('Access Invalid!');
  7. class offpay_areaModel extends Model {
  8. public function __construct() {
  9. parent::__construct('offpay_area');
  10. }
  11. /**
  12. * 增加某店铺设置
  13. *
  14. * @param unknown_type $data
  15. * @return unknown
  16. */
  17. public function addArea($data) {
  18. return $this->insert($data);
  19. }
  20. /**
  21. * 取得某店铺设置
  22. *
  23. * @param unknown_type $condition
  24. * @return unknown
  25. */
  26. public function getAreaInfo($condition) {
  27. return $this->where($condition)->find();
  28. }
  29. /**
  30. * 更新某店铺设置
  31. *
  32. * @param unknown_type $condition
  33. * @param unknown_type $data
  34. * @return unknown
  35. */
  36. public function updateArea($condition,$data) {
  37. return $this->where($condition)->update($data);
  38. }
  39. /**
  40. * 某县级地区是否支持货到付款
  41. *
  42. * @param unknown_type $area_id
  43. * @param int $store_id 店铺ID(目前只会传平台店铺)
  44. * @return unknown
  45. */
  46. public function checkSupportOffpay($area_id,$store_id) {
  47. if (empty($area_id)) return false;
  48. $area = $this->getAreaInfo(array('store_id'=>$store_id));
  49. if (!empty($area['area_id'])) {
  50. $area_id_array = unserialize($area['area_id']);
  51. } else {
  52. $area_id_array = array();
  53. }
  54. if (empty($area_id_array)) {
  55. $area_id_array = array();
  56. }
  57. return in_array($area_id,$area_id_array) ? true : false;
  58. }
  59. /**
  60. * 某县级地区是否支持货到付款(多个店铺)
  61. *
  62. * @param int $area_id
  63. * @param array $store_ids 店铺IDs
  64. * @return array
  65. */
  66. public function checkSupportOffpayBatch($area_id, array $store_ids)
  67. {
  68. if (empty($area_id))
  69. return array_fill($store_ids, false);
  70. $area = $this->where(array(
  71. 'store_id' => array('in', $store_ids),
  72. ))->key('store_id')->select();
  73. $ret = array();
  74. foreach ($store_ids as $sid) {
  75. $ret[$sid] = false;
  76. if (empty($area[$sid]['area_id']))
  77. continue;
  78. $area_id_array = unserialize($area[$sid]['area_id']);
  79. if (!is_array($area_id_array))
  80. continue;
  81. if (!in_array($area_id, $area_id_array))
  82. continue;
  83. $ret[$sid] = true;
  84. }
  85. return $ret;
  86. }
  87. }