GoodsModel.class.php 81 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234
  1. <?php
  2. /**
  3. * lionfish 商城系统
  4. *
  5. * ==========================================================================
  6. * @link http://www.liofis.com/
  7. * @copyright Copyright (c) 2015 liofis.com.
  8. * @license http://www.liofis.com/license.html License
  9. * ==========================================================================
  10. *
  11. * @author fish
  12. *
  13. */
  14. namespace Seller\Model;
  15. use Think\Model;
  16. class GoodsModel extends Model{
  17. /**
  18. 获取商品数量
  19. **/
  20. public function get_goods_count($where = '')
  21. {
  22. $total = M('lionfish_comshop_goods')->where('1 '.$where)->count();
  23. return $total;
  24. }
  25. /**
  26. * 获取抖音真是地址
  27. * @param [type] $url [description]
  28. * @return [type] [description]
  29. */
  30. private function getrealurl($url){
  31. $header = @get_headers($url,1); //默认第二个参数0,可选1,返回关联数组
  32. if(!$header){
  33. return false;
  34. }
  35. if (strpos($header[0],'301') || strpos($header[0],'302')) {
  36. if(is_array($header['location'])) {
  37. return $header['location'][count($header['location'])-1];
  38. }else{
  39. return $header['location'];
  40. }
  41. }else {
  42. return $url;
  43. }
  44. }
  45. public function check_douyin_video( $url )
  46. {
  47. if( strpos($url,'douyin.com') !== false || strpos($url,'iesdouyin.com') !== false )
  48. {
  49. $realUrl = $this->getrealurl($url);
  50. if($realUrl) {
  51. $itemIds = explode('/', $realUrl);
  52. if(count($itemIds)>5) {
  53. $itemId = $itemIds[5];
  54. set_time_limit(0);
  55. $data = file_get_contents('https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids='.$itemId);
  56. if($data != '{}'){
  57. $data = json_decode($data, true);
  58. if($data['item_list'] && $data['item_list'][0] && $data['item_list'][0]['video']) {
  59. $vid = $data['item_list'][0]['video']['vid'];
  60. $ratio = $data['item_list'][0]['video']['ratio'];
  61. $vurl = 'https://aweme.snssdk.com/aweme/v1/playwm/?video_id=' . $vid . '&ratio=' . $ratio .'&line=0';
  62. return $vurl;
  63. }
  64. }
  65. }
  66. }
  67. }
  68. return $url;
  69. }
  70. public function _check_douyin_video( $url )
  71. {
  72. if( strpos($url,'douyin.com') !== false || strpos($url,'iesdouyin.com') !== false )
  73. {
  74. $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
  75. $curl = curl_init();
  76. curl_setopt($curl, CURLOPT_URL, $url);
  77. curl_setopt($curl, CURLOPT_HEADER, 0);
  78. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  79. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
  80. curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
  81. curl_setopt($curl, CURLOPT_ENCODING, '');
  82. curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
  83. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
  84. $data = curl_exec($curl);
  85. curl_close($curl);
  86. //获取
  87. preg_match('/<p class="desc">(?<desc>[^<>]*)<\/p>/i', $data, $name);
  88. preg_match('/playAddr: "(?<url>[^"]+)"/i', $data, $url_data);
  89. if( !empty($url_data) )
  90. {
  91. return $url_data[1];
  92. }else{
  93. return $url;
  94. }
  95. }else{
  96. return $url;
  97. }
  98. }
  99. public function addgoods($type = 'normal')
  100. {
  101. $post_data = array();
  102. $post_data_goods = array();
  103. $goodsname = I('post.goodsname','','trim');
  104. $post_data_goods['goodsname'] = addslashes($goodsname);
  105. $post_data_goods['subtitle'] = I('post.subtitle','','trim');
  106. $post_data_goods['grounding'] = I('post.grounding');
  107. $post_data_goods['type'] = $type;
  108. $post_data_goods['price'] = I('post.price');
  109. $post_data_goods['productprice'] = I('post.productprice');
  110. $post_data_goods['card_price'] = I('post.card_price');
  111. $post_data_goods['costprice'] = I('post.costprice');
  112. $post_data_goods['sales'] = I('post.sales');
  113. $post_data_goods['showsales'] = I('post.showsales');
  114. $post_data_goods['dispatchtype'] = I('post.dispatchtype');
  115. $post_data_goods['dispatchid'] = I('post.dispatchid');
  116. $post_data_goods['dispatchprice'] = I('post.dispatchprice');
  117. $post_data_goods['codes'] = I('post.codes','','trim');
  118. $post_data_goods['weight'] = I('post.weight','','trim');
  119. $post_data_goods['total'] = I('post.total','','trim');
  120. $post_data_goods['hasoption'] = I('post.hasoption','','intval');
  121. $post_data_goods['index_sort'] = I('post.index_sort','','intval');
  122. $post_data_goods['credit'] = I('post.credit','','trim');
  123. $post_data_goods['buyagain'] = I('post.buyagain','','trim');
  124. $post_data_goods['buyagain_condition'] = I('post.buyagain_condition','','intval');
  125. $post_data_goods['buyagain_sale'] = I('post.buyagain_sale','','intval');
  126. $post_data_goods['is_index_show'] = I('post.is_index_show','','intval');
  127. $post_data_goods['is_all_sale'] = I('post.is_all_sale','0','intval');
  128. $post_data_goods['is_seckill'] = I('post.is_seckill','0','intval');
  129. $post_data_goods['is_take_vipcard'] = I('post.is_take_vipcard','0','intval');
  130. //mead
  131. $post_data_goods['mead_money_num'] = I('post.mead_money_num');
  132. $post_data_goods['addtime'] = time();
  133. if (defined('ROLE') && ROLE == 'agenter' ) {
  134. $supply_add_goods_shenhe = D('Home/Front')->get_config_by_name('supply_add_goods_shenhe');
  135. if( empty($supply_add_goods_shenhe) )
  136. {
  137. $supply_add_goods_shenhe = 0;
  138. }
  139. if($supply_add_goods_shenhe)
  140. {
  141. $post_data_goods['grounding'] = 4;
  142. }
  143. }
  144. $goods_id = M('lionfish_comshop_goods')->add($post_data_goods);
  145. D('Seller/Operatelog')->addOperateLog('goods','添加商品--'.$post_data_goods['goodsname']);
  146. //find type ,modify somethings TODO...
  147. $pin_type_arr = array(
  148. 'pin'=>'主流团',
  149. 'lottery'=>'抽奖团',
  150. 'oldman'=>'老人团',
  151. 'newman'=>'新人团',
  152. 'commiss'=>'佣金团',
  153. 'ladder'=>'阶梯团',
  154. 'flash'=>'快闪团',
  155. );
  156. $pin_type = array_keys($pin_type_arr);
  157. if( in_array($type, $pin_type) )
  158. {
  159. //插入 拼团商品表 lionfish_comshop_good_pin $time = I('post.time');
  160. $time = I('post.time');
  161. $pin_data['goods_id'] = $goods_id;
  162. $pin_data['pinprice'] = I('post.pinprice');
  163. $pin_data['pin_count'] = I('post.pin_count');
  164. $pin_data['pin_hour'] = I('post.pin_hour');
  165. $pin_data['is_commiss_tuan'] = I('post.is_commiss_tuan',0);
  166. if($pin_data['is_commiss_tuan'] == 1)
  167. {
  168. $pin_data['is_zero_open'] = I('post.is_zero_open',0);
  169. }else{
  170. $pin_data['is_zero_open'] =0;
  171. }
  172. $pin_data['is_newman'] = I('post.is_newman',0);
  173. $commiss_tuan_money1 = I('post.commiss_tuan_money1',0);
  174. $commiss_tuan_money2 = I('post.commiss_tuan_money2',0);
  175. if( isset($commiss_tuan_money1) && $commiss_tuan_money1 >0 )
  176. {
  177. $pin_data['commiss_type'] = 0;
  178. $pin_data['commiss_money'] = $commiss_tuan_money1;
  179. }else{
  180. $pin_data['commiss_type'] = 1;
  181. $pin_data['commiss_money'] = $commiss_tuan_money2;
  182. }
  183. $time = I('post.time');
  184. // $pin_data['begin_time'] = strtotime( $time['start'] );
  185. // $pin_data['end_time'] = strtotime( $time['end'] );
  186. //mead
  187. $pin_data['begin_time'] = time();
  188. $pin_data['end_time'] = strtotime('2030-12-31 23:23:00');
  189. //拼团返利设置
  190. $pin_data['is_pintuan_rebate'] = I('post.is_pintuan_rebate',0);
  191. if($pin_data['is_pintuan_rebate'] == 1){
  192. $pin_data['random_delivery_count'] = I('post.random_delivery_count',0);
  193. $pin_data['rebate_reward'] = I('post.rebate_reward', 1);
  194. $pin_data['reward_point'] = I('post.reward_point', 0);
  195. $pin_data['reward_balance'] = I('post.reward_balance', 0);
  196. }
  197. M('lionfish_comshop_good_pin')->add( $pin_data );
  198. }
  199. //
  200. //find type ,modify somethings TODO...
  201. $cates = I('post.cate_mult');
  202. if( !empty($cates) )
  203. {
  204. foreach($cates as $cate_id)
  205. {
  206. $post_data_category = array();
  207. $post_data_category['cate_id'] = $cate_id;
  208. $post_data_category['goods_id'] = $goods_id;
  209. M('lionfish_comshop_goods_to_category')->add($post_data_category);
  210. }
  211. }
  212. //lionfish_comshop_goods_images
  213. $thumbs = I('post.thumbs');
  214. if( !empty($thumbs) )
  215. {
  216. foreach($thumbs as $thumbs)
  217. {
  218. $post_data_thumbs = array();
  219. $post_data_thumbs['goods_id'] = $goods_id;
  220. $post_data_thumbs['image'] = save_media($thumbs);
  221. $post_data_thumbs['thumb'] = save_media( resize($thumbs,200,200));
  222. M('lionfish_comshop_goods_images')->add($post_data_thumbs);
  223. }
  224. }
  225. //核销begin
  226. $is_only_hexiao = I('post.is_only_hexiao',0);
  227. if($is_only_hexiao == 1){
  228. $hx_data = array();
  229. $hx_time = time();
  230. $hx_data['goods_id'] = $goods_id;
  231. $hx_data['is_only_hexiao'] = $is_only_hexiao;
  232. $hx_data['hexiao_type'] = I('post.hexiao_type',0);
  233. $hx_data['hx_one_goods_time'] = I('post.hx_one_goods_time',0);
  234. $hx_data['hx_expire_type'] = I('post.hx_expire_type',0);
  235. $hx_data['hx_expire_day'] = I('post.hx_expire_day');
  236. $hx_data['hx_expire_begin_time'] = $hx_time;
  237. if($hx_data['hx_expire_type'] == 1){
  238. $hx_data['hx_expire_end_time'] = strtotime(I('post.hx_expire_end_time'));
  239. }else{
  240. if(empty($hx_data['hx_expire_day'])){
  241. $hx_data['hx_expire_day'] = 90;
  242. }
  243. $hx_data['hx_expire_end_time'] = $hx_time+$hx_data['hx_expire_day']*24*60*60;
  244. }
  245. $hx_data['hx_assign_salesroom'] = I('post.hx_assign_salesroom',0);
  246. $hx_data['hx_auto_off'] = I('post.hx_auto_off',0);
  247. $hx_data['hx_auto_off_time'] = I('post.hx_auto_off_time',0);
  248. $hx_data['addtime'] = $hx_time;
  249. M('lionfish_comshop_goods_salesroombase')->add($hx_data);
  250. if($hx_data['hx_assign_salesroom'] == 1){//指定门店
  251. $goods_room_ids = I('post.goods_room_ids','');
  252. $goods_is_hx_member = I('post.goods_is_hx_member','');
  253. $goods_room_smember = I('post.goods_room_smember','');
  254. if(!empty($goods_room_ids)){
  255. $goods_room_array = explode(',',$goods_room_ids);
  256. foreach($goods_room_array as $grv){
  257. $goods_room_smember_ids = $goods_room_smember[$grv];
  258. $goods_room_data = array();
  259. $goods_room_data['salesroom_id'] = $grv;
  260. $goods_room_data['goods_id'] = $goods_id;
  261. $goods_room_data['is_hx_member'] = $goods_is_hx_member[$grv];
  262. if($goods_is_hx_member[$grv] == 1 && empty($goods_room_smember_ids)){
  263. $goods_room_data['is_hx_member'] = 0;
  264. }
  265. $goods_room_data['addtime'] = $hx_time;
  266. $gr_id = M('lionfish_comshop_goods_relative_salesroom')->add($goods_room_data);
  267. if($gr_id !== false){
  268. $goods_room_smember_ids = $goods_room_smember[$grv];
  269. if($goods_is_hx_member[$grv] == 1 && !empty($goods_room_smember_ids)){
  270. $smember_ids = explode(',',$goods_room_smember_ids);
  271. foreach($smember_ids as $sv){
  272. $room_smember_data = array();
  273. $room_smember_data['salesroom_id'] = $grv;
  274. $room_smember_data['gr_id'] = $gr_id;
  275. $room_smember_data['smember_id'] = $sv;
  276. $room_smember_data['addtime'] = $hx_time;
  277. M('lionfish_comshop_goods_relative_smember')->add($room_smember_data);
  278. }
  279. }
  280. }
  281. }
  282. }
  283. }
  284. }
  285. //核销end
  286. //lionfish_comshop_good_common
  287. $post_data_common = array();
  288. $post_data_common['goods_id'] = $goods_id;
  289. $post_data_common['quality'] = I('post.quality');
  290. $post_data_common['seven'] = I('post.seven');
  291. $post_data_common['repair'] = I('post.repair');
  292. $labelname = I('post.labelname');
  293. $post_data_common['labelname'] = serialize($labelname);
  294. $post_data_common['share_title'] = I('post.share_title');
  295. $post_data_common['share_description'] = I('post.share_description');
  296. $content = I('post.content');
  297. $post_data_common['content'] = htmlspecialchars($content);
  298. $post_data_common['pick_up_type'] = I('post.pick_up_type');
  299. $post_data_common['pick_up_modify'] = I('post.pick_up_modify');
  300. $post_data_common['one_limit_count'] = I('post.one_limit_count');
  301. $post_data_common['oneday_limit_count'] = I('post.oneday_limit_count');
  302. $post_data_common['total_limit_count'] = I('post.total_limit_count');
  303. $post_data_common['community_head_commission'] = I('post.community_head_commission');
  304. $is_community_head_commission = I('post.is_community_head_commission');
  305. $post_data_common['is_community_head_commission'] = $is_community_head_commission;
  306. $post_data_common['goods_start_count'] = I('post.goods_start_count');
  307. $post_data_common['is_show_arrive'] = I('post.is_show_arrive');
  308. $post_data_common['diy_arrive_switch'] = I('post.diy_arrive_switch');
  309. $post_data_common['diy_arrive_details'] = I('post.diy_arrive_details');
  310. $post_data_common['is_new_buy'] = I('post.is_new_buy');
  311. $post_data_common['is_spike_buy'] = I('post.is_spike_buy');
  312. if (defined('ROLE') && ROLE == 'agenter' )
  313. {
  314. $supply_can_goods_sendscore = D('Home/Front')->get_config_by_name('supply_can_goods_sendscore');
  315. if($supply_can_goods_sendscore == 1){
  316. $post_data_common['is_modify_sendscore'] = I('post.is_modify_sendscore',0);
  317. $post_data_common['send_socre'] = I('post.send_socre');
  318. }
  319. }else{
  320. $post_data_common['is_modify_sendscore'] = I('post.is_modify_sendscore',0);
  321. $post_data_common['send_socre'] = I('post.send_socre');
  322. }
  323. $post_data_common['is_mb_level_buy'] = I('post.is_mb_level_buy', 1);
  324. //$post_data_common['supply_id'] = I('post.supply_id');
  325. if (defined('ROLE') && ROLE == 'agenter' )
  326. {
  327. $supper_info = get_agent_logininfo();
  328. $post_data_common['supply_id'] = $supper_info['id'];
  329. }else{
  330. $post_data_common['supply_id'] = I('post.supply_id');
  331. }
  332. $time = I('post.time');
  333. // $post_data_common['begin_time'] = strtotime( $time['start'] );
  334. // $post_data_common['end_time'] = strtotime( $time['end'] );
  335. //mead
  336. $post_data_common['begin_time'] = time();
  337. $post_data_common['end_time'] = strtotime('2099-12-31 23:23:00');
  338. $big_img =I('post.big_img');
  339. $goods_share_image =I('post.goods_share_image');
  340. $post_data_common['big_img'] = save_media($big_img);
  341. $post_data_common['goods_share_image'] = save_media($goods_share_image);
  342. $post_data_common['video'] = save_media(I('post.video'));
  343. $post_data_common['video'] = $this->check_douyin_video($post_data_common['video']);
  344. $post_data_common['print_sub_title'] = I('post.print_sub_title');
  345. $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction');
  346. $post_data_common['is_only_express'] = I('post.is_only_express',0);
  347. $post_data_common['is_only_hexiao'] = $is_only_hexiao;
  348. $post_data_common['packing_free'] = I('post.packing_free',0);
  349. if( $post_data_common['is_only_express'] == 1 )
  350. {
  351. $post_data_common['is_only_distribution'] = 0;
  352. }else {
  353. $is_only_distribution = I('post.is_only_distribution');
  354. $post_data_common['is_only_distribution'] = $is_only_distribution;
  355. }
  356. $post_data_common['is_limit_levelunbuy'] = I('post.is_limit_levelunbuy',0);
  357. $post_data_common['is_limit_vipmember_buy'] = I('post.is_limit_vipmember_buy',0);
  358. if( empty($is_open_fullreduction) )
  359. {
  360. $post_data_common['is_take_fullreduction'] = 1;
  361. }else if( $is_open_fullreduction ==0 )
  362. {
  363. }else if($is_open_fullreduction ==1){
  364. $post_data_common['is_take_fullreduction'] = I('post.is_take_fullreduction' ,1);
  365. }
  366. if($post_data_common['is_take_fullreduction'] == 1 && $post_data_common['supply_id'] > 0)
  367. {
  368. $supply_info = M('lionfish_comshop_supply')->field('type')->where( array('id' => $post_data_common['supply_id'] ) )->find();
  369. if( !empty($supply_info) && $supply_info['type'] == 1 )
  370. {
  371. $post_data_common['is_take_fullreduction'] = 0;
  372. }
  373. }
  374. //begin
  375. /**
  376. $is_modify_head_commission = I('post.is_modify_head_commission','0','intval');
  377. if( isset($is_modify_head_commission) )
  378. {
  379. $post_data_common['is_modify_head_commission'] = $is_modify_head_commission;
  380. **/
  381. $is_modify_head_commission = I('post.is_modify_head_commission','0','intval');
  382. if( isset($is_modify_head_commission) )
  383. {
  384. $post_data_common['is_modify_head_commission'] = $is_modify_head_commission;
  385. if( $post_data_common['is_modify_head_commission'] == 1 )
  386. {
  387. $community_head_level = M('lionfish_comshop_community_head_level')->order('id asc')->select();
  388. $head_commission_levelname = D('Home/Front')->get_config_by_name('head_commission_levelname');
  389. $default_comunity_money = D('Home/Front')->get_config_by_name('head_commission_levelname');
  390. $list_default = array(
  391. array('id' => '0','level'=>0,'levelname' => empty($head_commission_levelname) ? '默认等级' : $head_commission_levelname, 'commission' => $default_comunity_money, )
  392. );
  393. $community_head_level = array_merge($list_default, $community_head_level);
  394. $community_head_commission_modify = array();
  395. foreach($community_head_level as $kk => $vv)
  396. {
  397. $community_head_commission_modify['head_level'.$vv['id']] = I('post.head_level'.$vv['id']);
  398. }
  399. if( !isset($is_community_head_commission)){
  400. $post_data_common['community_head_commission'] = $community_head_commission_modify['head_level0'];
  401. }
  402. $post_data_common['community_head_commission_modify'] = serialize($community_head_commission_modify);
  403. }
  404. }else{
  405. $post_data_common['is_modify_head_commission'] = 0;
  406. }
  407. $relative_goods_list = array();
  408. $limit_goods_list = I('post.limit_goods_list');
  409. if( isset($limit_goods_list) && !empty($limit_goods_list) )
  410. {
  411. $limit_goods_list = explode(',', $limit_goods_list);
  412. $relative_goods_list = $limit_goods_list;
  413. }
  414. $post_data_common['relative_goods_list'] = serialize($relative_goods_list);
  415. $post_data_common['has_mb_level_buy'] = I('post.has_mb_level_buy',0,'intval');
  416. $level_id_list = I('post.level_id');
  417. $discount_list = I('post.discount');
  418. $mb_level_buy_list = array();
  419. if(isset($level_id_list) && !empty($level_id_list)){
  420. for($i = 0;$i < count($level_id_list);$i++){
  421. $level_list = array();
  422. $level_list['level_id'] = $level_id_list[$i];
  423. if(!is_numeric($discount_list[$i])){
  424. $level_list['discount'] = 0;
  425. }else{
  426. if($discount_list[$i] < 0 && $discount_list[$i] > 100){
  427. $level_list['discount'] = 0;
  428. }else{
  429. $level_list['discount'] = $discount_list[$i];
  430. }
  431. }
  432. $mb_level_buy_list[] = $level_list;
  433. }
  434. }
  435. $post_data_common['mb_level_buy_list'] = serialize($mb_level_buy_list);
  436. //end
  437. M('lionfish_comshop_good_common')->add($post_data_common);
  438. $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy');
  439. //规格
  440. $hasoption = I('post.hasoption');
  441. if( intval($hasoption) == 1 )
  442. {
  443. $mult_option_item_dan_key = array();
  444. $replace_option_item_id_arr = array();//需要更替的option_item_id
  445. $save_goods_option_arr = array();
  446. $spec_id = I('post.spec_id');
  447. if( isset($spec_id) && !empty($spec_id) )
  448. {
  449. $option_order = 1;
  450. foreach($spec_id as $spec_id)
  451. {
  452. $spec_title = I('post.spec_title');
  453. //规格标题
  454. $cur_spec_title = $spec_title[$spec_id];
  455. $goods_option_data = array();
  456. $goods_option['goods_id'] = $goods_id;
  457. $goods_option['title'] = $cur_spec_title;
  458. $goods_option['displayorder'] = $option_order;
  459. $option_id = M('lionfish_comshop_goods_option')->add($goods_option);
  460. $save_goods_option_arr[] = $option_id;
  461. $spec_item_title_t = 'post.spec_item_title_'.$spec_id;
  462. $spec_item_title_arr = I($spec_item_title_t);
  463. if(!empty($spec_item_title_arr))
  464. {
  465. $item_sort = 1;
  466. $i = 0;
  467. $j = 0;
  468. foreach($spec_item_title_arr as $key =>$item_title)
  469. {
  470. $goods_option_item_data = array();
  471. $goods_option_item_data['goods_id'] = $goods_id;
  472. $goods_option_item_data['goods_option_id'] = $option_id;
  473. $goods_option_item_data['title'] = $item_title;
  474. $thumb_t = I('post.spec_item_thumb_'.$spec_id);
  475. // $_GPC['spec_item_thumb_'.$spec_id]
  476. $goods_option_item_data['thumb'] = $thumb_t[$key];
  477. $goods_option_item_data['displayorder'] = $item_sort;
  478. $new_option_item_id = M('lionfish_comshop_goods_option_item')->add($goods_option_item_data);
  479. $replace_option_item_id_arr[$option_item_id] = $new_option_item_id;
  480. $option_item_id = $new_option_item_id;
  481. //从小到大的排序
  482. $t_k_arr = I('post.spec_item_id_'.$spec_id);
  483. $mult_option_item_dan_key[ $t_k_arr[$key] ] = $option_item_id;
  484. $item_sort++;
  485. $i++;
  486. }
  487. }else{
  488. M('lionfish_comshop_goods_option')->where( array('id' => $id) )->delete();
  489. }
  490. $option_order++;
  491. }
  492. }
  493. $option_ids_arr = I('post.option_ids');
  494. $total = 0;
  495. foreach($option_ids_arr as $val)
  496. {
  497. $option_item_ids = '';
  498. $option_item_ids_arr = array();
  499. $key_items = explode('_', $val);
  500. $new_val = array();
  501. foreach($key_items as $vv)
  502. {
  503. if( isset($replace_option_item_id_arr[$vv]) )
  504. {
  505. $option_item_ids_arr[] = $replace_option_item_id_arr[$vv];
  506. }else{
  507. $option_item_ids_arr[] = $mult_option_item_dan_key[$vv];
  508. }
  509. $new_val[] = $vv;
  510. }
  511. asort($option_item_ids_arr);
  512. $option_item_ids = implode('_', $option_item_ids_arr);
  513. $snailfish_goods_option_item_value_data = array();
  514. $snailfish_goods_option_item_value_data['goods_id'] = $goods_id;
  515. $snailfish_goods_option_item_value_data['option_item_ids'] = $option_item_ids;
  516. $productprice = I('post.option_productprice_'.$val);
  517. $snailfish_goods_option_item_value_data['productprice'] = $productprice;
  518. $pinprice = I('post.option_presell_'.$val);
  519. $snailfish_goods_option_item_value_data['pinprice'] = $pinprice;
  520. $marketprice = I('post.option_marketprice_'.$val);
  521. $snailfish_goods_option_item_value_data['marketprice'] = $marketprice;
  522. if( !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 )
  523. {
  524. $card_price = I('post.option_cardprice_'.$val);
  525. $snailfish_goods_option_item_value_data['card_price'] = $card_price;
  526. }
  527. $stock = I('post.option_stock_'.$val);
  528. $costprice = I('post.option_costprice_'.$val);
  529. $goodssn = I('post.option_goodssn_'.$val);
  530. $weight = I('post.option_weight_'.$val);
  531. $title = I('post.option_title_'.$val);
  532. $snailfish_goods_option_item_value_data['stock'] = $stock;
  533. $snailfish_goods_option_item_value_data['costprice'] = $costprice;
  534. $snailfish_goods_option_item_value_data['goodssn'] = $goodssn;
  535. $snailfish_goods_option_item_value_data['weight'] = $weight;
  536. $snailfish_goods_option_item_value_data['title'] = $title ;
  537. $total += $snailfish_goods_option_item_value_data['stock'];
  538. M('lionfish_comshop_goods_option_item_value')->add($snailfish_goods_option_item_value_data);
  539. }
  540. //更新库存 total
  541. $up_goods_data = array();
  542. $up_goods_data['total'] = $total;
  543. M('lionfish_comshop_goods')->where( array('id' => $goods_id) )->save( $up_goods_data );
  544. if( !empty($save_goods_option_arr) )
  545. {
  546. foreach( $save_goods_option_arr as $k_option_id )
  547. {
  548. $tp_item_val = M('lionfish_comshop_goods_option_item')->where( array('goods_option_id' => $k_option_id ) )->find();
  549. if( empty($tp_item_val) )
  550. {
  551. M('lionfish_comshop_goods_option')->where( array('id' => $k_option_id ) )->delete();
  552. }
  553. }
  554. }
  555. }
  556. if( isset($_POST['presale_type']) )
  557. {
  558. D('Seller/GoodsPresale')->modifyGoodsPresale( $goods_id );
  559. }
  560. //虚拟卡密
  561. if( isset($_POST['is_virtualcard_goods']) && $_POST['is_virtualcard_goods'] == 1 )
  562. {
  563. D('Seller/VirtualCard')->modifyGoodsVirtualCard( $goods_id );
  564. }
  565. //规格插入
  566. $post_data_commiss = array();
  567. $post_data_commiss['goods_id'] = $goods_id;
  568. $post_data_commiss['nocommission'] = I('post.nocommission',0,'intval');
  569. $post_data_commiss['hascommission'] = I('post.hascommission',0,'intval');
  570. $post_data_commiss['commission_type'] = I('post.commission_type',0,'intval');
  571. $post_data_commiss['commission1_rate'] = I('post.commission1_rate');
  572. $post_data_commiss['commission1_pay'] = I('post.commission1_pay');
  573. $post_data_commiss['commission2_rate'] = I('post.commission2_rate');
  574. $post_data_commiss['commission2_pay'] = I('post.commission2_pay');
  575. $post_data_commiss['commission3_rate'] = I('post.commission3_rate');
  576. $post_data_commiss['commission3_pay'] = I('post.commission3_pay');
  577. M('lionfish_comshop_good_commiss')->add( $post_data_commiss );
  578. //售卖团长插入
  579. $head_id_arr = I('request.head_id_arr');
  580. if(!empty($head_id_arr)){
  581. $head_ids = explode(",",$head_id_arr);
  582. foreach($head_ids as $head_id)
  583. {
  584. D('Seller/Communityhead')->insert_head_goods($goods_id, $head_id);
  585. }
  586. }
  587. D('Seller/Redisorder')->sysnc_goods_total($goods_id);
  588. }
  589. /**
  590. 获取编辑的商品资料
  591. **/
  592. public function get_edit_goods_info($id,$is_pin =0)
  593. {
  594. $item = M('lionfish_comshop_goods')->where( array('id' => $id) )->find();
  595. $cates_arr = M('lionfish_comshop_goods_to_category')->where( array('goods_id' => $id) )->order('id asc')->select();
  596. $cates = array();
  597. foreach($cates_arr as $val)
  598. {
  599. $cates[] = $val['cate_id'];
  600. }
  601. $item['cates'] = $cates;
  602. $piclist = array();
  603. //ims_lionfish_comshop_goods_images labelname[]
  604. $piclist_arr = M('lionfish_comshop_goods_images')->where( array('goods_id' => $id ) )->order('id asc')->select();
  605. foreach($piclist_arr as $val)
  606. {
  607. if( empty($val['thumb'] ) )
  608. {
  609. $val['thumb'] = $val['image'];
  610. }
  611. //image
  612. $piclist[] = array('image' =>$val['image'], 'thumb' => $val['thumb'] ); //$val['image'];
  613. }
  614. //$item['piclist']
  615. $item['piclist'] = $piclist;
  616. $item_common = M('lionfish_comshop_good_common')->where( array('goods_id' => $id) )->find();
  617. $item = array_merge($item,$item_common);
  618. if( $item['supply_id'] >0 )
  619. {
  620. $supply_info = M('lionfish_comshop_supply')->where( array('id' => $item['supply_id']) )->find();
  621. if(!empty($supply_info) )
  622. {
  623. $supply_info['supply_id'] = $supply_info['id'];
  624. $supply_info['logo'] = ($supply_info['logo']);
  625. }
  626. $item['supply_info'] = $supply_info;
  627. }
  628. //item
  629. $pin_type_arr = array(
  630. 'pin'=>'主流团',
  631. 'lottery'=>'抽奖团',
  632. 'oldman'=>'老人团',
  633. 'newman'=>'新人团',
  634. 'commiss'=>'佣金团',
  635. 'ladder'=>'阶梯团',
  636. 'flash'=>'快闪团',
  637. );
  638. $pin_type = array_keys($pin_type_arr);
  639. if( in_array($item['type'], $pin_type) )
  640. {
  641. $pin_item = M('lionfish_comshop_good_pin')->where( array('goods_id' => $id ) )->find();
  642. $item = array_merge($item,$pin_item);
  643. }
  644. //核销 begin TODO....
  645. //核销 end
  646. $label_id = unserialize($item['labelname']);
  647. $label = array();
  648. if($label_id){
  649. $label = D('Home/Pingoods')->get_goods_tags($label_id);
  650. }
  651. $item['label'] = $label;
  652. $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy');
  653. //TODO.20181219
  654. $allspecs = M('lionfish_comshop_goods_option')->where( array('goods_id' => $id) )->order('displayorder asc')->select();
  655. foreach ($allspecs as &$s ) {
  656. $s['items'] = M('lionfish_comshop_goods_option_item')->field('id,goods_option_id,title,thumb,displayorder')->where( array('goods_option_id' =>$s['id'] ) )->order('displayorder asc')->select();
  657. }
  658. $item['allspecs'] = $allspecs;
  659. //allspecs //html
  660. $html = '';
  661. $options = M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $id) )->order('id asc')->select();
  662. $specs = array();
  663. if (0 < count($options)) {
  664. $specitemids = explode('_', $options[0]['option_item_ids']);
  665. foreach ($specitemids as $itemid ) {
  666. foreach ($allspecs as $ss ) {
  667. $items = $ss['items'];
  668. foreach ($items as $it ) {
  669. while ($it['id'] == $itemid) {
  670. $specs[] = $ss;
  671. break;
  672. }
  673. }
  674. }
  675. }
  676. $html = '';
  677. $html .= '<table class="table table-bordered table-condensed">';
  678. $html .= '<thead>';
  679. $html .= '<tr class="active">';
  680. $discounts_html .= '<table class="table table-bordered table-condensed">';
  681. $discounts_html .= '<thead>';
  682. $discounts_html .= '<tr class="active">';
  683. $commission_html .= '<table class="table table-bordered table-condensed">';
  684. $commission_html .= '<thead>';
  685. $commission_html .= '<tr class="active">';
  686. $isdiscount_discounts_html .= '<table class="table table-bordered table-condensed">';
  687. $isdiscount_discounts_html .= '<thead>';
  688. $isdiscount_discounts_html .= '<tr class="active">';
  689. $len = count($specs);
  690. $newlen = 1;
  691. $h = array();
  692. $rowspans = array();
  693. $i = 0;
  694. while ($i < $len) {
  695. $html .= '<th>' . $specs[$i]['title'] . '</th>';
  696. $discounts_html .= '<th>' . $specs[$i]['title'] . '</th>';
  697. $commission_html .= '<th>' . $specs[$i]['title'] . '</th>';
  698. $isdiscount_discounts_html .= '<th>' . $specs[$i]['title'] . '</th>';
  699. $itemlen = count($specs[$i]['items']);
  700. if ($itemlen <= 0) {
  701. $itemlen = 1;
  702. }
  703. $newlen *= $itemlen;
  704. $h = array();
  705. $j = 0;
  706. while ($j < $newlen) {
  707. $h[$i][$j] = array();
  708. ++$j;
  709. }
  710. $l = count($specs[$i]['items']);
  711. $rowspans[$i] = 1;
  712. $j = $i + 1;
  713. while ($j < $len) {
  714. $rowspans[$i] *= count($specs[$j]['items']);
  715. ++$j;
  716. }
  717. ++$i;
  718. }
  719. $canedit = true;
  720. if ($canedit) {
  721. if(!empty($levels))
  722. {
  723. foreach ($levels as $level ) {
  724. $discounts_html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">' . $level['levelname'] . '</div><div class="input-group"><input type="text" class="form-control input-sm discount_' . $level['key'] . '_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'discount_' . $level['key'] . '\');"></a></span></div></div></th>';
  725. $isdiscount_discounts_html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">' . $level['levelname'] . '</div><div class="input-group"><input type="text" class="form-control input-sm isdiscount_discounts_' . $level['key'] . '_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'isdiscount_discounts_' . $level['key'] . '\');"></a></span></div></div></th>';
  726. }
  727. }
  728. if( !empty($commission_level) )
  729. {
  730. foreach ($commission_level as $level ) {
  731. $commission_html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">' . $level['levelname'] . '</div></div></th>';
  732. }
  733. }
  734. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">库存<label style="color:red;font-size:16px;font-weight:900">*</label></div><div class="input-group"><input type="text" class="form-control input-sm option_stock_all" VALUE=""/><span class="input-group-addon" ><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_stock\');"></a></span></div></div></th>';
  735. if($is_pin == 1)
  736. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">拼团价<label style="font-size:16px;font-weight:900;color: #ff0000;">*</label> </div><div class="input-group"><input type="text" class="form-control input-sm option_presell_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_presell\');"></a></span></div></div></th>';
  737. if( $item['type'] == 'integral' )
  738. {
  739. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">兑换积分</div><div class="input-group"><input type="text" class="form-control input-sm option_marketprice_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_marketprice\');"></a></span></div></div></th>';
  740. }else{
  741. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">售价<label style="color:red;font-size:16px;font-weight:900">*</label></div><div class="input-group"><input type="text" class="form-control input-sm option_marketprice_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_marketprice\');"></a></span></div></div></th>';
  742. }
  743. if($item['type'] != 'integral' && $is_pin == 0 && !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 && isset($item['is_take_vipcard']) && $item['is_take_vipcard'] == 1)
  744. {
  745. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">付费会员专享价</div><div class="input-group"><input type="text" class="form-control input-sm option_cardprice_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_cardprice\');"></a></span></div></div></th>';
  746. }
  747. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">原价<label style="color:red;font-size:16px;font-weight:900">*</label></div><div class="input-group"><input type="text" class="form-control input-sm option_productprice_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_productprice\');"></a></span></div></div></th>';
  748. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">成本价</div><div class="input-group"><input type="text" class="form-control input-sm option_costprice_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_costprice\');"></a></span></div></div></th>';
  749. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">编码</div><div class="input-group"><input type="text" class="form-control input-sm option_goodssn_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_goodssn\');"></a></span></div></div></th>';
  750. //$html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">条码</div><div class="input-group"><input type="text" class="form-control input-sm option_productsn_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_productsn\');"></a></span></div></div></th>';
  751. $html .= '<th><div class=""><div style="padding-bottom:10px;text-align:center;">重量(克)</div><div class="input-group"><input type="text" class="form-control input-sm option_weight_all" VALUE=""/><span class="input-group-addon"><a href="javascript:;" class="fa fa-angle-double-down" title="批量设置" onclick="setCol(\'option_weight\');"></a></span></div></div></th>';
  752. }
  753. $html .= '</tr></thead>';
  754. $discounts_html .= '</tr></thead>';
  755. $isdiscount_discounts_html .= '</tr></thead>';
  756. $commission_html .= '</tr></thead>';
  757. $m = 0;
  758. while ($m < $len) {
  759. $k = 0;
  760. $kid = 0;
  761. $n = 0;
  762. $j = 0;
  763. while ($j < $newlen) {
  764. $rowspan = $rowspans[$m];
  765. if (($j % $rowspan) == 0) {
  766. $h[$m][$j] = array('html' => '<td class=\'full\' rowspan=\'' . $rowspan . '\'>' . $specs[$m]['items'][$kid]['title'] . '</td>', 'id' => $specs[$m]['items'][$kid]['id']);
  767. }
  768. else {
  769. $h[$m][$j] = array('html' => '', 'id' => $specs[$m]['items'][$kid]['id']);
  770. }
  771. ++$n;
  772. if ($n == $rowspan) {
  773. ++$kid;
  774. if ((count($specs[$m]['items']) - 1) < $kid) {
  775. $kid = 0;
  776. }
  777. $n = 0;
  778. }
  779. ++$j;
  780. }
  781. ++$m;
  782. }
  783. $hh = '';
  784. $dd = '';
  785. $isdd = '';
  786. $cc = '';
  787. $i = 0;
  788. while ($i < $newlen) {
  789. $hh .= '<tr>';
  790. $dd .= '<tr>';
  791. $isdd .= '<tr>';
  792. $cc .= '<tr>';
  793. $ids = array();
  794. $j = 0;
  795. while ($j < $len) {
  796. $hh .= $h[$j][$i]['html'];
  797. $dd .= $h[$j][$i]['html'];
  798. $isdd .= $h[$j][$i]['html'];
  799. $cc .= $h[$j][$i]['html'];
  800. $ids[] = $h[$j][$i]['id'];
  801. ++$j;
  802. }
  803. asort($ids);
  804. $ids = implode('_', $ids);
  805. $val = array('id' => '', 'title' => '', 'stock' => '', 'presell' => '', 'costprice' => '','card_price' => '', 'productprice' => '', 'marketprice' => '', 'weight' => '', 'virtual' => '');
  806. $discounts_val = array('id' => '', 'title' => '', 'level' => '', 'costprice' => '', 'productprice' => '', 'marketprice' => '', 'weight' => '', 'virtual' => '');
  807. $isdiscounts_val = array('id' => '', 'title' => '', 'level' => '', 'costprice' => '', 'productprice' => '', 'marketprice' => '', 'weight' => '', 'virtual' => '');
  808. $commission_val = array('id' => '', 'title' => '', 'level' => '', 'costprice' => '', 'productprice' => '', 'marketprice' => '', 'weight' => '', 'virtual' => '');
  809. if(!empty($levels)) {
  810. foreach ($levels as $level ) {
  811. $discounts_val[$level['key']] = '';
  812. $isdiscounts_val[$level['key']] = '';
  813. }
  814. }
  815. if(!empty($commission_level)){
  816. foreach ($commission_level as $level ) {
  817. $commission_val[$level['key']] = '';
  818. }
  819. }
  820. foreach ($options as $o ) {
  821. while ($ids === $o['option_item_ids']) {
  822. $val = array('id' => $o['id'], 'title' => $o['title'], 'stock' => $o['stock'], 'costprice' => $o['costprice'],'card_price' => $o['card_price'] , 'productprice' => $o['productprice'], 'pinprice' => $o['pinprice'], 'marketprice' => $o['marketprice'], 'goodssn' => $o['goodssn'], 'productsn' => $o['productsn'], 'weight' => $o['weight'], 'virtual' => $o['virtual']);
  823. $discount_val = array('id' => $o['id']);
  824. if(!empty($levels))
  825. {
  826. foreach ($levels as $level ) {
  827. $discounts_val[$level['key']] = ((is_string($discounts[$level['key']]) ? '' : $discounts[$level['key']]['option' . $o['id']]));
  828. $isdiscounts_val[$level['key']] = ((is_string($isdiscount_discounts[$level['key']]) ? '' : $isdiscount_discounts[$level['key']]['option' . $o['id']]));
  829. }
  830. }
  831. $commission_val = array();
  832. if(!empty($commission_level))
  833. {
  834. foreach ($commission_level as $level ) {
  835. $temp = ((is_string($commission[$level['key']]) ? '' : $commission[$level['key']]['option' . $o['id']]));
  836. if (is_array($temp)) {
  837. foreach ($temp as $t_val ) {
  838. $commission_val[$level['key']][] = $t_val;
  839. }
  840. }
  841. }
  842. }
  843. unset($temp);
  844. break;
  845. }
  846. }
  847. if ($canedit) {
  848. if( !empty($levels) )
  849. {
  850. foreach ($levels as $level ) {
  851. $dd .= '<td>';
  852. $isdd .= '<td>';
  853. if ($level['key'] == 'default') {
  854. $dd .= '<input data-name="discount_level_' . $level['key'] . '_' . $ids . '" type="text" class="form-control discount_' . $level['key'] . ' discount_' . $level['key'] . '_' . $ids . '" value="' . $discounts_val[$level['key']] . '"/> ';
  855. $isdd .= '<input data-name="isdiscount_discounts_level_' . $level['key'] . '_' . $ids . '" type="text" class="form-control isdiscount_discounts_' . $level['key'] . ' isdiscount_discounts_' . $level['key'] . '_' . $ids . '" value="' . $isdiscounts_val[$level['key']] . '"/> ';
  856. }
  857. else {
  858. $dd .= '<input data-name="discount_level_' . $level['id'] . '_' . $ids . '" type="text" class="form-control discount_level' . $level['id'] . ' discount_level' . $level['id'] . '_' . $ids . '" value="' . $discounts_val['level' . $level['id']] . '"/> ';
  859. $isdd .= '<input data-name="isdiscount_discounts_level_' . $level['id'] . '_' . $ids . '" type="text" class="form-control isdiscount_discounts_level' . $level['id'] . ' isdiscount_discounts_level' . $level['id'] . '_' . $ids . '" value="' . $isdiscounts_val['level' . $level['id']] . '"/> ';
  860. }
  861. $dd .= '</td>';
  862. $isdd .= '</td>';
  863. }
  864. }
  865. $dd .= '<input data-name="discount_id_' . $ids . '" type="hidden" class="form-control discount_id discount_id_' . $ids . '" value="' . $discounts_val['id'] . '"/>';
  866. $dd .= '<input data-name="discount_ids" type="hidden" class="form-control discount_ids discount_ids_' . $ids . '" value="' . $ids . '"/>';
  867. $dd .= '<input data-name="discount_title_' . $ids . '" type="hidden" class="form-control discount_title discount_title_' . $ids . '" value="' . $discounts_val['title'] . '"/>';
  868. $dd .= '<input data-name="discount_virtual_' . $ids . '" type="hidden" class="form-control discount_title discount_virtual_' . $ids . '" value="' . $discounts_val['virtual'] . '"/>';
  869. $dd .= '</tr>';
  870. $isdd .= '<input data-name="isdiscount_discounts_id_' . $ids . '" type="hidden" class="form-control isdiscount_discounts_id isdiscount_discounts_id_' . $ids . '" value="' . $isdiscounts_val['id'] . '"/>';
  871. $isdd .= '<input data-name="isdiscount_discounts_ids" type="hidden" class="form-control isdiscount_discounts_ids isdiscount_discounts_ids_' . $ids . '" value="' . $ids . '"/>';
  872. $isdd .= '<input data-name="isdiscount_discounts_title_' . $ids . '" type="hidden" class="form-control isdiscount_discounts_title isdiscount_discounts_title_' . $ids . '" value="' . $isdiscounts_val['title'] . '"/>';
  873. $isdd .= '<input data-name="isdiscount_discounts_virtual_' . $ids . '" type="hidden" class="form-control isdiscount_discounts_title isdiscount_discounts_virtual_' . $ids . '" value="' . $isdiscounts_val['virtual'] . '"/>';
  874. $isdd .= '</tr>';
  875. if(!empty($commission_level)){
  876. foreach ($commission_level as $level ) {
  877. $cc .= '<td>';
  878. if (!(empty($commission_val)) && isset($commission_val[$level['key']])) {
  879. foreach ($commission_val as $c_key => $c_val ) {
  880. if ($c_key == $level['key']) {
  881. if ($level['key'] == 'default') {
  882. $c_i = 0;
  883. while ($c_i < $shopset_level) {
  884. $cc .= '<input data-name="commission_level_' . $level['key'] . '_' . $ids . '" type="text" class="form-control commission_' . $level['key'] . ' commission_' . $level['key'] . '_' . $ids . '" value="' . $c_val[$c_i] . '" style="display:inline;width: ' . (96 / $shopset_level) . '%;"/> ';
  885. ++$c_i;
  886. }
  887. }
  888. else {
  889. $c_i = 0;
  890. while ($c_i < $shopset_level) {
  891. $cc .= '<input data-name="commission_level_' . $level['id'] . '_' . $ids . '" type="text" class="form-control commission_level' . $level['id'] . ' commission_level' . $level['id'] . '_' . $ids . '" value="' . $c_val[$c_i] . '" style="display:inline;width: ' . (96 / $shopset_level) . '%;"/> ';
  892. ++$c_i;
  893. }
  894. }
  895. }
  896. }
  897. }
  898. else if ($level['key'] == 'default') {
  899. $c_i = 0;
  900. while ($c_i < $shopset_level) {
  901. $cc .= '<input data-name="commission_level_' . $level['key'] . '_' . $ids . '" type="text" class="form-control commission_' . $level['key'] . ' commission_' . $level['key'] . '_' . $ids . '" value="" style="display:inline;width: ' . (96 / $shopset_level) . '%;"/> ';
  902. ++$c_i;
  903. }
  904. }
  905. else {
  906. $c_i = 0;
  907. while ($c_i < $shopset_level) {
  908. $cc .= '<input data-name="commission_level_' . $level['id'] . '_' . $ids . '" type="text" class="form-control commission_level' . $level['id'] . ' commission_level' . $level['id'] . '_' . $ids . '" value="" style="display:inline;width: ' . (96 / $shopset_level) . '%;"/> ';
  909. ++$c_i;
  910. }
  911. }
  912. $cc .= '</td>';
  913. }
  914. }
  915. $cc .= '<input data-name="commission_id_' . $ids . '" type="hidden" class="form-control commission_id commission_id_' . $ids . '" value="' . $commissions_val['id'] . '"/>';
  916. $cc .= '<input data-name="commission_ids" type="hidden" class="form-control commission_ids commission_ids_' . $ids . '" value="' . $ids . '"/>';
  917. $cc .= '<input data-name="commission_title_' . $ids . '" type="hidden" class="form-control commission_title commission_title_' . $ids . '" value="' . $commissions_val['title'] . '"/>';
  918. $cc .= '<input data-name="commission_virtual_' . $ids . '" type="hidden" class="form-control commission_title commission_virtual_' . $ids . '" value="' . $commissions_val['virtual'] . '"/>';
  919. $cc .= '</tr>';
  920. $hh .= '<td>';
  921. $hh .= '<input name="option_stock_' . $ids . '" type="text" class="form-control option_stock option_stock_' . $ids . '" value="' . $val['stock'] . '"/>';
  922. $hh .= '</td>';
  923. $hh .= '<input name="option_id_' . $ids . '" type="hidden" class="form-control option_id option_id_' . $ids . '" value="' . $val['id'] . '"/>';
  924. $hh .= '<input name="option_ids[]" type="hidden" class="form-control option_ids option_ids_' . $ids . '" value="' . $ids . '"/>';
  925. $hh .= '<input name="option_title_' . $ids . '" type="hidden" class="form-control option_title option_title_' . $ids . '" value="' . $val['title'] . '"/>';
  926. $hh .= '<input name="option_virtual_' . $ids . '" type="hidden" class="form-control option_virtual option_virtual_' . $ids . '" value="' . $val['virtual'] . '"/>';
  927. $hh .= '<input name="option_cardprice_hi_' . $ids . '" type="hidden" class="form-control option_virtual option_cardprice_hi_' . $ids . '" value="' . $val['card_price'] . '"/>';
  928. if($is_pin == 1)
  929. $hh .= '<td><input name="option_presell_' . $ids . '" type="text" class="form-control option_presell option_presell_' . $ids . '" value="' . $val['pinprice'] . '"/></td>';
  930. $hh .= '<td><input name="option_marketprice_' . $ids . '" type="text" class="form-control option_marketprice option_marketprice_' . $ids . '" value="' . $val['marketprice'] . '"/></td>';
  931. if($item['type'] != 'integral' && $is_pin == 0 && !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 && isset($item['is_take_vipcard']) && $item['is_take_vipcard'] == 1)
  932. {
  933. $hh .= '<td><input name="option_cardprice_' . $ids . '" type="text" class="form-control option_cardprice option_cardprice_' . $ids . '" value="' . $val['card_price'] . '"/></td>';
  934. }
  935. $hh .= '<td><input name="option_productprice_' . $ids . '" type="text" class="form-control option_productprice option_productprice_' . $ids . '" " value="' . $val['productprice'] . '"/></td>';
  936. $hh .= '<td><input name="option_costprice_' . $ids . '" type="text" class="form-control option_costprice option_costprice_' . $ids . '" " value="' . $val['costprice'] . '"/></td>';
  937. $hh .= '<td><input name="option_goodssn_' . $ids . '" type="text" class="form-control option_goodssn option_goodssn_' . $ids . '" " value="' . $val['goodssn'] . '"/></td>';
  938. //$hh .= '<td><input data-name="option_productsn_' . $ids . '" type="text" class="form-control option_productsn option_productsn_' . $ids . '" " value="' . $val['productsn'] . '"/></td>';
  939. $hh .= '<td><input name="option_weight_' . $ids . '" type="text" class="form-control option_weight option_weight_' . $ids . '" " value="' . $val['weight'] . '"/></td>';
  940. $hh .= '</tr>';
  941. }
  942. ++$i;
  943. }
  944. $discounts_html .= $dd;
  945. $discounts_html .= '</table>';
  946. $isdiscount_discounts_html .= $isdd;
  947. $isdiscount_discounts_html .= '</table>';
  948. $html .= $hh;
  949. $html .= '</table>';
  950. $commission_html .= $cc;
  951. $commission_html .= '</table>';
  952. $item['html'] = $html;
  953. //allspecs //html
  954. }
  955. $good_commiss_data = M('lionfish_comshop_good_commiss')->where( array('goods_id' => $id ) )->find();
  956. //$good_commiss_data = array();
  957. if( empty($good_commiss_data) )
  958. {
  959. $good_commiss_data = array();
  960. }
  961. $item = array_merge($item, $good_commiss_data);
  962. //核销数据
  963. $item_salesroombase = M('lionfish_comshop_goods_salesroombase')->where( array('goods_id' => $id) )->find();
  964. $item_salesroombase['hx_expire_end_time'] = date('Y-m-d H:i:s',$item_salesroombase['hx_expire_end_time']);
  965. $item = array_merge($item, $item_salesroombase);
  966. //核销门店
  967. $item_salesroom = M()->query("SELECT gs.*,sr.room_name,sr.room_logo FROM " . C('DB_PREFIX') .
  968. "lionfish_comshop_goods_relative_salesroom as gs left join " . C('DB_PREFIX') ."lionfish_comshop_salesroom as sr on gs.salesroom_id=sr.id WHERE gs.goods_id=".$id." order by id asc" );
  969. foreach($item_salesroom as $k=>$v){
  970. $item_salesroom_smember = M()->query("SELECT grs.*,sm.username,m.avatar FROM " . C('DB_PREFIX') .
  971. "lionfish_comshop_goods_relative_smember as grs left join " . C('DB_PREFIX') ."lionfish_comshop_salesroom_member as sm on grs.smember_id=sm.id ".
  972. " left join " . C('DB_PREFIX') ."lionfish_comshop_member as m on sm.member_id=m.member_id ".
  973. " WHERE grs.gr_id=".$v['id']." order by id asc" );
  974. $item_salesroom[$k]['smember_list'] = $item_salesroom_smember;
  975. }
  976. $item['salesroom_list'] = $item_salesroom;
  977. return $item;
  978. }
  979. /**
  980. * @author yj 2020-08-08
  981. * @desc 获取商品规格值关联id数组
  982. * @param $goods_id
  983. * @return array
  984. */
  985. public function getGoodsOptionItemValueSpecIdsArray( $goods_id )
  986. {
  987. $option_item_value_collects = M('lionfish_comshop_goods_option_item_value')->where(array('goods_id' => $goods_id))->select();
  988. $data = array();
  989. if( !empty($option_item_value_collects) )
  990. {
  991. foreach( $option_item_value_collects as $collect )
  992. {
  993. $data[] = $collect['option_item_ids'];
  994. }
  995. }
  996. return $data;
  997. }
  998. /**
  999. * @author yj 2020-08-08
  1000. * @desc 删除不在规定数组中的商品规格值关联数据
  1001. * @param $option_item_value_ids_arr
  1002. * @param $spec_item_value_id_arr
  1003. */
  1004. public function deleteGoodsOptionValueSpecUninArray($option_item_value_ids_arr,$spec_item_value_id_arr , $goods_id)
  1005. {
  1006. $is_delete = 0;
  1007. if( !empty($option_item_value_ids_arr) )
  1008. {
  1009. foreach( $option_item_value_ids_arr as $spec )
  1010. {
  1011. if(in_array( $spec , $spec_item_value_id_arr ) )
  1012. {
  1013. $key = array_search($spec , $spec_item_value_id_arr);
  1014. if ($key !== false)
  1015. array_splice($spec_item_value_id_arr, $key, 1);
  1016. }
  1017. }
  1018. if( !empty($spec_item_value_id_arr) )
  1019. {
  1020. $is_delete = 1;
  1021. }
  1022. }else{
  1023. $is_delete = 1;
  1024. }
  1025. //如果可以删,要删除规格值 删除 规格项
  1026. if( $is_delete )
  1027. {
  1028. M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id) )->delete();
  1029. M('lionfish_comshop_goods_option_item')->where( array('goods_id' => $goods_id) )->delete();
  1030. M('lionfish_comshop_goods_option')->where( array('goods_id' => $goods_id) )->delete();
  1031. }
  1032. }
  1033. public function modify_goods($type = 'normal')
  1034. {
  1035. global $_W;
  1036. global $_GPC;
  1037. $goods_id = I('get.id');
  1038. $post_data = array();
  1039. $post_data_goods = array();
  1040. $post_data_goods['goodsname'] = I('post.goodsname');
  1041. $post_data_goods['subtitle'] = I('post.subtitle');
  1042. $post_data_goods['grounding'] = I('post.grounding');
  1043. $post_data_goods['is_index_show'] = I('post.is_index_show');
  1044. $post_data_goods['price'] = I('post.price');
  1045. $post_data_goods['productprice'] = I('post.productprice');
  1046. $post_data_goods['card_price'] = I('post.card_price');
  1047. $post_data_goods['costprice'] = I('post.costprice');
  1048. $post_data_goods['sales'] = I('post.sales');
  1049. $post_data_goods['showsales'] = I('post.showsales');
  1050. $post_data_goods['dispatchtype'] = I('post.dispatchtype');
  1051. $post_data_goods['dispatchid'] = I('post.dispatchid');
  1052. $post_data_goods['index_sort'] = I('post.index_sort','','intval');
  1053. $post_data_goods['dispatchprice'] = I('post.dispatchprice');
  1054. $post_data_goods['codes'] = I('post.codes');
  1055. $post_data_goods['weight'] = I('post.weight');
  1056. $post_data_goods['total'] = I('post.total');
  1057. $post_data_goods['hasoption'] = I('post.hasoption');
  1058. $post_data_goods['credit'] = I('post.credit');
  1059. $post_data_goods['buyagain'] = I('post.buyagain');
  1060. $post_data_goods['buyagain_condition'] = I('post.buyagain_condition');
  1061. $post_data_goods['buyagain_sale'] = I('post.buyagain_sale');
  1062. //mead
  1063. $post_data_goods['mead_money_num'] = I('post.mead_money_num');
  1064. if (defined('ROLE') && ROLE == 'agenter' ) {
  1065. $supply_can_distribution_sale = D('Home/Front')->get_config_by_name('supply_can_distribution_sale');
  1066. if($supply_can_distribution_sale == 1){
  1067. $post_data_goods['is_all_sale'] = I('post.is_all_sale',0,'intval');
  1068. }
  1069. }else{
  1070. $post_data_goods['is_all_sale'] = I('post.is_all_sale',0,'intval');
  1071. }
  1072. $post_data_goods['is_seckill'] = I('post.is_seckill',0,'intval');
  1073. $post_data_goods['is_take_vipcard'] = I('post.is_take_vipcard',0,'intval');
  1074. if (defined('ROLE') && ROLE == 'agenter' ) {
  1075. $supply_edit_goods_shenhe = D('Home/Front')->get_config_by_name('supply_edit_goods_shenhe');
  1076. if( empty($supply_edit_goods_shenhe) )
  1077. {
  1078. $supply_edit_goods_shenhe = 0;
  1079. }
  1080. if($supply_edit_goods_shenhe)
  1081. {
  1082. $post_data_goods['grounding'] = 4;
  1083. }
  1084. }
  1085. M('lionfish_comshop_goods')->where(array('id' => $goods_id))->save($post_data_goods);
  1086. //find type ,modify somethings TODO...
  1087. $pin_type_arr = array(
  1088. 'pin'=>'主流团',
  1089. 'lottery'=>'抽奖团',
  1090. 'oldman'=>'老人团',
  1091. 'newman'=>'新人团',
  1092. 'commiss'=>'佣金团',
  1093. 'ladder'=>'阶梯团',
  1094. 'flash'=>'快闪团',
  1095. );
  1096. $pin_type = array_keys($pin_type_arr);
  1097. if( in_array($type, $pin_type) )
  1098. {
  1099. //插入 拼团商品表 lionfish_comshop_good_pin
  1100. $pin_data = array();
  1101. $pin_data['pinprice'] = I('post.pinprice');
  1102. $pin_data['pin_count'] = I('post.pin_count');
  1103. $pin_data['pin_hour'] = I('post.pin_hour');
  1104. $pin_data['is_commiss_tuan'] = I('post.is_commiss_tuan', 0);
  1105. $pin_data['is_zero_open'] = 0;
  1106. if($pin_data['is_commiss_tuan'] == 1)
  1107. {
  1108. $pin_data['is_zero_open'] = I('post.is_zero_open', 0);
  1109. }
  1110. $pin_data['is_newman'] = I('post.is_newman', 0);
  1111. $commiss_tuan_money1 = I('post.commiss_tuan_money1', 0);
  1112. $commiss_tuan_money2 = I('post.commiss_tuan_money2', 0);
  1113. if( isset($commiss_tuan_money1) && $commiss_tuan_money1 >0 )
  1114. {
  1115. $pin_data['commiss_type'] = 0;
  1116. $pin_data['commiss_money'] = $commiss_tuan_money1;
  1117. }else{
  1118. $pin_data['commiss_type'] = 1;
  1119. $pin_data['commiss_money'] = $commiss_tuan_money2;
  1120. }
  1121. $time_st = I('post.time');
  1122. // $pin_data['begin_time'] = strtotime( $time_st['start'].':00' );
  1123. // $pin_data['end_time'] = strtotime( $time_st['end'].':00' );
  1124. //mead
  1125. $pin_data['begin_time'] = time();
  1126. $pin_data['end_time'] = strtotime('2030-12-31 23:23:00');
  1127. //拼团返利设置
  1128. $pin_data['is_pintuan_rebate'] = I('post.is_pintuan_rebate',0);
  1129. if($pin_data['is_pintuan_rebate'] == 1){
  1130. $pin_data['random_delivery_count'] = I('post.random_delivery_count',0);
  1131. $pin_data['rebate_reward'] = I('post.rebate_reward', 1);
  1132. $pin_data['reward_point'] = I('post.reward_point', 0);
  1133. $pin_data['reward_balance'] = I('post.reward_balance', 0);
  1134. }
  1135. M('lionfish_comshop_good_pin')->where( array('goods_id' => $goods_id) )->save( $pin_data );
  1136. }
  1137. $cates = I('post.cate_mult');
  1138. if( !empty($cates) )
  1139. {
  1140. //删除商品的分类
  1141. M('lionfish_comshop_goods_to_category')->where( array('goods_id' => $goods_id) )->delete();
  1142. foreach($cates as $cate_id)
  1143. {
  1144. $post_data_category = array();
  1145. $post_data_category['cate_id'] = $cate_id;
  1146. $post_data_category['goods_id'] = $goods_id;
  1147. M('lionfish_comshop_goods_to_category')->add($post_data_category);
  1148. }
  1149. }else{
  1150. M('lionfish_comshop_goods_to_category')->where( array('goods_id' => $goods_id) )->delete();
  1151. }
  1152. //核销begin TODO.....
  1153. $is_only_hexiao = I('post.is_only_hexiao',0);
  1154. //if($is_only_hexiao == 1){
  1155. $hx_time = time();
  1156. $item_salesroombase = M('lionfish_comshop_goods_salesroombase')->where( array('goods_id' => $goods_id) )->find();
  1157. if(!empty($item_salesroombase)){
  1158. $hx_data = array();
  1159. $hx_data['goods_id'] = $goods_id;
  1160. $hx_data['is_only_hexiao'] = $is_only_hexiao;
  1161. $hx_data['hexiao_type'] = I('post.hexiao_type',0);
  1162. $hx_data['hx_one_goods_time'] = I('post.hx_one_goods_time',0);
  1163. $hx_data['hx_expire_type'] = I('post.hx_expire_type',0);
  1164. $hx_data['hx_expire_day'] = I('post.hx_expire_day');
  1165. $hx_data['hx_expire_begin_time'] = $item_salesroombase['hx_expire_begin_time'];
  1166. if($hx_data['hx_expire_type'] == 1){
  1167. $hx_data['hx_expire_end_time'] = strtotime(I('post.hx_expire_end_time'));
  1168. }else{
  1169. if(empty($hx_data['hx_expire_day'])){
  1170. $hx_data['hx_expire_day'] = 90;
  1171. }
  1172. $hx_data['hx_expire_end_time'] = $item_salesroombase['hx_expire_begin_time']+$hx_data['hx_expire_day']*24*60*60;
  1173. }
  1174. $hx_data['hx_assign_salesroom'] = I('post.hx_assign_salesroom',0);
  1175. $hx_data['hx_auto_off'] = I('post.hx_auto_off',0);
  1176. $hx_data['hx_auto_off_time'] = I('post.hx_auto_off_time',0);
  1177. M('lionfish_comshop_goods_salesroombase')->where( array('id' => $item_salesroombase['id']) )->save($hx_data);
  1178. //删除关联核销员
  1179. $salesroom_list = M('lionfish_comshop_goods_relative_salesroom')->where( array('goods_id' => $goods_id) )->select();
  1180. foreach($salesroom_list as $sk=>$sv){
  1181. M('lionfish_comshop_goods_relative_smember')->where( array('gr_id' => $sv['id']) )->delete();
  1182. }
  1183. //删除关联门店
  1184. M('lionfish_comshop_goods_relative_salesroom')->where( array('goods_id' => $goods_id) )->delete();
  1185. if($hx_data['hx_assign_salesroom'] == 1){//指定门店
  1186. $goods_room_ids = I('post.goods_room_ids','');
  1187. $goods_is_hx_member = I('post.goods_is_hx_member','');
  1188. $goods_room_smember = I('post.goods_room_smember','');
  1189. if(!empty($goods_room_ids)){
  1190. $goods_room_array = explode(',',$goods_room_ids);
  1191. foreach($goods_room_array as $grv){
  1192. $goods_room_smember_ids = $goods_room_smember[$grv];
  1193. $goods_room_data = array();
  1194. $goods_room_data['salesroom_id'] = $grv;
  1195. $goods_room_data['goods_id'] = $goods_id;
  1196. $goods_room_data['is_hx_member'] = $goods_is_hx_member[$grv];
  1197. if($goods_is_hx_member[$grv] == 1 && empty($goods_room_smember_ids)){
  1198. $goods_room_data['is_hx_member'] = 0;
  1199. }
  1200. $goods_room_data['addtime'] = $hx_time;
  1201. $gr_id = M('lionfish_comshop_goods_relative_salesroom')->add($goods_room_data);
  1202. if($gr_id !== false){
  1203. $goods_room_smember_ids = $goods_room_smember[$grv];
  1204. if($goods_is_hx_member[$grv] == 1 && !empty($goods_room_smember_ids)){
  1205. $smember_ids = explode(',',$goods_room_smember_ids);
  1206. foreach($smember_ids as $sv){
  1207. $room_smember_data = array();
  1208. $room_smember_data['salesroom_id'] = $grv;
  1209. $room_smember_data['gr_id'] = $gr_id;
  1210. $room_smember_data['smember_id'] = $sv;
  1211. $room_smember_data['addtime'] = $hx_time;
  1212. M('lionfish_comshop_goods_relative_smember')->add($room_smember_data);
  1213. }
  1214. }
  1215. }
  1216. }
  1217. }
  1218. }
  1219. }else{
  1220. $hx_data = array();
  1221. $hx_time = time();
  1222. $hx_data['goods_id'] = $goods_id;
  1223. $hx_data['is_only_hexiao'] = $is_only_hexiao;
  1224. $hx_data['hexiao_type'] = I('post.hexiao_type',0);
  1225. $hx_data['hx_one_goods_time'] = I('post.hx_one_goods_time',0);
  1226. $hx_data['hx_expire_type'] = I('post.hx_expire_type',0);
  1227. $hx_data['hx_expire_day'] = I('post.hx_expire_day');
  1228. $hx_data['hx_expire_begin_time'] = $hx_time;
  1229. if($hx_data['hx_expire_type'] == 1){
  1230. $hx_data['hx_expire_end_time'] = strtotime(I('post.hx_expire_end_time'));
  1231. }else{
  1232. if(empty($hx_data['hx_expire_day'])){
  1233. $hx_data['hx_expire_day'] = 90;
  1234. }
  1235. $hx_data['hx_expire_end_time'] = $hx_time+$hx_data['hx_expire_day']*24*60*60;
  1236. }
  1237. $hx_data['hx_assign_salesroom'] = I('post.hx_assign_salesroom',0);
  1238. $hx_data['addtime'] = $hx_time;
  1239. M('lionfish_comshop_goods_salesroombase')->add($hx_data);
  1240. if($hx_data['hx_assign_salesroom'] == 1){//指定门店
  1241. $goods_room_ids = I('post.goods_room_ids','');
  1242. $goods_is_hx_member = I('post.goods_is_hx_member','');
  1243. $goods_room_smember = I('post.goods_room_smember','');
  1244. if(!empty($goods_room_ids)){
  1245. $goods_room_array = explode(',',$goods_room_ids);
  1246. foreach($goods_room_array as $grv){
  1247. $goods_room_smember_ids = $goods_room_smember[$grv];
  1248. $goods_room_data = array();
  1249. $goods_room_data['salesroom_id'] = $grv;
  1250. $goods_room_data['goods_id'] = $goods_id;
  1251. $goods_room_data['is_hx_member'] = $goods_is_hx_member[$grv];
  1252. if($goods_is_hx_member[$grv] == 1 && empty($goods_room_smember_ids)){
  1253. $goods_room_data['is_hx_member'] = 0;
  1254. }
  1255. $goods_room_data['addtime'] = $hx_time;
  1256. $gr_id = M('lionfish_comshop_goods_relative_salesroom')->add($goods_room_data);
  1257. if($gr_id !== false){
  1258. $goods_room_smember_ids = $goods_room_smember[$grv];
  1259. if($goods_is_hx_member[$grv] == 1 && !empty($goods_room_smember_ids)){
  1260. $smember_ids = explode(',',$goods_room_smember_ids);
  1261. foreach($smember_ids as $sv){
  1262. $room_smember_data = array();
  1263. $room_smember_data['salesroom_id'] = $grv;
  1264. $room_smember_data['gr_id'] = $gr_id;
  1265. $room_smember_data['smember_id'] = $sv;
  1266. $room_smember_data['addtime'] = $hx_time;
  1267. M('lionfish_comshop_goods_relative_smember')->add($room_smember_data);
  1268. }
  1269. }
  1270. }
  1271. }
  1272. }
  1273. }
  1274. }
  1275. //}
  1276. //核销end
  1277. //lionfish_comshop_goods_images
  1278. $thumbs = I('post.thumbs');
  1279. if( !empty($thumbs) )
  1280. {
  1281. M('lionfish_comshop_goods_images')->where( array('goods_id' => $goods_id) )->delete();
  1282. foreach($thumbs as $thumbs)
  1283. {
  1284. $post_data_thumbs = array();
  1285. $post_data_thumbs['goods_id'] = $goods_id;
  1286. $post_data_thumbs['image'] = save_media($thumbs);
  1287. $post_data_thumbs['thumb'] = save_media( resize($thumbs,100,100));
  1288. M('lionfish_comshop_goods_images')->add($post_data_thumbs);
  1289. }
  1290. }
  1291. //lionfish_comshop_good_common
  1292. $post_data_common = array();
  1293. $post_data_common['quality'] = I('post.quality');
  1294. $post_data_common['seven'] = I('post.seven');
  1295. $post_data_common['repair'] = I('post.repair');
  1296. $labelname = I('post.labelname');
  1297. $post_data_common['labelname'] = serialize($labelname);
  1298. $post_data_common['share_title'] = I('post.share_title');
  1299. $post_data_common['share_description'] = I('post.share_description');
  1300. $post_data_common['content'] = I('post.content','','htmlspecialchars');
  1301. $post_data_common['pick_up_type'] = I('post.pick_up_type');
  1302. $post_data_common['pick_up_modify'] = I('post.pick_up_modify');
  1303. $post_data_common['one_limit_count'] = I('post.one_limit_count');
  1304. $post_data_common['oneday_limit_count'] = I('post.oneday_limit_count');
  1305. $post_data_common['total_limit_count'] = I('post.total_limit_count');
  1306. $post_data_common['goods_start_count'] = I('post.goods_start_count');
  1307. $community_head_commission = I('post.community_head_commission');
  1308. $is_community_head_commission = I('post.is_community_head_commission');
  1309. $post_data_common['is_community_head_commission'] = $is_community_head_commission;
  1310. $post_data_common['is_show_arrive'] = I('post.is_show_arrive');
  1311. $post_data_common['diy_arrive_switch'] = I('post.diy_arrive_switch');
  1312. $post_data_common['diy_arrive_details'] = I('post.diy_arrive_details');
  1313. $post_data_common['is_new_buy'] = I('post.is_new_buy');
  1314. $post_data_common['is_spike_buy'] = I('post.is_spike_buy');
  1315. if(isset($community_head_commission))
  1316. {
  1317. $post_data_common['community_head_commission'] = I('post.community_head_commission');
  1318. }
  1319. if (defined('ROLE') && ROLE == 'agenter' )
  1320. {
  1321. $supply_can_goods_sendscore = D('Home/Front')->get_config_by_name('supply_can_goods_sendscore');
  1322. if($supply_can_goods_sendscore == 1){
  1323. $post_data_common['is_modify_sendscore'] = I('post.is_modify_sendscore',0);
  1324. $post_data_common['send_socre'] = I('post.send_socre');
  1325. }
  1326. }else{
  1327. $post_data_common['is_modify_sendscore'] = I('post.is_modify_sendscore',0);
  1328. $post_data_common['send_socre'] = I('post.send_socre');
  1329. }
  1330. $post_data_common['is_mb_level_buy'] = I('post.is_mb_level_buy',1);
  1331. if (defined('ROLE') && ROLE == 'agenter' )
  1332. {
  1333. $supper_info = get_agent_logininfo();
  1334. $post_data_common['supply_id'] = $supper_info['id'];
  1335. }else{
  1336. $post_data_common['supply_id'] = I('post.supply_id');
  1337. }
  1338. $time = I('post.time');
  1339. $post_data_common['begin_time'] = strtotime( $time['start'] );
  1340. $post_data_common['end_time'] = strtotime( $time['end'] );
  1341. $big_img =I('post.big_img');
  1342. $goods_share_image =I('post.goods_share_image');
  1343. $post_data_common['big_img'] = save_media($big_img);
  1344. $post_data_common['goods_share_image'] = save_media($goods_share_image);
  1345. $post_data_common['video'] = save_media(I('post.video'));
  1346. $post_data_common['video'] = $this->check_douyin_video($post_data_common['video']);
  1347. $post_data_common['print_sub_title'] = I('post.print_sub_title');
  1348. $is_open_fullreduction = D('Home/Front')->get_config_by_name('is_open_fullreduction');
  1349. if( empty($is_open_fullreduction) )
  1350. {
  1351. $post_data_common['is_take_fullreduction'] = 1;
  1352. }else if( $is_open_fullreduction ==0 )
  1353. {
  1354. }else if($is_open_fullreduction ==1){
  1355. $post_data_common['is_take_fullreduction'] = I('post.is_take_fullreduction' ,1);
  1356. }
  1357. if($post_data_common['is_take_fullreduction'] == 1 && $post_data_common['supply_id'] > 0)
  1358. {
  1359. $supply_info = M('lionfish_comshop_supply')->field('type')->where( array('id' => $post_data_common['supply_id'] ) )->find();
  1360. if( !empty($supply_info) && $supply_info['type'] == 1 )
  1361. {
  1362. $post_data_common['is_take_fullreduction'] = 0;
  1363. }
  1364. }
  1365. //begin
  1366. if (defined('ROLE') && ROLE == 'agenter' )
  1367. {
  1368. $is_modify_head_commission = I('post.is_modify_head_commission','0','intval');
  1369. if( isset($is_modify_head_commission) )
  1370. {
  1371. $post_data_common['is_modify_head_commission'] = $is_modify_head_commission;
  1372. if($post_data_common['is_modify_head_commission'] == 1)
  1373. {
  1374. $community_head_level = M('lionfish_comshop_community_head_level')->order('id asc')->select();
  1375. $head_commission_levelname = D('Home/Front')->get_config_by_name('head_commission_levelname');
  1376. $default_comunity_money = D('Home/Front')->get_config_by_name('head_commission_levelname');
  1377. $list_default = array(
  1378. array('id' => '0','level'=>0,'levelname' => empty($head_commission_levelname) ? '默认等级' : $head_commission_levelname, 'commission' => $default_comunity_money, )
  1379. );
  1380. $community_head_level = array_merge($list_default, $community_head_level);
  1381. $community_head_commission_modify = array();
  1382. foreach($community_head_level as $kk => $vv)
  1383. {
  1384. $community_head_commission_modify['head_level'.$vv['id']] = I('post.head_level'.$vv['id']);
  1385. }
  1386. if( !isset($is_community_head_commission)){
  1387. $post_data_common['community_head_commission'] = $community_head_commission_modify['head_level0'];
  1388. }
  1389. $post_data_common['community_head_commission_modify'] = serialize($community_head_commission_modify);
  1390. }
  1391. }else{
  1392. $post_data_common['is_modify_head_commission'] = 0;
  1393. }
  1394. }else{
  1395. $is_modify_head_commission = I('post.is_modify_head_commission','0','intval');
  1396. if( isset($is_modify_head_commission) )
  1397. {
  1398. $post_data_common['is_modify_head_commission'] = $is_modify_head_commission;
  1399. if($post_data_common['is_modify_head_commission'] == 1)
  1400. {
  1401. $community_head_level = M('lionfish_comshop_community_head_level')->order('id asc')->select();
  1402. $head_commission_levelname = D('Home/Front')->get_config_by_name('head_commission_levelname');
  1403. $default_comunity_money = D('Home/Front')->get_config_by_name('head_commission_levelname');
  1404. $list_default = array(
  1405. array('id' => '0','level'=>0,'levelname' => empty($head_commission_levelname) ? '默认等级' : $head_commission_levelname, 'commission' => $default_comunity_money, )
  1406. );
  1407. $community_head_level = array_merge($list_default, $community_head_level);
  1408. $community_head_commission_modify = array();
  1409. foreach($community_head_level as $kk => $vv)
  1410. {
  1411. $community_head_commission_modify['head_level'.$vv['id']] = I('post.head_level'.$vv['id']);
  1412. }
  1413. if( !isset($is_community_head_commission)){
  1414. $post_data_common['community_head_commission'] = $community_head_commission_modify['head_level0'];
  1415. }
  1416. $post_data_common['community_head_commission_modify'] = serialize($community_head_commission_modify);
  1417. }
  1418. }else{
  1419. $post_data_common['is_modify_head_commission'] = 0;
  1420. }
  1421. }
  1422. //end
  1423. $post_data_common['is_only_express'] = I('post.is_only_express',0);
  1424. $post_data_common['is_only_hexiao'] = $is_only_hexiao;
  1425. $post_data_common['is_limit_levelunbuy'] = I('post.is_limit_levelunbuy',0);
  1426. $post_data_common['is_limit_vipmember_buy'] = I('post.is_limit_vipmember_buy',0);
  1427. $post_data_common['packing_free'] = I('post.packing_free',0);
  1428. if( $post_data_common['is_only_express'] == 1 )
  1429. {
  1430. $post_data_common['is_only_distribution'] = 0;
  1431. }else{
  1432. $is_only_distribution = I('post.is_only_distribution');
  1433. $post_data_common['is_only_distribution'] = $is_only_distribution;
  1434. }
  1435. $relative_goods_list = array();
  1436. $limit_goods_list = I('post.limit_goods_list');
  1437. if( isset($limit_goods_list) && !empty($limit_goods_list) )
  1438. {
  1439. $limit_goods_list = explode(',', $limit_goods_list);
  1440. foreach($limit_goods_list as $tp_val )
  1441. {
  1442. if($tp_val != $goods_id)
  1443. {
  1444. $relative_goods_list[] = $tp_val;
  1445. }
  1446. }
  1447. }
  1448. $post_data_common['relative_goods_list'] = serialize($relative_goods_list);
  1449. $post_data_common['has_mb_level_buy'] = I('post.has_mb_level_buy',0,'intval');
  1450. $level_id_list = I('post.level_id');
  1451. $discount_list = I('post.discount');
  1452. $mb_level_buy_list = array();
  1453. if(isset($level_id_list) && !empty($level_id_list)){
  1454. for($i = 0;$i < count($level_id_list);$i++){
  1455. $level_list = array();
  1456. $level_list['level_id'] = $level_id_list[$i];
  1457. if(!is_numeric($discount_list[$i])){
  1458. $level_list['discount'] = '';
  1459. }else{
  1460. if($discount_list[$i] < 0 && $discount_list[$i] > 100){
  1461. $level_list['discount'] = 0;
  1462. }else{
  1463. $level_list['discount'] = $discount_list[$i];
  1464. }
  1465. }
  1466. $mb_level_buy_list[] = $level_list;
  1467. }
  1468. }
  1469. $post_data_common['mb_level_buy_list'] = serialize($mb_level_buy_list);
  1470. M('lionfish_comshop_good_common')->where( array('goods_id' => $goods_id) )->save($post_data_common);
  1471. //M('lionfish_comshop_goods_option')->where( array('goods_id' => $goods_id) )->delete();
  1472. //M('lionfish_comshop_goods_option_item')->where( array('goods_id' => $goods_id) )->delete();
  1473. //M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id) )->delete();
  1474. $is_open_vipcard_buy = D('Home/Front')->get_config_by_name('is_open_vipcard_buy');
  1475. $hasoption = I('post.hasoption',0,'intval');
  1476. //规格
  1477. if( intval($hasoption) == 1 )
  1478. {
  1479. $save_goods_option_arr = array();//有用的goods_option_id
  1480. $save_goods_option_item_arr = array();// 有用的 goods_option_item
  1481. $save_goods_option_item_value_arr = array();// 有用的 goods_option_item_value
  1482. $mult_option_item_dan_key = array();
  1483. $replace_option_item_id_arr = array();//需要更替的option_item_id
  1484. $spec_id = I('post.spec_id');
  1485. $option_ids_arr = I('post.option_ids');
  1486. //begin 换算多规格算法
  1487. $option_item_value_ids_arr = $this->getGoodsOptionItemValueSpecIdsArray( $goods_id );
  1488. $this->deleteGoodsOptionValueSpecUninArray( $option_item_value_ids_arr, $option_ids_arr , $goods_id );
  1489. //end 换算多规格算法
  1490. if( !empty($spec_id) )
  1491. {
  1492. $option_order = 1;
  1493. $spec_title_arr = I('post.spec_title');
  1494. foreach($spec_id as $spec_id)
  1495. {
  1496. //规格标题
  1497. $cur_spec_title = $spec_title_arr[$spec_id];
  1498. $goods_option_data = array();
  1499. $goods_option['goods_id'] = $goods_id;
  1500. $goods_option['title'] = $cur_spec_title;
  1501. $goods_option['displayorder'] = $option_order;
  1502. //查找是否存在这个规格
  1503. $ck_goods_option = M('lionfish_comshop_goods_option')->where( array('id' => $spec_id ) )->find();
  1504. if( !empty($ck_goods_option) )
  1505. {
  1506. M('lionfish_comshop_goods_option')->where( array('id' => $spec_id ) )->save($goods_option);
  1507. $option_id = $spec_id;
  1508. }else{
  1509. $option_id = M('lionfish_comshop_goods_option')->add($goods_option);
  1510. }
  1511. $save_goods_option_arr[] = $option_id;
  1512. $spec_item_title_arr = I('post.spec_item_title_'.$spec_id);
  1513. if(!empty($spec_item_title_arr))
  1514. {
  1515. $item_sort = 1;
  1516. $i = 0;
  1517. $j = 0;
  1518. foreach($spec_item_title_arr as $key =>$item_title)
  1519. {
  1520. $spec_item_thumb_arr = I('post.spec_item_thumb_'.$spec_id);
  1521. $goods_option_item_data = array();
  1522. $goods_option_item_data['goods_id'] = $goods_id;
  1523. $goods_option_item_data['goods_option_id'] = $option_id;
  1524. $goods_option_item_data['title'] = $item_title;
  1525. $goods_option_item_data['thumb'] = $spec_item_thumb_arr[$key];
  1526. $goods_option_item_data['displayorder'] = $item_sort;
  1527. //$option_item_id = M('lionfish_comshop_goods_option_item')->add($goods_option_item_data);
  1528. $spec_item_id_kk = I('post.spec_item_id_'.$spec_id);
  1529. $option_item_id = $spec_item_id_kk[$key];
  1530. $ck_option_item = M('lionfish_comshop_goods_option_item')->where( array('id' => $option_item_id ) )->find();
  1531. if( !empty($ck_option_item) )
  1532. {
  1533. M('lionfish_comshop_goods_option_item')->where( array('id' => $option_item_id ) )->save( $goods_option_item_data );
  1534. }else{
  1535. $new_option_item_id = M('lionfish_comshop_goods_option_item')->add( $goods_option_item_data );
  1536. $replace_option_item_id_arr[$option_item_id] = $new_option_item_id;
  1537. $option_item_id = $new_option_item_id;
  1538. }
  1539. $save_goods_option_item_arr[] = $option_item_id;
  1540. //从小到大的排序
  1541. $mult_option_item_dan_key[ $spec_item_id_kk[$key] ] = $option_item_id;
  1542. $item_sort++;
  1543. $i++;
  1544. }
  1545. }else{
  1546. M('lionfish_comshop_goods_option')->where( array('id' => $id) )->delete();
  1547. }
  1548. $option_order++;
  1549. }
  1550. //开始清理无效的 规格 规格项
  1551. if( empty($save_goods_option_arr) )
  1552. {
  1553. M('lionfish_comshop_goods_option')->where( array('goods_id' => $goods_id ) )->delete();
  1554. }else{
  1555. $save_goods_option_str = implode(',', $save_goods_option_arr );
  1556. M('lionfish_comshop_goods_option')->where( 'goods_id=' . $goods_id.' and id not in('.$save_goods_option_str.')' )->delete();
  1557. }
  1558. if( empty($save_goods_option_item_arr) )
  1559. {
  1560. M('lionfish_comshop_goods_option_item')->where( array('goods_id' => $goods_id ) )->delete();
  1561. }else{
  1562. $save_goods_option_item_str = implode(',', $save_goods_option_item_arr );
  1563. M('lionfish_comshop_goods_option_item')->where('goods_id=' . $goods_id.' and id not in('.$save_goods_option_item_str.')')->delete();
  1564. }
  1565. }
  1566. /**
  1567. $option_ids_arr2 = $_REQUEST['option_ids'];
  1568. var_dump($option_ids_arr);
  1569. echo '<br/>';
  1570. var_dump($option_ids_arr2);
  1571. die();
  1572. * **/
  1573. /**
  1574. array(9) {
  1575. [0]=>
  1576. string(9) "1022_1029"
  1577. [1]=>
  1578. string(9) "1022_1034"
  1579. [2]=>
  1580. string(9) "1022_1035"
  1581. [3]=>
  1582. string(9) "1023_1029"
  1583. [4]=>
  1584. string(9) "1023_1034"
  1585. [5]=>
  1586. string(9) "1023_1035"
  1587. [6]=>
  1588. string(37) "L7uW7b72wycNYcw7r7CimqwC77Nyywui _1029"
  1589. [7]=>
  1590. string(37) "L7uW7b72wycNYcw7r7CimqwC77Nyywui_1034"
  1591. [8]=>
  1592. string(37) "L7uW7b72wycNYcw7r7CimqwC77Nyywui_1035"
  1593. }
  1594. array(1) {
  1595. ["L7uW7b72wycNYcw7r7CimqwC77Nyywui"]=>
  1596. string(4) "1037"
  1597. }
  1598. **/
  1599. $mdata = I('post.');
  1600. $total = 0;
  1601. foreach($option_ids_arr as $val)
  1602. {
  1603. $option_item_ids = '';
  1604. $option_item_ids_arr = array();
  1605. $key_items = explode('_', $val);
  1606. $new_val = array();
  1607. foreach($key_items as $vv)
  1608. {
  1609. if( isset($replace_option_item_id_arr[$vv]) )
  1610. {
  1611. $option_item_ids_arr[] = $replace_option_item_id_arr[$vv];
  1612. }else{
  1613. $option_item_ids_arr[] = $mult_option_item_dan_key[$vv];
  1614. }
  1615. $new_val[] = $vv;
  1616. }
  1617. //asort($new_val);
  1618. //$val = implode('_', $new_val);
  1619. asort($option_item_ids_arr);
  1620. $option_item_ids = implode('_', $option_item_ids_arr);
  1621. $snailfish_goods_option_item_value_data = array();
  1622. $snailfish_goods_option_item_value_data['goods_id'] = $goods_id;
  1623. $snailfish_goods_option_item_value_data['option_item_ids'] = $option_item_ids;
  1624. $productprice = I('post.option_productprice_'.$val);
  1625. $snailfish_goods_option_item_value_data['productprice'] = $productprice;
  1626. $pinprice = I('post.option_presell_'.$val);
  1627. $snailfish_goods_option_item_value_data['pinprice'] = $pinprice;
  1628. $marketprice = I('post.option_marketprice_'.$val);
  1629. $snailfish_goods_option_item_value_data['marketprice'] = $marketprice;
  1630. if( !empty($is_open_vipcard_buy) && $is_open_vipcard_buy == 1 )
  1631. {
  1632. $card_price = I('post.option_cardprice_'.$val);
  1633. $snailfish_goods_option_item_value_data['card_price'] = $card_price;
  1634. }
  1635. $stock = I('post.option_stock_'.$val);
  1636. $snailfish_goods_option_item_value_data['stock'] = $stock;
  1637. $costprice = I('post.option_costprice_'.$val);
  1638. $snailfish_goods_option_item_value_data['costprice'] = $costprice;
  1639. $goodssn = I('post.option_goodssn_'.$val);
  1640. $snailfish_goods_option_item_value_data['goodssn'] = $goodssn;
  1641. $weight = I('post.option_weight_'.$val);
  1642. $snailfish_goods_option_item_value_data['weight'] = $weight;
  1643. $title = I('post.option_title_'.$val);
  1644. $snailfish_goods_option_item_value_data['title'] = $title;
  1645. $total += $snailfish_goods_option_item_value_data['stock'];
  1646. //option_id_1979 TODO
  1647. $option_item_value_id = I('post.option_id_'.$val);
  1648. $ck_option_item_value = M('lionfish_comshop_goods_option_item_value')->where( array('id' => $option_item_value_id ) )->find();
  1649. if( !empty($ck_option_item_value) )
  1650. {
  1651. M('lionfish_comshop_goods_option_item_value')->where( array('id' => $option_item_value_id ) )->save( $snailfish_goods_option_item_value_data );
  1652. }else{
  1653. $option_item_value_id = M('lionfish_comshop_goods_option_item_value')->add( $snailfish_goods_option_item_value_data );
  1654. }
  1655. $save_goods_option_item_value_arr[] = $option_item_value_id;
  1656. //M('lionfish_comshop_goods_option_item_value')->add($snailfish_goods_option_item_value_data);
  1657. }
  1658. if( empty($save_goods_option_item_value_arr) )
  1659. {
  1660. M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id ) )->delete();
  1661. }else{
  1662. $save_goods_option_item_value_str = implode(',', $save_goods_option_item_value_arr );
  1663. M('lionfish_comshop_goods_option_item_value')->where('goods_id=' . $goods_id.' and id not in('.$save_goods_option_item_value_str.')' )->delete();
  1664. }
  1665. //更新库存 total
  1666. $up_goods_data = array();
  1667. $up_goods_data['total'] = $total;
  1668. M('lionfish_comshop_goods')->where( array('id' => $goods_id) )->save( $up_goods_data );
  1669. }
  1670. else{
  1671. M('lionfish_comshop_goods_option')->where( array('goods_id' => $goods_id ) )->delete();
  1672. M('lionfish_comshop_goods_option_item')->where( array('goods_id' => $goods_id ) )->delete();
  1673. M('lionfish_comshop_goods_option_item_value')->where( array('goods_id' => $goods_id ) )->delete();
  1674. }
  1675. if( !empty($save_goods_option_arr) )
  1676. {
  1677. foreach( $save_goods_option_arr as $k_option_id )
  1678. {
  1679. $tp_item_val = M('lionfish_comshop_goods_option_item')->where( array('goods_option_id' => $k_option_id ) )->find();
  1680. if( empty($tp_item_val) )
  1681. {
  1682. M('lionfish_comshop_goods_option')->where( array('id' => $k_option_id ) )->delete();
  1683. }
  1684. }
  1685. }
  1686. //stock hascommission
  1687. //规格插入
  1688. //lionfish_comshop_good_commiss
  1689. M('lionfish_comshop_good_commiss')->where( array('goods_id' => $goods_id ) )->delete();
  1690. $post_data_commiss = array();
  1691. $post_data_commiss['goods_id'] = $goods_id;
  1692. $post_data_commiss['nocommission'] = I('post.nocommission',0,'intval');
  1693. $post_data_commiss['hascommission'] = I('post.hascommission',0,'intval');
  1694. $post_data_commiss['commission_type'] = I('post.commission_type',0,'intval');
  1695. $post_data_commiss['commission1_rate'] = I('post.commission1_rate');
  1696. $post_data_commiss['commission1_pay'] = I('post.commission1_pay');
  1697. $post_data_commiss['commission2_rate'] = I('post.commission2_rate');
  1698. $post_data_commiss['commission2_pay'] = I('post.commission2_pay');
  1699. $post_data_commiss['commission3_rate'] = I('post.commission3_rate');
  1700. $post_data_commiss['commission3_pay'] = I('post.commission3_pay');
  1701. M('lionfish_comshop_good_commiss')->add( $post_data_commiss );
  1702. //变更预售商品begin
  1703. $new_goods_type_info = M('lionfish_comshop_goods')->field('type')->where( ['id' => $goods_id ] )->find();
  1704. if($new_goods_type_info['type'] == 'presale' )
  1705. {
  1706. D('Seller/GoodsPresale')->modifyGoodsPresale( $goods_id );
  1707. }
  1708. //end
  1709. //虚拟卡密
  1710. if( isset($_POST['is_virtualcard_goods']) && $_POST['is_virtualcard_goods'] == 1 )
  1711. {
  1712. D('Seller/VirtualCard')->modifyGoodsVirtualCard( $goods_id );
  1713. }
  1714. D('Seller/Redisorder')->sysnc_goods_total($goods_id);
  1715. }
  1716. }
  1717. ?>