作者 lyh

Merge branch 'develop' of http://47.244.231.31:8099/zhl/globalso-v6

<?php
/**
* @remark :
* @name :UpdateProductCategory.php
* @author :lyh
* @method :post
* @time :2023/12/6 16:07
*/
namespace App\Console\Commands;
use App\Models\Product\Category;
use App\Models\Product\CategoryRelated;
use App\Models\Product\Product;
use App\Models\Project\Project;
use App\Services\ProjectServer;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\DB;
/**
* @remark :更新分类
* @name :UpdateProductCategory
* @author :lyh
* @method :post
* @time :2023/12/6 16:07
*/
class UpdateProductCategory extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'update_product_cate';
/**
* The console command description.
*
* @var string
*/
protected $description = '更新产品分类';
/**
* @remark :执行方法
* @name :handle
* @author :lyh
* @method :post
* @time :2023/12/6 16:09
*/
public function handle(){
//获取所有项目
$projectModel = new Project();
$list = $projectModel->list(['type'=>['in',[1,2,3,4]]],'id',['id']);
echo date('Y-m-d H:i:s') . ' start: ' . json_encode($list) . PHP_EOL;
try {
foreach ($list as $v) {
echo date('Y-m-d H:i:s') . ' start: ' . $v['id'] . PHP_EOL;
ProjectServer::useProject($v['id']);
$this->getUpdateProductCategory();
DB::disconnect('custom_mysql');
}
}catch (\Exception $e){
echo date('Y-m-d H:i:s') . ' error: ->' . $e->getMessage() . PHP_EOL;
}
echo date('Y-m-d H:i:s') . ' end: ' . PHP_EOL;
}
/**
* @remark :更新
* @name :getUpdateProductCategory
* @author :lyh
* @method :post
* @time :2023/12/6 16:12
*/
public function getUpdateProductCategory(){
$productModel = new Product();
$lists = $productModel->list(['status'=>1],'id',['id','category_id']);
foreach ($lists as $k => $v){
if(!empty($v['category_id'])){
$this->handleCategory($v['id'],$v['category_id']);
}
}
return true;
}
/**
* @remark :处理分类
* @name :handleCategory
* @author :lyh
* @method :post
* @time :2023/12/6 16:20
*/
public function handleCategory($id,$cate_arr){
if(!empty($cate_arr) && is_array($cate_arr)){
foreach ($cate_arr as $v){
$categoryModel = new Category();
$info = $categoryModel->read(['pid'=>$v],['id']);
if($info !== false){
//有下级时,跳过
continue;
}else{
//更新关联表
$cateRelatedModel = new CategoryRelated();
$relateInfo = $cateRelatedModel->read(['product_id'=>$id,'cate_id'=>$v]);
if($relateInfo === false){
$cateRelatedModel->add(['product_id'=>$id, 'cate_id'=>$v]);
}
}
}
}
}
}
... ...
... ... @@ -138,6 +138,14 @@ class OnlineController extends BaseController
$query->where('gl_project.title', 'like', '%' . $this->map['search'] . '%');
}
}
if(isset($this->map['qa_status']) && !empty($this->map['qa_status'])){
// 搜索状态
$query->where('gl_project_online_check.qa_status',$this->map['qa_status']);
}
if(isset($this->map['optimist_status']) && !empty($this->map['optimist_status'])){
// 搜索状态
$query->where('gl_project_online_check.optimist_status',$this->map['optimist_status']);
}
$query = $query->where('gl_project.status',1);//TODO::已提交审核
return $query;
}
... ...
... ... @@ -298,24 +298,7 @@ class ProductController extends BaseController
$v['values'] = '';
}
}else{
if($v['type'] == 3){
$arr = json_decode($info['values']);
foreach ($arr as $k1=>$v1){
$v1 = (array)$v1;
$v1['url'] = getImageUrl($v1['url']);
$arr[$k1] = $v1;
}
$v['values'] = $arr;
}elseif($v['type'] == 4){
$arr1 = json_decode($info['values']);
foreach ($arr1 as $k1=>$v1){
$v1 = getFileUrl($v1);
$arr1[$k1] = $v1;
}
$v['values'] = $arr1;
}else{
$v['values'] = $info['values'];
}
$v = $this->setTypValues($v,$info);
}
$list[$k] = $v;
}
... ... @@ -323,6 +306,35 @@ class ProductController extends BaseController
}
/**
* @remark :扩展字段根据type返回类型
* @name :setTypValues
* @author :lyh
* @method :post
* @time :2023/12/6 14:43
*/
public function setTypValues($v,$info){
if($v['type'] == 3){
$arr = json_decode($info['values']);
foreach ($arr as $k1=>$v1){
$v1 = (array)$v1;
$v1['url'] = getImageUrl($v1['url']);
$arr[$k1] = $v1;
}
$v['values'] = $arr;
}elseif($v['type'] == 4){
$arr1 = json_decode($info['values']);
foreach ($arr1 as $k1=>$v1){
$v1 = getFileUrl($v1);
$arr1[$k1] = $v1;
}
$v['values'] = $arr1;
}else{
$v['values'] = $info['values'];
}
return $this->success($v);
}
/**
* @remark :保存产品数据
* @name :save
* @author :lyh
... ...
... ... @@ -75,6 +75,9 @@ class OnlineCheckLogic extends BaseLogic
if(($this->param['optimist_mid'] == 0) || ($this->param['qa_mid'] == 0)){
$this->fail('请先选择优化师和品控,在提交审核');
}
$projectModel = new Project();
//提交审核修改状态为审核中
$projectModel->edit(['status'=>1],['id'=>$this->param['id']]);
//组装数据
$data = [
'project_id' => $this->param['id'],
... ... @@ -88,9 +91,6 @@ class OnlineCheckLogic extends BaseLogic
$this->fail('error');
}
}
$projectModel = new Project();
//提交审核修改状态为审核中
$projectModel->edit(['status'=>1],['id'=>$this->param['id']]);
return $this->success();
}
}
... ...
... ... @@ -391,7 +391,6 @@ class BTemplateLogic extends BaseLogic
*/
public function templateSaveParam($param){
$param['project_id'] = $this->user['project_id'];
$param['html'] = $param['main_html'];
unset($param['head_html'],$param['head_css'],$param['footer_html'],$param['footer_css']);
return $this->success($param);
}
... ...
... ... @@ -11,6 +11,7 @@ namespace App\Http\Logic\Bside\CustomModule;
use App\Http\Logic\Bside\BaseLogic;
use App\Models\CustomModule\CustomModuleCategory;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\RouteMap\RouteMap;
class CustomModuleCategoryLogic extends BaseLogic
... ... @@ -41,7 +42,7 @@ class CustomModuleCategoryLogic extends BaseLogic
$menu = array();
$list = $this->model->list($this->param);
if(!empty($list)){
foreach ($list as $k => $v){
foreach ($list as $v){
if($v['pid'] == 0){
$v['sub'] = _get_child($v['id'],$list);
$menu[] = $v;
... ... @@ -110,7 +111,9 @@ class CustomModuleCategoryLogic extends BaseLogic
public function categoryAdd(){
try {
$id = $this->model->addReturnId($this->param);
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'], $id, $this->user['project_id']);
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],
$id, $this->user['project_id']);
$this->handleAddSon($id);
$this->addUpdateNotify(RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],$route);
$this->edit(['url' => $route], ['id' => $id]);
}catch (\Exception $e){
... ... @@ -127,7 +130,8 @@ class CustomModuleCategoryLogic extends BaseLogic
* @time :2023/12/5 10:55
*/
public function categoryEdit(){
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'], $this->param['id'], $this->user['project_id']);
$route = RouteMap::setRoute($this->param['route'], RouteMap::SOURCE_MODULE_CATE.$this->param['module_id'],
$this->param['id'], $this->user['project_id']);
$this->editNewsRoute($this->param['id'],$route);
$rs = $this->model->edit($this->param,['id'=>$this->param['id']]);
if($rs === false){
... ... @@ -160,24 +164,23 @@ class CustomModuleCategoryLogic extends BaseLogic
* @method :post
* @time :2023/6/13 11:34
*/
public function addProcessingSon($cate_id){
public function handleAddSon($cate_id){
if(isset($this->param['pid']) && !empty($this->param['pid'])) {
$this->param['pid'] = 0;
}
//判断为子分类时
if($this->param['pid'] != 0) {
//查看当前上级分类下是否有其他分类
$cate_info = $this->model->read(['pid' => $this->param['pid'], 'id' => ['!=', $cate_id]]);
$cate_info = $this->model->read(['pid' => $this->param['pid'], 'id' => ['!=', $cate_id]],['id']);
if ($cate_info === false) {
//查看当前上一级分类下是否有关联模块内容
$newsModel = new NewsModel();
$news_count = $newsModel->where('category_id','like', '%,' . $this->param['pid'] . ',%')->count();
$contentModel = new CustomModuleContent();
$news_count = $contentModel->where('category_id','like', '%,' . $this->param['pid'] . ',%')->count();
if ($news_count > 0) {
$replacement = ',' . $cate_id . ',';
$old = ',' . $this->param['pid'] . ',';
$replacement = $this->handleStr($cate_id);
$old = $this->handleStr($this->param['pid']);
//更新所有商品到当前分类
$newsModel->where('category_id', 'like', '%' . $old . '%')
->update(['category_id' => DB::raw("REPLACE(category_id, '$old', '$replacement')")]);
$contentModel->where('category_id', 'like', '%' . $old . '%')->update(['category_id' => DB::raw("REPLACE(category_id, '$old', '$replacement')")]);
}
}
}
... ... @@ -185,6 +188,17 @@ class CustomModuleCategoryLogic extends BaseLogic
}
/**
* @remark :处理字符串
* @name :handleStr
* @author :lyh
* @method :post
* @time :2023/12/5 18:03
*/
public function handleStr($str){
return ',' . $str . ',';
}
/**
* @remark :删除数据
* @name :ModuleDel
* @author :lyh
... ...
... ... @@ -62,6 +62,7 @@ class CustomModuleLogic extends BaseLogic
* @time :2023/12/5 9:39
*/
public function moduleAdd(){
$this->param['project_id'] = $this->user['project_id'];
$rs = $this->model->add($this->param);
if($rs === false){
$this->fail('系统错误,请联系管理员');
... ...
... ... @@ -38,21 +38,12 @@ class ProductLogic extends BaseLogic
* @time :2023/8/21 18:35
*/
public function productSave(){
//扩展字段
$extend = [];
if(!empty($this->param['extend'])){
$extend = $this->param['extend'];
unset($this->param['extend']);
}
$this->param = $this->handleSaveParam($this->param);
//处理扩展字段
$extend = $this->handleExtent();
//单独处理分类
$category_ids = [];
if(isset($this->param['category_id']) && !empty($this->param['category_id'])) {
$category_ids = $this->getLastCategoryArr($this->param['category_id']);
$this->param['category_id'] = ','.implode(',',$category_ids).',';
}else{
$this->param['category_id'] = '';
}
$category_ids = $this->handleCategory();
//处理其他字段
$this->param = $this->handleSaveParam($this->param);
DB::connection('custom_mysql')->beginTransaction();
try {
if(isset($this->param['id']) && !empty($this->param['id'])){
... ... @@ -81,6 +72,40 @@ class ProductLogic extends BaseLogic
}
/**
* @remark :处理扩展字段
* @name :handleExtent
* @author :lyh
* @method :post
* @time :2023/12/6 15:06
*/
public function handleExtent(){
//扩展字段
$extend = [];
if(!empty($this->param['extend'])){
$extend = $this->param['extend'];
unset($this->param['extend']);
}
return $extend;
}
/**
* @remark :处理分类数据
* @name :handleCategory
* @author :lyh
* @method :post
* @time :2023/12/6 15:01
*/
public function handleCategory(){
$category_ids = [];
if(isset($this->param['category_id']) && !empty($this->param['category_id'])) {
$category_ids = $this->getLastCategoryArr($this->param['category_id']);
$this->param['category_id'] = ','.implode(',',$category_ids).',';
}else{
$this->param['category_id'] = '';
}
return $category_ids;
}
/**
* @remark :新增时处理字段
* @name :addHandleParam
* @author :lyh
... ... @@ -112,27 +137,38 @@ class ProductLogic extends BaseLogic
if(empty($v['values'])){
continue;
}
unset($v['title']);
if($v['type'] == 3){
foreach ($v['values'] as $k1=>$v1){
$v1['url'] = str_replace_url($v1['url']);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}elseif ($v['type'] == 4){
foreach ($v['values'] as $k1=>$v1){
$v1 = str_replace_url($v1);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}
$v['project_id'] = $this->user['project_id'];
$v['product_id'] = $product_id;
$v = $this->saveHandleExtend($v,$product_id);
$extendInfoModel->add($v);
}
return $this->success();
}
/**
* @remark :保存扩展字段时处理数据
* @name :saveHandleExtend
* @author :lyh
* @method :post
* @time :2023/12/6 15:11
*/
public function saveHandleExtend(&$v,$product_id){
unset($v['title']);
if($v['type'] == 3){
foreach ($v['values'] as $k1=>$v1){
$v1['url'] = str_replace_url($v1['url']);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}elseif ($v['type'] == 4){
foreach ($v['values'] as $k1=>$v1){
$v1 = str_replace_url($v1);
$v['values'][$k1] = $v1;
}
$v['values'] = json_encode($v['values']);
}
$v['project_id'] = $this->user['project_id'];
$v['product_id'] = $product_id;
return $this->success($v);
}
/**
* @remark :编辑列表数据
... ...
... ... @@ -38,7 +38,9 @@ class CategoryRelated extends Base
foreach ($cate_ids as $cate_id){
$data[] = [
'product_id' => $product_id,
'cate_id' => $cate_id
'cate_id' => $cate_id,
'created_at'=>date('Y-m-d H:i:s'),
'updated_at'=>date('Y-m-d H:i:s')
];
}
self::insert($data);
... ...