diff --git a/app/api/controller/User.php b/app/api/controller/User.php index d9d13d9c..fa2bb12a 100644 --- a/app/api/controller/User.php +++ b/app/api/controller/User.php @@ -12,6 +12,7 @@ declare (strict_types=1); namespace app\api\controller; +use app\api\service\Feedback; use think\response\Json; use app\api\model\User as UserModel; use app\api\model\UserCoupon as UserCouponModel; @@ -38,12 +39,12 @@ class User extends Controller // 获取用户头像和会员等级 $userInfo = UserModel::related($userInfo, ['avatar', 'grade']); //获取提现次数 - $userInfo['finace_count'] = BalanceLog::where(['user_id' => $userInfo->user_id, 'scene' => 50])->count()??0; + $userInfo['finace_count'] = BalanceLog::where(['user_id' => $userInfo->user_id, 'scene' => 50])->count() ?? 0; //获取用户收入 $userInfo['income'] = BalanceLog::where(['user_id' => $userInfo->user_id]) - ->whereIn('scene',[10,30,40,60]) - ->where('money','>',0) - ->sum('money')??0; + ->whereIn('scene', [10, 30, 40, 60]) + ->where('money', '>', 0) + ->sum('money') ?? 0; return $this->renderSuccess(compact('userInfo')); } @@ -96,4 +97,43 @@ class User extends Controller } return $this->renderSuccess('恭喜您,信息修改成功'); } + + /** + * 提交反馈 + */ + public function addFeedback(): Json + { + // 当前用户信息 + $userInfo = UserService::getCurrentLoginUser(true); + $params = $this->request->param(); + if (empty($params['content']) || (empty($params['store_id']) && $params['object_type'] != 1) || empty($params['type'])) { + return $this->renderError('请补全信息'); + } + $userData = [ + 'user_id' => $userInfo->user_id, + 'user_name' => $userInfo->nick_name, + 'mobile' => $userInfo->mobile, + ]; + $service = new Feedback(); + $res = $service->addFeedback($params, $userData); + if ($res) { + return $this->renderSuccess('提交成功,请耐心等待'); + } else { + return $this->renderError('提交失败'); + } + } + + //获取反馈列表 + public function getFeedBack(): Json + { + $params = $this->request->param(); + // 当前用户信息 + if (!empty($params['is_my'])) { + $userInfo = UserService::getCurrentLoginUser(true); + $params['user_id'] = $userInfo->user_id; + } + $service = new Feedback(); + $list = $service->getFeedback($params); + return $this->renderSuccess(compact('list')); + } } diff --git a/app/api/service/Feedback.php b/app/api/service/Feedback.php new file mode 100644 index 00000000..ee2cc0c8 --- /dev/null +++ b/app/api/service/Feedback.php @@ -0,0 +1,60 @@ + +// +---------------------------------------------------------------------- +declare (strict_types=1); + +namespace app\api\service; + +use app\common\model\UserFeedback; +use app\common\service\BaseService; +use cores\exception\BaseException; + +/** + * 用户余额充值服务 + * Class Recharge + * @package app\api\controller + */ +class Feedback extends BaseService +{ + //添加反馈 + public function addFeedback($data, $user_data) + { + $addData = [ + 'user_id' => $user_data['user_id'], + 'store_id' => $data['store_id'] ?? 0, + 'type' => $data['type'], + 'object_type' => $data['object_type'], + 'content' => $data['content'], + 'user_name' => $user_data['user_name'], + 'mobile' => $user_data['mobile'], + 'status' => 0, + 'created_at' => time(), + ]; + $model = new UserFeedback(); + return $model->insert($addData); + } + + //反馈列表 + public function getFeedback($params, $listRows = 10) + { + $query = new UserFeedback(); + if (!empty($params['is_my']) && !empty($params['user_id'])) { + $query = $query->where(['user_id' => $params['user_id']]); + } + $list = $query->with(['store']) + ->order('replay_at desc,created_at desc') + ->paginate($listRows)->toArray(); + foreach ($list['data'] as $k => $v) { + $list['data'][$k]['store_name'] = !empty($v['store']['store_name']) ? $v['store']['store_name'] : ''; + unset($list['data'][$k]['store']); + } + return $list; + } +} \ No newline at end of file diff --git a/app/api/service/Store.php b/app/api/service/Store.php index 3b85f69d..be24cb1e 100644 --- a/app/api/service/Store.php +++ b/app/api/service/Store.php @@ -13,6 +13,7 @@ declare (strict_types=1); namespace app\api\service; use app\api\model\Store as StoreModel; +use \app\common\model\Store as StoreInfoModel; use app\api\service\Client as ClientService; use app\api\service\Setting as SettingService; use app\api\model\store\Module as StoreModuleModel; @@ -116,7 +117,7 @@ class Store extends BaseService //申请入驻 public function joinStore($data, $user_id) { - $has = \app\admin\model\Store::where(['user_id' => $user_id])->find(); + $has = Db::query('select * from yoshop_store where user_id = ' . $user_id . ' and status != 2 and is_recycle = 0 and is_delete= 0'); if ($has) { return ['code' => 1, 'msg' => '请勿重复申请入驻']; } @@ -170,7 +171,7 @@ class Store extends BaseService public function joinData($user_id) { - $storeInfo = Db::query('select * from yoshop_store where user_id = ' . $user_id); + $storeInfo = Db::query('select * from yoshop_store where user_id = ' . $user_id . ' and and is_recycle = 0 and is_delete= 0'); $settle = []; if (!empty($storeInfo)) { $res = Db::query('select * from yoshop_store_settle where store_id = ' . $storeInfo[0]['store_id']); @@ -182,4 +183,5 @@ class Store extends BaseService 'settle' => $settle, ]; } + } \ No newline at end of file diff --git a/app/common/model/UserFeedback.php b/app/common/model/UserFeedback.php new file mode 100644 index 00000000..c0a25075 --- /dev/null +++ b/app/common/model/UserFeedback.php @@ -0,0 +1,49 @@ + +// +---------------------------------------------------------------------- +declare (strict_types=1); + +namespace app\common\model; + +use cores\BaseModel; +use think\model\relation\HasOne; +/** + * 用户模型类 + * Class User + * @package app\common\model + */ +class UserFeedback extends BaseModel +{ + // 定义表名 + protected $name = 'user_feedback'; + + // 定义主键 + protected $pk = 'id'; + + + /** + * 关联用户 + * @return HasOne + */ + public function user(): HasOne + { + return $this->hasOne('user', 'user_id', 'user_id'); + } + + /** + * 关联商家 + * @return HasOne + */ + public function store(): HasOne + { + return $this->hasOne('store', 'store_id', 'store_id'); + } + +}