Shop.php 54 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809
  1. <?php
  2. namespace App\Api;
  3. use PhalApi\Api;
  4. use App\Domain\Shop as Domain_Shop;
  5. /**
  6. * Shop-店铺
  7. */
  8. class Shop extends Api {
  9. public function getRules() {
  10. return array(
  11. 'getBond'=>array(
  12. 'uid' => array('name' => 'uid', 'type' => 'int', 'require' => true, 'desc' => '用户ID'),
  13. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  14. ),
  15. 'deductBond'=>array(
  16. 'uid' => array('name' => 'uid', 'type' => 'int', 'require' => true, 'desc' => '用户ID'),
  17. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  18. 'time' => array('name' => 'time', 'type' => 'string', 'desc' => '当前时间戳'),
  19. 'sign' => array('name' => 'sign', 'type' => 'string', 'desc' => '签名'),
  20. ),
  21. 'shopApply'=>array(
  22. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  23. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  24. 'name' => array('name' => 'name', 'type' => 'string', 'desc' => '店铺名称'),
  25. 'thumb' => array('name' => 'thumb', 'type' => 'string', 'desc' => '店铺图片'),
  26. 'type' => array('name' => 'type', 'type' => 'int', 'desc' => '店铺类型 1 乡村云店 2 都市云店 3 一线云店 4 其他'),
  27. 'username' => array('name' => 'username', 'type' => 'string', 'desc' => '姓名'),
  28. 'cardno' => array('name' => 'cardno', 'type' => 'string', 'desc' => '身份证号'),
  29. 'classid' => array('name' => 'classid', 'type' => 'string', 'desc' => '经营类目'),
  30. 'contact' => array('name' => 'contact', 'type' => 'string', 'desc' => '经营联系人'),
  31. 'country_code' => array('name' => 'country_code', 'type' => 'int', 'desc' => '国家代号','default'=>'86'),
  32. 'phone' => array('name' => 'phone', 'type' => 'string', 'desc' => '手机号'),
  33. 'province' => array('name' => 'province', 'type' => 'string', 'desc' => '省份'),
  34. 'city' => array('name' => 'city', 'type' => 'string', 'desc' => '市'),
  35. 'area' => array('name' => 'area', 'type' => 'string', 'desc' => '地区'),
  36. 'address' => array('name' => 'address', 'type' => 'string', 'desc' => '详细地址'),
  37. 'service_phone' => array('name' => 'service_phone', 'type' => 'string', 'desc' => '客服电话'),
  38. 'receiver' => array('name' => 'receiver', 'type' => 'string', 'desc' => '收货人'),
  39. 'receiver_phone' => array('name' => 'receiver_phone', 'type' => 'string', 'desc' => '收货人手机号'),
  40. 'receiver_province' => array('name' => 'receiver_province', 'type' => 'string', 'desc' => '收货人省份'),
  41. 'receiver_city' => array('name' => 'receiver_city', 'type' => 'string', 'desc' => '收货人市'),
  42. 'receiver_area' => array('name' => 'receiver_area', 'type' => 'string', 'desc' => '收货人地区'),
  43. 'receiver_address' => array('name' => 'receiver_address', 'type' => 'string', 'desc' => '收货人详细地址'),
  44. 'certificate' => array('name' => 'certificate', 'type' => 'string', 'desc' => '营业执照'),
  45. 'other' => array('name' => 'other', 'type' => 'string', 'desc' => '其他证件'),
  46. ),
  47. 'getShopApplyInfo'=>array(
  48. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  49. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户Token'),
  50. 'time' => array('name' => 'time', 'type' => 'string', 'desc' => '时间戳'),
  51. 'sign' => array('name' => 'sign', 'type' => 'string', 'desc' => '签名'),
  52. ),
  53. 'setSale' => array(
  54. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  55. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  56. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  57. 'issale' => array('name' => 'issale', 'type' => 'int', 'desc' => '在售状态,0否1是'),
  58. ),
  59. 'getShop' => array(
  60. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  61. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  62. 'touid' => array('name' => 'touid', 'type' => 'int', 'desc' => '对方ID'),
  63. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  64. ),
  65. 'getSale' => array(
  66. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  67. 'liveuid' => array('name' => 'liveuid', 'type' => 'int', 'desc' => '主播ID'),
  68. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  69. ),
  70. 'getShopInfo' => array(
  71. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  72. 'touid' => array('name' => 'touid', 'type' => 'int', 'desc' => '对方ID'),
  73. ),
  74. 'getGoodsInfo'=>array(
  75. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  76. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  77. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  78. ),
  79. 'getGoodsCommentList'=>array(
  80. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  81. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  82. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  83. 'type'=>array('name' => 'type', 'type' => 'string', 'desc' => '评论类型 all 全部 img 有图 video 有视频 append 追加'),
  84. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  85. ),
  86. 'searchShopGoods'=>array(
  87. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  88. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  89. 'keywords' => array('name' => 'keywords', 'type' => 'string', 'desc' => '关键词'),
  90. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  91. ),
  92. 'setCollect' => array(
  93. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  94. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  95. 'goodsid' => array('name' => 'goodsid', 'type' => 'int','require' => true, 'desc' => '商品ID'),
  96. ),
  97. 'getGoodsCollect' => array(
  98. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  99. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  100. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  101. ),
  102. 'getBusinessCategory' => array(
  103. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  104. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  105. ),
  106. 'getApplyBusinessCategory' => array(
  107. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  108. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  109. ),
  110. 'applyBusinessCategory' => array(
  111. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  112. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  113. 'classid' => array('name' => 'classid', 'type' => 'string', 'desc' => '经营类目'),
  114. ),
  115. 'getGoodExistence' => array(
  116. 'uid' => array('name' => 'uid', 'type' => 'int', 'require' => true, 'desc' => '用户ID'),
  117. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '商品ID'),
  118. ),
  119. 'setPlatformGoodsSale' => array(
  120. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  121. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  122. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  123. 'issale' => array('name' => 'issale', 'type' => 'int', 'desc' => '在售状态,0否1是'),
  124. ),
  125. 'searchOnsalePlatformGoods'=>array(
  126. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  127. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  128. 'keywords' => array('name' => 'keywords', 'type' => 'string', 'desc' => '关键词'),
  129. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  130. ),
  131. 'getOnsalePlatformGoods'=>array(
  132. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  133. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  134. 'touid' => array('name' => 'touid', 'type' => 'int', 'desc' => '对方ID'),
  135. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  136. ),
  137. 'upHits' => array(
  138. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  139. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  140. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  141. ),
  142. 'batchDelCollect'=>array(
  143. 'uid' => array('name' => 'uid', 'type' => 'int', 'min' => 1, 'require' => true, 'desc' => '用户ID'),
  144. 'token' => array('name' => 'token', 'type' => 'string', 'require' => true, 'desc' => '用户token'),
  145. 'goodsids' => array('name' => 'goodsids', 'type' => 'string','require' => true, 'desc' => '商品ID集合'),
  146. ),
  147. 'getVideoBindGoodsInfo'=>array(
  148. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  149. ),
  150. 'setShowGoods' => array(
  151. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '用户ID'),
  152. 'token' => array('name' => 'token', 'type' => 'string', 'desc' => '用户token'),
  153. 'goodsid' => array('name' => 'goodsid', 'type' => 'int', 'desc' => '商品ID'),
  154. 'isshow' => array('name' => 'isshow', 'type' => 'int', 'desc' => '展示状态,0 否 1 是'),
  155. ),
  156. 'getShopGoodsList'=>array(
  157. 'uid' => array('name' => 'uid', 'type' => 'int', 'desc' => '店铺用户ID'),
  158. 'three_classid' => array('name' => 'three_classid', 'type' => 'int', 'desc' => '商品三级分类id'),
  159. 'p' => array('name' => 'p', 'type' => 'int', 'default'=>'1', 'desc' => '页码'),
  160. ),
  161. );
  162. }
  163. /**
  164. *获取保证金
  165. *@desc 用于获取保证金设置数和用户是否缴纳保证金
  166. *@return int code 状态码,0表示成功
  167. *@return array info 状态码,0表示成功
  168. *@return array info[0].shop_bond 后台设置的保证金金额
  169. *@return array info[0].bond_status 用户是否缴纳保证金
  170. *@return string msg 提示信息
  171. */
  172. public function getBond(){
  173. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  174. $uid=\App\checkNull($this->uid);
  175. $token=\App\checkNull($this->token);
  176. $checkToken=\App\checkToken($uid,$token);
  177. if($checkToken==700){
  178. $rs['code'] = $checkToken;
  179. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  180. return $rs;
  181. }else if($checkToken==10020){
  182. $rs['code'] = 700;
  183. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  184. return $rs;
  185. }
  186. $configpri=\App\getConfigPri();
  187. $shop_bond=$configpri['shop_bond'];
  188. $rs['info'][0]['shop_bond']=$shop_bond;
  189. $domain=new Domain_Shop();
  190. $res=$domain->getBond($uid);
  191. if($res==-1){ //没有缴纳保证金
  192. $rs['info'][0]['bond_status']='0';
  193. }
  194. if($res==1){ //保证金已退回
  195. $rs['info'][0]['bond_status']='0';
  196. }
  197. if($res==2){ //保证金已缴纳/已处理
  198. $rs['info'][0]['bond_status']='1';
  199. }
  200. return $rs;
  201. }
  202. /**
  203. *缴纳保证金
  204. *@desc 用于用户缴纳保证金
  205. *@return int code 状态码,0表示成功
  206. *@return array info 状态码,0表示成功
  207. *@return string msg 提示信息
  208. */
  209. public function deductBond(){
  210. $rs = array('code' => 0, 'msg' => \PhalApi\T('保证金缴纳成功'), 'info' => array());
  211. $uid=\App\checkNull($this->uid);
  212. $token=\App\checkNull($this->token);
  213. $time=\App\checkNull($this->time);
  214. $sign=\App\checkNull($this->sign);
  215. $checkToken=\App\checkToken($uid,$token);
  216. if($checkToken==700){
  217. $rs['code'] = $checkToken;
  218. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  219. return $rs;
  220. }else if($checkToken==10020){
  221. $rs['code'] = 700;
  222. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  223. return $rs;
  224. }
  225. if(!$time){
  226. $rs['code'] = 1001;
  227. $rs['msg'] = \PhalApi\T('参数错误,请重试');
  228. return $rs;
  229. }
  230. $now=time();
  231. if($now-$time>300){
  232. $rs['code']=1001;
  233. $rs['msg']=\PhalApi\T('参数错误');
  234. return $rs;
  235. }
  236. if(!$sign){
  237. $rs['code']=1001;
  238. $rs['msg']=\PhalApi\T('参数错误,请重试');
  239. return $rs;
  240. }
  241. $checkdata=array(
  242. 'uid'=>$uid,
  243. 'token'=>$token,
  244. 'time'=>$time,
  245. );
  246. $issign=\App\checkSign($checkdata,$sign);
  247. if(!$issign){
  248. $rs['code']=1001;
  249. $rs['msg']=\PhalApi\T('签名错误');
  250. return $rs;
  251. }
  252. $configpri=\App\getConfigPri();
  253. $shop_bond=isset($configpri['shop_bond'])? $configpri['shop_bond']:'';
  254. if(!$shop_bond){
  255. $rs['code']=1002;
  256. $rs['msg']=\PhalApi\T('保证金设置无法缴纳');
  257. return $rs;
  258. }
  259. $domain=new Domain_Shop();
  260. $result=$domain->deductBond($uid,$shop_bond);
  261. if($result==1001){
  262. $rs['code']=1003;
  263. $rs['msg']=\PhalApi\T('已缴纳保证金');
  264. return $rs;
  265. }
  266. if($result==1002){
  267. $rs['code']=1004;
  268. $rs['msg']=\PhalApi\T('余额不足');
  269. return $rs;
  270. }
  271. if($result==1003){
  272. $rs['code']=1005;
  273. $rs['msg']=\PhalApi\T('保证金缴纳失败');
  274. return $rs;
  275. }
  276. return $rs;
  277. }
  278. /**
  279. * 获取一级商品分类
  280. * @desc 用于获取一级商品分类
  281. * @return int code 操作码,0表示成功
  282. * @return array info
  283. * @return array info[].gc_id 商品分类id
  284. * @return array info[].gc_name 商品分类名称
  285. * @return string msg 提示信息
  286. */
  287. public function getOneGoodsClass(){
  288. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  289. $domain=new Domain_Shop();
  290. $list=$domain->getOneGoodsClass();
  291. $rs['info']=$list;
  292. return $rs;
  293. }
  294. /**
  295. * 申请店铺
  296. * @desc 用于申请店铺
  297. * @return int code 操作码,0表示成功
  298. * @return array info
  299. * @return string msg 提示信息
  300. */
  301. public function shopApply(){
  302. $rs = array('code' => 0, 'msg' => \PhalApi\T('店铺申请成功'), 'info' => array());
  303. $uid=\App\checkNull($this->uid);
  304. $token=\App\checkNull($this->token);
  305. $name=\App\checkNull($this->name);
  306. $thumb=\App\checkNull($this->thumb);
  307. $type=\App\checkNull($this->type);
  308. $username=\App\checkNull($this->username);
  309. $username=\App\checkNull($this->username);
  310. $cardno=\App\checkNull($this->cardno);
  311. $classid=\App\checkNull($this->classid);
  312. $contact=\App\checkNull($this->contact);
  313. $country_code=\App\checkNull($this->country_code);
  314. $phone=\App\checkNull($this->phone);
  315. $province=\App\checkNull($this->province);
  316. $city=\App\checkNull($this->city);
  317. $area=\App\checkNull($this->area);
  318. $address=\App\checkNull($this->address);
  319. $service_phone=\App\checkNull($this->service_phone);
  320. $receiver=\App\checkNull($this->receiver);
  321. $receiver_phone=\App\checkNull($this->receiver_phone);
  322. $receiver_province=\App\checkNull($this->receiver_province);
  323. $receiver_city=\App\checkNull($this->receiver_city);
  324. $receiver_area=\App\checkNull($this->receiver_area);
  325. $receiver_address=\App\checkNull($this->receiver_address);
  326. $certificate=\App\checkNull($this->certificate);
  327. $other=\App\checkNull($this->other);
  328. $checkToken=\App\checkToken($uid,$token);
  329. if($checkToken==700){
  330. $rs['code'] = $checkToken;
  331. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  332. return $rs;
  333. }else if($checkToken==10020){
  334. $rs['code'] = 700;
  335. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  336. return $rs;
  337. }
  338. //判断用户是否实名认证
  339. $isauth=\App\isAuth($uid);
  340. if(!$isauth){
  341. $rs['code']=1001;
  342. $rs['msg']=\PhalApi\T('请先进行实名认证');
  343. return $rs;
  344. }
  345. if(!$name){
  346. $rs['code']=1001;
  347. $rs['msg']=\PhalApi\T('请填写店铺名称');
  348. return $rs;
  349. }
  350. if(!$thumb){
  351. $rs['code']=1001;
  352. $rs['msg']=\PhalApi\T('请上传店铺图片');
  353. return $rs;
  354. }
  355. if(!$type){
  356. $type = 4;
  357. }
  358. if(!$username){
  359. $rs['code']=1001;
  360. $rs['msg']=\PhalApi\T('请填写姓名');
  361. return $rs;
  362. }
  363. if(mb_strlen($username)>20){
  364. $rs['code']=1001;
  365. $rs['msg']=\PhalApi\T('姓名长度不能超过20个字');
  366. return $rs;
  367. }
  368. if(!$cardno){
  369. $rs['code']=1001;
  370. $rs['msg']=\PhalApi\T('请填写身份证号');
  371. return $rs;
  372. }
  373. if(!\App\isCreditNo($cardno)){
  374. $rs['code']=1001;
  375. $rs['msg']=\PhalApi\T('身份证号不合法');
  376. return $rs;
  377. }
  378. if(!$classid){
  379. $rs['code']=1001;
  380. $rs['msg']=\PhalApi\T('请选择经营类目');
  381. return $rs;
  382. }
  383. $classid_arr=explode(",",$classid);
  384. $domain=new Domain_Shop();
  385. $class_list=$domain->getOneGoodsClass();
  386. $is_exist=1;
  387. $gc_ids=array_column($class_list,"gc_id");
  388. foreach ($classid_arr as $k => $v) {
  389. if(!in_array($v, $gc_ids)){
  390. $is_exist=0;
  391. break;
  392. }
  393. }
  394. if(!$is_exist){
  395. $rs['code']=1001;
  396. $rs['msg']=\PhalApi\T('主营类目有误');
  397. return $rs;
  398. }
  399. if(!$contact){
  400. $rs['code']=1001;
  401. $rs['msg']=\PhalApi\T('请填写经营者联系人');
  402. return $rs;
  403. }
  404. if(mb_strlen($contact)>20){
  405. $rs['code']=1001;
  406. $rs['msg']=\PhalApi\T('经营者联系人不能超过20个字');
  407. return $rs;
  408. }
  409. if(!$phone){
  410. $rs['code']=1001;
  411. $rs['msg']=\PhalApi\T('请填写经营者手机号');
  412. return $rs;
  413. }
  414. if(!\App\checkMobile($phone)){
  415. $rs['code']=1001;
  416. $rs['msg']=\PhalApi\T('手机号码错误');
  417. return $rs;
  418. }
  419. if(!$province){
  420. $rs['code']=1001;
  421. $rs['msg']=\PhalApi\T('请选择所在省份');
  422. return $rs;
  423. }
  424. if(!$city){
  425. $rs['code']=1001;
  426. $rs['msg']=\PhalApi\T('请选择所在市');
  427. return $rs;
  428. }
  429. if(!$area){
  430. $rs['code']=1001;
  431. $rs['msg']=\PhalApi\T('请选择所在地区');
  432. return $rs;
  433. }
  434. if(!$address){
  435. $rs['code']=1001;
  436. $rs['msg']=\PhalApi\T('请填写详细地址');
  437. return $rs;
  438. }
  439. if(mb_strlen($address)>50){
  440. $rs['code']=1001;
  441. $rs['msg']=\PhalApi\T('详细地址必须在50字以内');
  442. return $rs;
  443. }
  444. if($service_phone){
  445. $checkmobile=\App\checkMobile($service_phone);
  446. if(!$checkmobile){
  447. $rs['code']=1001;
  448. $rs['msg']=\PhalApi\T('客服电话错误');
  449. return $rs;
  450. }
  451. }else{
  452. $service_phone=$phone;
  453. }
  454. if($receiver){
  455. if(mb_strlen($receiver)>20){
  456. $rs['code']=1001;
  457. $rs['msg']=\PhalApi\T('收货人姓名长度不能超过20个字');
  458. return $rs;
  459. }
  460. }else{
  461. $receiver=$username;
  462. }
  463. if($receiver_phone){
  464. $checkmobile=\App\checkMobile($receiver_phone);
  465. if(!$checkmobile){
  466. $rs['code']=1001;
  467. $rs['msg']=\PhalApi\T('退货电话错误');
  468. return $rs;
  469. }
  470. }else{
  471. $receiver_phone=$phone;
  472. }
  473. if(!$receiver_province){
  474. $receiver_province=$province;
  475. }
  476. if(!$receiver_city){
  477. $receiver_city=$city;
  478. }
  479. if(!$receiver_area){
  480. $receiver_area=$area;
  481. }
  482. if(!$receiver_address){
  483. $receiver_address=$address;
  484. }
  485. if(!$certificate){
  486. $rs['code']=1001;
  487. $rs['msg']=\PhalApi\T('请上传营业执照');
  488. return $rs;
  489. }
  490. if(!$other){
  491. $rs['code']=1001;
  492. $rs['msg']=\PhalApi\T('请上传其他证件');
  493. return $rs;
  494. }
  495. //判断保证金是否缴纳
  496. $bond_res=$domain->getBond($uid);
  497. if($bond_res==-1 ||$bond_res==1){ //没有缴纳保证金
  498. $rs['code']=1001;
  499. $rs['msg']=\PhalApi\T('请缴纳保证金');
  500. return $rs;
  501. }
  502. //判断店铺审核状态
  503. $apply_info=$domain->getShopApplyInfo($uid);
  504. $apply_status=$apply_info['apply_status']; //-1 无审核记录 0 审核中 1 审核通过 2 审核拒绝
  505. if($apply_status==0){
  506. $rs['code']=1001;
  507. $rs['msg']=\PhalApi\T('店铺审核中,请耐心等待');
  508. return $rs;
  509. }
  510. if($apply_status==1){
  511. $rs['code']=1001;
  512. $rs['msg']=\PhalApi\T('店铺已审核通过');
  513. return $rs;
  514. }
  515. $data=array(
  516. 'name'=>$name,
  517. 'thumb'=>\App\setCloudType($thumb),
  518. 'type'=>$type,
  519. 'username'=>$username,
  520. 'cardno'=>$cardno,
  521. 'contact'=>$contact,
  522. 'country_code'=>$country_code,
  523. 'phone'=>$phone,
  524. 'province'=>$province,
  525. 'city'=>$city,
  526. 'area'=>$area,
  527. 'address'=>$address,
  528. 'service_phone'=>$service_phone,
  529. 'receiver'=>$receiver,
  530. 'receiver_phone'=>$receiver_phone,
  531. 'receiver_province'=>$receiver_province,
  532. 'receiver_city'=>$receiver_city,
  533. 'receiver_area'=>$receiver_area,
  534. 'receiver_address'=>$receiver_address,
  535. 'certificate'=>\App\setCloudType($certificate),
  536. 'other'=>\App\setCloudType($other),
  537. 'status'=>1
  538. );
  539. if($apply_status==-1){ //无审核记录
  540. $data['uid']=$uid;
  541. $data['addtime']=time();
  542. }
  543. if($apply_status==2){ //被拒绝
  544. $data['uptime']=time();
  545. }
  546. $configpri=\App\getConfigPri();
  547. $shop_switch=$configpri['show_switch'];
  548. $shoporder_percent=$configpri['shoporder_percent'];
  549. $data['order_percent']=isset($shoporder_percent)?$shoporder_percent:0; //订单抽成比例
  550. if($shop_switch){
  551. $data['status']=0;
  552. }
  553. $res=$domain->shopApply($uid,$data,$apply_status,$classid_arr);
  554. if($res==1001){
  555. $rs['code']=1002;
  556. $rs['msg']=\PhalApi\T('店铺审核提交失败');
  557. return $rs;
  558. }
  559. return $rs;
  560. }
  561. /**
  562. * 用户获取店铺申请信息
  563. * @desc 用于 用户获取店铺申请信息[只有在店铺审核状态为通过或拒绝时才返回信息]
  564. * @return int code 操作码,0表示成功
  565. * @return array info
  566. * @return string msg 提示信息
  567. */
  568. public function getShopApplyInfo(){
  569. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  570. $uid=\App\checkNull($this->uid);
  571. $token=\App\checkNull($this->token);
  572. $time=\App\checkNull($this->time);
  573. $sign=\App\checkNull($this->sign);
  574. $checkToken=\App\checkToken($uid,$token);
  575. if($checkToken==700){
  576. $rs['code'] = $checkToken;
  577. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  578. return $rs;
  579. }else if($checkToken==10020){
  580. $rs['code'] = 700;
  581. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  582. return $rs;
  583. }
  584. if(!$time){
  585. $rs['code'] = 1001;
  586. $rs['msg'] = \PhalApi\T('参数错误');
  587. return $rs;
  588. }
  589. $now=time();
  590. if($now-$time>300){
  591. $rs['code']=1001;
  592. $rs['msg']=\PhalApi\T('参数错误');
  593. return $rs;
  594. }
  595. if(!$sign){
  596. $rs['code'] = 1001;
  597. $rs['msg'] = \PhalApi\T('参数错误');
  598. return $rs;
  599. }
  600. $checkdata=array(
  601. 'uid'=>$uid,
  602. 'token'=>$token,
  603. 'time'=>$time
  604. );
  605. $issign=\App\checkSign($checkdata,$sign);
  606. if(!$issign){
  607. $rs['code']=1001;
  608. $rs['msg']=\PhalApi\T('签名错误');
  609. return $rs;
  610. }
  611. $domain=new Domain_Shop();
  612. $res=$domain->getShopApplyInfo($uid);
  613. if($res['apply_status']==-1){
  614. $rs['code']=1001;
  615. $rs['msg']=\PhalApi\T('未提交店铺审核');
  616. return $rs;
  617. }
  618. if($res['apply_status']==0){
  619. $rs['code']=1001;
  620. $rs['msg']=\PhalApi\T('店铺正在审核中');
  621. return $rs;
  622. }
  623. $rs['info'][0]=$res['apply_info'];
  624. return $rs;
  625. }
  626. /**
  627. * 店铺信息(带商品列表)
  628. * @desc 用于获取店铺信息(带商品列表)
  629. * @return int code 操作码,0表示成功
  630. * @return array info
  631. * @return object info[0].shop_info 店铺信息
  632. * @return string info[0].shop_info.uid 店铺用户ID
  633. * @return string info[0].shop_info.user_nickname 店铺用户昵称
  634. * @return string info[0].shop_info.sale_nums 店铺总销量
  635. * @return string info[0].shop_info.quality_points 店铺商品质量评分
  636. * @return string info[0].shop_info.service_points 店铺服务质量评分
  637. * @return string info[0].shop_info.express_points 店铺物流速度评分
  638. * @return string info[0].shop_info.certificate 店铺营业执照
  639. * @return string info[0].shop_info.other 店铺其他证件
  640. * @return string info[0].shop_info.service_phone 店铺客服热线
  641. * @return string info[0].shop_infos.province 店铺省份
  642. * @return string info[0].shop_info.city 店铺城市
  643. * @return string info[0].shop_info.area 店铺所在地区
  644. * @return string info[0].shop_info.name 店铺名称
  645. * @return string info[0].shop_info.avatar 商品封面
  646. * @return string info[0].shop_info.composite_points 店铺综合评分
  647. * @return string info[0].shop_info.goods_nums 店铺在售商品数量
  648. * @return string info[0].shop_info.address_format 店铺地址格式化
  649. * @return string info[0].shop_info.isattention 用户是否关注了店铺主播 0 否 1 是
  650. * @return string info[0].list[].id 商品ID
  651. * @return string info[0].list[].name 商品名
  652. * @return string info[0].list[].thumb 商品封面
  653. * @return string info[0].list[].sale_nums 商品销量
  654. * @return string info[0].list[].price 现价
  655. * @return string msg 提示信息
  656. */
  657. public function getShop() {
  658. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  659. $uid=\App\checkNull($this->uid);
  660. $token=\App\checkNull($this->token);
  661. $touid=\App\checkNull($this->touid);
  662. $p=\App\checkNull($this->p);
  663. if($uid>0){
  664. $checkToken=\App\checkToken($uid,$token);
  665. if($checkToken==700){
  666. $rs['code'] = $checkToken;
  667. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  668. return $rs;
  669. }else if($checkToken==10020){
  670. $rs['code'] = 700;
  671. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  672. return $rs;
  673. }
  674. }
  675. $domain = new Domain_Shop();
  676. $info = $domain->getShop($touid);
  677. if(!$info){
  678. $rs['code']=1001;
  679. $rs['msg']=\PhalApi\T('店铺不存在');
  680. return $rs;
  681. }
  682. $list=[];
  683. $nums=0;
  684. if($touid>1){
  685. $where=[];
  686. $where['uid']=$touid;
  687. $where['status']=1;
  688. $list = $domain->getGoodsList($where,$p);
  689. $nums = $domain->countGoods($where);
  690. }
  691. $info['goods_nums']=$nums; //店铺在售商品重新赋值
  692. //获取代售的平台商品数量
  693. $where1=[];
  694. $where1['uid']=$touid;
  695. $where1['status']=1;
  696. $platform_nums = $domain->countPlatformSale($where1);
  697. $info['platform_goods_nums']=$platform_nums;
  698. //判断用户是否关注了店铺主播
  699. $isattention=\App\isAttention($uid,$touid);
  700. $info['isattention']=$isattention;
  701. $rs['info'][0]['shop_info']=$info;
  702. $rs['info'][0]['list']=$list;
  703. return $rs;
  704. }
  705. /**
  706. * 店铺商品列表
  707. * @desc 用于获取店铺商品列表
  708. * @return int code 操作码,0表示成功
  709. * @return array info
  710. * @return string info.goods_nums 商品总数量
  711. * @return string info.goods_list 商品信息
  712. * @return string info.goods_list[].id 商品ID
  713. * @return string info.goods_list[].name 商品名
  714. * @return string info.goods_list[].thumb 商品封面
  715. * @return string info.goods_list[].sale_nums 商品销量
  716. * @return string info.goods_list[].price 现价
  717. * @return string msg 提示信息
  718. */
  719. public function getShopGoodsList() {
  720. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  721. $uid=\App\checkNull($this->uid);
  722. $three_classid=\App\checkNull($this->three_classid);
  723. $p=\App\checkNull($this->p);
  724. $domain = new Domain_Shop();
  725. $info = $domain->getShop($uid);
  726. if(!$info){
  727. $rs['code']=1001;
  728. $rs['msg']=\PhalApi\T('店铺不存在');
  729. return $rs;
  730. }
  731. $where=[];
  732. $where['uid']=$uid;
  733. $where['status']=1;
  734. if(!empty($three_classid)){
  735. $where['three_classid']=$three_classid;
  736. }
  737. $list = $domain->getGoodsList($where,$p);
  738. $nums = $domain->countGoods($where);
  739. // $data['goods_nums']=$nums; //店铺在售商品重新赋值
  740. // $data['goods_list'] = $list;
  741. $rs['info']['goods_nums']=$nums;
  742. $rs['info']['goods_list']=$list;
  743. return $rs;
  744. }
  745. /**
  746. * 在售商品
  747. * @desc 用于用户获取直播间在售商品
  748. * @return int code 操作码,0表示成功
  749. * @return array info
  750. * @return string info[0].nums 总数
  751. * @return array info[0].list 商品列表
  752. * @return string info[0].list[].id 商品id
  753. * @return string info[0].list[].name 商品名
  754. * @return string info[0].list[].thumb 商品封面
  755. * @return string info[0].list[].hits 查看次数
  756. * @return string info[0].list[].price 商品价格
  757. * @return string msg 提示信息
  758. */
  759. public function getSale(){
  760. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  761. $uid=\App\checkNull($this->uid);
  762. $liveuid=\App\checkNull($this->liveuid);
  763. $p=\App\checkNull($this->p);
  764. $domain = new Domain_Shop();
  765. $nums = $domain->countSale($liveuid);
  766. $where1=[];
  767. $where1['uid']=$liveuid;
  768. $where1['status']=1;
  769. $where1['issale']=1;
  770. $platform_nums=$domain->countPlatformSale($where1);
  771. $total=$nums+$platform_nums;
  772. $where=[];
  773. $where['uid=?']=$liveuid;
  774. $where['status']=1;
  775. $where['issale']=1;
  776. $list = $domain->getGoodsList($where,$p);
  777. $where1=[];
  778. $where1['uid=?']=$liveuid;
  779. $where1['status']=1;
  780. $onsale_platform_list=$domain->onsalePlatformList($where1,$p); //加$p是为了适应小程序请求,其实是一次性返回数据
  781. $new_list=array_merge($onsale_platform_list,$list);
  782. $rs['info'][0]['nums']=(string)$total;
  783. $rs['info'][0]['list']=$new_list;
  784. return $rs;
  785. }
  786. /**
  787. * 主播增删自己发布的在售商品
  788. * @desc 用于主播增删自己发布的在售商品
  789. * @return int code 操作码,0表示成功
  790. * @return array info
  791. * @return string msg 提示信息
  792. */
  793. public function setSale() {
  794. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  795. $uid=\App\checkNull($this->uid);
  796. $token=\App\checkNull($this->token);
  797. $goodsid=\App\checkNull($this->goodsid);
  798. $issale=\App\checkNull($this->issale);
  799. if($uid<0 || $token=='' || $goodsid<0){
  800. $rs['code'] = 1000;
  801. $rs['msg'] = \PhalApi\T('信息错误');
  802. return $rs;
  803. }
  804. $checkToken=\App\checkToken($uid,$token);
  805. if($checkToken==700){
  806. $rs['code'] = $checkToken;
  807. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  808. return $rs;
  809. }else if($checkToken==10020){
  810. $rs['code'] = 700;
  811. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  812. return $rs;
  813. }
  814. $domain = new Domain_Shop();
  815. $res = $domain->setSale($uid,$goodsid,$issale);
  816. return $res;
  817. }
  818. /**
  819. * 店铺信息(不带商品列表)
  820. * @desc 用于获取店铺信息(不带商品列表)
  821. * @return int code 操作码,0表示成功
  822. * @return array info
  823. * @return string info[0].uid 店铺用户ID
  824. * @return string info[0].sale_nums 店铺总销量
  825. * @return string info[0].quality_points 店铺商品质量评分
  826. * @return string info[0].service_points 店铺服务质量评分
  827. * @return string info[0].express_points 店铺物流速度评分
  828. * @return string info[0].certificate 店铺营业执照
  829. * @return string info[0].other 店铺其他证件
  830. * @return string info[0].service_phone 店铺客服热线
  831. * @return string info[0].province 店铺省份
  832. * @return string info[0].city 店铺城市
  833. * @return string info[0].area 店铺所在地区
  834. * @return string info[0].name 店铺名称
  835. * @return string info[0].name 店铺名称
  836. * @return array info[0].avatar 商品封面
  837. * @return array info[0].composite_points 店铺综合评分
  838. * @return array info[0].goods_nums 店铺在售商品数量
  839. * @return array info[0].address_format 店铺地址格式化
  840. * @return string msg 提示信息
  841. */
  842. public function getShopInfo() {
  843. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  844. $uid=\App\checkNull($this->uid);
  845. $touid=\App\checkNull($this->touid);
  846. $domain = new Domain_Shop();
  847. $info = $domain->getShop($touid);
  848. if(!$info){
  849. $rs['code']=1001;
  850. $rs['msg']=\PhalApi\T('店铺不存在');
  851. return $rs;
  852. }
  853. //判断用户是否关注了店铺主播
  854. $isattention=\App\isAttention($uid,$touid);
  855. $info['isattention']=$isattention;
  856. $rs['info'][0]=$info;
  857. return $rs;
  858. }
  859. /**
  860. * 获取商品详情
  861. * @desc 用于获取商品详情
  862. * @return int code 操作码,0表示成功
  863. * @return array info
  864. * @return int info[0].id 商品id
  865. * @return int info[0].uid 商品所属用户id
  866. * @return string info[0].name 商品名称
  867. * @return int info[0].one_classid 商品一级分类id
  868. * @return int info[0].two_classid 商品二级分类id
  869. * @return int info[0].three_classid 商品三级分类id
  870. * @return string info[0].one_class_name 商品一级分类名称
  871. * @return string info[0].two_class_name 商品二级分类名称
  872. * @return string info[0].three_class_name 商品三级分类名称
  873. * @return string info[0].video_url 商品视频地址
  874. * @return string info[0].thumbs 商品封面图字符串
  875. * @return string info[0].content 商品文字内容
  876. * @return string info[0].pictures 商品内容图片字符串
  877. * @return string info[0].specs 商品规格json字符串
  878. * @return float info[0].postage 商品邮费
  879. * @return string info[0].hits 商品访问量
  880. * @return string info[0].status 商品状态 0审核中 1审核通过 -1商家下架 -2管理员下架
  881. * @return string info[0].sale_nums 商品总销量
  882. * @return string info[0].video_url_format 商品视频地址格式化
  883. * @return array info[0].thumbs_format 商品封面格式化
  884. * @return array info[0].pictures_format 商品内容图片格式化
  885. * @return string info[0].comment_nums 商品评价数
  886. * @return array info[0].shop_info 商品所在店铺信息
  887. * @return string info[0].shop_info.name 商品所在店铺名称
  888. * @return string info[0].shop_info.avatar 商品所在店铺头像
  889. * @return string info[0].shop_info.sale_nums 商品所在店铺总销量
  890. * @return string info[0].shop_info.quality_points 商品所在店铺商品质量评分
  891. * @return string info[0].shop_info.service_points 商品所在店铺服务评分
  892. * @return string info[0].shop_info.express_points 商品所在店铺物流服务评分
  893. * @return string info[0].shop_info.isattention 用户是否关注了店铺主播 0 否 1 是
  894. * @return array info[0].comment_lists 商品评价信息
  895. * @return array info[0].is_sale_platform 用户是否代售了该商品
  896. * @return string msg 提示信息
  897. */
  898. public function getGoodsInfo(){
  899. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  900. $uid=\App\checkNull($this->uid);
  901. $token=\App\checkNull($this->token);
  902. $goodsid=\App\checkNull($this->goodsid);
  903. if($goodsid<0 ){
  904. $rs['code'] = 1000;
  905. $rs['msg'] = \PhalApi\T('信息错误');
  906. return $rs;
  907. }
  908. if($uid>0){
  909. $checkToken=\App\checkToken($uid,$token);
  910. if($checkToken==700){
  911. $rs['code'] = $checkToken;
  912. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  913. return $rs;
  914. }else if($checkToken==10020){
  915. $rs['code'] = 700;
  916. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  917. return $rs;
  918. }
  919. }
  920. $domain = new Domain_Shop();
  921. $res = $domain->getGoodsInfo($uid,$goodsid);
  922. return $res;
  923. }
  924. /**
  925. * 根据不同类型获取商品评论列表
  926. * @desc 用于根据不同类型获取商品评论列表
  927. * @return int code 状态码,0表示成功
  928. * @return string msg 提示信息
  929. * @return array info 返回信息
  930. * @return array info[0]['comment_lists'] 评论列表
  931. * @return object info[0]['comment_lists'][].append_comment 追加评论信息
  932. * @return array info[0]['type_nums'] 不同类型下的评论总数
  933. */
  934. public function getGoodsCommentList(){
  935. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  936. $uid=\App\checkNull($this->uid);
  937. $token=\App\checkNull($this->token);
  938. $goodsid=\App\checkNull($this->goodsid);
  939. $type=\App\checkNull($this->type);
  940. $p=\App\checkNull($this->p);
  941. //all 全部 img 有图 video 有视频 append 追加
  942. if($token=='' || $goodsid<1 ||!in_array($type, ['all','img','video','append'])){
  943. $rs['code'] = 1000;
  944. $rs['msg'] = \PhalApi\T('信息错误');
  945. return $rs;
  946. }
  947. if($uid>0){
  948. $checkToken=\App\checkToken($uid,$token);
  949. if($checkToken==700){
  950. $rs['code'] = $checkToken;
  951. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  952. return $rs;
  953. }else if($checkToken==10020){
  954. $rs['code'] = 700;
  955. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  956. return $rs;
  957. }
  958. }
  959. $domain=new Domain_Shop();
  960. $res=$domain->getGoodsCommentList($uid,$goodsid,$type,$p);
  961. $rs['info'][0]=$res;
  962. return $rs;
  963. }
  964. /**
  965. * 用户发布的商品搜索
  966. * @desc 用于用户发布的商品搜索
  967. * @return int code 状态码,0表示成功
  968. * @return string msg 提示信息
  969. * @return array info 返回信息
  970. * @return int info[0]['id'] 商品ID
  971. * @return string info[0]['name'] 商品名称
  972. * @return string info[0]['price'] 商品价格
  973. * @return string info[0]['thumb'] 商品封面
  974. */
  975. public function searchShopGoods(){
  976. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  977. $uid=\App\checkNull($this->uid);
  978. $token=\App\checkNull($this->token);
  979. $keywords=\App\checkNull($this->keywords);
  980. $p=\App\checkNull($this->p);
  981. $checkToken=\App\checkToken($uid,$token);
  982. if($checkToken==700){
  983. $rs['code'] = $checkToken;
  984. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  985. return $rs;
  986. }else if($checkToken==10020){
  987. $rs['code'] = 700;
  988. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  989. return $rs;
  990. }
  991. //判断用户是否开通了店铺
  992. $is_shop = \App\checkShopIsPass($uid);
  993. if(!$is_shop){
  994. $rs['info']=[];
  995. return $rs;
  996. }
  997. $where=[];
  998. $where['uid=?']=$uid;
  999. $where['status']=1;
  1000. if($keywords!=''){
  1001. $where['name like ?']='%'.$keywords.'%';
  1002. }
  1003. $domain=new Domain_Shop();
  1004. $res=$domain->getGoodsList($where,$p);
  1005. $rs['info']=$res;
  1006. return $rs;
  1007. }
  1008. /**
  1009. * 收藏/取消收藏商品
  1010. * @desc 用于收藏/取消收藏商品
  1011. * @return int code 操作码,0表示成功
  1012. * @return array info
  1013. * @return string info[0].iscollect 收藏信息,0表示未收藏,1表示已收藏
  1014. * @return string msg 提示信息
  1015. */
  1016. public function setCollect() {
  1017. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1018. $uid=\App\checkNull($this->uid);
  1019. $token=\App\checkNull($this->token);
  1020. $goodsid=\App\checkNull($this->goodsid);
  1021. $checkToken=\App\checkToken($uid,$token);
  1022. if($checkToken==700){
  1023. $rs['code'] = $checkToken;
  1024. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1025. return $rs;
  1026. }else if($checkToken==10020){
  1027. $rs['code'] = 700;
  1028. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1029. return $rs;
  1030. }
  1031. $domain = new Domain_Shop();
  1032. $info = $domain->setCollect($uid,$goodsid);
  1033. return $info;
  1034. }
  1035. /**
  1036. * 获取已收藏的商品列表
  1037. * @desc 用于获取已收藏的商品
  1038. * @return int code 操作码,0表示成功
  1039. * @return array info
  1040. * @return string msg 提示信息
  1041. */
  1042. public function getGoodsCollect() {
  1043. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1044. $uid=\App\checkNull($this->uid);
  1045. $token=\App\checkNull($this->token);
  1046. $p=\App\checkNull($this->p);
  1047. $checkToken=\App\checkToken($uid,$token);
  1048. if($checkToken==700){
  1049. $rs['code'] = $checkToken;
  1050. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1051. return $rs;
  1052. }else if($checkToken==10020){
  1053. $rs['code'] = 700;
  1054. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1055. return $rs;
  1056. }
  1057. $domain = new Domain_Shop();
  1058. $info = $domain->getGoodsCollect($uid,$p);
  1059. $rs['info']=$info;
  1060. return $rs;
  1061. }
  1062. /**
  1063. * 获取正在经营的一级商品分类
  1064. * @desc 用于获取一级商品分类
  1065. * @return int code 操作码,0表示成功
  1066. * @return array info
  1067. * @return array info[].gc_id 商品分类id
  1068. * @return array info[].gc_name 商品分类名称
  1069. * @return string msg 提示信息
  1070. */
  1071. public function getBusinessCategory(){
  1072. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1073. $uid=\App\checkNull($this->uid);
  1074. $token=\App\checkNull($this->token);
  1075. $checkToken=\App\checkToken($uid,$token);
  1076. if($checkToken==700){
  1077. $rs['code'] = $checkToken;
  1078. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1079. return $rs;
  1080. }else if($checkToken==10020){
  1081. $rs['code'] = 700;
  1082. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1083. return $rs;
  1084. }
  1085. $domain=new Domain_Shop();
  1086. $list=$domain->getBusinessCategory($uid);
  1087. $rs['info']=$list;
  1088. return $rs;
  1089. }
  1090. /**
  1091. * 获取正在申请的经营类目
  1092. * @desc 用于获取正在申请的经营类目
  1093. * @return int code 操作码,0表示成功
  1094. * @return array info
  1095. * @return array info[].gc_id 商品分类id
  1096. * @return array info[].gc_name 商品分类名称
  1097. * @return string msg 提示信息
  1098. */
  1099. public function getApplyBusinessCategory(){
  1100. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1101. $uid=\App\checkNull($this->uid);
  1102. $token=\App\checkNull($this->token);
  1103. $checkToken=\App\checkToken($uid,$token);
  1104. if($checkToken==700){
  1105. $rs['code'] = $checkToken;
  1106. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1107. return $rs;
  1108. }else if($checkToken==10020){
  1109. $rs['code'] = 700;
  1110. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1111. return $rs;
  1112. }
  1113. $domain=new Domain_Shop();
  1114. $apply=$domain->getApplyBusinessCategory($uid);
  1115. if(!$apply){
  1116. $apply['status']='1';
  1117. }
  1118. $rs['info'][0]=$apply;
  1119. return $rs;
  1120. }
  1121. /**
  1122. * 经营类目提交申请提交
  1123. * @desc 用于获取一级商品分类
  1124. * @return int code 操作码,0表示成功
  1125. * @return array info
  1126. * @return array info[].gc_id 商品分类id
  1127. * @return array info[].gc_name 商品分类名称
  1128. * @return string msg 提示信息
  1129. */
  1130. public function applyBusinessCategory(){
  1131. $rs = array('code' => 0, 'msg' => \PhalApi\T('管理员正在飞速审核中,请耐心等待~'), 'info' => array());
  1132. $uid=\App\checkNull($this->uid);
  1133. $token=\App\checkNull($this->token);
  1134. $classid=\App\checkNull($this->classid);
  1135. $checkToken=\App\checkToken($uid,$token);
  1136. if($checkToken==700){
  1137. $rs['code'] = $checkToken;
  1138. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1139. return $rs;
  1140. }else if($checkToken==10020){
  1141. $rs['code'] = 700;
  1142. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1143. return $rs;
  1144. }
  1145. if(!$classid){
  1146. $rs['code']=1001;
  1147. $rs['msg']=\PhalApi\T('请选择经营类目');
  1148. return $rs;
  1149. }
  1150. $domain=new Domain_Shop();
  1151. $info=$domain->applyBusinessCategory($uid,$classid);
  1152. if($info==1001){
  1153. $rs['code']=1001;
  1154. $rs['msg']=\PhalApi\T("管理员正在飞速审核中,请勿重新提交~");
  1155. return $rs;
  1156. }else if(!$info){
  1157. $rs['code']=1002;
  1158. $rs['msg']=\PhalApi\T("系统繁忙,请稍后操作~");
  1159. return $rs;
  1160. }
  1161. //判断后台是否开启免审
  1162. $configpri=\App\getConfigPri();
  1163. $show_category_switch=$configpri['show_category_switch'];
  1164. if(!$show_category_switch){
  1165. $rs['msg']=\PhalApi\T("申请成功");
  1166. }
  1167. return $rs;
  1168. }
  1169. /**
  1170. * 判断商品是否删除及下架
  1171. * @desc 用于判断商品是否删除及下架
  1172. * @return int code 操作码,0表示成功
  1173. * @return array info
  1174. * @return string msg 提示信息
  1175. */
  1176. public function getGoodExistence(){
  1177. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1178. $uid=\App\checkNull($this->uid);
  1179. $goodsid=\App\checkNull($this->goodsid);
  1180. $domain=new Domain_Shop();
  1181. $info=$domain->getGoodExistence($uid,$goodsid);
  1182. if(!$info){
  1183. $rs['code']=1001;
  1184. $rs['msg']=\PhalApi\T("商品不存在~");
  1185. return $rs;
  1186. }
  1187. return $rs;
  1188. }
  1189. /**
  1190. * 主播增删直播间代售的平台商品
  1191. * @desc 用于主播增删直播间代售的平台商品
  1192. * @return int code 操作码,0表示成功
  1193. * @return array info
  1194. * @return string msg 提示信息
  1195. */
  1196. public function setPlatformGoodsSale() {
  1197. $rs = array('code' => 0, 'msg' => \PhalApi\T('操作成功'), 'info' => array());
  1198. $uid=\App\checkNull($this->uid);
  1199. $token=\App\checkNull($this->token);
  1200. $goodsid=\App\checkNull($this->goodsid);
  1201. $issale=\App\checkNull($this->issale);
  1202. if($uid<0 || $token=='' || $goodsid<0){
  1203. $rs['code'] = 1000;
  1204. $rs['msg'] = \PhalApi\T('信息错误');
  1205. return $rs;
  1206. }
  1207. $checkToken=\App\checkToken($uid,$token);
  1208. if($checkToken==700){
  1209. $rs['code'] = $checkToken;
  1210. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1211. return $rs;
  1212. }else if($checkToken==10020){
  1213. $rs['code'] = 700;
  1214. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1215. return $rs;
  1216. }
  1217. if(!in_array($issale, ['0','1'])){
  1218. $rs['code'] = $checkToken;
  1219. $rs['msg'] = \PhalApi\T('参数错误');
  1220. return $rs;
  1221. }
  1222. $domain = new Domain_Shop();
  1223. $res = $domain->setPlatformGoodsSale($uid,$goodsid,$issale);
  1224. if($res==1001){
  1225. $rs['code'] = 1001;
  1226. $rs['msg'] = \PhalApi\T('未代卖该商品');
  1227. return $rs;
  1228. }
  1229. if($res==1002){
  1230. $rs['code'] = 1002;
  1231. $rs['msg'] = \PhalApi\T('该商品已下架');
  1232. return $rs;
  1233. }
  1234. if($res==1003){
  1235. $rs['code'] = 1003;
  1236. $rs['msg'] = \PhalApi\T('操作失败');
  1237. return $rs;
  1238. }
  1239. if($res==1004){
  1240. $rs['code'] = 1004;
  1241. $rs['msg'] = \PhalApi\T('该商品已经添加到了直播间');
  1242. return $rs;
  1243. }
  1244. if($res==1005){
  1245. $rs['code'] = 1005;
  1246. $rs['msg'] = \PhalApi\T('该商品已经移除了直播间');
  1247. return $rs;
  1248. }
  1249. return $rs;
  1250. }
  1251. /**
  1252. * 用户代售平台的商品搜索
  1253. * @desc 用于用户代售平台的商品搜索
  1254. * @return int code 状态码,0表示成功
  1255. * @return string msg 提示信息
  1256. * @return array info 返回信息
  1257. * @return int info[0]['id'] 商品ID
  1258. * @return string info[0]['name'] 商品名称
  1259. * @return string info[0]['price'] 商品价格
  1260. * @return string info[0]['thumb'] 商品封面
  1261. */
  1262. public function searchOnsalePlatformGoods(){
  1263. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1264. $uid=\App\checkNull($this->uid);
  1265. $token=\App\checkNull($this->token);
  1266. $keywords=\App\checkNull($this->keywords);
  1267. $p=\App\checkNull($this->p);
  1268. $checkToken=\App\checkToken($uid,$token);
  1269. if($checkToken==700){
  1270. $rs['code'] = $checkToken;
  1271. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1272. return $rs;
  1273. }else if($checkToken==10020){
  1274. $rs['code'] = 700;
  1275. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1276. return $rs;
  1277. }
  1278. //判断用户是否开通了店铺
  1279. $is_shop = \App\checkShopIsPass($uid);
  1280. if(!$is_shop){
  1281. $rs['info']=[];
  1282. return $rs;
  1283. }
  1284. $domain=new Domain_Shop();
  1285. $res=$domain->searchOnsalePlatformGoods($uid,$keywords,$p);
  1286. $rs['info']=$res;
  1287. return $rs;
  1288. }
  1289. /**
  1290. * 获取店铺代售平台商品列表
  1291. * @desc 用于获取店铺代售平台商品列表
  1292. * @return int code 状态码,0表示成功
  1293. * @return string msg 提示信息
  1294. * @return array info 返回信息
  1295. * @return int info[].id 返回商品ID
  1296. * @return int info[].name 返回商品名称
  1297. * @return int info[].sale_nums 返回商品销量
  1298. * @return int info[].hits 返回商品访问量
  1299. * @return int info[].type 返回商品类型 2代表平台自营商品
  1300. * @return int info[].thumb 返回商品封面
  1301. * @return int info[].price 返回商品价格
  1302. */
  1303. public function getOnsalePlatformGoods(){
  1304. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1305. $uid=\App\checkNull($this->uid);
  1306. $token=\App\checkNull($this->token);
  1307. $touid=\App\checkNull($this->touid);
  1308. $p=\App\checkNull($this->p);
  1309. if($touid<0 ){
  1310. $rs['code'] = 1000;
  1311. $rs['msg'] = \PhalApi\T('信息错误');
  1312. return $rs;
  1313. }
  1314. if($uid>0){
  1315. $checkToken=\App\checkToken($uid,$token);
  1316. if($checkToken==700){
  1317. $rs['code'] = $checkToken;
  1318. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1319. return $rs;
  1320. }else if($checkToken==10020){
  1321. $rs['code'] = 700;
  1322. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1323. return $rs;
  1324. }
  1325. }
  1326. $domain = new Domain_Shop();
  1327. $shop_info = $domain->getShop($touid);
  1328. if(!$shop_info){
  1329. $rs['code']=1001;
  1330. $rs['msg']=\PhalApi\T('店铺不存在');
  1331. return $rs;
  1332. }
  1333. if($touid>1){
  1334. $where1=[];
  1335. $where1['uid']=$touid;
  1336. $where1['status']=1;
  1337. $platform_nums = $domain->countPlatformSale($where1);
  1338. }else{ //平台自营
  1339. $where=[];
  1340. $where['uid']=$touid;
  1341. $where['status']=1;
  1342. $platform_nums = $domain->countGoods($where);
  1343. }
  1344. $shop_info['platform_goods_nums']=$platform_nums;
  1345. if($touid>1){
  1346. $list=$domain->getOnsalePlatformGoods($touid,$p);
  1347. }else{
  1348. $list = $domain->getGoodsList($where,$p);
  1349. }
  1350. $rs['info'][0]['shop_info']=$shop_info;
  1351. $rs['info'][0]['list']=$list;
  1352. return $rs;
  1353. }
  1354. /**
  1355. * 更新商品查看次数
  1356. * @desc 用于更新商品查看次数
  1357. * @return int code 操作码,0表示成功
  1358. * @return array info
  1359. * @return string msg 提示信息
  1360. */
  1361. public function upHits() {
  1362. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1363. $uid=\App\checkNull($this->uid);
  1364. $token=\App\checkNull($this->token);
  1365. $goodsid=\App\checkNull($this->goodsid);
  1366. if($uid<1 || $token=='' || $goodsid<1 ){
  1367. $rs['code'] = 1001;
  1368. $rs['msg'] = \PhalApi\T('信息错误');
  1369. return $rs;
  1370. }
  1371. $checkToken=\App\checkToken($uid,$token);
  1372. if($checkToken==700){
  1373. $rs['code'] = $checkToken;
  1374. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1375. return $rs;
  1376. }else if($checkToken==10020){
  1377. $rs['code'] = 700;
  1378. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1379. return $rs;
  1380. }
  1381. $domain = new Domain_Shop();
  1382. $info = $domain->upHits($goodsid);
  1383. return $rs;
  1384. }
  1385. /**
  1386. * 批量删除商品收藏
  1387. * @desc 用于批量删除商品收藏
  1388. * @return int code 状态码,0表示成功
  1389. * @return string msg 提示信息
  1390. * @return array info 返回信息
  1391. */
  1392. public function batchDelCollect(){
  1393. $rs = array('code' => 0, 'msg' => \PhalApi\T('删除成功'), 'info' => array());
  1394. $uid=\App\checkNull($this->uid);
  1395. $token=\App\checkNull($this->token);
  1396. $goodsids=\App\checkNull($this->goodsids);
  1397. $checkToken=\App\checkToken($uid,$token);
  1398. if($checkToken==700){
  1399. $rs['code'] = $checkToken;
  1400. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1401. return $rs;
  1402. }else if($checkToken==10020){
  1403. $rs['code'] = 700;
  1404. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1405. return $rs;
  1406. }
  1407. if(!$goodsids){
  1408. $rs['code'] = 1001;
  1409. $rs['msg'] = \PhalApi\T('请选择商品收藏记录');
  1410. return $rs;
  1411. }
  1412. $new_goodsids_arr=[];
  1413. $goodsids_arr=explode(',', $goodsids);
  1414. foreach ($goodsids_arr as $k => $v) {
  1415. if($v){
  1416. $new_goodsids_arr[]=$v;
  1417. }
  1418. }
  1419. if(empty($new_goodsids_arr)){
  1420. $rs['code'] = 1001;
  1421. $rs['msg'] = \PhalApi\T('请选择商品收藏记录');
  1422. return $rs;
  1423. }
  1424. $domain=new Domain_Shop();
  1425. $res=$domain->batchDelCollect($uid,$new_goodsids_arr);
  1426. return $rs;
  1427. }
  1428. /**
  1429. * 获取视频绑定的商品信息
  1430. * @desc 用于获取视频绑定的商品信息
  1431. * @return int code 状态码,0表示成功
  1432. * @return string msg 提示信息
  1433. * @return array info 返回信息
  1434. * @return int info[0].id 返回商品id
  1435. * @return int info[0].uid 返回商品发布者id
  1436. * @return string info[0].name 返回商品名称
  1437. * @return int info[0].sale_nums 返回商品销量
  1438. * @return int info[0].type 返回商品类型 0 站内商品 1 站外商品 2 平台自营商品
  1439. * @return float info[0].original_price 返回商品原价
  1440. * @return int info[0].status 返回商品状态
  1441. * @return string info[0].thumb 返回商品封面
  1442. * @return float info[0].price 返回商品现价
  1443. */
  1444. public function getVideoBindGoodsInfo(){
  1445. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1446. $goodsid=\App\checkNull($this->goodsid);
  1447. if(!$goodsid){
  1448. $rs['code'] = 1001;
  1449. $rs['msg'] = \PhalApi\T('参数错误');
  1450. return $rs;
  1451. }
  1452. $domain=new Domain_Shop();
  1453. $res=$domain->getVideoBindGoodsInfo($goodsid);
  1454. $rs['info']=$res;
  1455. return $rs;
  1456. }
  1457. /**
  1458. * 主播设置商品是否直播间内展示
  1459. * @desc 用于主播设置商品是否直播间内展示
  1460. * @return int code 操作码,0表示成功
  1461. * @return array info
  1462. * @return string msg 提示信息
  1463. */
  1464. public function setShowGoods(){
  1465. $rs = array('code' => 0, 'msg' => '', 'info' => array());
  1466. $uid=\App\checkNull($this->uid);
  1467. $token=\App\checkNull($this->token);
  1468. $goodsid=\App\checkNull($this->goodsid);
  1469. $isshow=\App\checkNull($this->isshow);
  1470. if($uid<0 || $token=='' || $goodsid<0){
  1471. $rs['code'] = 1000;
  1472. $rs['msg'] = \PhalApi\T('信息错误');
  1473. return $rs;
  1474. }
  1475. $checkToken=\App\checkToken($uid,$token);
  1476. if($checkToken==700){
  1477. $rs['code'] = $checkToken;
  1478. $rs['msg'] = \PhalApi\T('您的登陆状态失效,请重新登陆!');
  1479. return $rs;
  1480. }else if($checkToken==10020){
  1481. $rs['code'] = 700;
  1482. $rs['msg'] = \PhalApi\T('该账号已被禁用');
  1483. return $rs;
  1484. }
  1485. $domain = new Domain_Shop();
  1486. $res = $domain->setShowGoods($uid,$goodsid,$isshow);
  1487. return $res;
  1488. }
  1489. }