GoodsLogic.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. namespace app\api\logic;
  3. use app\common\logic\BaseLogic;
  4. use app\common\model\goods\Goods;
  5. use app\common\model\goods_category\GoodsCategory;
  6. use think\facade\Db;
  7. /**
  8. * 服务商品逻辑处理
  9. * Class GoodsLogic
  10. * @package app\api\logic
  11. */
  12. class GoodsLogic extends BaseLogic
  13. {
  14. /**
  15. * @notes 文章详情
  16. * @param $goods_id
  17. * @param $userId
  18. * @return array
  19. * @author whitef
  20. * @date 2022/9/20 17:09
  21. */
  22. public static function detail($id,$type){
  23. if($type == 'category'){
  24. $goods = Goods::where('goods_category_id',$id)->visible([
  25. 'id','goods_image','goods_video',
  26. 'goods_number','good_unit','base_service_fee',
  27. 'service_total','service_fee','service_image','fee_schedule','warranty_period'
  28. ])->select()->toArray();
  29. }else{
  30. $goods_category_id = Goods::where('id',$id)->value('goods_category_id');
  31. $goods = Goods::where('goods_category_id',$goods_category_id)->visible([
  32. 'id','goods_image','goods_video',
  33. 'goods_number','good_unit','base_service_fee',
  34. 'service_total','service_fee','service_image','fee_schedule','warranty_period'
  35. ])->select()->toArray();
  36. }
  37. return $goods;
  38. }
  39. public static function getHotData()
  40. {
  41. return Goods::where('is_hot', '=', 1)
  42. ->with('goodsCategory')
  43. ->visible(['id','goods_name','goods_category_id','goods_image','goods_video','goodsCategory'])
  44. ->order(['top_weight' => 'desc', 'id' => 'desc'])
  45. ->select()->toArray();
  46. }
  47. public static function sync(array $params,int $userId): bool
  48. {
  49. Db::startTrans();
  50. try {
  51. if(isset($params['id'])){
  52. $model = Goods::findOrEmpty($params['id']);
  53. if($model->isEmpty()){
  54. throw new \Exception('数据异常');
  55. }
  56. } else{
  57. $model = new Goods();
  58. }
  59. $model->goods_category_id = end($params['goods_category_ids']);
  60. $model->category_type = GoodsCategory::where('id', end($params['goods_category_ids']))->value('category_type');
  61. $model->goods_category_ids = $params['goods_category_ids'];
  62. $model->goods_category_id = $params['goods_category_id'];
  63. $model->goods_name = $params['goods_name'];
  64. $model->goods_image = $params['goods_image'];
  65. $model->goods_video = $params['goods_video'];
  66. $model->goods_number = $params['goods_number'];
  67. $model->good_unit = $params['good_unit'];
  68. $model->goods_size = $params['goods_size'];
  69. $model->goods_type = $params['goods_type'];
  70. $model->goods_brand = $params['goods_brand'];
  71. $model->install_guide = $params['install_guide'];
  72. $model->goods_payment_type = $params['goods_payment_type'];
  73. $model->base_service_fee = $params['base_service_fee'];
  74. $model->service_total = $params['service_total'];
  75. $model->service_fee = $params['service_fee'];
  76. $model->service_image = $params['service_image'];
  77. $model->warranty_period = $params['warranty_period'];
  78. $model->fee_schedule = $params['fee_schedule'];
  79. $model->goods_status = $params['goods_status'];
  80. $model->is_recommend = $params['is_recommend'] ?:0;
  81. $model->recommend_weight = $params['recommend_weight'] ?:0;
  82. $model->is_top = $params['is_top'] ?:0;
  83. $model->top_weight = $params['top_weight'] ?:0;
  84. $model->is_hot = $params['is_hot'] ?:0;
  85. $model->hot_weight = $params['hot_weight'] ?:0;
  86. $model->user_id = $userId;
  87. $model->save();
  88. Db::commit();
  89. return true;
  90. } catch (\Exception $e) {
  91. Db::rollback();
  92. self::setError($e->getMessage());
  93. return false;
  94. }
  95. }
  96. }