hrjy 3 rokov pred
rodič
commit
5d3635ce7c

+ 31 - 5
.idea/workspace.xml

@@ -5,8 +5,22 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="9df7b838-09db-466a-bed4-3e1ac8c3624d" name="变更" comment="commit">
+      <change afterPath="$PROJECT_DIR$/public/static/img/down.jpg" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/public/static/img/downLoad.png" afterDir="false" />
+      <change afterPath="$PROJECT_DIR$/public/static/img/live_weixin.png" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/api/controller/AuthController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/api/controller/AuthController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/controller/auction/Auction.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/auction/Auction.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/controller/auction/AuctionOrder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/auction/AuctionOrder.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/controller/auction/AuctionProduct.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/auction/AuctionProduct.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/controller/system/SystemStore.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/system/SystemStore.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/model/auction/AuctionProduct.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/model/auction/AuctionProduct.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/view/system/system_store/add.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/view/system/system_store/add.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/view/system/system_store/index.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/view/system/system_store/index.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/view/system/system_store/select_address.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/view/system/system_store/select_address.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/api/controller/PublicController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/api/controller/PublicController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/api/controller/auction/AuctionController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/api/controller/auction/AuctionController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/api/controller/auction/AuctionProductController.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/api/controller/auction/AuctionProductController.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/models/auction/AuctionOrder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/models/auction/AuctionOrder.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -96,7 +110,7 @@
     <property name="WebServerToolWindowPanel.toolwindow.show.date" value="false" />
     <property name="WebServerToolWindowPanel.toolwindow.show.permissions" value="false" />
     <property name="WebServerToolWindowPanel.toolwindow.show.size" value="false" />
-    <property name="last_opened_file_path" value="$PROJECT_DIR$/app" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/public/static/img" />
     <property name="node.js.detected.package.eslint" value="true" />
     <property name="node.js.detected.package.tslint" value="true" />
     <property name="node.js.selected.package.eslint" value="(autodetect)" />
@@ -107,8 +121,11 @@
   </component>
   <component name="RecentsManager">
     <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\phpstudy_pro\WWW\newQudou\public\static\img" />
+      <recent name="D:\phpstudy_pro\WWW\newQudou\public\static" />
+      <recent name="D:\phpstudy_pro\WWW\newQudou\app\admin\view\system" />
+      <recent name="D:\phpstudy_pro\WWW\newQudou\app\admin\controller\system" />
       <recent name="D:\phpstudy_pro\WWW\newQudou\app" />
-      <recent name="D:\phpstudy_pro\WWW\newQudou\app\models\user" />
     </key>
   </component>
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
@@ -136,7 +153,9 @@
       <workItem from="1657170689504" duration="171000" />
       <workItem from="1657172191423" duration="1608000" />
       <workItem from="1657240542957" duration="117000" />
-      <workItem from="1657247426337" duration="4419000" />
+      <workItem from="1657247426337" duration="7039000" />
+      <workItem from="1657326818073" duration="7198000" />
+      <workItem from="1657500150633" duration="4910000" />
     </task>
     <task id="LOCAL-00001" summary="commit">
       <created>1655962607195</created>
@@ -187,7 +206,14 @@
       <option name="project" value="LOCAL" />
       <updated>1657248252935</updated>
     </task>
-    <option name="localTasksCounter" value="8" />
+    <task id="LOCAL-00008" summary="commit">
+      <created>1657263227422</created>
+      <option name="number" value="00008" />
+      <option name="presentableId" value="LOCAL-00008" />
+      <option name="project" value="LOCAL" />
+      <updated>1657263227422</updated>
+    </task>
+    <option name="localTasksCounter" value="9" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">

+ 36 - 18
app/admin/controller/auction/Auction.php

@@ -8,6 +8,7 @@ use app\admin\model\auction\AuctionProduct as model;
 use app\admin\model\store\StoreProductAttrResult;
 use app\admin\model\store\StoreProductAttrValue;
 use app\admin\model\User;
+use app\models\auction\AuctionTime;
 use app\models\store\StoreProduct;
 use app\models\store\StoreProductAttr;
 use crmeb\services\{ExpressService,
@@ -85,10 +86,10 @@ class Auction extends AuthController
             }
             return $menus;
         })->filterable(1)->col(12);
-        $f[] = Form::dateTimes('add_time', '认购开始时间');
-        $f[] = Form::dateTimes('end_time', '认购结束时间');
-        $f[] = Form::dateTimes('radd_time', '支付开始时间');
-        $f[] = Form::dateTimes('rend_time', '支付结束时间');
+        $f[] = Form::dateTimes('add_time', '预约开始时间');
+        $f[] = Form::dateTimes('end_time', '预约结束时间');
+        $f[] = Form::dateTimes('radd_time', '入场时间');
+        $f[] = Form::dateTimes('rend_time', '结束时间');
         $f[] = Form::input('sort', '排序', '0');
         $f[] = Form::input('sort', '排序', '0')->col(12);
         $f[] = Form::input('goods_time', '放货时间(分钟)', '0')->col(12);
@@ -152,10 +153,10 @@ class Auction extends AuthController
             'image.require' => '图片不能为空',
             'status.require' => '状态不能为空',
             'anticipate.require' => '请填写预约价格',
-            'add_time.require' => '请选择认购开始时间价格',
-            'end_time.require' => '请选择认购结束时间价格',
-            'radd_time.require' => '请选择支付开始时间',
-            'rend_time.require' => '请选择支付结束时间',
+            'add_time.require' => '请选择预约开始时间价格',
+            'end_time.require' => '请选择预约结束时间价格',
+            'radd_time.require' => '请选择进场时间',
+            'rend_time.require' => '请选择结束时间',
             'auction_gu_id.require' => '请选择绑定场馆',
             'site.require' => '请选择开场日期',
             'goods_time.require' => '请输入放货时间',
@@ -240,10 +241,10 @@ class Auction extends AuthController
         }
 
 
-        $f[] = Form::dateTimes('add_time', '认购开始时间', $data->getData('add_time'));
-        $f[] = Form::dateTimes('end_time', '认购结束时间', $data->getData('end_time'));
-        $f[] = Form::dateTimes('radd_time', '支付开始时间', $data->getData('radd_time'));
-        $f[] = Form::dateTimes('rend_time', '支付结束时间', $data->getData('rend_time'));
+        $f[] = Form::dateTimes('add_time', '预约开始时间', $data->getData('add_time'));
+        $f[] = Form::dateTimes('end_time', '预约结束时间', $data->getData('end_time'));
+        $f[] = Form::dateTimes('radd_time', '入场时间', $data->getData('radd_time'));
+        $f[] = Form::dateTimes('rend_time', '结束时间', $data->getData('rend_time'));
         $f[] = Form::input('sort', '排序', $data->getData('sort'))->col(12);
         $f[] = Form::input('goods_time', '放货时间(分钟)', $data->getData('goods_time'))->col(12);
 
@@ -309,10 +310,10 @@ class Auction extends AuthController
             'image.require' => '图片不能为空',
             'status.require' => '状态不能为空',
             'anticipate.require' => '请填写预约价格',
-            'add_time.require' => '请选择认购开始时间价格',
-            'end_time.require' => '请选择认购结束时间价格',
-            'radd_time.require' => '请选择支付开始时间',
-            'rend_time.require' => '请选择支付结束时间',
+            'add_time.require' => '请选择预约开始时间价格',
+            'end_time.require' => '请选择预约结束时间价格',
+            'radd_time.require' => '请选择进场时间',
+            'rend_time.require' => '请选择结束时间',
             'auction_gu_id.require' => '请选择绑定场馆',
             'site.require' => '请选择开场日期',
             'goods_time.require' => '请输入放货时间',
@@ -445,7 +446,15 @@ class Auction extends AuthController
         $auction_gu = \app\admin\model\auction\AuctionGu::where('id' ,$auction['auction_gu_id'])->find();
         $data['uid'] = $auction_gu['uid'];
         $model = new model();
-        $res = $model->save($data);
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $data['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('添加成功!');
         }else{
@@ -511,7 +520,16 @@ class Auction extends AuthController
         $auction = \app\admin\model\auction\Auction::where('id' ,$data['auction_id'])->find();
         $auction_gu = \app\admin\model\auction\AuctionGu::where('id' ,$auction['auction_gu_id'])->find();
         $data['uid'] = $auction_gu['uid'];
-        $res = model::create($data);
+        $model = new model();
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $data['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('修改成功!');
         }else{

+ 23 - 44
app/admin/controller/auction/AuctionOrder.php

@@ -5,6 +5,8 @@ use app\admin\controller\AuthController;
 use app\admin\controller\Union;
 use app\admin\model\user\User;
 use app\admin\model\user\UserBill;
+use app\models\auction\AuctionProduct;
+use app\models\auction\AuctionTime;
 use crmeb\services\{ExpressService,
     JsonService,
     MiniProgramService,
@@ -18,6 +20,7 @@ use app\admin\model\system\{
     SystemAttachment as SystemAttachmentModel, SystemAttachmentCategory as Category
 };
 use app\admin\model\auction\AuctionOrder as model;
+use think\facade\Db;
 use think\facade\Route as Url;
 
 /**
@@ -105,7 +108,7 @@ class AuctionOrder extends AuthController
      * @return void
      */
     public function save($id)
-    { 
+    {
         $data = Util::postMore([
             'name',
             'is_show',
@@ -237,50 +240,26 @@ class AuctionOrder extends AuthController
         $data = model::find($id);// 订单数据
 
         if($data['status'] < 3 and $data['status'] > 0){
-
-            \app\admin\model\auction\AuctionProduct::beginTrans();
-
-            $product = \app\admin\model\auction\AuctionProduct::find($data['product_id']);
-            if (!$product)return Json::fail('数据不存在');
-            $uid = $product['uid']; // 所属人id
-
-            $product['uid'] = $data['uid'];// 商品拥有人更新
-            $product['add_time'] = time();
-            $product['order'] = $data['order_id'];
-            $res = $product->save();
-            if ($res){
-                if ($uid > 0){
-                    \app\models\auction\AuctionOrder::earn($uid,$data['price'] ,$product); // 卖家
-                }
-                \app\models\auction\AuctionOrder::return($id); // 买家
-                $data['status'] = 3;
+            $data['status'] = 3;
+            try {
+                Db::startTrans();
                 $data->save();
-                \app\admin\model\auction\AuctionProduct::commitTrans();
-				// 计算总消费金额
-				$prices=model::where('uid',$data['uid'])->where('status',3)->sum('price');//历史完成订单
-                $sum=floatval($prices+$data['price']);
-                //如果总金额大于等于三万
-                if($sum>=30000){
-                    $user=User::where('uid',$data['uid'])->find();//获取用户信息
-                    if($user['f_integral']==3000){//如果积分依旧冻结
-                        //释放冻结积分
-                        $integral=floatval($user['integral']+3000);
-                        $res=User::where('uid',$data['uid'])->update(['f_integral' =>0,'integral'=>$integral]);
-                        //积分释放流水
-                        $res3=UserBill::income('冻结积分释放',$data['uid'], 'integral', 'release',3000, $id,$integral, '释放3000积分');
-						if(!$res3){
-							return self::setErrorInfo('操作失败');
-				}
-
-                    }
-                }
-
-                return Json::successful('审核通过!');
-            }else{
-
-
-                \app\admin\model\auction\AuctionProduct::rollbackTrans();
-                return Json::successful('审核失败!');
+                $product = AuctionProduct::find($data['product_id']);
+                if (!$product) return app('json')->fail('数据不存在');
+                $uid = $product['uid']; // 所属人id
+
+                $product['uid'] = $data['uid'];// 商品拥有人更新
+                $product['add_time'] = time();
+                $product['order'] = $data['order_id'];
+                $product['is_show'] = 0;
+                $res = $product->save();
+                AuctionTime::where([['product_id', '=', $product['id']]])->delete();
+                \app\models\auction\AuctionOrder::return($data['id']); // 买家
+                Db::commit();
+                return Json::success('修改成功!');
+            } catch (\Exception $e) {
+                Db::rollback();
+                return Json::fail('失败');
             }
 
         }

+ 19 - 3
app/admin/controller/auction/AuctionProduct.php

@@ -102,7 +102,15 @@ class AuctionProduct extends AuthController
         $auction_gu = \app\admin\model\auction\AuctionGu::where('id' ,$auction['auction_gu_id'])->find();
         $data['uid'] = $auction_gu['uid'];
         $model = new model();
-        $res = $model->save($data);
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $auction_gu['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('添加成功!');
         }else{
@@ -157,7 +165,6 @@ class AuctionProduct extends AuthController
         }
     }
 
-
     public function edit($id)
     {
         if (!$id) Json::fail('数据不存在');
@@ -281,7 +288,16 @@ class AuctionProduct extends AuthController
         ]);
         $data['slider_image'] = json_encode($data['slider_image']);
         $data['description'] = htmlspecialchars($data['description']);
-        $res = model::create($data);
+        $model = new model();
+        $res = $model->insertGetId($data);
+        $datas = \app\models\auction\AuctionProduct::bs($res);// 获取挂售详情
+        // 新增挂售时间段
+        AuctionTime::create([
+            'uid' => $data['uid'],
+            'product_id' => $res,
+            'auction_id' => $data['auction_id'],
+            'add_time' => strtotime($datas['gs_time'])
+        ]);
         if ($res){
             return Json::success('修改成功!');
         }else{

+ 56 - 8
app/admin/controller/system/SystemStore.php

@@ -3,12 +3,13 @@
 namespace app\admin\controller\system;
 
 use app\admin\controller\AuthController;
-use app\models\system\SystemCity;
-use crmeb\services\CacheService;
+use app\admin\model\store\StoreCate;
 use crmeb\services\JsonService;
 use crmeb\services\JsonService as Json;
 use app\admin\model\system\SystemStore as SystemStoreModel;
 use crmeb\services\UtilService;
+use crmeb\services\FormBuilder as Form;
+use think\facade\Route as Url;
 
 /**
  * 门店管理控制器
@@ -57,8 +58,6 @@ class SystemStore extends AuthController
     public function add($id = 0)
     {
         $store = SystemStoreModel::getStoreDispose($id);
-        $store['slider_image'] = empty($store['slider_image']) ? [] : json_decode($store['slider_image']);
-        $store['images'] = empty($store['images']) ? [] : json_decode($store['images']);
         $this->assign(compact('store'));
         return $this->fetch();
     }
@@ -131,13 +130,9 @@ class SystemStore extends AuthController
             ['latlng', ''],
             ['valid_time', []],
             ['day_time', []],
-            ['slider_image', []],
-            ['images', []],
         ]);
         SystemStoreModel::beginTrans();
         try {
-            $data['slider_image'] = json_encode($data['slider_image']);
-            $data['images'] = json_encode($data['images']);
             $data['address'] = implode(',', $data['address']);
             $data['latlng'] = is_string($data['latlng']) ? explode(',', $data['latlng']) : $data['latlng'];
             if (!isset($data['latlng'][0]) || !isset($data['latlng'][1])) return JsonService::fail('请选择门店位置');
@@ -174,4 +169,57 @@ class SystemStore extends AuthController
             return JsonService::fail($e->getMessage());
         }
     }
+
+    /**
+     * 上传店内图片
+     * @param $id
+     * @return string
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function up($id)
+    {
+        if (!$id) Json::fail('数据不存在');
+        $data = SystemStoreModel::where('id', $id)->find();
+        $f = [];
+        if ($data['slider_image'] and $data['gatehead']){
+            $f[] = Form::frameImages('gatehead', '门头图(640*640px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'gatehead')), json_decode($data->getData('gatehead'), 1))->maxLength(5)->icon('images')->width('100%')->height('500px');
+            $f[] = Form::frameImages('slider_image', '店内图片(640*640px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'slider_image')), json_decode($data->getData('slider_image'), 1))->maxLength(5)->icon('images')->width('100%')->height('500px');
+        }else{
+            $f[] = Form::frameImages('gatehead', '门头图(640*640px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'gatehead')))->maxLength(5)->icon('images')->width('100%')->height('500px');
+            $f[] = Form::frameImages('slider_image', '店内图片(640*640px)', Url::buildUrl('admin/widget.images/index', array('fodder' => 'slider_image')))->maxLength(5)->icon('images')->width('100%')->height('500px');
+        }
+        $f[] = Form::hidden('id', $id);
+        $form = Form::make_post_form('修改', $f, Url::buildUrl('image_save', compact('id')));
+        $this->assign(compact('form'));
+        return $this->fetch('public/form-builder');
+
+    }
+
+    /**
+     * 添加接口
+     * @return void
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function image_save()
+    {
+
+        $data = UtilService::postMore([
+            ['gatehead', ''],
+            ['slider_image', ''],
+            ['id']
+        ]);
+        if (empty($data['gatehead']) or empty($data['slider_image']))   return JsonService::fail('门头图或店内图不能为空');
+        $store = SystemStoreModel::find($data['id']);
+        $store['gatehead'] = json_encode($data['gatehead']);
+        $store['slider_image'] = json_encode($data['slider_image']);
+
+        $res = $store->save();
+        if ($res)  return JsonService::success('上传成功');
+        return JsonService::fail('上传失败');
+    }
+
 }

+ 5 - 9
app/admin/model/auction/AuctionProduct.php

@@ -63,16 +63,12 @@ class AuctionProduct extends BaseModel
         $data['data'] = $model->select()->toArray();
         foreach ($data['data'] as $k => $v)
         {
-            if ($v['is_admin'] == 2){
-                $time = AuctionTime::where('product_id', $v['id'])->find();
-                if ($time){
-                    $data['data'][$k]['time'] = date('Y-m-d', $time['add_time']);
-                }else{
-                    $data['data'][$k]['time'] = '未上架';
-
-                }
+            $time = AuctionTime::where('product_id', $v['id'])->find();
+            if ($time){
+                $data['data'][$k]['time'] = date('Y-m-d', $time['add_time']);
             }else{
-                $data['data'][$k]['time'] = date('Y-m-d', time());
+                $data['data'][$k]['time'] = '未上架';
+
             }
         }
         return $data;

+ 8 - 78
app/admin/view/system/system_store/add.php

@@ -1,5 +1,5 @@
 <!DOCTYPE html>
-<html>
+<html lang="zh-CN">
 <head>
     {include file="public/head"}
 
@@ -22,7 +22,6 @@
                             <Alert type="warning">除门店简介外其他选项都是必填项</Alert>
                             <Form-Item>
                                 <Row>
-
                                     <i-Col span="13">
                                         <span>门店名称:</span>
                                         <i-Input placeholder="门店名称" v-model="form.name" style="width: 80%" type="text"></i-Input>
@@ -90,68 +89,16 @@
                                                 </div>
                                             </template>
                                         </div>
-                                        <div class="ivu-upload" style="display: inline-block; width: 58px;" @click="openWindows('选择图片','{:Url('widget.images/index',['fodder'=>'slider_image'])}',{w:900,h:550})" v-if="!form.image">
+                                        <div class="ivu-upload" style="display: inline-block; width: 58px;" @click="openWindows('选择图片','{:Url('widget.images/index',['fodder'=>'image'])}',{w:900,h:550})" v-if="!form.image">
                                             <div class="ivu-upload ivu-upload-drag">
                                                 <div style="width: 58px; height: 58px; line-height: 58px;">
                                                     <i class="ivu-icon ivu-icon-camera" style="font-size: 20px;"></i>
                                                 </div>
                                             </div>
                                         </div>
-<!--                                        <div style="width: 670px; height: 320px;bottom:10%;display: block; position: absolute;z-index: 999999" v-if="visible" @click="visible = false ">-->
-<!--                                            <img :src="form.image"   style="max-width: 100%;max-height: 100%;width:auto;height:auto;position: absolute;left: 50%;top: 50%;transform: translate3d(-50%,-50%,0);-webkit-transform: translate3d(-50%,-50%,0);" >-->
-<!--                                        </div>-->
-                                    </i-Col>
-                                </Row>
-                            </Form-Item>
-                            <Form-Item>
-                                <Row>
-                                    <i-Col span="13">
-                                        <span>门头:</span>
-                                        <div class="demo-upload-list" v-if="form.images">
-                                            <template>
-                                                <img :src="form.images">
-                                                <div class="demo-upload-list-cover">
-                                                    <Icon type="ios-eye-outline" @click="visible = true "></Icon>
-                                                    <Icon type="ios-trash-outline" @click="form.images=''"></Icon>
-                                                </div>
-                                            </template>
-                                        </div>
-                                        <div class="ivu-upload" style="display: inline-block; width: 58px;" @click="openWindows('选择图片','{:Url('widget.images/index',['fodder'=>'images'])}',{w:900,h:550})" v-if="!form.images">
-                                            <div class="ivu-upload ivu-upload-drag">
-                                                <div style="width: 58px; height: 58px; line-height: 58px;">
-                                                    <i class="ivu-icon ivu-icon-camera" style="font-size: 20px;"></i>
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div style="width: 670px; height: 320px;bottom:10%;display: block; position: absolute;z-index: 999999" v-if="visible" @click="visible = false ">
-                                            <img :src="form.images"   style="max-width: 100%;max-height: 100%;width:auto;height:auto;position: absolute;left: 50%;top: 50%;transform: translate3d(-50%,-50%,0);-webkit-transform: translate3d(-50%,-50%,0);" >
-                                        </div>
-                                    </i-Col>
-                                </Row>
-                            </Form-Item>
-                            <Form-Item>
-                                <Row>
-                                    <i-Col span="13">
-                                        <span>门店:</span>
-                                        <div class="demo-upload-list" v-if="form.images">
-                                            <template>
-                                                <img :src="form.slider_image">
-                                                <div class="demo-upload-list-cover">
-                                                    <Icon type="ios-eye-outline" @click="visible = true "></Icon>
-                                                    <Icon type="ios-trash-outline" @click="form.slider_image=''"></Icon>
-                                                </div>
-                                            </template>
-                                        </div>
-                                        <div class="ivu-upload" style="display: inline-block; width: 58px;" @click="openWindows('选择图片','{:Url('widget.images/index',['fodder'=>'slider_image'])}',{w:900,h:550})" v-if="!form.slider_image">
-                                            <div class="ivu-upload ivu-upload-drag">
-                                                <div style="width: 58px; height: 58px; line-height: 58px;">
-                                                    <i class="ivu-icon ivu-icon-camera" style="font-size: 20px;"></i>
-                                                </div>
-                                            </div>
-                                        </div>
-                                        <div style="width: 670px; height: 320px;bottom:10%;display: block; position: absolute;z-index: 999999" v-if="visible" @click="visible = false ">
-                                            <img :src="form.slider_image"   style="max-width: 100%;max-height: 100%;width:auto;height:auto;position: absolute;left: 50%;top: 50%;transform: translate3d(-50%,-50%,0);-webkit-transform: translate3d(-50%,-50%,0);" >
-                                        </div>
+                                        <Modal title="查看图片" :visible.sync="visible">
+                                            <img :src="form.image" v-if="visible" style="width: 100%">
+                                        </Modal>
                                     </i-Col>
                                 </Row>
                             </Form-Item>
@@ -182,7 +129,6 @@
     </div>
 </div>
 <script src="{__PLUG_PATH}city.js"></script>
-
 <script>
     var storeData={:json_encode($store)};
     mpFrame.start(function(Vue) {
@@ -210,32 +156,16 @@
                         phone:storeData.phone || '',
                         address:storeData.address || [],
                         image:storeData.image || '',
-                        slider_image:storeData.slider_image || [] ,
-                        images:storeData.images || [] ,
                         detailed_address:storeData.detailed_address || '',
                         latlng:storeData.latlng || '',
                         valid_time:storeData.valid_time || [],
                         day_time:storeData.day_time || [],
+                        cate_id:storeData.cate_id || '',
                     },
                     visible:false,
                 }
             },
             methods:{
-                U: function (opt) {
-                    var m = opt.m || 'admin', c = opt.c || window.controlle || '', a = opt.a || 'index', q = opt.q || '',
-                        p = opt.p || {};
-                    var params = Object. keys(p).map(function (key) {
-                        return key + '/' + p[key];
-                    }).join('/');
-                    var gets = Object.keys(q).map(function (key) {
-                        return key+'='+ q[key];
-                    }).join('&');
-
-                    return '/' + m + '/' + c + '/' + a + (params == '' ? '' : '/' + params) + (gets == '' ? '' : '?' + gets);
-                },
-                uploadImage: function (name) {
-                    return this.createFrame('选择图片',this.U({c:"widget.images",a:'index',p:{fodder:name}}),{h:545,w:900});
-                },
                 changeDayTime:function(date){
                     this.$set(this.form,'day_time',date);
                 },
@@ -282,7 +212,7 @@
                     var that = this;
                     if(!that.form.name) return  $eb.message('error','请填写门店行名称');
                     if(!that.form.phone) return  $eb.message('error','请输入手机号码');
-                    if(!that.isPhone(that.form.phone)) return  $eb.message('error','请输入正确的手机号码');
+                    // if(!that.isPhone(that.form.phone)) return  $eb.message('error','请输入正确的手机号码');
                     if(!that.form.address) return  $eb.message('error','请选择门店地址');
                     if(!that.form.detailed_address) return  $eb.message('error','请填写门店详细地址');
                     if(!that.form.image) return  $eb.message('error','请选择门店logo');
@@ -309,7 +239,7 @@
             mounted:function () {
                 window.changeIMG=this.changeIMG;
                 window.selectAdderss=this.selectAdderss;
-            },
+            }
         }).$mount(document.getElementById('store-attr'))
     })
 </script>

+ 6 - 1
app/admin/view/system/system_store/index.php

@@ -27,7 +27,6 @@
                                 <label class="layui-form-label">门店名称</label>
                                 <div class="layui-input-block">
                                     <input type="text" name="name" class="layui-input" placeholder="请输入门店名称,关键字,编号">
-                                    <input type="hidden" name="type" value="{$type}">
                                 </div>
                             </div>
                             <div class="layui-inline">
@@ -67,6 +66,9 @@
                         <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event='edit'>
                             编辑门店
                         </button>
+                        <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event='image'>
+                            店内图片
+                        </button>
                         <button type="button" class="layui-btn layui-btn-xs layui-btn-normal" lay-event='del'>
                             {{# if(d.is_del){ }}
                             恢复门店
@@ -157,6 +159,9 @@
             case 'edit':
                 $eb.createModalFrame(data.name + '-编辑', layList.U({a: 'add', q: {id: data.id}}), {h: 700, w: 1100});
                 break;
+            case 'image':
+                $eb.createModalFrame(data.name + '-上传图片', layList.U({a: 'up', q: {id: data.id}}), {h: 700, w: 1100});
+                break;
         }
     })
 </script>

+ 1 - 2
app/api/controller/PublicController.php

@@ -322,7 +322,6 @@ class PublicController
         return app('json')->successful($data);
     }
 
-
     /**
      * 门店详情
      * @param $id
@@ -336,7 +335,7 @@ class PublicController
         $data = SystemStore::find($id);
         $data = empty($data) ? [] : $data->toArray();
         $data['slider_image'] = json_decode($data['slider_image']);
-        $data['images'] = json_decode($data['images']);
+        $data['images'] = json_decode($data['gatehead']);
         return app('json')->successful($data);
     }
 

+ 29 - 34
app/api/controller/auction/AuctionController.php

@@ -11,6 +11,7 @@ use app\models\auction\AuctionOrder;
 use app\models\auction\AuctionPay;
 use app\models\auction\AuctionProduct;
 use app\models\auction\AuctionTime;
+use app\models\store\StoreProduct;
 use app\models\user\User;
 use app\models\user\UserBill;
 use app\Request;
@@ -60,8 +61,8 @@ class AuctionController
             ['id']
         ]);
         if (!$data['id']) return app('json')->fail('数据传入错误');
-        $auctionModel = new Auction();
-        $auction = $auctionModel->find($data['id']);
+
+        $auction = Auction::lock(true)->find($data['id']);
         if (!$auction)return app('json')->fail('没有此数据');
 
         if (time() < strtotime($auction['add_time'])){
@@ -73,47 +74,41 @@ class AuctionController
         if (AuctionBooking::where([['uid', '=', $request->uid()], ['auction_id' , '=', $auction['id']], ['frequency', '=', $auction['frequency']]])->find()){
             return app('json')->fail('当前场次已预约');
         }
-
-        $userModel = new User();
-        $user = $userModel->find($request->uid());
+        $product = AuctionProduct::alias('a')
+            ->field('a.*')
+            ->where([['a.uid', '<>', $request->uid()], ['a.is_show', '=', 1], ['b.add_time', '=', strtotime('today')], ['a.auction_id', '=', $data['id']]])
+            ->leftJoin('auction_time b', 'a.id = b.product_id')
+            ->limit(1)
+            ->orderRaw('rand()')
+            ->select();
+        if (count($product) == 0) return app('json')->fail('商品已认购完');;
+        $user = User::find($request->uid());
         if ($user['is_auth'] != 2) return app('json')->fail('未实名认证');
         if ($user['shop_integral'] <= 0) return app('json')->fail('账户内没有购物券,无法进行预约');
         if ($user['anticipate'] < $auction['anticipate']) return app('json')->fail('广告值不足');
         $user['anticipate'] = $user['anticipate'] - $auction['anticipate'];// 扣除广告值
-
-        User::rollbackTrans();
-        $user->save();
-        $redis = new \Redis();
-        $redis->connect('127.0.0.1','6379'); // redis 缓存
-        $product = $redis->lPop($auction['id']);
-        if (!$product){
-            return app('json')->fail('商品已预约认购完,请等待下次');
-        }
-        $product = json_decode($product);
-        $res = AuctionOrder::create([
-            'uid' => $request->uid(),
-            'collection_id' => $product->uid,// 商品拥有有人
-            'order_id' => getNewOrderId(),
-            'name' => $product->name,
-            'product_id' => $product->id,
-            'auction_id' => $auction['id'],
-            'image'=> $product->image,
-            'price' => $product->hanging_price,
-            'frequency' => $auction['frequency']
-        ]);
-
-        if ($res){
+        try {
+            Db::startTrans();
+            $user->save();
+            AuctionOrder::create([
+                'uid' => $request->uid(),
+                'collection_id' => $product[0]['uid'],// 商品拥有有人
+                'order_id' => getNewOrderId(),
+                'name' => $product[0]['name'],
+                'product_id' => $product[0]['id'],
+                'auction_id' => $auction['id'],
+                'image'=> $product[0]['image'],
+                'price' => $product[0]['hanging_price'],
+                'frequency' => $auction['frequency']
+            ]);
             AuctionBooking::booking($user['uid'], $auction);
             UserBill::expend('预约认购', $user['uid'], 'anticipate','reduce_anticipate', $auction['anticipate'], 0, $user['anticipate'], '预约扣除广告值'); // 写入记录
-
-            User::commitTrans();
+            Db::commit();
             return app('json')->successful('认购成功');
-        }else{
-
-            User::rollbackTrans();
+        } catch (\Exception $e) {
+            Db::rollback();
             return app('json')->fail('认购失败');
         }
-
     }
 
     /**

+ 9 - 14
app/api/controller/auction/AuctionProductController.php

@@ -245,10 +245,10 @@ class AuctionProductController
         if ($order['status'] == 3) return app('json')->fail('该订单已完成');
 
         $order['status'] = 3;
-        AuctionOrder::beginTrans();
-        $res = $order->save();
-        if ($res){
 
+        try {
+            Db::startTrans();
+            $order->save();
             $product = AuctionProduct::find($order['product_id']);
             if (!$product) return app('json')->fail('数据不存在');
             $uid = $product['uid']; // 所属人id
@@ -256,21 +256,16 @@ class AuctionProductController
             $product['uid'] = $order['uid'];// 商品拥有人更新
             $product['add_time'] = time();
             $product['order'] = $data['order_id'];
+            $product['is_show'] = 0;
             $res = $product->save();
-            if ($res){
-                if ($uid > 0){
-                    AuctionOrder::earn($uid,$order['price'] ,$product); // 卖家
-                }
-            }
-            AuctionOrder::return($order); // 买家
-            AuctionOrder::commitTrans();
+            AuctionTime::where([['product_id', '=', $product['id']]])->delete();
+            AuctionOrder::return($order['id']); // 买家
+            Db::commit();
             return app('json')->successful('完成');
-        }else{
-
-            AuctionOrder::rollbackTrans();
+        } catch (\Exception $e) {
+            Db::rollback();
             return app('json')->fail('失败');
         }
-
     }
 
     /**

+ 11 - 11
app/models/auction/AuctionOrder.php

@@ -223,16 +223,16 @@ class AuctionOrder extends BaseModel
 
 
         $user = $userModel->find($data['uid']);
-        if ($user['is_new'] == 1) {
-
-            if ($user['spread_uid']) {
-                $spread = $userModel->where('uid', $user['spread_uid'])->find();
-                $proportion = SystemConfigService::get('golden_bean')/100;
-                $spread['golden_bean'] += $order['price'] * $proportion;
-                $spread->save();
-                \app\models\user\UserBill::income('直推奖励金豆', $spread['uid'], 'golden_bean', 'ztjl_golden_bean', $order['price'] * $proportion, '', $spread['golden_bean'], '直推奖励金豆');
-            }
-        }
+//        if ($user['is_new'] == 1) {
+//
+//            if ($user['spread_uid']) {
+//                $spread = $userModel->where('uid', $user['spread_uid'])->find();
+//                $proportion = SystemConfigService::get('golden_bean')/100;
+//                $spread['golden_bean'] += $order['price'] * $proportion;
+//                $spread->save();
+//                \app\models\user\UserBill::income('直推奖励金豆', $spread['uid'], 'golden_bean', 'ztjl_golden_bean', $order['price'] * $proportion, '', $spread['golden_bean'], '直推奖励金豆');
+//            }
+//        }
         $product = $productModel->where('id', $data['product_id'])->find();
         $auction = $auctionModel->where('id', $product['auction_id'])->find();
 
@@ -426,7 +426,7 @@ class AuctionOrder extends BaseModel
                                 unset($list[$k]);
                             }else{
                                 if ($v['is_admin'] == 2){
-                                    $time = AuctionTime::where([['auction_id', '=', $item['id']], ['product_id', '=', $v['id']], ['add_time', '=', strtotime(date('Y-m-d', time()))]])->find();
+                                    $time = AuctionTime::where([['auction_id', '=', $item['id']], ['product_id', '=', $v['id']], ['add_time', '<=', strtotime(date('Y-m-d', time()))]])->find();
                                     if (!$time){
                                         unset($list[$k]);
                                     } else{

BIN
public/static/img/down.jpg


BIN
public/static/img/downLoad.png


BIN
public/static/img/live_weixin.png