|
|
@@ -12,6 +12,10 @@
|
|
|
namespace App\Services;
|
|
|
|
|
|
use App\Models\DonateModel;
|
|
|
+use App\Models\DynamicNoticeModel;
|
|
|
+use App\Models\MecryModel;
|
|
|
+use App\Models\MemberModel;
|
|
|
+use App\Models\TradeModel;
|
|
|
|
|
|
/**
|
|
|
* 捐赠物品管理-服务类
|
|
|
@@ -186,4 +190,114 @@ class DonateService extends BaseService
|
|
|
$data['update_time'] = time();
|
|
|
return parent::edit($data); // TODO: Change the autogenerated stub
|
|
|
}
|
|
|
+
|
|
|
+ public function xingshan($userId){
|
|
|
+ $type = request()->get('type', 1);
|
|
|
+ $num = request()->get('num', 1);
|
|
|
+ if(!in_array($type, [1,2,3])){
|
|
|
+ return message('项目类型参数错误', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ if($num <=0 || $num >1000){
|
|
|
+ return message('行善券数量为1-1000', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ $memberInfo = MemberModel::where(['id' => $userId, 'mark' => 1, 'status' => 1])
|
|
|
+ ->select(['id', 'nickname','merits_num','coupon'])
|
|
|
+ ->first();
|
|
|
+ if (!$memberInfo) {
|
|
|
+ return message('您的账号不可操作或已冻结,请联系客服', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ if($memberInfo->coupon < $num){
|
|
|
+ return message("账户花灯券不足,请先充值", false, [], 10003);
|
|
|
+ }
|
|
|
+
|
|
|
+ $params = request()->all();
|
|
|
+ \DB::beginTransaction();
|
|
|
+ $data = [
|
|
|
+ 'user_id'=> $userId,
|
|
|
+ 'type'=> $type,
|
|
|
+ 'description'=> isset($params['description'])? $params['description']:'',
|
|
|
+ 'thumb'=> isset($params['thumb'])? $params['thumb']:'',
|
|
|
+ 'coupon'=> $num,
|
|
|
+ 'create_time'=> time(),
|
|
|
+ 'status'=> 1,
|
|
|
+ ];
|
|
|
+
|
|
|
+ if(!MecryModel::insertgetId($data)){
|
|
|
+ return message('处理失败,请刷新后重试', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!MemberModel::where(['id' => $userId, 'mark' => 1])->decrement('coupon', $num)) {
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("扣除花灯券账户失败", false);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ $types = [1=>'日行一善,功德无量',2=>'功德三千,阿弥陀佛',3=>'打赏平台'];
|
|
|
+ $data = [
|
|
|
+ 'user_id' => $userId,
|
|
|
+ 'source_uid' => 0,
|
|
|
+ 'type' => 1,
|
|
|
+ 'coin_type' => 1,
|
|
|
+ 'pay_type' => 1,
|
|
|
+ 'money' => $num,
|
|
|
+ 'change_type' => 2,
|
|
|
+ 'balance' => $memberInfo->coupon,
|
|
|
+ 'create_time' => time(),
|
|
|
+ 'remark' => $types[$type],
|
|
|
+ 'status' => 1,
|
|
|
+ ];
|
|
|
+ if (!TradeModel::insertGetId($data)) {
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("处理账户明细失败", false);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 功德奖励
|
|
|
+ $giveGd = ConfigService::make()->getConfigByCode('xingshan_give_gd');
|
|
|
+ $giveGd = $giveGd>0? $giveGd : 0;
|
|
|
+ if($giveGd>0){
|
|
|
+ if (!MemberModel::where(['id' => $userId, 'mark' => 1])->increment('merits_num', $giveGd)) {
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("更新功德账户失败", false);
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'user_id' => $userId,
|
|
|
+ 'source_uid' => 0,
|
|
|
+ 'type' => 3,
|
|
|
+ 'coin_type' => 4,
|
|
|
+ 'pay_type' => 4,
|
|
|
+ 'money' => $giveGd,
|
|
|
+ 'change_type' => 1,
|
|
|
+ 'balance' => $memberInfo->merits_num,
|
|
|
+ 'create_time' => time(),
|
|
|
+ 'remark' => $types[$type],
|
|
|
+ 'status' => 1,
|
|
|
+ ];
|
|
|
+ if (!TradeModel::insertGetId($data)) {
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("处理功德奖励失败", false);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// 动态
|
|
|
+ $data = [
|
|
|
+ 'type' => 5,
|
|
|
+ 'user_id' => $userId,
|
|
|
+ 'remark' => $types[$type],
|
|
|
+ 'update_time' => time(),
|
|
|
+ 'create_time' => time(),
|
|
|
+ 'status' => 1
|
|
|
+ ];
|
|
|
+ DynamicNoticeModel::insertGetId($data);
|
|
|
+
|
|
|
+ \DB::commit();
|
|
|
+
|
|
|
+ // 完成修行项目
|
|
|
+ PracticesService::make()->saveLog($userId, 8, $types[$type]);
|
|
|
+
|
|
|
+ return message('行善成功', true);
|
|
|
+ }
|
|
|
}
|