123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- <?php
- namespace app\admin\controller;
- use app\data\model\DataMerchants;
- use app\data\model\ShopProduction as Model;
- use app\data\model\DataUser;
- use app\data\model\ShopProductionOffer;
- use Carbon\Carbon;
- use think\admin\Controller;
- use app\data\model\SystemUser;
- use think\admin\service\AdminService;
- use think\db\Query;
- use think\facade\Db;
- use think\Request;
- /**
- * 生产订单管理
- * Class Xw
- * @package app\admin\controller\ShopProduction
- * http://www.zjnk.com/fileserver/News/04b7854f-bb0a-458b-b359-ce948acfea09.JPG
- */
- class ShopProduction extends Controller
- {
- /**
- * 列表
- * @auth true
- * @menu true
- */
- public function index(Request $request){
- if(AdminService::getUserId()==10000){
- $admin_id = [];
- }else{
- $admin_id['admin_id']=AdminService::getUserId();
- }
- $this->title='生产订单管理';
- $this->assign('status',\app\data\model\ShopPurchase::getStatus());
- $result = Model::mQuery()
- ->equal('status')
- ->dateBetween('create_time')
- ->with(['merchant'])
- ->when($request['name'],function (Query $query)use ($request){
- $query->hasWhere('merchant',function (Query $query)use ($request){
- $query->whereLike('name',"%{$request['name']}%");
- });
- })->where($admin_id);
- $this->amount = $result->db()->sum('amount');
- // ->layTable();
- $result->page();
- }
- /**
- * 详情
- * @auth true
- * @menu true
- */
- public function detail(Request $request,Model $purchase){
- DataUser::$copyRealName=true;
- $this->assign('row',$purchase
- ->with(['merchant','items','offers','offers.user'])
- ->where('id',$request['id'])->findOrFail());
- $this->fetch('form');
- }
- /**
- * 发布
- * @auth true
- * @menu true
- */
- public function add(Request $request,\think\Validate $validate){
- $this->title='发布订单';
- $this->assign('vo',null);
- if($request->isGet()) {
- $this->fetch();
- }else{
- $merchant=DataMerchants::getByAdmin(AdminService::getUserId());
- if(!$merchant){
- $this->error('您不是商家无法发布');
- }
- $data=$request->post();
- $item=$data['item']??[];
- foreach ($item as $i){
- $make=$validate->check($i,[
- 'name'=>['require',],
- 'spec'=>['require',],
- 'number'=>['require','integer'],
- // 'standard'=>['require',],
- // 'price'=>['require','float'],
- // 'enclosure'=>['require',],
- ]);
- if(!$make){
- $this->error('请填写正确的商品信息');
- }
- }
- app()->db->startTrans();
- unset($data['item']);
- $data['admin_id']=AdminService::getUserId();
- $data['longitude']=$merchant['longitude']??null;
- $data['latitude']=$merchant['latitude']??null;
- // $data['amount']=min(array_column($item,'price'));
- $data['type'] =1;
- // print_r($data);
- // exit();
- $order= \app\data\model\ShopProduction::create($data);
- $order->items()->saveAll($item);
- app()->db->commit();
- $this->success('保存成功');
- }
- }
- /**
- * 编辑
- * @auth true
- * @menu true
- */
- public function edit(Request $request,Model $purchase,\think\Validate $validate){
- if ($this->request->isGet()) {
- DataUser::$copyRealName=true;
- $row = $purchase
- ->with(['merchant','items','offers','favourite','ppoffer'])
- ->where('id',$request['id'])->findOrFail();
- if (!$row['merchant']){
- $array = ['company'=>'平台发布'];
- $row['merchant'] = $array;
- }
- $this->assign('row',$row);
- $this->fetch('edit');
- }elseif ($this->request->isPost()){
- $merchant=DataMerchants::getByAdmin(AdminService::getUserId());
- if(!$merchant){
- $this->error('您不是商家无法操作');
- }
- $data=$request->post();
- $item=$data['item']??[];
- foreach ($item as $i){
- $make=$validate->check($i,[
- 'name'=>['require',],
- 'spec'=>['require',],
- 'number'=>['require','integer'],
- // 'standard'=>['require',],
- // 'price'=>['require','float'],
- // 'enclosure'=>['require',],
- ]);
- if(!$make){
- $this->error('请填写正确的商品信息');
- }
- }
- // print_r($data);
- // exit();
- app()->db->startTrans();
- unset($data['item']);
- $data['admin_id']=AdminService::getUserId();
- $data['longitude']=$merchant['longitude']??null;
- $data['latitude']=$merchant['latitude']??null;
- // $data['amount']=min(array_column($item,'price'));
- $data['type'] =1;
- // print_r($data);
- // exit();
- //$order= \app\data\model\ShopProduction::create($data);
- if(!$data['offer_id']){
- unset($data['offer_id']);
- }
- $order=Model::update($data);
- // $order->items()->saveAll($item);
- app()->db->commit();
- $item_ids=[];
- foreach ($item as &$v){
- $item_data = [
- 'production_id'=>$data['id'],
- 'name'=>$v['name'],
- 'spec'=>$v['spec'],
- 'number'=>$v['number'],
- // 'standard'=>$v['standard'],
- // 'price'=>$v['price'],
- ];
- if(isset($v['enclosure'])){
- $item_data['enclosure'] = $v['enclosure'];
- }else{
- $item_data['enclosure'] = [];
- }
- if(!empty($v['id'])){
- $itemModel=$order->items()->where('id',$v['id'])->find();
- if(!$itemModel){
- $this->error('商品不存在');
- }
- $itemModel->save($item_data);
- }else{
- $itemModel=$order->items()->save($item_data);
- }
- $item_ids[]=$itemModel['id'];
- }
- // $order = $order->items()->whereNotIn('id',$item_ids)->select()->each(function ($d){$d->delete();});
- // ShopProductionOffer::where('order_id',$data['id'])
- // ->whereNotIn('item_id',$item_ids)
- // ->select()->each(function ($m){$m->delete();});
- $this->success('保存成功');
- }
- }
- /**
- * 取消订单
- * @auth true
- * @menu true
- */
- public function cancellation(Request $request,Model $purchase){
- $purchase_=$purchase->where('id',$request['id'])->findOrFail();
- $purchase_['status']=0;
- $purchase_->save();
- $this->success('取消成功');
- }
- }
|