Config.php 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace addon\fenxiao\model;
  11. use app\model\system\Config as ConfigModel;
  12. use app\model\BaseModel;
  13. use app\model\system\Document;
  14. /**
  15. * 微信小程序配置
  16. */
  17. class Config extends BaseModel
  18. {
  19. /******************************************************************** 分销基本配置 start ****************************************************************************/
  20. /**
  21. * 设置分销基本配置
  22. * @return multitype:string mixed
  23. */
  24. public function setFenxiaoBasicsConfig($data, $is_use, $site_id)
  25. {
  26. $config = new ConfigModel();
  27. //分销基本设置
  28. $basics_data = [
  29. 'level' => $data[ 'level' ],//分销层级
  30. 'internal_buy' => $data[ 'internal_buy' ],//分销内购
  31. 'is_examine' => $data[ 'is_examine' ],//是否需要审核
  32. 'self_purchase_rebate' => $data[ 'self_purchase_rebate' ],//是否开启分销商自购返佣
  33. 'is_apply' => $data[ 'is_apply' ],//是否开启分销申请
  34. 'is_commission_money' => $data[ 'is_commission_money' ],//是否开启商品详情一级佣金
  35. ];
  36. $config->setConfig($basics_data, '分销基本配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_BASICS_CONFIG' ] ]);
  37. //分销商设置
  38. $fenxiao_data = [
  39. 'fenxiao_condition' => $data[ 'fenxiao_condition' ],//成为分销商条件(0无条件 1申请 2消费次数 3消费金额 4购买商品)
  40. 'consume_count' => $data[ 'consume_count' ],//消费次数
  41. 'consume_money' => $data[ 'consume_money' ],//3消费金额
  42. 'goods_ids' => $data[ 'goods_ids' ],//指定商品id
  43. 'consume_condition' => $data[ 'consume_condition' ],//消费条件(1付款后 2订单完成)
  44. 'perfect_info' => $data[ 'perfect_info' ],//完善资料
  45. ];
  46. $config->setConfig($fenxiao_data, '分销商配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_CONFIG' ] ]);
  47. // 分销默认等级佣金比率
  48. ( new FenxiaoLevel() )->editLevel([
  49. 'one_rate' => $data[ 'one_rate' ],
  50. 'two_rate' => $data[ 'two_rate' ],
  51. 'three_rate' => $data[ 'three_rate' ]
  52. ], [ [ 'site_id', '=', $site_id ], [ 'is_default', '=', 1 ] ]);
  53. //上下级关系
  54. $relation_data = [
  55. 'child_condition' => $data[ 'child_condition' ],//成为下线条件
  56. ];
  57. $res = $config->setConfig($relation_data, '分销上下级关系配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_RELATION_CONFIG' ] ]);
  58. return $res;
  59. }
  60. /**
  61. * 获取分销基本设置
  62. * @return multitype:string mixed
  63. */
  64. public function getFenxiaoBasicsConfig($site_id)
  65. {
  66. $config = new ConfigModel();
  67. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_BASICS_CONFIG' ] ]);
  68. if (empty($res[ 'data' ][ 'value' ])) {
  69. $res[ 'data' ][ 'value' ] = [
  70. 'level' => 2,//分销层级
  71. 'internal_buy' => 0,//分销内购
  72. 'is_examine' => 0,//是否需要审核
  73. 'is_apply' => 0,//分销商申请方式
  74. 'is_commission_money' => 1,//是否开启商品详情一级佣金
  75. ];
  76. }
  77. $res[ 'data' ][ 'value' ][ 'is_commission_money' ] = $res[ 'data' ][ 'value' ][ 'is_commission_money' ] ?? 1;
  78. $res[ 'data' ][ 'value' ][ 'self_purchase_rebate' ] = $res[ 'data' ][ 'value' ][ 'self_purchase_rebate' ] ?? 1;
  79. $res[ 'data' ][ 'value' ][ 'is_apply' ] = $res[ 'data' ][ 'value' ][ 'is_apply' ] ?? 1;
  80. $res[ 'data' ][ 'value' ][ 'level' ] = $res[ 'data' ][ 'value' ][ 'level' ] == 3 ? 2 : $res[ 'data' ][ 'value' ][ 'level' ];
  81. return $res;
  82. }
  83. /**
  84. * 获取分销商设置
  85. * @return multitype:string mixed
  86. */
  87. public function getFenxiaoConfig($site_id)
  88. {
  89. $config = new ConfigModel();
  90. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_CONFIG' ] ]);
  91. if (empty($res[ 'data' ][ 'value' ])) {
  92. $res[ 'data' ][ 'value' ] = [
  93. 'fenxiao_condition' => 0,//成为分销商条件(0无条件 2消费次数 3消费金额 4购买商品)
  94. //申请
  95. 'is_agreement' => 0,//显示申请协议
  96. 'agreement_title' => '',//协议标题
  97. 'agreement_content' => '',//协议内容
  98. 'consume_count' => 0,//消费次数
  99. 'consume_money' => 0,//消费次数
  100. 'consume_condition' => 1,//消费条件(1付款后 2订单完成)
  101. 'img' => '',//申请页面顶部图片
  102. 'perfect_info' => '',//完善资料
  103. ];
  104. }
  105. return $res;
  106. }
  107. /**
  108. * 获取上下级关系
  109. */
  110. public function getFenxiaoRelationConfig($site_id)
  111. {
  112. $config = new ConfigModel();
  113. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_RELATION_CONFIG' ] ]);
  114. if (empty($res[ 'data' ][ 'value' ])) {
  115. $res[ 'data' ][ 'value' ] = [
  116. 'child_condition' => 1,//成为下线条件 1:首次点击分享链接 2:首次下单 3:首次付款
  117. ];
  118. }
  119. return $res;
  120. }
  121. /******************************************************************** 分销基本配置 end ****************************************************************************/
  122. /******************************************************************** 分销协议配置 start ****************************************************************************/
  123. /**
  124. * 设置分销协议配置
  125. * @return multitype:string mixed
  126. */
  127. public function setFenxiaoAgreementConfig($data, $is_use, $site_id)
  128. {
  129. $config = new ConfigModel();
  130. $agreement_config = [
  131. 'is_agreement' => $data[ 'is_agreement' ],//是否显示申请协议
  132. 'img' => $data[ 'img' ],//申请页面顶部图片
  133. ];
  134. $res = $config->setConfig($agreement_config, '分销协议配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_AGREEMENT_CONFIG' ] ]);
  135. $document = new Document();
  136. $document->setDocument($data[ 'agreement_title' ], $data[ 'agreement_content' ], [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'document_key', '=', "FENXIAO_AGREEMENT" ] ]);
  137. return $res;
  138. }
  139. /**
  140. * 获取分销协议配置
  141. * @return multitype:string mixed
  142. */
  143. public function getFenxiaoAgreementConfig($site_id)
  144. {
  145. $config = new ConfigModel();
  146. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_AGREEMENT_CONFIG' ] ]);
  147. if (empty($res[ 'data' ][ 'value' ])) {
  148. $res[ 'data' ][ 'value' ] = [
  149. 'is_agreement' => 0,//显示申请协议
  150. 'img' => 'public/static/img/fenxiao/apply_top_gg.png',//申请页面顶部图片
  151. ];
  152. }
  153. return $res;
  154. }
  155. /******************************************************************** 分销协议配置 end ****************************************************************************/
  156. /******************************************************************** 分销结算配置 start ****************************************************************************/
  157. /**
  158. * 设置分销结算配置
  159. * @return multitype:string mixed
  160. */
  161. public function setFenxiaoSettlementConfig($data, $is_use, $site_id)
  162. {
  163. $config = new ConfigModel();
  164. //分销商结算配置
  165. $settlement_data = [
  166. 'account_type' => $data[ 'account_type' ],//佣金计算方式
  167. ];
  168. $config->setConfig($settlement_data, '分销结算配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_SETTLEMENT_CONFIG' ] ]);
  169. //分销商提现配置
  170. $withdraw_data = [
  171. 'withdraw' => $data[ 'withdraw' ],//最低提现额度
  172. 'withdraw_rate' => $data[ 'withdraw_rate' ],//佣金提现手续费
  173. // 'min_no_fee' => $data['min_no_fee'],//最低免手续费区间
  174. // 'max_no_fee' => $data['max_no_fee'],//最高免手续费区间
  175. 'withdraw_status' => $data[ 'withdraw_status' ],//提现审核
  176. 'settlement_day' => $data[ 'settlement_day' ],//天数
  177. 'withdraw_type' => $data[ 'withdraw_type' ],//账户类型 alipay 支付宝 bank 银行卡
  178. 'transfer_type' => $data[ 'transfer_type' ],//提现方式
  179. 'max' => $data[ 'max' ],//提现方式
  180. 'is_auto_transfer' => $data[ 'is_auto_transfer' ], // 是否自动转账 1 手动转账 2 自动转账
  181. ];
  182. $res = $config->setConfig($withdraw_data, '分销提现配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_WITHDRAW_CONFIG' ] ]);
  183. return $res;
  184. }
  185. /**
  186. * 分销商结算配置
  187. * @return multitype:string mixed
  188. */
  189. public function getFenxiaoSettlementConfig($site_id)
  190. {
  191. $config = new ConfigModel();
  192. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_SETTLEMENT_CONFIG' ] ]);
  193. if (empty($res[ 'data' ][ 'value' ])) {
  194. $res[ 'data' ][ 'value' ] = [
  195. 'account_type' => 0
  196. ];
  197. }
  198. return $res;
  199. }
  200. /**
  201. * 分销商提现配置
  202. * @return multitype:string mixed
  203. */
  204. public function getFenxiaoWithdrawConfig($site_id)
  205. {
  206. $config = new ConfigModel();
  207. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_WITHDRAW_CONFIG' ] ]);
  208. if (empty($res[ 'data' ][ 'value' ])) {
  209. $res[ 'data' ][ 'value' ] = [
  210. 'withdraw' => 0,//最低提现额度
  211. 'withdraw_rate' => 0,//佣金提现手续费
  212. 'min_no_fee' => 0,//最低免手续费区间
  213. 'max_no_fee' => 0,//最高免手续费区间
  214. 'withdraw_status' => 1,//提现审核
  215. 'withdraw_type' => 0,//提现方式
  216. 'is_auto_transfer' => 0,
  217. 'transfer_type' => '',
  218. 'max' => 0
  219. ];
  220. }
  221. $value = $res[ 'data' ][ 'value' ];
  222. if (!isset($value[ 'transfer_type' ])) {
  223. $value[ 'transfer_type' ] = 'balance';
  224. }
  225. if (!isset($value[ 'max' ])) {
  226. $value[ 'max' ] = 0;
  227. }
  228. if (!isset($value[ 'is_auto_transfer' ])) {
  229. $value[ 'is_auto_transfer' ] = 0;
  230. }
  231. $res[ 'data' ][ 'value' ] = $value;
  232. return $res;
  233. }
  234. /**
  235. * 转账方式
  236. */
  237. public function getTransferType($site_id = 0, $app_module = 'shop')
  238. {
  239. $fenxiao_withdraw_model = new FenxiaoWithdraw();
  240. $transfer_type_list = $fenxiao_withdraw_model->getTransferType($site_id);
  241. $config = $this->getFenxiaoWithdrawConfig($site_id)[ "data" ][ 'value' ] ?? [];
  242. $data = [];
  243. $support_type = explode(",", $config[ "transfer_type" ]);
  244. foreach ($transfer_type_list as $k => $v) {
  245. if (in_array($k, $support_type)) {
  246. $data[ $k ] = $v;
  247. }
  248. }
  249. return $data;
  250. }
  251. /******************************************************************** 分销结算配置 end ****************************************************************************/
  252. /******************************************************************** 分销文字配置 start ****************************************************************************/
  253. /**
  254. * 设置分销文字配置
  255. * @return multitype:string mixed
  256. */
  257. public function setFenxiaoWordsConfig($data, $is_use, $site_id)
  258. {
  259. $config = new ConfigModel();
  260. $res = $config->setConfig($data, '分销文字配置', $is_use, [ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_WORDS_CONFIG' ] ]);
  261. return $res;
  262. }
  263. /**
  264. * 获取分销文字配置
  265. * @return multitype:string mixed
  266. */
  267. public function getFenxiaoWordsConfig($site_id)
  268. {
  269. $config = new ConfigModel();
  270. $res = $config->getConfig([ [ 'site_id', '=', $site_id ], [ 'app_module', '=', 'shop' ], [ 'config_key', '=', 'FENXIAO_WORDS_CONFIG' ] ]);
  271. if (empty($res[ 'data' ][ 'value' ])) {
  272. $res[ 'data' ][ 'value' ] = [
  273. 'concept' => '分销',// 分销概念
  274. 'fenxiao_name' => '分销商',// 分销商名称
  275. 'withdraw' => '提现',// 提现名称
  276. 'account' => '佣金',// 佣金
  277. 'my_team' => '团队',// 我的团队
  278. 'child' => '下线',// 下线
  279. ];
  280. }
  281. return $res;
  282. }
  283. /******************************************************************** 分销文字配置 end ****************************************************************************/
  284. }