瀏覽代碼

[智价云] 低价违规商品处理-买药&下架&溯源业务

tangyuanwang 2 月之前
父節點
當前提交
3945584b02

+ 166 - 0
app/Http/Controllers/Manager/Process/LowPriceGoods.php

@@ -11,6 +11,8 @@ use PhpOffice\PhpSpreadsheet\Spreadsheet;
 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
 use PhpOffice\PhpSpreadsheet\Style\Alignment;
 use PhpOffice\PhpSpreadsheet\Style\Alignment;
 use App\Models\Manager\Process\LowPriceGoodsMember as LowPriceGoodsMemberModel;
 use App\Models\Manager\Process\LowPriceGoodsMember as LowPriceGoodsMemberModel;
+use App\Models\manager\Process\LowPriceGoodsRecord as LowPriceGoodsRecordModel;
+use Illuminate\Support\Facades\DB;
 
 
 /**
 /**
  * 违规处理-低价商品
  * 违规处理-低价商品
@@ -596,4 +598,168 @@ class LowPriceGoods extends Controller
         // 告知结果
         // 告知结果
         return             json_send(['code' => 'success', 'msg' => '执行成功']);
         return             json_send(['code' => 'success', 'msg' => '执行成功']);
     }
     }
+
+
+    /**
+     * 处理买药中的业务
+     * @author    唐远望
+     * @version   1.0
+     * @date      2025-12-23
+     * 
+     */
+    public function buying_business(Request $request, LowPriceGoodsModel $LowPriceGoodsModel, LowPriceGoodsRecordModel $LowPriceGoodsRecordModel)
+    {
+        // 验证参数
+        $request->scene('buying_business')->validate();
+        $access_token = request('access_token', '');
+        $admin_id = $access_token['uid'];
+        // 接收数据
+        $all_data = request()->all();
+        $id = request('id', 0);
+        $where = ['id' => $id];
+        $LowPriceGoods = $LowPriceGoodsModel->where($where)->first();
+        if (!$LowPriceGoods) return json_send(['code' => 'error', 'msg' => '违规记录不存在']);
+        if ($LowPriceGoods->processing_status != '1') return json_send(['code' => 'error', 'msg' => '当前状态不是待处理,流程调用错误']);
+        if ($all_data['processing_status'] != '2') return json_send(['code' => 'error', 'msg' => '流程状态参数值错误']);
+        // 查询是否存在流程中的记录
+        $map = ['lowprice_product_logid' => $id, 'processing_status' => $all_data['processing_status']];
+        $record = $LowPriceGoodsRecordModel->where($map)->first();
+        if ($record) return json_send(['code' => 'error', 'msg' => '当前状态已存在流程中,请勿重复提交']);
+        $record_content = [
+            'purchase_quantity' => $all_data['purchase_quantity'], //购买数量
+            'totle_amount' => $all_data['totle_amount'], //总金额
+            'buy_date' => $all_data['buy_date'], //购买日期
+            'screenshot_images' => $all_data['screenshot_images'], // 截图图片
+        ];
+        // 写入流程记录
+        $insert_data = [
+            'lowprice_product_logid' => $id,
+            'admin_id' => $admin_id,
+            'record_content' => json_encode($record_content),
+            'processing_status' => $all_data['processing_status'], //处理状态1=待处理2=购买中3=已溯源4=回收凭据已上传5=已回收6=拒绝回收7=已下架8=无法处理
+        ];
+        DB::beginTransaction();
+        try {
+            $LowPriceGoodsRecordModel->addLowPriceGoodsRecord_content($insert_data);
+            //更新违规记录状态
+            $LowPriceGoods->processing_status = $all_data['processing_status'];
+            $LowPriceGoods->update_time = time();
+            $LowPriceGoods->save();
+            DB::commit();
+            return json_send(['code' => 'success', 'msg' => '流转成功']);
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return json_send(['code' => 'error', 'msg' => '流转失败', 'data' => $e->getMessage()]);
+        }
+    }
+
+
+    /**
+     * 处理已下架/无法处理中的业务
+     * @author    唐远望
+     * @version   1.0
+     * @date      2025-12-23
+     * 
+     */
+    public function unprocessed_business(Request $request, LowPriceGoodsModel $LowPriceGoodsModel, LowPriceGoodsRecordModel $LowPriceGoodsRecordModel)
+    {
+        // 验证参数
+        $request->scene('unprocessed_business')->validate();
+        $access_token = request('access_token', '');
+        $admin_id = $access_token['uid'];
+        // 接收数据
+        $all_data = request()->all();
+        $id = request('id', 0);
+        $where = ['id' => $id];
+        $LowPriceGoods = $LowPriceGoodsModel->where($where)->first();
+        if (!$LowPriceGoods) return json_send(['code' => 'error', 'msg' => '违规记录不存在']);
+        if ($LowPriceGoods->processing_status != '1') return json_send(['code' => 'error', 'msg' => '当前状态不是待处理,流程调用错误']);
+        if (!in_array($all_data['processing_status'],[7,8])) return json_send(['code' => 'error', 'msg' => '流程状态参数值错误']); 
+        // 查询是否存在流程中的记录
+        $map = ['lowprice_product_logid' => $id, 'processing_status' => $all_data['processing_status']];
+        $record = $LowPriceGoodsRecordModel->where($map)->first();
+        if ($record) return json_send(['code' => 'error', 'msg' => '当前状态已存在流程中,请勿重复提交']);
+        $record_content = [
+            'description' => $all_data['description'], //情况描述
+            'screenshot_images' => $all_data['screenshot_images'], // 截图图片
+        ];
+        // 写入流程记录
+        $insert_data = [
+            'lowprice_product_logid' => $id,
+            'admin_id' => $admin_id,
+            'record_content' => json_encode($record_content),
+            'processing_status' => $all_data['processing_status'], //处理状态1=待处理2=购买中3=已溯源4=回收凭据已上传5=已回收6=拒绝回收7=已下架8=无法处理
+        ];
+        DB::beginTransaction();
+        try {
+            $LowPriceGoodsRecordModel->addLowPriceGoodsRecord_content($insert_data);
+            //更新违规记录状态
+            $LowPriceGoods->processing_status = $all_data['processing_status'];
+            $LowPriceGoods->update_time = time();
+            $LowPriceGoods->save();
+            DB::commit();
+            return json_send(['code' => 'success', 'msg' => '流转成功']);
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return json_send(['code' => 'error', 'msg' => '流转失败', 'data' => $e->getMessage()]);
+        }
+    }
+
+    /**
+     * 处理已溯源中的业务
+     * @author    唐远望
+     * @version   1.0
+     * @date      2025-12-23
+     * 
+     */
+    public function trace_business(Request $request, LowPriceGoodsModel $LowPriceGoodsModel, LowPriceGoodsRecordModel $LowPriceGoodsRecordModel)
+    {
+        // 验证参数
+        $request->scene('trace_business')->validate();
+        $access_token = request('access_token', '');
+        $admin_id = $access_token['uid'];
+        // 接收数据
+        $all_data = request()->all();
+        $id = request('id', 0);
+        $where = ['id' => $id];
+        $LowPriceGoods = $LowPriceGoodsModel->where($where)->first();
+        if (!$LowPriceGoods) return json_send(['code' => 'error', 'msg' => '违规记录不存在']);
+        if ($LowPriceGoods->processing_status != '2') return json_send(['code' => 'error', 'msg' => '当前状态不是购买中,流程调用错误']);
+        if ($all_data['processing_status'] != '3') return json_send(['code' => 'error', 'msg' => '流程状态参数值错误']); 
+        // 查询是否存在流程中的记录
+        $map = ['lowprice_product_logid' => $id, 'processing_status' => $all_data['processing_status']];
+        $record = $LowPriceGoodsRecordModel->where($map)->first();
+        if ($record) return json_send(['code' => 'error', 'msg' => '当前状态已存在流程中,请勿重复提交']);
+        $record_content = [
+            'trace_company_name' => $all_data['trace_company_name'], //溯源公司名称
+            'trace_description' => $all_data['trace_description'], //溯源情况描述
+            'screenshot_images' => $all_data['screenshot_images'], // 截图图片
+        ];
+        // 写入流程记录
+        $insert_data = [
+            'lowprice_product_logid' => $id,
+            'admin_id' => $admin_id,
+            'record_content' => json_encode($record_content),
+            'processing_status' => $all_data['processing_status'], //处理状态1=待处理2=购买中3=已溯源4=回收凭据已上传5=已回收6=拒绝回收7=已下架8=无法处理
+        ];
+        DB::beginTransaction();
+        try {
+            $LowPriceGoodsRecordModel->addLowPriceGoodsRecord_content($insert_data);
+            //更新违规记录状态
+            $LowPriceGoods->processing_status = $all_data['processing_status'];
+            $LowPriceGoods->update_time = time();
+            $LowPriceGoods->save();
+            DB::commit();
+            return json_send(['code' => 'success', 'msg' => '流转成功']);
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return json_send(['code' => 'error', 'msg' => '流转失败', 'data' => $e->getMessage()]);
+        }
+    }
 }
 }

+ 24 - 1
app/Http/Requests/Manager/Process/LowPriceGoods.php

@@ -41,6 +41,13 @@ class LowPriceGoods extends BaseRequest
             'store_name'            => 'required',
             'store_name'            => 'required',
             'source_responsible_person'  => 'required',
             'source_responsible_person'  => 'required',
             'processing_status'     => 'required|integer|in:0,1,2,3,4,5,6,7,8,9,10',
             'processing_status'     => 'required|integer|in:0,1,2,3,4,5,6,7,8,9,10',
+            'description'          => 'required',
+            'purchase_quantity'   => 'required|integer|min:0',
+            'totle_amount'        => 'required|numeric|min:0',
+            'screenshot_images' => 'required',
+            'trace_company_name' => 'required',
+            'trace_description' => 'required',
+            'online_posting_price' => 'required|numeric|min:0',
         ];
         ];
     }
     }
 
 
@@ -80,7 +87,10 @@ class LowPriceGoods extends BaseRequest
         'set_processing_status'   => ['id', 'processing_status'],
         'set_processing_status'   => ['id', 'processing_status'],
         'delete'                  => ['id'],
         'delete'                  => ['id'],
         'data_cleaning'           => [''],
         'data_cleaning'           => [''],
-        'export_excel'            => ['']
+        'export_excel'            => [''],
+        'buying_business' => ['id','processing_status','purchase_quantity', 'totle_amount', 'buy_date', 'screenshot_images'],
+        'unprocessed_business' => ['id','processing_status', 'description','screenshot_images'],
+        'trace_business' => ['id','processing_status', 'trace_company_name','trace_description','screenshot_images'],
     ];
     ];
 
 
     /**
     /**
@@ -120,6 +130,19 @@ class LowPriceGoods extends BaseRequest
             'processing_status.required'    => '处理状态未知',
             'processing_status.required'    => '处理状态未知',
             'processing_status.integer'    => '处理状态格式错误',
             'processing_status.integer'    => '处理状态格式错误',
             'processing_status.in'    => '处理状态格式错误',
             'processing_status.in'    => '处理状态格式错误',
+            'description.required'    => '处理描述未知',
+            'purchase_quantity.required'    => '购买数量未知',
+            'purchase_quantity.integer'    => '购买数量格式错误',
+            'purchase_quantity.min'    => '购买数量格式错误',
+            'totle_amount.required'    => '总金额未知',
+            'totle_amount.numeric'    => '总金额格式错误',
+            'totle_amount.min'    => '总金额格式错误',
+           'screenshot_images.required'    => '截图未知',
+            'trace_company_name.trace_company_name'    => '溯源公司名称未知',
+            'trace_description.trace_description'    => '溯源描述未知',
+            'online_posting_price.required'    => '线上挂网价格未知',
+            'online_posting_price.numeric'    => '线上挂网价格格式错误',
+            'online_posting_price.min'    => '线上挂网价格格式错误',
         ];
         ];
     }
     }
 }
 }

+ 138 - 0
app/Models/Manager/Process/LowPriceGoodsRecord.php

@@ -0,0 +1,138 @@
+<?php
+
+namespace App\Models\manager\Process;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Facades\DB;
+
+/**
+ * 违规处理-低价商品处理记录模型
+ * @author: 唐远望
+ * @version: 1.0
+ * @date: 2025-12-23
+ */
+class LowPriceGoodsRecord extends Model
+{
+    use HasFactory;
+    // 与模型关联的表名
+    protected $table = 'process_lowprice_product_record';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+
+    /**
+     * 添加
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-23
+     */
+    public function addLowPriceGoodsRecord_content($data)
+    {
+        $insert_data = [
+            'lowprice_product_logid' => $data['lowprice_product_logid'],
+            'processing_status' => $data['processing_status'],
+            'employee_id' => isset($data['employee_id']) ? $data['employee_id'] : 0,
+            'admin_id'     => isset($data['admin_id']) ? $data['admin_id'] : 0,
+            'record_content' => $data['record_content'],
+            'insert_time'    => time(),
+        ];
+        $LowPriceGoodsRecord_id = $this->insertGetId($insert_data);
+        return $LowPriceGoodsRecord_id;
+    }
+
+
+    /**
+     * 写入数据
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-23
+     * @param $data
+     * @return bool
+     */
+    public function addLowPriceGoodsRecord($data)
+    {
+        DB::beginTransaction();
+        try {
+            $this->addLowPriceGoodsRecord_content($data);
+            DB::commit();
+            return true;
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return false;
+        }
+    }
+
+
+    /**
+     * 编辑内容
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-23
+     * @param $data
+     * @return bool
+     */
+    public function editLowPriceGoodsRecord_content($where, $data)
+    {
+        $LowPriceGoodsRecord = $this->where($where)->first();
+        if (!$LowPriceGoodsRecord) {
+            return false;
+        }
+        $LowPriceGoodsRecord->lowprice_product_logid = $data['lowprice_product_logid'];
+        $LowPriceGoodsRecord->processing_status = $data['processing_status'];
+        $LowPriceGoodsRecord->record_content = $data['record_content'];
+        $LowPriceGoodsRecord->employee_id = isset($data['employee_id']) ? $data['employee_id'] : 0;
+        $LowPriceGoodsRecord->admin_id = isset($data['admin_id']) ? $data['admin_id'] : 0;
+        $LowPriceGoodsRecord->update_time = time();
+        $LowPriceGoodsRecord->save();
+        return true;
+    }
+
+
+
+    /**
+     * 更新数据
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-23
+     * @param $data
+     * @return bool
+     */
+    public function updateLowPriceGoodsRecord($where, $data)
+    {
+        DB::beginTransaction();
+        try {
+            $this->editLowPriceGoodsRecord_content($where, $data);
+            DB::commit();
+            return true;
+            // 成功处理...
+        } catch (\Exception $e) {
+            DB::rollBack();
+            // 错误处理...
+            return false;
+        }
+    }
+
+    /**
+     * 删除数据
+     * @author 唐远望
+     * @version 1.0
+     * @date 2025-12-23
+     * @param $id
+     * @return bool
+     */
+    public function deleteLowPriceGoodsRecord($where)
+    {
+        $LowPriceGoodsRecord = $this->where($where)->first();
+        if (!$LowPriceGoodsRecord) {
+            return false;
+        }
+        $LowPriceGoodsRecord->delete();
+        return true;
+    }
+}

+ 6 - 0
routes/manager.php

@@ -194,6 +194,12 @@ Route::any('process/low_price_goods/delete', [App\Http\Controllers\Manager\Proce
 Route::any('process/low_price_goods/data_cleaning', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'data_cleaning']);
 Route::any('process/low_price_goods/data_cleaning', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'data_cleaning']);
 // 低价挂网商品违规处理-导出Excel
 // 低价挂网商品违规处理-导出Excel
 Route::any('process/low_price_goods/export_excel', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'export_excel']);
 Route::any('process/low_price_goods/export_excel', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'export_excel']);
+// 低价挂网商品违规处理-处理买药中的业务
+Route::any('process/low_price_goods/buying_business', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'buying_business']);
+// 低价挂网商品违规处理-已下架/无法处理中的业务
+Route::any('process/low_price_goods/unprocessed_business', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'unprocessed_business']);
+// 低价挂网商品违规处理-处理已溯源中的业务
+Route::any('process/low_price_goods/trace_business', [App\Http\Controllers\Manager\Process\LowPriceGoods::class, 'trace_business']);
 
 
 // 违规挂网商品违规处理-列表
 // 违规挂网商品违规处理-列表
 Route::any('process/violation_goods/list', [App\Http\Controllers\Manager\Process\ViolationProduct::class, 'list']);
 Route::any('process/violation_goods/list', [App\Http\Controllers\Manager\Process\ViolationProduct::class, 'list']);