|
|
@@ -11,9 +11,12 @@
|
|
|
|
|
|
namespace App\Services;
|
|
|
|
|
|
+use App\Models\DynamicNoticeModel;
|
|
|
use App\Models\EnshrineActionModel;
|
|
|
+use App\Models\EnshrineOrdersModel;
|
|
|
use App\Models\EnshrineRecordModel;
|
|
|
use App\Models\MemberModel;
|
|
|
+use App\Models\OfferingsModel;
|
|
|
use App\Models\TradeModel;
|
|
|
|
|
|
/**
|
|
|
@@ -100,11 +103,11 @@ class EnshrineService extends BaseService
|
|
|
$item['guibai_check'] = $wash? $wash : 0;
|
|
|
|
|
|
// 花
|
|
|
- $item['hua_url'] = '';
|
|
|
+ $item['hua'] = '';
|
|
|
// 水果
|
|
|
- $item['guo_url'] = '';
|
|
|
+ $item['guo'] = '';
|
|
|
// 香烛
|
|
|
- $item['xiang_url'] = '';
|
|
|
+ $item['xiang'] = '';
|
|
|
}
|
|
|
unset($item);
|
|
|
}
|
|
|
@@ -349,4 +352,133 @@ class EnshrineService extends BaseService
|
|
|
\DB::commit();
|
|
|
return message("操作成功", true);
|
|
|
}
|
|
|
+
|
|
|
+ public function buy($userId){
|
|
|
+ $params = request()->all();
|
|
|
+ $id = isset($params['id'])? $params['id'] : 0;
|
|
|
+ $enshrineId = isset($params['enshrine_id'])? $params['enshrine_id'] : 0;
|
|
|
+ $type = isset($params['type'])? $params['type'] : 0;
|
|
|
+ if($id<=0 || $type <=0 || $enshrineId<=0){
|
|
|
+ return message('参数错误', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ $enshrine = $this->model::where(['id'=> $enshrineId,'user_id'=> $userId,'mark'=> 1,'status'=> 1])
|
|
|
+ ->select(['id','fo_id','user_id'])
|
|
|
+ ->first();
|
|
|
+ if(!$enshrine){
|
|
|
+ return message('供奉记录信息不存在,无法操作', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ $memberInfo = MemberModel::where(['id'=> $userId,'mark'=> 1,'status'=> 1])
|
|
|
+ ->select(['id','nickname','merits_num','coupon'])
|
|
|
+ ->first();
|
|
|
+ if(!$memberInfo){
|
|
|
+ return message('您的账号不可操作或已冻结,请联系客服', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 物品
|
|
|
+ $goodsInfo = OfferingsModel::where(['id'=> $id,'mark'=> 1,'status'=> 1])
|
|
|
+ ->select(['id','type','goods_type','name','price'])
|
|
|
+ ->first();
|
|
|
+ if(!$goodsInfo){
|
|
|
+ return message('物品不存在或已下架,请刷新重试', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ \DB::beginTransaction();
|
|
|
+ $data = [
|
|
|
+ 'source_id'=> $enshrineId,
|
|
|
+ 'goods_id'=> $id,
|
|
|
+ 'user_id'=> $userId,
|
|
|
+ 'type'=> $type,
|
|
|
+ 'order_sn'=> get_order_num('F'),
|
|
|
+ 'num'=> 1,
|
|
|
+ 'price'=> $goodsInfo->price,
|
|
|
+ 'total'=> $goodsInfo->price,
|
|
|
+ 'gd_name'=> isset($params['gd_name'])? $params['gd_name'] : '',
|
|
|
+ 'pay_at'=> date('Y-m-d H:i:s'),
|
|
|
+ 'remark'=> isset($params['remark'])? $params['remark'] : '',
|
|
|
+ 'create_time'=> time(),
|
|
|
+ 'update_time'=> time(),
|
|
|
+ 'status'=> 2
|
|
|
+ ];
|
|
|
+ if(!EnshrineOrdersModel::insertGetId($data)) {
|
|
|
+ \DB::rollBack();
|
|
|
+ return message('供奉物品失败', false);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 扣款奖励处理
|
|
|
+ if($goodsInfo->price>0){
|
|
|
+
|
|
|
+ if(!MemberModel::where(['id'=> $userId, 'mark'=> 1])->increment('coupon', $goodsInfo->price)){
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("更新花灯券账户失败", false);
|
|
|
+ }
|
|
|
+
|
|
|
+ $data = [
|
|
|
+ 'user_id'=> $userId,
|
|
|
+ 'source_uid'=> 0,
|
|
|
+ 'type'=> 3,
|
|
|
+ 'coin_type'=> 4,
|
|
|
+ 'pay_type'=> 4,
|
|
|
+ 'money'=> $goodsInfo->price,
|
|
|
+ 'change_type'=> 1,
|
|
|
+ 'balance'=> $memberInfo->coupon,
|
|
|
+ 'create_time'=> time(),
|
|
|
+ 'remark'=> $type == 1? "供奉{$goodsInfo->name}" : ($type == 3? "放生{$goodsInfo->name}" : '超度普渡众生'),
|
|
|
+ 'status'=> 1,
|
|
|
+ ];
|
|
|
+ if(!TradeModel::insertGetId($data)){
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("处理账户明细失败", false);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 奖励
|
|
|
+ $giveGd = ConfigService::make()->getConfigByCode('enshrine_give_gd');
|
|
|
+ $giveGd = $giveGd? $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'=> $type==1? "跪拜祈福":'洗手祈福',
|
|
|
+ 'status'=> 1,
|
|
|
+ ];
|
|
|
+ if(!TradeModel::insertGetId($data)){
|
|
|
+ \DB::rollBack();
|
|
|
+ return message("处理功德奖励失败", false);
|
|
|
+ }
|
|
|
+
|
|
|
+ \DB::commit();
|
|
|
+ return message("获得功德值{$giveGd}", true, ['num'=> $giveGd]);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ \DB::commit();
|
|
|
+
|
|
|
+ // 动态
|
|
|
+ $data = [
|
|
|
+ 'type'=> $type+1,
|
|
|
+ 'user_id'=> $userId,
|
|
|
+ 'remark'=> $type == 1? "供奉{$goodsInfo->name}" : ($type == 3? "放生{$goodsInfo->name}" : '超度普渡众生'),
|
|
|
+ 'update_time'=> time(),
|
|
|
+ 'create_time'=> time(),
|
|
|
+ 'status'=> 1
|
|
|
+ ];
|
|
|
+ DynamicNoticeModel::insertGetId($data);
|
|
|
+
|
|
|
+
|
|
|
+ return message("操作成功", true);
|
|
|
+ }
|
|
|
}
|