Açıklama Yok

GoodsController.php 8.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. <?php
  2. /**
  3. * Created by Sublime.
  4. * User: hao
  5. * Date: 19/08/30
  6. * Time: 上午11:20
  7. */
  8. namespace App\Http\Controllers\Admin;
  9. use App\Http\Controllers\Controller;
  10. use App\Logs;
  11. use App\Goods;
  12. use App\GoodsSkus;
  13. use App\Oplog;
  14. use App\Services\OssServices as oss;
  15. use Illuminate\Http\Request;
  16. use Illuminate\Support\Facades\DB;
  17. use PHPExcel_Reader_Excel2007;
  18. use PHPExcel_Reader_Excel5;
  19. use PHPExcel_Reader_CSV;
  20. class GoodsController extends Controller
  21. {
  22. public function index(Request $request){
  23. $page = (int)$request->input('page');
  24. $pageSize = 20;
  25. if($page<=0){
  26. $page = 1;
  27. }
  28. $offset = ($page-1) * $pageSize;
  29. $stime = $request->input('stime');
  30. $etime = $request->input('etime');
  31. $name = $request->input('name');
  32. $count = Goods::where(function($query) use($name, $stime, $etime){
  33. if($name) $query->where('name', 'like', $name.'%');
  34. if($stime) $query->where('createTime', '>=', $stime);
  35. if($etime) $query->where('createTime', '<=', $etime);
  36. })->where('is_del',0)->count();
  37. if ($count > 1) {
  38. // 总页数
  39. $pages = ceil($count/$pageSize);
  40. }else{
  41. // 总页数
  42. $pages = 1;
  43. }
  44. $result = Goods::where(function($query) use($name, $stime, $etime){
  45. if($name) $query->where('name', $name);
  46. if($stime) $query->where('createTime', '>=', $stime);
  47. if($etime) $query->where('createTime', '<=', $etime);
  48. })->where('is_del',0)->orderBy('id', 'desc')->offset($offset)->limit($pageSize)->get();
  49. $result = json_decode(json_encode($result),true);
  50. foreach($result as $k=>&$v){
  51. # 获取sku
  52. $skuList = GoodsSkus::where('goodsCode', $v['id'])->where('is_del', 0)->get();
  53. $v['sku_list'] = $skuList;
  54. }
  55. return view('goods/index', ['result' =>$result,
  56. 'page' =>$page,
  57. 'count' =>$count,
  58. 'pages' =>$pages,
  59. 'stime' =>$stime,
  60. 'etime' =>$etime,
  61. 'name' =>$name,
  62. ]);
  63. }
  64. /**
  65. * 添加商品
  66. * @return \Illuminate\View\View
  67. */
  68. public function create(Request $request)
  69. {
  70. return view('goods/create');
  71. }
  72. /**
  73. * 分组管理-进行添加操作
  74. * @param Request $request
  75. * @return \Illuminate\Http\RedirectResponse
  76. */
  77. public function store(Request $request)
  78. {
  79. $this->validate($request, [
  80. 'name' => 'required',
  81. 'productCode' => 'required',
  82. ], [
  83. 'name.required' => '商品名不能为空',
  84. 'productCode.required' => '商品货号不能为空',
  85. ]);
  86. //数据库-新增数据
  87. $goods = array();
  88. $goods['name'] = trim($request->input('name'));
  89. $goods['description'] = trim($request->input('description')); //非必填
  90. $goods['eshopCode'] = '99|34881';
  91. $goods['productCode'] = trim($request->input('productCode'));
  92. /*$goods['propsName'] = $request->input('propsName');
  93. $goods['price'] = $request->input('price');
  94. $goods['Weight'] = $request->input('Weight');
  95. $goods['volume'] = $request->input('volume'); */
  96. //图片上传 阿里云oss
  97. if ($request->hasFile('img') && $request->file('img')->isValid()) {
  98. $file = $request->file('img');
  99. $ossClient=new oss();
  100. // 上传阿里云
  101. $file = $ossClient->upload($file->getClientOriginalExtension(), $file->getRealPath(), 'upload/seafoodPic'.date("Y-m-d",time()).'/'.date('His'));
  102. $img=$file['oss-request-url'];
  103. $goods['picUrl']=str_replace("kx-youhuiquan.oss-cn-beijing.aliyuncs.com","imgs.726p.com",$img);
  104. }
  105. //$goods['picUrl'] = $request->input('picUrl');
  106. $res = DB::table('goods')->insertGetId($goods);
  107. if($res){
  108. //卖家云必要参数拼接转化
  109. $mjArr = $goods;
  110. $mjArr['outerCode'] = $res;
  111. //sku
  112. $sku = trim($request->input('sku'),';');
  113. if(!empty($sku)){
  114. $sku = explode(';', $sku);
  115. foreach($sku as $key=>$item){
  116. $sku_data = explode(',', $item);
  117. $sku_insert_data = $mjArr['skuList'][$key] = ['propsName'=>$sku_data[0], 'price'=>$sku_data[1], 'createTime'=>date('Y-m-d H:i:s'), 'modifyTime'=>date('Y-m-d H:i:s')];
  118. $sku_insert_data['goodsCode'] = $res;
  119. $sku_insert_data['eshopCode'] = '99|34881';
  120. $sku_ids = DB::table('goods_skus')->insertGetId($sku_insert_data);
  121. $mjArr['skuList'][$key]['outerCode'] = $sku_ids;
  122. }
  123. }
  124. exit;
  125. //对接卖家云
  126. $mj = Order::mjGoodsAdd($mjArr);
  127. #记录操作日志
  128. $self_id = session('admin_id');
  129. $self_name = session('real_name');
  130. $context = "新增商品数据";
  131. $type = 0;
  132. $tables = 'goods,goods_skus';
  133. $data_id = $res;
  134. Oplog::addLog($self_id, $self_name, $context, $type, $tables, $data_id);
  135. }
  136. return redirect('/admin/goods/index')->with('info', '添加成功');
  137. }
  138. /**
  139. * 分组管理-编辑分组界面
  140. * @param $id
  141. * @return \Illuminate\View\View
  142. */
  143. public function edit($id,Request $request)
  144. {
  145. $data = Goods::where('id', $id)->first();
  146. $teamList = DB::table('teams')->select('id', 'name')->get();
  147. $teamList = json_decode(json_encode($teamList), true);
  148. return view('goods/edit', [
  149. 'goods' => $data,
  150. 'teamlist' => $teamList,
  151. ]);
  152. }
  153. /**
  154. * 分组管理-进行编辑操作
  155. * @param Request $request
  156. * @return \Illuminate\Http\RedirectResponse
  157. */
  158. public function update(Request $request)
  159. {
  160. $name = (int)$request->input('name');
  161. $id = (int)$request->input('id');
  162. $this->validate($request, [
  163. 'id' => 'required',
  164. '_cost' => 'required',
  165. '_fan_add' => 'required',
  166. 'name' => 'required',
  167. 'createTime' => 'required|unique:cust_day_,createTime,'.$id.',id,name,'.$name,
  168. ], [
  169. 'id.required' => 'id不能为空',
  170. '_cost.required' => '总成本不能为空',
  171. '_fan_add.required' => '总加粉数不能为空',
  172. 'name.required' => '团队不能为空',
  173. 'createTime.required' => '日期不能为空',
  174. 'createTime.unique' => '指定日期已存在',
  175. ]);
  176. $goods = array();
  177. $goods['_cost'] = $request->input('_cost');
  178. $goods['_fan_add'] = $request->input('_fan_add');
  179. $goods['createTime'] = $request->input('createTime');
  180. $goods['name'] = $name;
  181. $res = DB::table('cust_day_')->where('id', $id)->update($goods);
  182. if($res){
  183. #记录操作日志
  184. $self_id = session('admin_id');
  185. $self_name = session('real_name');
  186. $context = "修改运营上报数据";
  187. $type = 0;
  188. $tables = 'cust_day_';
  189. $data_id = $id;
  190. Oplog::addLog($self_id, $self_name, $context, $type, $tables, $data_id);
  191. }
  192. return redirect('/admin/goods/index')->with('info', '更新成功');
  193. }
  194. /**
  195. * 分组管理-进行删除操作
  196. * @param Request $request
  197. * @return \Illuminate\Http\RedirectResponse
  198. */
  199. public function delete($id)
  200. {
  201. $goods = Goods::find($id);
  202. $goods->is_del = 1;
  203. if ($goods ->save()){
  204. #记录操作日志
  205. $self_id = session('admin_id');
  206. $self_name = session('real_name');
  207. $context = "删除运营上报数据";
  208. $type = 0;
  209. $tables = 'cust_day_';
  210. $data_id = $id;
  211. Oplog::addLog($self_id, $self_name, $context, $type, $tables, $data_id);
  212. return redirect('/admin/goods/index')->with('info', '删除成功');
  213. }
  214. }
  215. }