|
@@ -234,6 +234,99 @@ class AppController extends Controller
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * @api {post} company/auth/addBookCoin 增加用户书币
|
|
|
|
+ * @apiVersion 1.0.0
|
|
|
|
+ * @apiName addBookCoin
|
|
|
|
+ * @apiGroup CompanyAuth
|
|
|
|
+ * @apiParam {String} channel_id 站点id
|
|
|
|
+ * @apiParam {String} uid 用户id
|
|
|
|
+ * @apiParam {String} amount 书币
|
|
|
|
+ * @apiParam {String} app_id 分配好的{app_id}
|
|
|
|
+ * @apiParam {String} nonce_str 随机字符串
|
|
|
|
+ * @apiParam {String} timestamp 时间戳
|
|
|
|
+ * @apiParam {String} sign 签名 规则同微信支付签名MD5(排序好的请求字符串&key=分配好的{app_secret})
|
|
|
|
+ * @apiSuccess {int} code 状态码
|
|
|
|
+ * @apiSuccess {String} msg 信息
|
|
|
|
+ * @apiSuccess {Object} data 结果集
|
|
|
|
+ * HTTP/1.1 200 OK
|
|
|
|
+ * {
|
|
|
|
+ * "code": 0,
|
|
|
|
+ * "msg": "",
|
|
|
|
+ * "data": {
|
|
|
|
+ * "success": 1
|
|
|
|
+ * }
|
|
|
|
+ * }
|
|
|
|
+ */
|
|
|
|
+ public function addBookCoin(ChannelQueryRequest $request)
|
|
|
|
+ {
|
|
|
|
+ $channel_id = $request->get('channel_id');
|
|
|
|
+ $uid = $request->get('uid');
|
|
|
|
+ $openid = $request->get('openid');
|
|
|
|
+ $amount = (int)$request->get('amount');
|
|
|
|
+
|
|
|
|
+ // 参数判断
|
|
|
|
+ if ((empty($openid) && empty($uid)) || empty($channel_id) || empty($amount) || $amount < 0 || $amount > 2000) {
|
|
|
|
+ return response()->json(['code'=>-1, 'msg'=>'传参有误!']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 获取当前用户信息
|
|
|
|
+ $user_info = '';
|
|
|
|
+ if (!empty($uid)) {
|
|
|
|
+ $user_info = $prev_coin = DB::connection('mysql')->table('users')->where(['id'=>$uid])
|
|
|
|
+ ->select('id', 'distribution_channel_id', 'balance', 'reward_balance')->first();
|
|
|
|
+ }else if(!empty($openid)) {
|
|
|
|
+ $user_info = $prev_coin = DB::connection('mysql')->table('users')
|
|
|
|
+ ->where(['distribution_channel_id'=>$channel_id, 'openid'=>$openid])
|
|
|
|
+ ->select('id', 'distribution_channel_id', 'balance', 'reward_balance')->first();
|
|
|
|
+ }
|
|
|
|
+ $user_info = (array)$user_info;
|
|
|
|
+ if (!$user_info) return response()->json(['code'=>-1, 'msg'=>'用户不存在!']);
|
|
|
|
+
|
|
|
|
+ // 当日该站点该用户获得的总书币
|
|
|
|
+ $sum = DB::connection('mysql')->table('user_coin_logs')->where(['distribution_channel_id'=>$channel_id, 'uid'=>$user_info['id'], 'day'=>date('Y-m-d')])->sum('amount');
|
|
|
|
+
|
|
|
|
+ $limit_amount = 2000;
|
|
|
|
+ if ($sum + $amount > $limit_amount) {
|
|
|
|
+ return response()->json(['code' => -1, 'msg' => '每个用户每个站点每日加书币的总额不得超过'.$limit_amount.'!']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ DB::connection('mysql')->beginTransaction();
|
|
|
|
+ $result = DB::connection('mysql')->table('users')->where(['id'=>$user_info['id']])->update([
|
|
|
|
+ 'balance' => $user_info['balance'] + $amount,
|
|
|
|
+ 'reward_balance' => $user_info['reward_balance'] + $amount,
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ if (!$result) {
|
|
|
|
+ DB::connection('mysql')->rollback();
|
|
|
|
+ return response()->json(['code'=>-1, 'msg'=>'数据库异常!']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $boolen = DB::connection('mysql')->table('user_coin_logs')->insert([
|
|
|
|
+ 'distribution_channel_id' => $user_info['distribution_channel_id'],
|
|
|
|
+ 'uid' => $user_info['id'],
|
|
|
|
+ 'day' => date('Y-m-d'),
|
|
|
|
+ 'before' => $user_info['balance'],
|
|
|
|
+ 'amount' => $amount,
|
|
|
|
+ 'after' => $user_info['balance'] + $amount,
|
|
|
|
+ 'created_at' => date('Y-m-d H:i:s'),
|
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s'),
|
|
|
|
+ ]);
|
|
|
|
+
|
|
|
|
+ if (!$boolen) {
|
|
|
|
+ DB::connection('mysql')->rollback();
|
|
|
|
+ return response()->json(['code'=>-1, 'msg'=>'数据库异常!']);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ DB::connection('mysql')->commit();
|
|
|
|
+ }catch(\Exception $e) {
|
|
|
|
+ DB::connection('mysql')->rollback();
|
|
|
|
+ return response()->json(['code'=>-1, 'msg'=>$e->getMessage()]);
|
|
|
|
+ }
|
|
|
|
+ return response()->json(['code'=>1, 'msg'=>'', 'data'=>['success' => $result]]);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* @api {post} company/auth/sendOrders 派单信息列表
|
|
* @api {post} company/auth/sendOrders 派单信息列表
|
|
* @apiVersion 1.0.0
|
|
* @apiVersion 1.0.0
|
|
* @apiName sendOrders
|
|
* @apiName sendOrders
|