Setting.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. <?php
  2. namespace app\common\model\dealer;
  3. use app\common\model\BaseModel;
  4. use think\Cache;
  5. /**
  6. * 分销商设置模型
  7. * Class Apply
  8. * @package app\common\model\dealer
  9. */
  10. class Setting extends BaseModel
  11. {
  12. protected $name = 'dealer_setting';
  13. protected $createTime = false;
  14. /**
  15. * 获取器: 转义数组格式
  16. * @param $value
  17. * @return mixed
  18. */
  19. public function getValuesAttr($value)
  20. {
  21. return json_decode($value, true);
  22. }
  23. /**
  24. * 修改器: 转义成json格式
  25. * @param $value
  26. * @return string
  27. */
  28. public function setValuesAttr($value)
  29. {
  30. return json_encode($value);
  31. }
  32. /**
  33. * 获取指定项设置
  34. * @param $key
  35. * @param $wxapp_id
  36. * @return array
  37. */
  38. public static function getItem($key, $wxapp_id = null)
  39. {
  40. $data = static::getAll($wxapp_id);
  41. return isset($data[$key]) ? $data[$key]['values'] : [];
  42. }
  43. /**
  44. * 获取分销商设置
  45. * @param null $wxapp_id
  46. * @return array|mixed
  47. */
  48. public static function getAll($wxapp_id = null)
  49. {
  50. $self = new static;
  51. is_null($wxapp_id) && $wxapp_id = $self::$wxapp_id;
  52. if (!$data = Cache::get('dealer_setting_' . $wxapp_id)) {
  53. $data = array_column(collection($self::all())->toArray(), null, 'key');
  54. Cache::tag('cache')->set('dealer_setting_' . $wxapp_id, $data);
  55. }
  56. return array_merge_multiple($self->defaultData(), $data);
  57. }
  58. /**
  59. * 获取设置项信息
  60. * @param $key
  61. * @return null|static
  62. * @throws \think\exception\DbException
  63. */
  64. public static function detail($key)
  65. {
  66. return static::get(compact('key'));
  67. }
  68. /**
  69. * 是否开启分销功能
  70. * @param null $wxapp_id
  71. * @return mixed
  72. */
  73. public static function isOpen($wxapp_id = null)
  74. {
  75. return static::getItem('basic', $wxapp_id)['is_open'];
  76. }
  77. /**
  78. * 分销中心页面名称
  79. * @param null $wxapp_id
  80. * @return mixed
  81. */
  82. public static function getDealerTitle($wxapp_id = null)
  83. {
  84. return static::getItem('words', $wxapp_id)['index']['title']['value'];
  85. }
  86. /**
  87. * 默认配置
  88. * @return array
  89. */
  90. public function defaultData()
  91. {
  92. return [
  93. 'basic' => [
  94. 'key' => 'basic',
  95. 'describe' => '基础设置',
  96. 'values' => [
  97. // 是否开启分销功能
  98. 'is_open' => '0', // 参数值:1开启 0关闭
  99. // 分销层级
  100. 'level' => '3', // 参数值:1一级 2二级 3三级
  101. // 分销商内购
  102. 'self_buy' => '0' // 参数值:1开启 0关闭
  103. ],
  104. ],
  105. 'condition' => [
  106. 'key' => 'condition',
  107. 'describe' => '分销商条件',
  108. 'values' => [
  109. // 成为分销商条件
  110. 'become' => '10', // 参数值:10填写申请信息(需后台审核) 20填写申请信息(无需审核)
  111. // 购买指定商品成为分销商 0关闭 1开启
  112. 'become__buy_goods' => '0',
  113. // 购买指定商品的id集
  114. 'become__buy_goods_ids' => [],
  115. // 成为下线条件
  116. 'downline' => '10', // 参数值:10首次点击分享链接 20首次下单 30首次付款
  117. ]
  118. ],
  119. 'commission' => [
  120. 'key' => 'commission',
  121. 'describe' => '佣金设置',
  122. 'values' => [
  123. // 一级佣金
  124. 'first_money' => '0',
  125. // 一级佣金
  126. 'second_money' => '0',
  127. // 一级佣金
  128. 'third_money' => '0',
  129. ]
  130. ],
  131. 'settlement' => [
  132. 'key' => 'settlement',
  133. 'describe' => '结算',
  134. 'values' => [
  135. // 提现方式
  136. 'pay_type' => [], // 参数值:10微信支付 20支付宝支付 30银行卡支付
  137. // 微信支付自动打款
  138. 'wechat_pay_auto' => '0', // 微信支付自动打款:1开启 0关闭
  139. // 最低提现额度
  140. 'min_money' => '10.00',
  141. // 佣金结算天数
  142. 'settle_days' => '10',
  143. ]
  144. ],
  145. 'words' => [
  146. 'key' => 'words',
  147. 'describe' => '自定义文字',
  148. 'values' => [
  149. 'index' => [
  150. 'title' => [
  151. 'default' => '分销中心',
  152. 'value' => '分销中心'
  153. ],
  154. 'words' => [
  155. 'not_dealer' => [
  156. 'default' => '您还不是分销商,请先提交申请',
  157. 'value' => '您还不是分销商,请先提交申请'
  158. ],
  159. 'apply_now' => [
  160. 'default' => '立即加入',
  161. 'value' => '立即加入'
  162. ],
  163. 'referee' => [
  164. 'default' => '推荐人',
  165. 'value' => '推荐人'
  166. ],
  167. 'money' => [
  168. 'default' => '可提现佣金',
  169. 'value' => '可提现'
  170. ],
  171. 'freeze_money' => [
  172. 'default' => '待提现佣金',
  173. 'value' => '待提现'
  174. ],
  175. 'total_money' => [
  176. 'default' => '已提现金额',
  177. 'value' => '已提现金额'
  178. ],
  179. 'withdraw' => [
  180. 'default' => '去提现',
  181. 'value' => '去提现'
  182. ],
  183. ]
  184. ],
  185. 'apply' => [
  186. 'title' => [
  187. 'default' => '申请成为分销商',
  188. 'value' => '申请成为分销商'
  189. ],
  190. 'words' => [
  191. 'title' => [
  192. 'default' => '请填写申请信息',
  193. 'value' => '请填写申请信息'
  194. ],
  195. 'license' => [
  196. 'default' => '分销商申请协议',
  197. 'value' => '分销商申请协议'
  198. ],
  199. 'submit' => [
  200. 'default' => '申请成为经销商',
  201. 'value' => '申请成为经销商'
  202. ],
  203. 'wait_audit' => [
  204. 'default' => '您的申请已受理,正在进行信息核验,请耐心等待。',
  205. 'value' => '您的申请已受理,正在进行信息核验,请耐心等待。'
  206. ],
  207. 'goto_mall' => [
  208. 'default' => '去商城逛逛',
  209. 'value' => '去商城逛逛'
  210. ],
  211. ]
  212. ],
  213. 'order' => [
  214. 'title' => [
  215. 'default' => '分销订单',
  216. 'value' => '分销订单'
  217. ],
  218. 'words' => [
  219. 'all' => [
  220. 'default' => '全部',
  221. 'value' => '全部'
  222. ],
  223. 'unsettled' => [
  224. 'default' => '未结算',
  225. 'value' => '未结算'
  226. ],
  227. 'settled' => [
  228. 'default' => '已结算',
  229. 'value' => '已结算'
  230. ],
  231. ]
  232. ],
  233. 'team' => [
  234. 'title' => [
  235. 'default' => '我的团队',
  236. 'value' => '我的团队'
  237. ],
  238. 'words' => [
  239. 'total_team' => [
  240. 'default' => '团队总人数',
  241. 'value' => '团队总人数'
  242. ],
  243. 'first' => [
  244. 'default' => '一级团队',
  245. 'value' => '一级团队'
  246. ],
  247. 'second' => [
  248. 'default' => '二级团队',
  249. 'value' => '二级团队'
  250. ],
  251. 'third' => [
  252. 'default' => '三级团队',
  253. 'value' => '三级团队'
  254. ],
  255. ]
  256. ],
  257. 'withdraw_list' => [
  258. 'title' => [
  259. 'default' => '提现明细',
  260. 'value' => '提现明细'
  261. ],
  262. 'words' => [
  263. 'all' => [
  264. 'default' => '全部',
  265. 'value' => '全部'
  266. ],
  267. 'apply_10' => [
  268. 'default' => '审核中',
  269. 'value' => '审核中'
  270. ],
  271. 'apply_20' => [
  272. 'default' => '审核通过',
  273. 'value' => '审核通过'
  274. ],
  275. 'apply_40' => [
  276. 'default' => '已打款',
  277. 'value' => '已打款'
  278. ],
  279. 'apply_30' => [
  280. 'default' => '驳回',
  281. 'value' => '驳回'
  282. ],
  283. ]
  284. ],
  285. 'withdraw_apply' => [
  286. 'title' => [
  287. 'default' => '申请提现',
  288. 'value' => '申请提现'
  289. ],
  290. 'words' => [
  291. 'capital' => [
  292. 'default' => '可提现佣金',
  293. 'value' => '可提现佣金'
  294. ],
  295. 'money' => [
  296. 'default' => '提现金额',
  297. 'value' => '提现金额'
  298. ],
  299. 'money_placeholder' => [
  300. 'default' => '请输入要提取的金额',
  301. 'value' => '请输入要提取的金额'
  302. ],
  303. 'min_money' => [
  304. 'default' => '最低提现佣金',
  305. 'value' => '最低提现佣金'
  306. ],
  307. 'submit' => [
  308. 'default' => '提交申请',
  309. 'value' => '提交申请'
  310. ],
  311. ]
  312. ],
  313. 'qrcode' => [
  314. 'title' => [
  315. 'default' => '推广二维码',
  316. 'value' => '推广二维码'
  317. ]
  318. ],
  319. ]
  320. ],
  321. 'license' => [
  322. 'key' => 'license',
  323. 'describe' => '申请协议',
  324. 'values' => [
  325. 'license' => ''
  326. ]
  327. ],
  328. 'background' => [
  329. 'key' => 'background',
  330. 'describe' => '页面背景图',
  331. 'values' => [
  332. // 分销中心首页
  333. 'index' => self::$base_url . 'assets/api/dealer-bg.png',
  334. // 申请成为分销商页
  335. 'apply' => self::$base_url . 'assets/api/dealer-bg.png',
  336. // 申请提现页
  337. 'withdraw_apply' => self::$base_url . 'assets/api/dealer-bg.png',
  338. ],
  339. ],
  340. 'qrcode' => [
  341. 'key' => 'template_msg',
  342. 'describe' => '分销海报',
  343. 'values' => [
  344. 'backdrop' => [
  345. 'src' => self::$base_url . 'assets/store/img/dealer/backdrop.png',
  346. ],
  347. 'nickName' => [
  348. 'fontSize' => 14,
  349. 'color' => '#000000',
  350. 'left' => 150,
  351. 'top' => 99
  352. ],
  353. 'avatar' => [
  354. 'width' => 70,
  355. 'style' => 'circle',
  356. 'left' => 150,
  357. 'top' => 18
  358. ],
  359. 'qrcode' => [
  360. 'width' => 100,
  361. 'style' => 'circle',
  362. 'left' => 136,
  363. 'top' => 128
  364. ]
  365. ],
  366. ]
  367. ];
  368. }
  369. }