PointSetController.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * Author: 芸众商城 www.yunzshop.com
  5. * Date: 2017/4/10
  6. * Time: 下午2:00
  7. */
  8. namespace app\backend\modules\finance\controllers;
  9. use app\backend\modules\finance\services\PointService;
  10. use app\backend\modules\member\models\MemberLevel;
  11. use app\common\components\BaseController;
  12. use app\common\facades\Setting;
  13. use app\common\models\MemberGroup;
  14. use app\common\services\point\PointToBalanceService;
  15. use Carbon\Carbon;
  16. use app\common\helpers\Url;
  17. use Yunshop\Love\Common\Services\CommonService;
  18. class PointSetController extends BaseController
  19. {
  20. // public function test1()
  21. // {
  22. // (new PointToBalanceService())->transferStart();
  23. //
  24. // dd('手动转入成功');
  25. // }
  26. // public function test2()
  27. // {
  28. // Setting::set('point.transfer_balance', [
  29. // 'last_month' => date('m') -1,
  30. // 'last_week' => date('W') -1,
  31. // 'last_day' => date('d') -1
  32. // ]);
  33. //
  34. // dd('重置转入时间成功');
  35. // }
  36. /**
  37. * @name 积分基础设置
  38. * @return array $set
  39. * @author yangyang
  40. */
  41. public function index()
  42. {
  43. $point_data = PointService::getPointData(
  44. \YunShop::request()->set,
  45. \YunShop::request()->enough,
  46. \YunShop::request()->give
  47. );
  48. if ($point_data) {
  49. $point_data = $this->verifySetData($point_data);
  50. $result = (new PointService())->verifyPointData($point_data);
  51. if ($result) {
  52. (new \app\common\services\operation\PointSetLog(['old' => $this->pointSet(), 'new' => $point_data], 'update'));
  53. return $this->message($result, Url::absoluteWeb('finance.point-set'));
  54. }
  55. }
  56. return view('finance.point.set', $this->resultData());
  57. }
  58. private function resultData()
  59. {
  60. return [
  61. 'set' => $this->pointSet(),
  62. 'day_data' => $this->getDayData(),
  63. 'week_data' => $this->getWeekData(),
  64. 'memberLevels' => $this->memberLevels(),
  65. 'memberGroups' => $this->memberGroups(),
  66. 'love_name' => app('plugins')->isEnabled('love') && CommonService::getLoveName() ? CommonService::getLoveName() : '爱心值',
  67. ];
  68. }
  69. /**
  70. * 转换类型
  71. *
  72. * @param array $point_data
  73. * @return mixed array
  74. * @author yangyang
  75. */
  76. private function verifySetData($point_data)
  77. {
  78. $point_data['money'] = floatval($point_data['money']);
  79. $point_data['money_max'] = floatval($point_data['money_max']);
  80. $point_data['give_point'] = trim($point_data['give_point']);
  81. $point_data['first_parent_point'] = trim($point_data['first_parent_point']);
  82. $point_data['second_parent_point'] = trim($point_data['second_parent_point']);
  83. $point_data['enough_money'] = floatval($point_data['enough_money']);
  84. $point_data['enough_point'] = floatval($point_data['enough_point']);
  85. return $point_data;
  86. }
  87. //爱心值插件名称
  88. private function loveName()
  89. {
  90. $loveName = Setting::get('love.name');
  91. return $loveName ? $loveName : '爱心值';
  92. }
  93. //爱心值插件名称
  94. private function integralName()
  95. {
  96. if (app('plugins')->isEnabled('integral')) {
  97. return \Yunshop\Integral\Common\Services\SetService::getIntegralName();
  98. }
  99. return '消费积分';
  100. }
  101. //会员等级列表
  102. private function memberLevels()
  103. {
  104. return MemberLevel::getMemberLevelList();
  105. }
  106. //会员分组列表
  107. private function memberGroups()
  108. {
  109. return MemberGroup::records()->get();
  110. }
  111. private function pointSet()
  112. {
  113. $set = Setting::get('point.set');
  114. $set['love_name'] = $this->loveName();
  115. $set['integral_name'] = $this->integralName();
  116. return $set;
  117. }
  118. private function getWeekData()
  119. {
  120. return [
  121. Carbon::SUNDAY => '星期日',
  122. Carbon::MONDAY => '星期一',
  123. Carbon::TUESDAY => '星期二',
  124. Carbon::WEDNESDAY => '星期三',
  125. Carbon::THURSDAY => '星期四',
  126. Carbon::FRIDAY => '星期五',
  127. Carbon::SATURDAY => '星期六',
  128. ];
  129. }
  130. /**
  131. * 返回一天24时,对应key +1, 例:1 => 0:00
  132. * @return array
  133. */
  134. private function getDayData()
  135. {
  136. $dayData = [];
  137. for ($i = 0; $i <= 23; $i++) {
  138. $dayData += [
  139. $i + 1 => "当天" . $i . ":00 转入",
  140. ];
  141. }
  142. return $dayData;
  143. }
  144. }