LowPriceGoods.php 12 KB

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