截流自动化的商城平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Shop.php 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | likeshop开源商城系统
  4. // +----------------------------------------------------------------------
  5. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  6. // | gitee下载:https://gitee.com/likeshop_gitee
  7. // | github下载:https://github.com/likeshop-github
  8. // | 访问官网:https://www.likeshop.cn
  9. // | 访问社区:https://home.likeshop.cn
  10. // | 访问手册:http://doc.likeshop.cn
  11. // | 微信公众号:likeshop技术社区
  12. // | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
  13. // | likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
  14. // | 禁止对系统程序代码以任何目的,任何形式的再发布
  15. // | likeshop团队版权所有并拥有最终解释权
  16. // +----------------------------------------------------------------------
  17. // | author: likeshop.cn.team
  18. // +----------------------------------------------------------------------
  19. namespace app\common\model\shop;
  20. use app\common\basics\Models;
  21. use app\common\enum\ShopEnum;
  22. use app\common\server\UrlServer;
  23. /**
  24. * 商家模型
  25. * Class Shop
  26. * @package app\common\model\shop
  27. */
  28. class Shop extends Models
  29. {
  30. /**
  31. * NOTE: 关联主营类目模型
  32. * @author 张无忌
  33. */
  34. public function category()
  35. {
  36. return $this->hasOne('ShopCategory', 'id', 'cid');
  37. }
  38. /**
  39. * @Notes: 关联商家账号模型
  40. * @Author: 张无忌
  41. */
  42. public function admin()
  43. {
  44. return $this->hasOne('ShopAdmin', 'shop_id', 'id');
  45. }
  46. /**
  47. * NOTE: 获取器-到期时间
  48. * @author: 张无忌
  49. * @param $value
  50. * @return false|string
  51. */
  52. public function getExpireTimeAttr($value)
  53. {
  54. return $value === 0 ? '无期限' : date('Y-m-d H:i:s', $value);
  55. }
  56. /**
  57. * @notes is_expire 店铺是否已过期
  58. * @param $fieldValue
  59. * @param $data
  60. * @return int
  61. * @author lbzy
  62. * @datetime 2023-09-01 15:54:55
  63. */
  64. function getIsExpireAttr($fieldValue, $data)
  65. {
  66. $time = $this->getOrigin('expire_time');
  67. return $time === 0 ? 0 : (time() > $time ? 1 : 0);
  68. }
  69. /**
  70. * 修改器-logo转相对
  71. * @param $value
  72. * @return mixed|string
  73. */
  74. public function setLogoAttr($value)
  75. {
  76. return $value ? UrlServer::setFileUrl($value) : '';
  77. }
  78. /**
  79. * 获取器-背景图路径
  80. * @param $value
  81. * @return string
  82. */
  83. public function getBackgroundAttr($value)
  84. {
  85. return $value ? UrlServer::getFileUrl($value) : '';
  86. }
  87. /**
  88. * 获取器-背景图路径
  89. * @param $value
  90. * @return string
  91. */
  92. public function getLogoAttr($value)
  93. {
  94. return $value ? UrlServer::getFileUrl($value) : '';
  95. }
  96. /**
  97. * 获取器-pc店铺封面路径
  98. * @param $value
  99. * @return string
  100. */
  101. public function getCoverAttr($value)
  102. {
  103. return $value ? UrlServer::getFileUrl($value) : '';
  104. }
  105. /**
  106. * 获取器-pc店铺头图路径
  107. * @param $value
  108. * @return string
  109. */
  110. public function getBannerAttr($value)
  111. {
  112. return $value ? UrlServer::getFileUrl($value) : '';
  113. }
  114. /**
  115. * @Notes: 修改器-工作日
  116. * @Author: 张无忌
  117. * @param $value
  118. * @return string
  119. */
  120. public function setWeekdaysAttr($value)
  121. {
  122. if ($value) {
  123. return implode(',', $value);
  124. }
  125. return '';
  126. }
  127. /**
  128. * @Notes: 获取器-工作日
  129. * @Author: 张无忌
  130. * @param $value
  131. * @return array
  132. */
  133. public function getWeekdaysAttr($value)
  134. {
  135. if ($value) {
  136. return explode(',', $value);
  137. }
  138. return [];
  139. }
  140. /**
  141. * @Notes: 获取器-退货地址
  142. * @Author: 张无忌
  143. * @param $value
  144. * @return array|mixed
  145. */
  146. public function getRefundAddressAttr($value)
  147. {
  148. if ($value) {
  149. return json_decode($value, true);
  150. }
  151. return [];
  152. }
  153. /**
  154. * 商家类型 获取器
  155. */
  156. public function getTypeDescAttr($value, $data)
  157. {
  158. return ShopEnum::getShopTypeDesc($data['type']);
  159. }
  160. /**
  161. * 商家介绍 获取器
  162. */
  163. public function getIntroAttr($value)
  164. {
  165. return $value ? $value : '';
  166. }
  167. /**
  168. * @notes 到期状态
  169. * @param $value
  170. * @return false|string
  171. * @author 段誉
  172. * @date 2022/3/16 18:10
  173. */
  174. public function getExpireDescAttr($value, $data)
  175. {
  176. if ($data['expire_time'] && time() > $data['expire_time']) {
  177. return '已到期';
  178. }
  179. return '未到期';
  180. }
  181. /**
  182. * @notes 获取器-配送方式
  183. * @param $value
  184. * @param $data
  185. * @return false|string[]
  186. * @author 段誉
  187. * @date 2022/11/1 11:34
  188. */
  189. public function getDeliveryTypeAttr($value, $data)
  190. {
  191. if (!empty($value)) {
  192. return explode(',', $value);
  193. }
  194. return $value;
  195. }
  196. /**
  197. * @notes 修改器-配送方式
  198. * @param $value
  199. * @param $data
  200. * @return string
  201. * @author 段誉
  202. * @date 2022/11/1 11:35
  203. */
  204. public function setDeliveryTypeAttr($value, $data)
  205. {
  206. if (!empty($value)) {
  207. return implode(',', $value);
  208. }
  209. return $value;
  210. }
  211. }