Grade.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace app\shop\model\plus\agent;
  3. use app\common\model\plus\agent\Grade as AgentGradeModel;
  4. use app\shop\model\plus\agent\User as AgentUserModel;
  5. /**
  6. * 用户会员等级模型
  7. */
  8. class Grade extends AgentGradeModel
  9. {
  10. /**
  11. * 获取列表记录
  12. */
  13. public function getList()
  14. {
  15. $list = $this->selectList();
  16. // 如果为空,则插入默认等级
  17. if(count($list) == 0){
  18. $this->save([
  19. 'name' => '默认等级',
  20. 'is_default' => 1,
  21. 'weight' => 1,
  22. 'grade_id' => Grade::getDefaultGradeId(),
  23. 'app_id' => self::$app_id
  24. ]);
  25. // 更新之前的默认为0的id为此等级id
  26. (new AgentUserModel())->where('grade_id', '=', 0)->update([
  27. 'grade_id' => $this['grade_id']
  28. ]);
  29. $list = $this->selectList();
  30. }
  31. return $list;
  32. }
  33. private function selectList(){
  34. return $this->where('is_delete', '=', 0)
  35. ->order(['weight' => 'asc', 'create_time' => 'asc'])
  36. ->select();
  37. }
  38. /**
  39. * 新增记录
  40. */
  41. public function add($data)
  42. {
  43. $data['app_id'] = self::$app_id;
  44. $data['is_default'] = 0;
  45. $data['remark'] = $this->setRemark($data);
  46. return $this->save($data);
  47. }
  48. /**
  49. * 编辑记录
  50. */
  51. public function edit($data)
  52. {
  53. if($this['is_default'] == 0){
  54. $data['remark'] = $this->setRemark($data);
  55. }
  56. return $this->save($data);
  57. }
  58. private function setRemark($data){
  59. $remark = '';
  60. if($data['open_agent_money'] == 1){
  61. $money = sprintf('%.2f',$data['agent_money']);
  62. $remark .= "推广金额满{$money}元";
  63. }
  64. if($data['open_agent_user'] == 1){
  65. if(!empty($remark)){
  66. $remark .= '\r\n';
  67. }
  68. $remark .= "直推分销商满{$data['agent_user']}";
  69. }
  70. return $remark;
  71. }
  72. /**
  73. * 软删除
  74. */
  75. public function setDelete()
  76. {
  77. // 判断该等级下是否存在会员
  78. if (AgentUserModel::checkExistByGradeId($this['grade_id'])) {
  79. return false;
  80. }
  81. return $this->save(['is_delete' => 1]);
  82. }
  83. }