complain.model.php 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. <?php
  2. /**
  3. * 投诉模型
  4. *
  5. *
  6. *
  7. *
  8. */
  9. defined('InShopNC') or exit('Access Invalid!');
  10. class complainModel extends model{
  11. public function __construct() {
  12. parent::__construct('complain');
  13. }
  14. /**
  15. * 投诉数量
  16. * @param array $condition
  17. * @return int
  18. */
  19. public function getComplainCount($condition) {
  20. return $this->where($condition)->count();
  21. }
  22. /*
  23. * 构造条件
  24. */
  25. private function getCondition($condition){
  26. $condition_str = '' ;
  27. if(!empty($condition['complain_id'])) {
  28. $condition_str.= " and complain_id = '{$condition['complain_id']}'";
  29. }
  30. if(!empty($condition['complain_state'])) {
  31. $condition_str.= " and complain_state = '{$condition['complain_state']}'";
  32. }
  33. if(!empty($condition['accuser_id'])) {
  34. $condition_str.= " and accuser_id = '{$condition['accuser_id']}'";
  35. }
  36. if(!empty($condition['accused_id'])) {
  37. $condition_str.= " and accused_id = '{$condition['accused_id']}'";
  38. }
  39. if(!empty($condition['order_id'])) {
  40. $condition_str.= " and order_id = '{$condition['order_id']}'";
  41. }
  42. if(!empty($condition['order_goods_id'])) {
  43. $condition_str.= " and order_goods_id = '{$condition['order_goods_id']}'";
  44. }
  45. if(!empty($condition['accused_progressing'])) {
  46. $condition_str.= " and complain_state > 10 and complain_state < 90 ";
  47. }
  48. if(!empty($condition['progressing'])) {
  49. $condition_str.= " and complain_state < 90 ";
  50. }
  51. if(!empty($condition['finish'])) {
  52. $condition_str.= " and complain_state = 99 ";
  53. }
  54. if(!empty($condition['accused_finish'])) {
  55. $condition_str.= " and complain_state = 99 and complain_active = 2 ";
  56. }
  57. if(!empty($condition['accused_all'])) {
  58. $condition_str.= " and complain_active = 2 ";
  59. }
  60. if(!empty($condition['complain_accuser'])) {
  61. $condition_str.= " and accuser_name like '%".$condition['complain_accuser']."%'";
  62. }
  63. if(!empty($condition['complain_accused'])) {
  64. $condition_str.= " and accused_name like '%".$condition['complain_accused']."%'";
  65. }
  66. if(!empty($condition['complain_subject_content'])) {
  67. $condition_str.= " and complain_subject_content like '%".$condition['complain_subject_content']."%'";
  68. }
  69. if(!empty($condition['complain_datetime_start'])) {
  70. $condition_str.= " and complain_datetime > '{$condition['complain_datetime_start']}'";
  71. }
  72. if(!empty($condition['complain_datetime_end'])) {
  73. $end = $condition['complain_datetime_end'] + 86400;
  74. $condition_str.= " and complain_datetime < '$end'";
  75. }
  76. return $condition_str;
  77. }
  78. /*
  79. * 增加
  80. * @param array $param
  81. * @return bool
  82. */
  83. public function saveComplain($param){
  84. return Db::insert('complain',$param) ;
  85. }
  86. /*
  87. * 更新
  88. * @param array $update_array
  89. * @param array $where_array
  90. * @return bool
  91. */
  92. public function updateComplain($update_array, $where_array){
  93. $where = $this->getCondition($where_array) ;
  94. return Db::update('complain',$update_array,$where) ;
  95. }
  96. /*
  97. * 删除
  98. * @param array $param
  99. * @return bool
  100. */
  101. public function dropComplain($param){
  102. $where = $this->getCondition($param) ;
  103. return Db::delete('complain', $where) ;
  104. }
  105. /*
  106. * 获得投诉列表
  107. * @param array $condition
  108. * @param obj $page //分页对象
  109. * @return array
  110. */
  111. public function getComplain($condition='',$page='') {
  112. $param = array() ;
  113. $param['table'] = 'complain' ;
  114. $param['where'] = $this->getCondition($condition);
  115. $param['order'] = $condition['order'] ? $condition['order']: ' complain_id desc ';
  116. return Db::select($param,$page);
  117. }
  118. /*
  119. * 获得投诉商品列表
  120. * @param array $complain_list
  121. * @return array
  122. */
  123. public function getComplainGoodsList($complain_list) {
  124. $goods_ids = array();
  125. if (!empty($complain_list) && is_array($complain_list)) {
  126. foreach ($complain_list as $key => $value) {
  127. $goods_ids[] = $value['order_goods_id'];//订单商品表编号
  128. }
  129. }
  130. $condition = array();
  131. $condition['rec_id'] = array('in', $goods_ids);
  132. return $this->table('order_goods')->where($condition)->key('rec_id')->select();
  133. }
  134. /*
  135. * 检查投诉是否存在
  136. * @param array $condition
  137. * @param obj $page //分页对象
  138. * @return array
  139. */
  140. public function isExist($condition='') {
  141. $param = array() ;
  142. $param['table'] = 'complain' ;
  143. $param['where'] = $this->getCondition($condition);
  144. $list = Db::select($param);
  145. if(empty($list)) {
  146. return false;
  147. } else {
  148. return true;
  149. }
  150. }
  151. /*
  152. * 根据id获取投诉详细信息
  153. */
  154. public function getoneComplain($complain_id) {
  155. $param = array() ;
  156. $param['table'] = 'complain';
  157. $param['field'] = 'complain_id' ;
  158. $param['value'] = intval($complain_id);
  159. return Db::getRow($param) ;
  160. }
  161. /**
  162. * 总数
  163. *
  164. */
  165. public function getCount($condition) {
  166. $condition_str = $this->getCondition($condition);
  167. $count = Db::getCount('complain',$condition_str);
  168. return $count;
  169. }
  170. }