Goods.php 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. namespace app\data\controller\api\business;
  3. use app\data\model\ShopGoods;
  4. use app\data\model\ShopGoodsItem;
  5. use think\admin\Controller;
  6. use hg\apidoc\annotation\Title;
  7. use hg\apidoc\annotation\Method;
  8. use hg\apidoc\annotation\Param;
  9. use hg\apidoc\annotation\Returned;
  10. use think\admin\extend\CodeExtend;
  11. use think\Db;
  12. use think\db\Where;
  13. /**
  14. * 商家商品数据接口
  15. */
  16. class Goods extends Controller
  17. {
  18. /**
  19. * @Title ("我的商品数据")
  20. * @Param ("name",desc="商品名称")
  21. * @Param ("status",desc="1售卖中 0已下架 2已售罄 传空全部")
  22. * @return void
  23. * @throws \think\db\exception\DataNotFoundException
  24. * @throws \think\db\exception\DbException
  25. * @throws \think\db\exception\ModelNotFoundException
  26. */
  27. public function goods_list(){
  28. $count = ['全部','售卖中','已下架','已售罄'];
  29. foreach ($count as &$v){
  30. switch ($v){
  31. case '全部':
  32. $where =[];
  33. break;
  34. case '售卖中':
  35. $where['status']=1;
  36. break;
  37. case '已下架':
  38. $where['status']=0;
  39. break;
  40. case '已售罄':
  41. $where['status']=2;
  42. }
  43. $v=ShopGoods::mk()->where('admin_id',10000)->where($where)->count();
  44. }
  45. $query = ShopGoods::mQuery()->like('name,cateids')->equal('code,status');
  46. $result = $query->where('admin_id',10000)->order('id desc')->page(true, false, false, 10);
  47. $data['count'] =$count;
  48. $data['list']=$result;
  49. $this->success('我的商品列表',$data);
  50. }
  51. /**
  52. * @Title ("添加商品")
  53. * @Param ("name",desc="商品名称")
  54. * @Param ("cateids",desc="商品分类")
  55. * @Param ("cover",desc="商品封面图")
  56. * @Param ("slider",desc="商品轮播图")
  57. * @Param ("content",desc="商品详情")
  58. * @Param ("stock_total",desc="商品库存")
  59. * @Param ("price_selling",desc="商品销售价")
  60. * @Param ("price_market",desc="商品市场价")
  61. * @Param ("items",desc="商品规格信息")
  62. */
  63. public function goods_add(){
  64. $data = $this->_vali(
  65. [
  66. 'name.require'=>'商品名称不能为空',
  67. 'cateids.require'=>'商品分类不能不选',
  68. 'cover.require'=>'商品封面不能为空',
  69. 'slider.require'=>'商品轮播图不能为空',
  70. 'content.require'=>'商品详情不能为空',
  71. 'stock_total.require'=>'商品库存不能为空',
  72. 'price_selling.require'=>'商品销售价格不能为空',
  73. 'price_market.require'=>'商品市场价格不能为空',
  74. 'items.require'=>'商品规格不能为空'
  75. ]
  76. );
  77. $goods_data= [
  78. 'name'=>$data['name'],
  79. 'cateids'=>$data['cateids'],
  80. 'cover'=>$data['cover'],
  81. 'slider'=>$data['slider'],
  82. 'content'=>$data['content'],
  83. 'stock_total'=>$data['stock_total'],
  84. 'price_selling'=>$data['price_selling'],
  85. 'price_market'=>$data['price_market'],
  86. 'code'=>CodeExtend::uniqidNumber(20, 'G'),
  87. 'data_specs'=>json($data['items']),
  88. 'create_at'=>date('Y-m-d H:i:s'),
  89. 'admin_id'=>10000,
  90. ];
  91. try {
  92. ShopGoods::mk()->insertGetId($goods_data);
  93. foreach ($data['items']as &$v){
  94. $item_data = [
  95. 'goods_sku'=>CodeExtend::uniqidNumber(12, 'S'),
  96. 'goods_code'=>$data['code'],
  97. 'goods_spec'=>$v['name'],
  98. 'stock_total'=>$v['total'],
  99. 'price_selling'=>$v['price_selling'],
  100. 'price_market'=>$v['price_market'],
  101. 'create_at'=>date('Y-m-d H:i:s'),
  102. 'admin_id'=>10000
  103. ];
  104. ShopGoodsItem::mk()->insertGetId($item_data);
  105. }
  106. $this->success('商品数据入库成功!');
  107. }catch (\Exception $e){
  108. $this->success('商品数据入库失败!');
  109. }
  110. }
  111. /**
  112. * @Title ("商品修改")
  113. * @Param ("name",desc="商品名称")
  114. * @Param ("cateids",desc="商品分类")
  115. * @Param ("cover",desc="商品封面图")
  116. * @Param ("slider",desc="商品轮播图")
  117. * @Param ("content",desc="商品详情")
  118. * @Param ("stock_total",desc="商品库存")
  119. * @Param ("price_selling",desc="商品销售价")
  120. * @Param ("price_market",desc="商品市场价")
  121. * @Param ("items",desc="商品规格信息")
  122. * @return void
  123. *
  124. */
  125. public function goods_edit(){
  126. $goods_id = input('order_id');
  127. $data = $this->_vali(
  128. [
  129. 'name.require'=>'商品名称不能为空',
  130. 'cateids.require'=>'商品分类不能不选',
  131. 'cover.require'=>'商品封面不能为空',
  132. 'slider.require'=>'商品轮播图不能为空',
  133. 'content.require'=>'商品详情不能为空',
  134. 'stock_total.require'=>'商品库存不能为空',
  135. 'price_selling.require'=>'商品销售价格不能为空',
  136. 'price_market.require'=>'商品市场价格不能为空',
  137. 'items.require'=>'商品规格不能为空'
  138. ]
  139. );
  140. $goods_data= [
  141. 'name'=>$data['name'],
  142. 'cateids'=>$data['cateids'],
  143. 'cover'=>$data['cover'],
  144. 'slider'=>$data['slider'],
  145. 'content'=>$data['content'],
  146. 'stock_total'=>$data['stock_total'],
  147. 'price_selling'=>$data['price_selling'],
  148. 'price_market'=>$data['price_market'],
  149. 'code'=>CodeExtend::uniqidNumber(20, 'G'),
  150. 'data_specs'=>json($data['items']),
  151. 'create_at'=>date('Y-m-d H:i:s'),
  152. 'admin_id'=>10000,
  153. ];
  154. try {
  155. ShopGoods::mk()->where('id',$goods_id)->insertGetId($goods_data);
  156. foreach ($data['items']as &$v){
  157. $item_data = [
  158. 'goods_sku'=>CodeExtend::uniqidNumber(12, 'S'),
  159. 'goods_code'=>$data['code'],
  160. 'goods_spec'=>$v['name'],
  161. 'stock_total'=>$v['total'],
  162. 'price_selling'=>$v['price_selling'],
  163. 'price_market'=>$v['price_market'],
  164. 'create_at'=>date('Y-m-d H:i:s'),
  165. 'admin_id'=>10000
  166. ];
  167. ShopGoodsItem::mk()->where('id',$v['id'])->save($item_data);
  168. }
  169. $this->success('商品数据入库成功!');
  170. }catch (\Exception $e){
  171. $this->success('商品数据入库失败!');
  172. }
  173. }
  174. /**
  175. * @Title ("商品详情")
  176. */
  177. public function goods_details(){
  178. $goods_id = input('goods_id');
  179. $details = ShopGoods::mk()->alias('goods')
  180. ->where('goods.id',$goods_id)
  181. ->find();
  182. $details['item']=ShopGoodsItem::mk()->where('goods_code', $details['code'])->select();
  183. $this->success('商品详情',$details);
  184. }
  185. }