LowPriceGoods.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. <?php
  2. namespace App\Models\Manager\WashConfig;
  3. use Illuminate\Database\Eloquent\Factories\HasFactory;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Support\Facades\DB;
  6. use App\Models\Manager\WashConfig\LowPriceGoodsCompany as LowPriceGoodsCompanyModel;
  7. use App\Models\Manager\WashConfig\LowPriceGoodsPlatform as LowPriceGoodsPlatformModel;
  8. use App\Models\Manager\WashConfig\LowPriceGoodsKeyword as LowPriceGoodsKeywordModel;
  9. /**
  10. * 清洗配置-低价商品
  11. * @author: 唐远望
  12. * @version: 1.0
  13. * @date: 2025-12-02
  14. */
  15. class LowPriceGoods extends Model
  16. {
  17. use HasFactory;
  18. // 与模型关联的表名
  19. protected $table = 'washconfig_lowprice_product';
  20. // 是否主动维护时间戳
  21. public $timestamps = false;
  22. // 定义时间戳字段名
  23. // const CREATED_AT = 'insert_time';
  24. // const UPDATED_AT = 'update_time';
  25. /**
  26. * 添加
  27. * @author 唐远望
  28. * @version 1.0
  29. * @date 2025-12-02
  30. */
  31. public function addLowProduct_content($data)
  32. {
  33. $insert_data = [
  34. 'company_id' => $data['company_id'],
  35. 'product_brand' => $data['product_brand'],
  36. 'platform' => $data['platform'],
  37. 'enable_full_quantity' => $data['enable_full_quantity'],
  38. 'product_name' => $data['product_name'],
  39. 'product_specs' => $data['product_specs'],
  40. 'suggested_price' => $data['suggested_price'],
  41. 'store_scope' => $data['store_scope'] != '' ? 2 : 1, //店铺范围1=全部店铺 2=指定店铺
  42. 'company_scope' => $data['company_scope'] != '' ? 2 : 1, //公司范围1=全部公司 2=指定公司
  43. 'category_id' => $data['category_id'],
  44. 'specify_responsible_person' => $data['specify_responsible_person'],
  45. 'insert_time' => time(),
  46. ];
  47. $LowProduct_id = $this->insertGetId($insert_data);
  48. return $LowProduct_id;
  49. }
  50. /**
  51. * 连表查询商品关键字
  52. * @author 唐远望
  53. * @version 1.0
  54. * @date 2026-03-31
  55. */
  56. public function product_keyword()
  57. {
  58. return $this->hasMany(LowPriceGoodsKeywordModel::class, 'lowprice_product_id', 'id')->orderBy('id', 'asc');
  59. }
  60. /**
  61. * 写入数据
  62. * @author 唐远望
  63. * @version 1.0
  64. * @date 2025-12-02
  65. * @param $data
  66. * @return bool
  67. */
  68. public function addLowProduct($data)
  69. {
  70. DB::beginTransaction();
  71. try {
  72. $insert_data = [
  73. 'company_id' => $data['company_id'],
  74. 'product_brand' => $data['product_brand'],
  75. 'platform' => $data['platform'],
  76. 'enable_full_quantity' => $data['enable_full_quantity'],
  77. 'product_name' => $data['product_name'],
  78. 'product_specs' => $data['product_specs'],
  79. 'suggested_price' => $data['suggested_price'],
  80. 'store_scope' => $data['store_scope'] != '' ? 2 : 1, //店铺范围1=全部店铺 2=指定店铺
  81. 'company_scope' => $data['company_scope'] != '' ? 2 : 1, //公司范围1=全部公司 2=指定公司
  82. 'category_id' => $data['category_id'],
  83. 'specify_responsible_person' => $data['specify_responsible_person'],
  84. 'insert_time' => time(),
  85. ];
  86. $LowProduct_id = $this->insertGetId($insert_data);
  87. if ($insert_data['company_scope'] == 2) {
  88. $LowPriceGoodsCompanyModel = new LowPriceGoodsCompanyModel();
  89. $insert_company_data = [];
  90. $company_scope = explode(',', $data['company_scope']);
  91. foreach ($company_scope as $company_id) {
  92. $insert_company_data[] = [
  93. 'lowprice_product_logid' => $LowProduct_id,
  94. 'company_id' => $company_id,
  95. ];
  96. }
  97. $LowPriceGoodsCompanyModel->insert($insert_company_data);
  98. }
  99. if ($data['platform'] != 0) {
  100. $LowPriceGoodsPlatformModel = new LowPriceGoodsPlatformModel();
  101. $insert_platform_data = [];
  102. $platform_scope = explode(',', $data['platform']);
  103. foreach ($platform_scope as $platform_id) {
  104. $insert_platform_data[] = [
  105. 'company_id' => $data['company_id'],
  106. 'product_id' => $LowProduct_id,
  107. 'platform_id' => $platform_id,
  108. ];
  109. }
  110. $LowPriceGoodsPlatformModel->insert($insert_platform_data);
  111. }
  112. // 如果存在采集配置的关键字
  113. $product_keyword = $data['product_keyword'];
  114. if (trim($product_keyword) != '') {
  115. $ProductKeywordModel = new LowPriceGoodsKeywordModel();
  116. $product_keyword_data = explode(',', $product_keyword);
  117. $keyword_data = [];
  118. foreach ($product_keyword_data as $key => $value) {
  119. if (trim($value) == '') continue;
  120. $keyword_data[] = [
  121. 'lowprice_product_id' => $LowProduct_id,
  122. 'keyword' => $value,
  123. ];
  124. }
  125. $ProductKeywordModel->insert($keyword_data);
  126. }
  127. DB::commit();
  128. return true;
  129. // 成功处理...
  130. } catch (\Exception $e) {
  131. DB::rollBack();
  132. // 错误处理...
  133. return false;
  134. }
  135. }
  136. /**
  137. * 编辑内容
  138. * @author 唐远望
  139. * @version 1.0
  140. * @date 2025-12-02
  141. * @param $data
  142. * @return bool
  143. */
  144. public function editLowProduct_content($LowProduct, $data)
  145. {
  146. DB::beginTransaction();
  147. try {
  148. $LowPriceGoodsCompanyModel = new LowPriceGoodsCompanyModel();
  149. $LowPriceGoodsPlatformModel = new LowPriceGoodsPlatformModel();
  150. $store_scope = $data['store_scope'] != '' ? 2 : 1; //店铺范围1=全部店铺 2=指定店铺
  151. $company_scope = $data['company_scope'] != '' ? 2 : 1; //公司范围1=全部公司 2=指定公司
  152. $LowProduct->company_id = $data['company_id'];
  153. $LowProduct->enable_full_quantity = $data['enable_full_quantity'];
  154. $LowProduct->platform = $data['platform'];
  155. $LowProduct->product_brand = $data['product_brand'];
  156. $LowProduct->product_name = $data['product_name'];
  157. $LowProduct->product_specs = $data['product_specs'];
  158. $LowProduct->suggested_price = $data['suggested_price'];
  159. $LowProduct->store_scope = $store_scope;
  160. $LowProduct->company_scope = $company_scope;
  161. $LowProduct->category_id = $data['category_id'];
  162. $LowProduct->specify_responsible_person = $data['specify_responsible_person'];
  163. $LowProduct->update_time = time();
  164. $LowProduct->save();
  165. $lowPrice_goods_companycount = $LowPriceGoodsCompanyModel->where('lowprice_product_logid', $LowProduct->id)->count();
  166. if ($lowPrice_goods_companycount > 0) {
  167. $LowPriceGoodsCompanyModel->where('lowprice_product_logid', $LowProduct->id)->delete();
  168. }
  169. if ($company_scope == 2) {
  170. $insert_company_data = [];
  171. $company_scope = explode(',', $data['company_scope']);
  172. foreach ($company_scope as $company_id) {
  173. $insert_company_data[] = [
  174. 'lowprice_product_logid' => $LowProduct->id,
  175. 'company_id' => $company_id,
  176. ];
  177. }
  178. $LowPriceGoodsCompanyModel->insert($insert_company_data);
  179. }
  180. $lowPrice_goods_platformcount = $LowPriceGoodsPlatformModel->where('product_id', $LowProduct->id)->count();
  181. if ($lowPrice_goods_platformcount > 0) {
  182. $LowPriceGoodsPlatformModel->where('product_id', $LowProduct->id)->delete();
  183. }
  184. if ($data['platform'] != 0) {
  185. $insert_platform_data = [];
  186. $platform_scope = explode(',', $data['platform']);
  187. foreach ($platform_scope as $platform_id) {
  188. $insert_platform_data[] = [
  189. 'company_id' => $data['company_id'],
  190. 'product_id' => $LowProduct->id,
  191. 'platform_id' => $platform_id,
  192. ];
  193. }
  194. $LowPriceGoodsPlatformModel->insert($insert_platform_data);
  195. }
  196. $ProductKeywordModel = new LowPriceGoodsKeywordModel();
  197. //查询是否配置了关键字,如果有则删除重新添加
  198. $keyword_count = $ProductKeywordModel->where('lowprice_product_id', $LowProduct->id)->count();
  199. if ($keyword_count > 0) {
  200. $ProductKeywordModel->where('lowprice_product_id', $LowProduct->id)->delete();
  201. }
  202. // 如果存在采集配置的关键字
  203. $product_keyword = $data['product_keyword'];
  204. if (trim($product_keyword) != '') {
  205. $product_keyword_data = explode(',', $product_keyword);
  206. $keyword_data = [];
  207. foreach ($product_keyword_data as $key => $value) {
  208. if (trim($value) == '') continue;
  209. $keyword_data[] = [
  210. 'lowprice_product_id' => $LowProduct->id,
  211. 'keyword' => $value,
  212. ];
  213. }
  214. $ProductKeywordModel->insert($keyword_data);
  215. }
  216. DB::commit();
  217. return true;
  218. // 成功处理...
  219. } catch (\Exception $e) {
  220. DB::rollBack();
  221. // 错误处理...
  222. return false;
  223. }
  224. }
  225. /**
  226. * 更新数据
  227. * @author 唐远望
  228. * @version 1.0
  229. * @date 2025-12-02
  230. * @param $data
  231. * @return bool
  232. */
  233. public function updateLowProduct($where, $data)
  234. {
  235. DB::beginTransaction();
  236. try {
  237. $this->editLowProduct_content($where, $data);
  238. DB::commit();
  239. return true;
  240. // 成功处理...
  241. } catch (\Exception $e) {
  242. DB::rollBack();
  243. // 错误处理...
  244. return false;
  245. }
  246. }
  247. /**
  248. * 修改状态
  249. * @author 唐远望
  250. * @version 1.0
  251. * @date 2025-12-02
  252. * @param $id
  253. * @param $status
  254. * @return bool
  255. */
  256. public function changeStatus($LowProduct, $status)
  257. {
  258. $LowProduct->status = $status;
  259. $LowProduct->update_time = time();
  260. $LowProduct->save();
  261. return true;
  262. }
  263. /**
  264. * 删除数据
  265. * @author 唐远望
  266. * @version 1.0
  267. * @date 2025-12-02
  268. * @param $id
  269. * @return bool
  270. */
  271. public function deleteLowProduct($where)
  272. {
  273. $LowProduct = $this->where($where)->first();
  274. if (!$LowProduct) {
  275. return false;
  276. }
  277. DB::beginTransaction();
  278. try {
  279. $LowPriceGoodsCompanyModel = new LowPriceGoodsCompanyModel();
  280. $company_id_log = $LowPriceGoodsCompanyModel->where('lowprice_product_logid', $LowProduct->id)->get();
  281. if (!empty($company_id_log)) {
  282. $LowPriceGoodsCompanyModel->where('lowprice_product_logid', $LowProduct->id)->delete();
  283. }
  284. $LowProduct->delete();
  285. DB::commit();
  286. return true;
  287. // 成功处理...
  288. } catch (\Exception $e) {
  289. DB::rollBack();
  290. // 错误处理...
  291. return false;
  292. }
  293. }
  294. /**
  295. * 平台定义
  296. * @author 唐远望
  297. * @version 1.0
  298. * @date 2025-12-31
  299. */
  300. public function platform_data()
  301. {
  302. $platform_data = [
  303. '全部' => '0',
  304. '淘宝' => '1',
  305. '京东' => '2',
  306. '拼多多' => '3',
  307. '美团' => '4',
  308. '药师帮' => '5',
  309. '1药城' => '6',
  310. '药九九' => '7',
  311. '药易购' => '8',
  312. '药帮忙' => '9',
  313. '熊猫药药' => '10'
  314. ];
  315. return $platform_data;
  316. }
  317. }