flea.model.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. <?php
  2. /**
  3. * 闲置管理
  4. *by 3 3hao .com
  5. */
  6. defined('InShopNC') or exit('Access Invalid!');
  7. class fleaModel {
  8. /**
  9. * 商品保存
  10. *
  11. * @param array $param 商品资料
  12. */
  13. public function saveGoods($param) {
  14. if(empty($param)) {
  15. return false;
  16. }
  17. $goods_array = array();
  18. $goods_array['goods_name'] = $param['goods_name'];
  19. $goods_array['gc_id'] = $param['gc_id'];
  20. $goods_array['gc_name'] = $param['gc_name'];
  21. $goods_array['member_id'] = $_SESSION['member_id'];
  22. $goods_array['member_name'] = $_SESSION['member_name'];
  23. $goods_array['goods_image'] = $param['goods_image'];
  24. $goods_array['flea_quality']= $param['flea_quality'];
  25. $goods_array['flea_area_id']= $param['flea_area_id'];
  26. $goods_array['flea_area_name']= $param['flea_area_name'];
  27. $goods_array['flea_pname'] = $param['flea_pname'];
  28. $goods_array['flea_pphone'] = $param['flea_pphone'];
  29. $goods_array['goods_tag'] = $param['goods_tag'];
  30. $goods_array['goods_price'] = $param['goods_price'];
  31. $goods_array['goods_store_price']= $param['goods_store_price'];
  32. $goods_array['goods_show'] = $param['goods_show'];
  33. $goods_array['goods_commend']= $param['goods_commend'];
  34. $goods_array['goods_add_time']= time();
  35. $goods_array['goods_body'] = $param['goods_body'];
  36. $goods_array['goods_keywords'] = $param['goods_keywords'];
  37. $goods_array['goods_description'] = $param['goods_description'];
  38. $result = Db::insert('flea',$goods_array);
  39. return $result;
  40. }
  41. /**
  42. * 商品列表
  43. */
  44. public function listGoods($param,$page = '',$field='*') {
  45. $condition_str = $this->getCondition($param);
  46. $array = array();
  47. $array['table'] = 'flea';
  48. $array['where'] = $condition_str;
  49. $array['field'] = $field;
  50. $array['order'] = $param['order'] ? $param['order'] : 'goods_id desc';
  51. $array['limit'] = $param['limit'];
  52. $list_goods = Db::select($array,$page);
  53. return $list_goods;
  54. }
  55. /**
  56. * 他们正在卖的
  57. */
  58. public function saleGoods($param,$page = '',$field='*') {
  59. $condition_str = $this->getCondition($param);
  60. $array = array();
  61. $array['table'] = 'flea,member';
  62. $array['join_type']='left join';
  63. $array['field'] = $field;
  64. $array['join_on']= array('flea.member_id=member.member_id');
  65. $array['order'] = 'goods_id desc';
  66. $array['limit'] = $param['limit'];
  67. $list_goods = Db::select($array,$page);
  68. return $list_goods;
  69. }
  70. /**
  71. * 统计当前卖家正在出售闲置个数
  72. */
  73. public function statistic($member_id){
  74. $array = array();
  75. $array['table'] = 'flea,member';
  76. $array['where'] = 'and member.member_id='.$member_id;
  77. $array['field'] = 'member.member_avatar,member.member_qq,member.member_id,member.member_name,count(*) as num';
  78. $array['join_type']='left join';
  79. $array['join_on']=array('flea.member_id=member.member_id');
  80. $array['group']='member.member_id';
  81. $goods_array = Db::select($array);
  82. return $goods_array['0'];
  83. }
  84. /**
  85. * 闲置物品多图
  86. *
  87. * @param array $param 列表条件
  88. * @param array $field 显示字段
  89. */
  90. public function getListImageGoods($param,$field='*') {
  91. if(empty($param)) {
  92. return false;
  93. }
  94. //得到条件语句
  95. $condition_str = $this->getCondition($param);
  96. $array = array();
  97. $array['table'] = 'flea_upload';
  98. $array['where'] = $condition_str;
  99. $array['field'] = $field;
  100. $list_image = Db::select($array);
  101. return $list_image;
  102. }
  103. /**
  104. * 得到商品所有缩略图,带商品路径
  105. *
  106. * @param array $goods 商品列表
  107. */
  108. public function getThumb(&$goods,$path){
  109. if (is_array($goods)){
  110. foreach ($goods as $k=>$v) {
  111. $goods[$k]['thumb_small'] = $path.$v['file_thumb'];
  112. $goods[$k]['thumb_mid'] = $path.str_replace('_small','_mid',$v['file_thumb']);
  113. $goods[$k]['thumb_max'] = $path.str_replace('_small','_max',$v['file_thumb']);
  114. }
  115. }
  116. }
  117. /**
  118. * 商品信息更新
  119. *
  120. * @param array $param 列表条件
  121. * @param int $goods_id 商品id
  122. */
  123. public function updateGoods($param,$goods_id) {
  124. if(empty($param)) {
  125. return false;
  126. }
  127. $update = false;
  128. if(is_array($goods_id))$goods_id = implode(',',$goods_id);
  129. //得到条件语句
  130. $condition_str = "WHERE goods_id in(".$goods_id.")";
  131. $update = Db::update('flea',$param,$condition_str);
  132. return $update;
  133. }
  134. /**
  135. * 闲置物品数量
  136. *
  137. * @param array $param 闲置物品资料
  138. */
  139. public function countGoods($param,$type = ''){
  140. if (empty($param)) {
  141. return false;
  142. }
  143. $condition_str = $this->getCondition($param);
  144. $array = array();
  145. $array['table'] = 'flea';
  146. $array['where'] = $condition_str;
  147. $array['field'] = 'count(*)';
  148. $goods_array = Db::select($array);
  149. return $goods_array[0][0];
  150. }
  151. /**
  152. * 闲置物品删除
  153. *
  154. * @param array $param 列表条件
  155. * @param int $goods_id 商品id
  156. */
  157. public function dropGoods($goods_id) {
  158. if(empty($goods_id)) {
  159. return false;
  160. }
  161. $del_state = Db::delete('flea', 'where goods_id in ('.$goods_id.')');
  162. if($del_state) {
  163. $image_more = Db::select(array('table'=>'flea_upload','field'=>'file_name','where'=>' where item_id in ('.$goods_id.') and upload_type in ("12","13")'));
  164. if(is_array($image_more) && !empty($image_more)){
  165. foreach ($image_more as $v){
  166. @unlink(UPLOAD_SITE_URL.DS.ATTACH_MALBUM.DS.$_SESSION['member_id'].DS.$v['file_name']);
  167. }
  168. }
  169. Db::delete('flea_upload','where item_id in ('.$goods_id.') and upload_type in ("12","13")');
  170. }
  171. return true;
  172. }
  173. /**
  174. * 闲置物品多图删除
  175. *
  176. * @param array $param 删除条件
  177. */
  178. public function dropImageGoods($param) {
  179. if(empty($param)) {
  180. return false;
  181. }
  182. //得到条件语句
  183. $condition_str = $this->getCondition($param);
  184. $image_more = Db::select(array('table'=>'flea_upload','where'=>$condition_str,'field'=>'file_name'));
  185. if(is_array($image_more) && !empty($image_more)){
  186. foreach ($image_more as $v){
  187. @unlink(UPLOAD_SITE_URL.DS.ATTACH_MALBUM.DS.$_SESSION['member_id'].DS.$v['file_name']);
  188. }
  189. }
  190. $state = Db::delete('flea_upload',$condition_str);
  191. return $state;
  192. }
  193. // /**
  194. // * 查询拥有闲置物品数量从多到少会员列表
  195. // */
  196. // public function descmember(){
  197. // $param['table']='flea,member';
  198. // $param['field']='member.member_id,member.member_name,member.member_avatar';
  199. // $param['join_type']='left join';
  200. // $param['join_on']=array('member.member_id=flea.member_id');
  201. // $param['group']='flea.member_id';
  202. // $param['order']='count(*) desc';
  203. // return db::select($param);
  204. // }
  205. /**
  206. * 按所属分类查找闲置物品
  207. */
  208. public function getGoodsByClass($param){
  209. $condition_str = $this->getCondition($param);
  210. $array = array();
  211. $array['table'] = 'flea,flea_class';
  212. $array['field'] = $param['field']?$param['field']:'*';
  213. $array['where'] = $condition_str;
  214. $array['join_type'] = 'left join';
  215. $array['join_on'] = array('flea.gc_id=flea_class.gc_id');
  216. $array['order'] = $param['order'];
  217. $array['limit'] = $param['limit'];
  218. $goods_array = Db::select($array);
  219. return $goods_array;
  220. }
  221. /**
  222. * 查询闲置信息id
  223. */
  224. public function getFleaID(){
  225. $flea_ids = Db::select(array('table'=>'flea','field'=>'goods_id','limit'=>'27'));
  226. return $flea_ids;
  227. }
  228. /**
  229. * 将条件数组组合为SQL语句的条件部分
  230. *
  231. * @param array $condition_array
  232. * @return string
  233. */
  234. private function getCondition($condition_array){
  235. $condition_sql = '';
  236. if ($condition_array['member_id'] != '') {
  237. $condition_sql .= " and member_id = ".$condition_array['member_id'];
  238. }
  239. if($condition_array['image_store_id'] != '') {
  240. $condition_sql .= " and store_id=".$condition_array['image_store_id']." and item_id=".$condition_array['item_id']." and upload_type='".$condition_array['image_type']."'";
  241. }
  242. //添加不等于某商品的条件
  243. if($condition_array['goods_id_diff'] != 0) {
  244. $condition_sql .= " and goods_id<>".$condition_array['goods_id_diff'];
  245. }
  246. if($condition_array['gc_id_list'] != '') {
  247. $condition_sql .= " and `flea`.gc_id IN (".ltrim($condition_array['gc_id_list'],',').")";
  248. }
  249. if($condition_array['goods_id'] != 0) {
  250. $condition_sql .= " and goods_id = ".$condition_array['goods_id'];
  251. }
  252. if($condition_array['keyword'] != '') {
  253. $condition_sql .= " and goods_name LIKE '%".$condition_array['keyword']."%'";
  254. }
  255. if ($condition_array['upload_id'] != '') {
  256. $condition_sql .= " and upload_id=".$condition_array['upload_id'];
  257. }
  258. if(isset($condition_array['goods_id_in'])) {
  259. if ($condition_array['goods_id_in'] == ''){
  260. $condition_sql .= " and `flea`.goods_id in ('') ";
  261. }else {
  262. $condition_sql .= " and `flea`.goods_id in({$condition_array['goods_id_in']})";
  263. }
  264. }
  265. if($condition_array['gc_id'] != '') {
  266. $condition_sql .= " and gc_id IN (".$this->_getRecursiveClass(array($condition_array['gc_id'])).")";
  267. //$condition_sql .= " and `goods`.gc_id IN ({$condition_array['gc_id']})";
  268. }
  269. if(isset($condition_array['gc_id_in'])) {
  270. if ($condition_array['gc_id_in'] == ''){
  271. $condition_sql .= " and `flea`.gc_id in ('') ";
  272. }else {
  273. $condition_sql .= " and `flea`.gc_id in({$condition_array['gc_id_in']})";
  274. }
  275. }
  276. if($condition_array['key_input'] != '') {
  277. $condition_sql .= " and (goods_name LIKE '%{$condition_array['key_input']}%' or goods_tag like '%{$condition_array['key_input']}%')";
  278. }
  279. if($condition_array['like_member_name'] != '') {
  280. $condition_sql .= " and member_name LIKE '%".$condition_array['like_member_name']."%'";
  281. }
  282. /* 检索 */
  283. if($condition_array['pic_input'] ==2) {
  284. $condition_sql .= " and goods_image <> ''";
  285. }
  286. if($condition_array['body_input'] ==2) {
  287. $condition_sql .= " and goods_body <> ''";
  288. }
  289. if($condition_array['seller_input'] != '') {
  290. $condition_sql .= " and member_id = ".$condition_array['seller_input'];
  291. }
  292. if($condition_array['quality_input'] != '') {
  293. if($condition_array['quality_input']==7){
  294. $condition_sql .= " and flea_quality <= 7";
  295. }else{
  296. $condition_sql .= " and flea_quality >= ".$condition_array['quality_input'];
  297. }
  298. }
  299. if($condition_array['start_input'] != '') {
  300. $condition_sql .= " and goods_store_price >= ".$condition_array['start_input'];
  301. }
  302. if($condition_array['end_input'] != '') {
  303. $condition_sql .= " and goods_store_price <= ".$condition_array['end_input'];
  304. }
  305. if($condition_array['areaid'] != '') {
  306. $condition_sql .= " and flea_area_id in (".$condition_array['areaid'].")";
  307. }
  308. return $condition_sql;
  309. }
  310. /*
  311. * 递归得到商品分类的ID
  312. * @param array $class_list
  313. * @return string $class_string 逗号分割的分类ID及其子ID的字符串
  314. */
  315. private function _getRecursiveClass($class_id){
  316. static $class_list='' ;
  317. $id = implode(',', $class_id) ;
  318. $class_list .= ','.$id ;
  319. $temp_list = Db::select(array('table'=>'flea_class','where'=>'gc_parent_id in ('.$id.')','field'=>'gc_id')) ;
  320. if(!empty($temp_list)){
  321. $_tmp = array() ; //取得ID组成的一维数组
  322. foreach($temp_list as $key=>$val){
  323. $_tmp[] = $val['gc_id'] ;
  324. }
  325. unset($temp_list);
  326. $temp_list = $_tmp ;
  327. $id = $this->_getRecursiveClass($temp_list) ;
  328. }
  329. return trim($class_list,',') ;
  330. }
  331. }