activity.model.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <?php
  2. /**
  3. * 活动
  4. *
  5. *
  6. *
  7. *
  8. */
  9. defined('InShopNC') or exit('Access Invalid!');
  10. class activityModel{
  11. /**
  12. * 活动列表
  13. *
  14. * @param array $condition 查询条件
  15. * @param obj $page 分页对象
  16. * @return array 二维数组
  17. */
  18. public function getList($condition,$page=''){
  19. $param = array();
  20. $param['table'] = 'activity';
  21. $param['where'] = $this->getCondition($condition);
  22. $param['order'] = $condition['order'] ? $condition['order'] : 'activity_id';
  23. return Db::select($param,$page);
  24. }
  25. /**
  26. * 添加活动
  27. *
  28. * @param array $input
  29. * @return bool
  30. */
  31. public function add($input){
  32. return Db::insert('activity',$input);
  33. }
  34. /**
  35. * 更新活动
  36. *
  37. * @param array $input
  38. * @param int $id
  39. * @return bool
  40. */
  41. public function update($input,$id){
  42. return Db::update('activity',$input," activity_id='$id' ");
  43. }
  44. /**
  45. * 删除活动
  46. *
  47. * @param string $id
  48. * @return bool
  49. */
  50. public function del($id){
  51. return Db::delete('activity','activity_id in('.$id.')');
  52. }
  53. /**
  54. * 根据id查询一条活动
  55. *
  56. * @param int $id 活动id
  57. * @return array 一维数组
  58. */
  59. public function getOneById($id){
  60. return Db::getRow(array('table'=>'activity','field'=>'activity_id','value'=>$id));
  61. }
  62. /**
  63. * 根据条件
  64. *
  65. * @param array $condition 查询条件
  66. * @param obj $page 分页对象
  67. * @return array 二维数组
  68. */
  69. public function getJoinList($condition,$page=''){
  70. $param = array();
  71. $param['table'] = 'activity,activity_detail';
  72. $param['join_type'] = empty($condition['join_type'])?'right join':$condition['join_type'];
  73. $param['join_on'] = array('activity.activity_id=activity_detail.activity_id');
  74. $param['where'] = $this->getCondition($condition);
  75. $param['order'] = $condition['order'];
  76. return Db::select($param,$page);
  77. }
  78. /**
  79. * 构造查询条件
  80. *
  81. * @param array $condition 条件数组
  82. * @return string
  83. */
  84. private function getCondition($condition){
  85. $conditionStr = '';
  86. if($condition['activity_id'] != ''){
  87. $conditionStr .= " and activity.activity_id='{$condition['activity_id']}' ";
  88. }
  89. if($condition['activity_type'] != ''){
  90. $conditionStr .= " and activity.activity_type='{$condition['activity_type']}' ";
  91. }
  92. if($condition['activity_state'] != ''){
  93. $conditionStr .= " and activity.activity_state = '{$condition['activity_state']}' ";
  94. }
  95. //活动删除in
  96. if(isset($condition['activity_id_in'])){
  97. if ($condition['activity_id_in'] == ''){
  98. $conditionStr .= " and activity_id in('')";
  99. }else{
  100. $conditionStr .= " and activity_id in({$condition['activity_id_in']}) ";
  101. }
  102. }
  103. if($condition['activity_title'] != ''){
  104. $conditionStr .= " and activity.activity_title like '%{$condition['activity_title']}%' ";
  105. }
  106. //当前时间大于结束时间(过期)
  107. if ($condition['activity_enddate_greater'] != ''){
  108. $conditionStr .= " and activity.activity_end_date < '{$condition['activity_enddate_greater']}'";
  109. }
  110. //可删除的活动记录
  111. if ($condition['activity_enddate_greater_or'] != ''){
  112. $conditionStr .= " or activity.activity_end_date < '{$condition['activity_enddate_greater_or']}'";
  113. }
  114. //某时间段内正在进行的活动
  115. if($condition['activity_daterange'] != ''){
  116. $conditionStr .= " and (activity.activity_end_date >= '{$condition['activity_daterange']['startdate']}' and activity.activity_start_date <= '{$condition['activity_daterange']['enddate']}')";
  117. }
  118. if($condition['opening']){//在有效期内、活动状态为开启
  119. $conditionStr .= " and (activity.activity_start_date <=".time()." and activity.activity_end_date >= ".time()." and activity.activity_state =1)";
  120. }
  121. return $conditionStr;
  122. }
  123. }