初始化代码

This commit is contained in:
2025-12-22 14:32:54 +08:00
parent e27ab90d9f
commit d02b31a8b9
1459 changed files with 240973 additions and 0 deletions

View File

@@ -0,0 +1,533 @@
<?php
namespace app\farm\model;
use app\BaseModel;
use app\farm\model\BalanceWater;
use app\farm\model\User;
use app\publics\model\TmplConfig;
use app\shop\model\DistributionCash;
use app\shop\model\IntegralLog;
use longbingcore\wxcore\PayModel;
use longbingcore\wxcore\PushMsgModel;
use think\facade\Db;
class ClaimOrder extends BaseModel
{
//定义表名
protected $name = 'lbfarm_claim_order';
/**
* @author chenniang
* @DataTime: 2020-09-29 11:04
* @功能说明:添加
*/
public function dataAdd($data){
$data['create_time'] = time();
$res = $this->insert($data);
return $res;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:05
* @功能说明:编辑
*/
public function dataUpdate($dis,$data){
$res = $this->where($dis)->update($data);;
return $res;
}
/**
* @author chenniang
* @DataTime: 2021-12-14 15:45
* @功能说明:添加关联
*/
public function updateSome($id,$data){
$server = new \app\farm\server\Claim();
$claim_text_model = new ClaimText();
$source_text_model= new LandSourceText();
$monitor_text_model= new MonitorText();
$server->addObserver($claim_text_model);
$server->addObserver($source_text_model);
$server->addObserver($monitor_text_model);
$server->notify($id,$data);
return true;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:06
* @功能说明:列表
*/
public function dataList($dis,$page=10){
$data = $this->where($dis)->order('id desc')->paginate($page)->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2020-09-29 11:43
* @功能说明:
*/
public function dataInfo($dis){
$data = $this->where($dis)->find();
return !empty($data)?$data->toArray():[];
}
/**
* @author chenniang
* @DataTime: 2021-12-16 15:39
* @功能说明:回调
*/
public function orderResult($order_code,$transaction_id){
$order = $this->dataInfo(['order_code'=>$order_code]);
if(!empty($order)&&$order['pay_type']==1){
$update = [
'pay_time' => time(),
'pay_type' => 2,
'transaction_id' => $transaction_id
];
Db::startTrans();
$this->dataUpdate(['id'=>$order['id']],$update);
//扣除余额
if($order['balance']>0){
$water_model = new BalanceWater();
$res = $water_model->addWater($order,2,0);
if($res==0){
Db::rollback();
}
}
//添加流水
$water_model = new FinanceWater();
$water_model->addWater($order['id'],1,1,1);
$integral_model = new IntegralLog();
//增加佣金
$integral_model->integralUserAdd($order['user_id'],$order['get_integral'],$order['uniacid'],2,5,$order['id'],0,$order);
//分销
$cash_model = new DistributionCash();
//增加分销激励
$cash_model->addUserCash($order,3);
//分销到账
$cash_model->cashArrival($order,3);
$collage_model = new CollageStart();
//拼团
$collage_model->atvResult($order['id']);
Db::commit();
$sys_model = new PushMsgModel($order['uniacid']);
$sys_model->sendMsg($order,8);
$sys_model->sendMsg($order,10);
}
return true;
}
/**
* @author chenniang
* @DataTime: 2021-04-01 10:13
* @功能说明:超时自动退款
*/
public function autoCancelOrder($uniacid,$user_id=0){
$dis[] = ['uniacid','=',$uniacid];
$dis[] = ['pay_type','=',1];
$dis[] = ['over_time','<',time()];
if(!empty($user_id)){
$dis[] = ['user_id','=',$user_id];
}
$order = $this->where($dis)->select()->toArray();
if(!empty($order)){
foreach ($order as $value){
$this->cancelOrder($value);
}
}
return true;
}
/**
* @author chenniang
* @DataTime: 2021-04-01 10:13
* @功能说明:退款
*/
public function cancelOrder($order,$refund =1,$payConfig=[]){
Db::startTrans();
if($refund==2){
$res = $this->refundCash($payConfig,$order);
if($res!=true){
Db::rollback();
return ['code'=>500,'msg'=>'退款失败'];
}
}else{
//取消订单
$collage_model = new CollageStart();
$collage_model->cancelOrderAtvFail($order['id']);
}
$res = $this->dataUpdate(['id'=>$order['id'],'pay_type'=>$refund],['pay_type'=>-1,'cancel_time'=>time()]);
if($res!=1){
Db::rollback();
return ['code'=>500,'msg'=>'取消失败'];
}
$claim_model = new Claim();
$claim = $claim_model->dataInfo(['id'=>$order['goods_id']]);
//加销量减库存
$update = [
'stock' => $claim['stock'] +$order['num'],
'sale_num' => $claim['sale_num']-$order['num'],
'lock' => $claim['lock']+1
];
$res = $claim_model->dataUpdate(['id'=>$claim['id'],'lock'=>$claim['lock']],$update);
if($res==0){
Db::rollback();
return ['code'=>500,'msg'=>'取消失败'];
}
Db::commit();
return true;
}
/**
* @author chenniang
* @DataTime: 2022-08-18 13:53
* @功能说明:退钱
*/
public function refundCash($payConfig,$pay_order){
if($pay_order['pay_price']<=0){
return true;
}
$water_model = new FinanceWater();
$water_model->addWater($pay_order['id'],2,1,1);
if($pay_order['pay_model']==1){
//微信退款
$response = orderRefundApi($payConfig,$pay_order['pay_price'],$pay_order['pay_price'],$pay_order['transaction_id']);
//如果退款成功修改一下状态
if ( isset( $response[ 'return_code' ] ) && isset( $response[ 'result_code' ] ) && $response[ 'return_code' ] == 'SUCCESS' && $response[ 'result_code' ] == 'SUCCESS' ) {
$response['out_refund_no'] = !empty($response['out_refund_no'])?$response['out_refund_no']:$pay_order['order_code'];
$this->dataUpdate(['id'=>$pay_order['id']],['out_refund_no'=>$response['out_refund_no']]);
}else {
//失败就报错
$discption = !empty($response['err_code_des'])?$response['err_code_des']:$response['return_msg'];
return ['code'=>500,'msg'=> $discption];
}
}elseif($pay_order['pay_model']==2){
$data = [
'user_id' => $pay_order['user_id'],
'pay_price'=> $pay_order['pay_price'],
'id' => $pay_order['id'],
'uniacid' => $pay_order['uniacid']
];
$water_model = new \app\farm\model\BalanceWater();
$res = $water_model->addWater($data,13,1);
if($res==0){
return false;
}
}else{
//支付宝
$pay_model = new PayModel($payConfig);
$res = $pay_model->aliRefund($pay_order['transaction_id'],$pay_order['pay_price']);
if(isset($res['alipay_trade_refund_response']['code'])&&$res['alipay_trade_refund_response']['code']==10000){
$this->dataUpdate(['id'=>$pay_order['id']],['out_refund_no'=>$res['alipay_trade_refund_response']['out_trade_no']]);
}else{
return ['code'=>500,'msg'=> $res['alipay_trade_refund_response']['sub_msg']];
}
}
return true;
}
/**
* @param $dis
* @param int $page
* @功能说明:后台下单列表
* @author chenniang
* @DataTime: 2022-02-16 14:05
*/
public function adminDataList($dis,$page=10){
$data = $this->alias('a')
->join('lbfarm_order_address b','a.id = b.order_id AND b.type=2','left')
->where($dis)
->field('a.*,b.user_name,b.mobile')
->group('a.id')
->order('a.id desc')
->paginate($page)
->toArray();
return $data;
}
/**
* @param $dis
* @param int $page
* @功能说明:后台下单列表
* @author chenniang
* @DataTime: 2022-02-16 14:05
*/
public function adminDataSelect($dis,$page=10){
$data = $this->alias('a')
->join('lbfarm_order_address b','a.id = b.order_id AND b.type=2','left')
->where($dis)
->field('a.*,b.user_name,b.mobile')
->group('a.id')
->order('a.id desc')
->select()
->toArray();
return $data;
}
/**
* @author chenniang
* @DataTime: 2022-02-24 16:46
* @功能说明:预支付信息
*/
public function payOrderInfo($input,$is_err=0){
$claim_model = new Claim();
$data = $claim_model->dataInfo(['id'=>$input['claim_id'],'status'=>1]);
$input['num'] = !empty($input['num'])?$input['num']:1;
if(empty($data)){
return ['code'=>500,'msg'=>'该产品已下架'];
}
if($data['stock']<$input['num']&&$is_err==1){
return ['code'=>500,'msg'=>'该产品库存不足'];
}
if($data['end_time']<time()&&$is_err==1){
return ['code'=>500,'msg'=>'该产品认养期已结束'];
}
$data['pay_price'] = round($data['price']*$input['num'],2);
$pay_price = $data['init_price'] = $data['pay_price'];
if(!empty($input['coupon_id'])&&empty($input['collage_start_id'])){
$coupon_record_model = new CouponRecord();
$coupon = $coupon_record_model->dataInfo(['id'=>$input['coupon_id'],'is_claim'=>1,'status'=>1]);
if(!empty($coupon)&&$coupon['full']<=$data['pay_price']){
$data['pay_price'] -= $coupon['discount'];
}else{
$coupon = [];
}
}
//发起拼团
if(!empty($input['collage_start_id'])){
$collage_model = new ClaimCollage();
$data['collage_start_data'] = $collage_model->getAtvInfo($input['collage_start_id'],$input['claim_id']);
if(!empty($data['collage_start_data'])){
$data['pay_price'] = $data['collage_start_data']['price'];
}
//参与拼团
}elseif(!empty($input['collage_join_id'])){
$collage_model = new CollageStart();
$data['collage_join_data'] = $collage_model->getAtvInfo($input['collage_join_id'],$input['claim_id']);
if(!empty($data['collage_join_data'])){
$data['pay_price'] = $data['collage_join_data']['price'];
}
}
$data['pay_price'] = $data['pay_price']>0?$data['pay_price']:0;
$data['pay_price'] = round($data['pay_price'],2);
$data['coupon_discount'] = !empty($coupon)?$coupon['discount']:0;
$data['coupon_discount'] = $data['coupon_discount']<$pay_price?$data['coupon_discount']:$pay_price;
$data['coupon_discount'] = round($data['coupon_discount'],2);
$data['coupon_id'] = !empty($coupon)?$coupon['id']:0;
return $data;
}
/**
* @author chenniang
* @DataTime: 2022-03-09 17:45
* @功能说明:认养发送可配送提醒
*/
public function claimSendNotice($uniacid){
$push_model = new PushMsgModel($uniacid);
$dis[] = ['pay_type','>',1];
$dis[] = ['have_notice','=',0];
$dis[] = ['end_time','<',time()];
$list = $this->where($dis)->select()->toArray();
if(!empty($list)){
foreach ($list as $value){
$this->dataUpdate(['id'=>$value['id']],['have_notice'=>1]);
$push_model->sendMsg($value,7);
}
}
return true;
}
}