ShippingTemplateUndeliveRepository.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\common\repositories\store\shipping;
  12. use app\common\repositories\BaseRepository;
  13. use app\common\dao\store\shipping\ShippingTemplateUndeliveryDao as dao;
  14. class ShippingTemplateUndeliveRepository extends BaseRepository
  15. {
  16. /**
  17. * ShippingTemplateUndeliveRepository constructor.
  18. * @param dao $dao
  19. */
  20. public function __construct(dao $dao)
  21. {
  22. $this->dao = $dao;
  23. }
  24. /**
  25. * 检查商家是否存在指定的运输模板。
  26. *
  27. * 本函数用于确认一个商家是否拥有特定ID的运输模板。它首先通过ID从数据访问对象(DAO)获取模板信息,
  28. * 然后利用依赖注入获取ShippingTemplateRepository实例,通过这个实例来检查商家是否存在指定的模板ID。
  29. * 这种设计模式使得代码更加灵活,易于维护和测试。
  30. *
  31. * @param int $merId 商家ID,用于确认商家身份。
  32. * @param int $id 指定的运输模板ID,需要确认商家是否拥有这个模板。
  33. * @return bool 如果商家存在指定的运输模板,则返回true,否则返回false。
  34. */
  35. public function merExists($merId , $id)
  36. {
  37. // 通过ID从DAO获取模板信息
  38. $result = $this->dao->get($id);
  39. // 通过依赖注入创建ShippingTemplateRepository实例
  40. $make = app()->make(ShippingTemplateRepository::class);
  41. // 如果模板信息存在,则检查商家是否存在指定的模板ID
  42. if ($result)
  43. return $make->merExists($merId,$result['temp_id']);
  44. // 如果模板信息不存在,则直接返回false
  45. return false;
  46. }
  47. /**
  48. * 更新或创建运输模板未送达地址信息。
  49. *
  50. * 根据传入的$id和$data,如果$data中包含shipping_template_undelivery_id字段且不为空,
  51. * 则将city_id字段合并为字符串,并更新对应的运输模板未送达地址信息。
  52. * 如果$data中不包含shipping_template_undelivery_id字段,则认为是新建记录,
  53. * 将$id赋值给temp_id字段,并创建新的运输模板未送达地址信息。
  54. *
  55. * @param int $id 运输模板的ID。
  56. * @param array $data 包含运输模板未送达地址信息的数据数组。
  57. */
  58. public function update($id,$data)
  59. {
  60. // 检查$data中是否包含shipping_template_undelivery_id且不为空
  61. if(isset($data['shipping_template_undelivery_id']) && $data['shipping_template_undelivery_id']){
  62. // 将city_id数组转换为字符串格式,用于更新操作
  63. $data['city_id'] = implode('/',$data['city_id']);
  64. // 更新已存在的运输模板未送达地址信息
  65. $this->dao->update($data['shipping_template_undelivery_id'],$data);
  66. }else{
  67. // 为新记录设置temp_id字段
  68. $data['temp_id'] = $id;
  69. // 创建新的运输模板未送达地址信息
  70. $this->dao->create($data);
  71. }
  72. }
  73. }