Kirin пре 3 година
родитељ
комит
6225bc99a5

+ 4 - 0
app/admin/controller/finance/UserExtract.php

@@ -153,6 +153,10 @@ class UserExtract extends AuthController
             $res = $res && UserBill::income('提现转换(余额)', $extract['uid'], 'now_money', 'extract_get_now_money', $extract['commission_yue'], $extract['id'], \app\admin\model\user\User::where('uid', $extract['uid'])->value('now_money') + $extract['commission_yue'], '提现申请通过,其中部分佣金转换为余额' . $extract['commission_yue']);
             $res = $res && \app\admin\model\user\User::where('uid', $extract['uid'])->inc('now_money', $extract['commission_yue'])->update();
         }
+        if ($extract['commission_gf'] > 0) {
+            $res = $res && UserBill::income('提现转换(股份)', $extract['uid'], 'gf', 'extract_get_gf', $extract['commission_gf'], $extract['id'], \app\admin\model\user\User::where('uid', $extract['uid'])->value('gf') + $extract['commission_gf'], '提现申请通过,其中部分佣金转换为股份' . $extract['commission_gf']);
+            $res = $res && \app\admin\model\user\User::where('uid', $extract['uid'])->inc('gf', $extract['commission_gf'])->update();
+        }
 //        if ($extract['commission_gf'] > 0 && SystemStoreMember::be(['uid' => $extract['uid']])) {
 //            $res = $res && SystemStoreMember::where('uid', $extract['uid'])->inc('consume_rights', $extract['commission_gf'])->update();
 //        }

+ 97 - 67
app/admin/controller/user/User.php

@@ -9,6 +9,7 @@ namespace app\admin\controller\user;
 
 use app\admin\controller\AuthController;
 use app\models\system\CardInfo;
+use app\models\user\UserBill;
 use crmeb\repositories\UserRepository;
 use crmeb\traits\CurdControllerTrait;
 use think\facade\Route as Url;
@@ -19,7 +20,13 @@ use app\admin\model\wechat\WechatMessage;
 use app\admin\model\store\{StoreVisit, StoreCouponUser};
 use app\admin\model\system\{SystemUserLevel, SystemUserTask};
 use crmeb\services\{FormBuilder as Form, upload\Upload, UtilService as Util, JsonService as Json, UtilService};
-use app\admin\model\user\{User as UserModel, UserBill as UserBillAdmin, UserLevel, UserGroup, UserTaskFinish,UserSystemRecharge};
+use app\admin\model\user\{User as UserModel,
+    UserBill as UserBillAdmin,
+    UserLevel,
+    UserGroup,
+    UserTaskFinish,
+    UserSystemRecharge
+};
 
 /**
  * 用户管理控制器
@@ -71,7 +78,7 @@ class User extends AuthController
         list($group_id) = Util::postMore([
             ['group_id', 0],
         ], $this->request, true);
-        $uids = explode(',',$uid);
+        $uids = explode(',', $uid);
         $res = UserModel::whereIn('uid', $uids)->update(['group_id' => $group_id]);
         if ($res) {
             return Json::successful('设置成功');
@@ -114,7 +121,7 @@ class User extends AuthController
     public function edit_other($uid)
     {
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
+        $user = UserModel::where('uid', $uid)->find();
         if (!$user) return Json::fail('数据不存在!');
         $f = array();
         $f[] = Form::radio('money_status', '修改余额', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 2, 'label' => '减少']]);
@@ -125,49 +132,49 @@ class User extends AuthController
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');
     }
+
     public function pay($uid)
     {
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
+        $user = UserModel::where('uid', $uid)->find();
         if (!$user) return Json::fail('数据不存在!');
         $f = array();
         $f[] = Form::radio('brokerage_status', '充值余额', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 0, 'label' => '减少']]);
         $f[] = Form::number('money', '金额')->min(0);
         $f[] = Form::uploadFiles('evaluation', '付款凭证', Url::buildUrl('file_upload'))->name('file');
-        $form = Form::make_post_form('修改其他', $f, Url::buildUrl('pay_update', array('uid' => $uid)),5);
+        $form = Form::make_post_form('修改其他', $f, Url::buildUrl('pay_update', array('uid' => $uid)), 5);
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');
     }
+
     public function pay_update($uid)
     {
         $data = Util::postMore([
             ['brokerage_status', 0],
             ['money', 0],
-            ['type','now_money'],
+            ['type', 'now_money'],
         ], $this->request);
-        
+
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
-        if(is_array(input('evaluation')))
-        {
-            $cdata = ['number'=>$data['money'],'way'=>$data['brokerage_status'],'evaluation'=>join(",",input('evaluation'))];
-            
-        }
-        else
-        {
-            $cdata = ['number'=>$data['money'],'way'=>$data['brokerage_status']];
+        $user = UserModel::where('uid', $uid)->find();
+        if (is_array(input('evaluation'))) {
+            $cdata = ['number' => $data['money'], 'way' => $data['brokerage_status'], 'evaluation' => join(",", input('evaluation'))];
+
+        } else {
+            $cdata = ['number' => $data['money'], 'way' => $data['brokerage_status']];
         }
-        $cdata['create_admin_id'] =  $this->adminId;
+        $cdata['create_admin_id'] = $this->adminId;
         $cdata['create_admin_time'] = time();
         $cdata['uid'] = $uid;
         $cdata['type'] = $data['type'];
         UserSystemRecharge::create($cdata);
-        
-       return Json::successful('充值已提交,等操作员确认');
-        
-        
+
+        return Json::successful('充值已提交,等操作员确认');
+
+
     }
-     /**
+
+    /**
      * 文件上传
      * */
     public function file_upload()
@@ -177,6 +184,7 @@ class User extends AuthController
         if ($res === false) Json::fail($upload->getError());
         Json::successful('上传成功!', ['filePath' => $res->filePath]);
     }
+
     public function update_other($uid = 0)
     {
         $data = Util::postMore([
@@ -186,7 +194,7 @@ class User extends AuthController
             ['integration', 0],
         ], $this->request);
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
+        $user = UserModel::where('uid', $uid)->find();
         if (!$user) return Json::fail('数据不存在!');
         BaseModel::beginTrans();
         $res1 = false;
@@ -238,7 +246,7 @@ class User extends AuthController
         } else {
             $res2 = true;
         }
-        if ($edit) $res3 = UserModel::where('uid',$uid)->update($edit);
+        if ($edit) $res3 = UserModel::where('uid', $uid)->update($edit);
         else $res3 = true;
         if ($res1 && $res2 && $res3) $res = true;
         else $res = false;
@@ -318,6 +326,27 @@ class User extends AuthController
             return Json::fail('清除失败');
     }
 
+    /*
+     * 清除会员等级
+     * @param int $uid
+     * @return json
+     * */
+    public function clear_gf($uid = 0)
+    {
+        if (!$uid) return Json::fail('缺少参数');
+        $user = UserModel::get($uid);
+        if ($user['gf'] <= 0) return Json::successful('清除成功');
+        else {
+            $res = true;
+            $res = $res && UserBill::expend('清除股份', $uid, 'gf', 'clear_gf', $user['gf'], 0, 0, '后台清除股份');
+            $res = $res && \app\admin\model\user\User::where('uid', $uid)->update(['gf' => 0]);
+        }
+        if ($res)
+            return Json::successful('清除成功');
+        else
+            return Json::fail('清除失败');
+    }
+
     /**
      * 修改user表状态
      *
@@ -365,31 +394,34 @@ class User extends AuthController
         ]);
         return Json::successlayui(UserModel::getUserList($where));
     }
+
     public function add()
     {
         $f = array();
         $f[] = Form::text('account', '手机号', '');
-        $f[] = Form::input('real_name', '真实姓名','');
+        $f[] = Form::input('real_name', '真实姓名', '');
         $f[] = Form::input('password', '输入密码');
-        $f[] = Form::input('spread', '推荐人编号',0);
-        $f[] = Form::input('addres', '地址信息','');
-        $form = Form::make_post_form('添加用户通知', $f, Url::buildUrl('save',[], 5));
+        $f[] = Form::input('spread', '推荐人编号', 0);
+        $f[] = Form::input('addres', '地址信息', '');
+        $form = Form::make_post_form('添加用户通知', $f, Url::buildUrl('save', [], 5));
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');
     }
+
     public function save()
     {
-        list($account,$password,$spread,$real_name,$addres) = Util::postMore([
+        list($account, $password, $spread, $real_name, $addres) = Util::postMore([
             ['account', ''],
             ['password', ''],
             ['spread', 0],
-            ['real_name',''],
-            ['addres',''],
-        ],$this->request,true);
-        $res = \app\models\user\User::register($account, $password, $spread,$real_name,$addres);
+            ['real_name', ''],
+            ['addres', ''],
+        ], $this->request, true);
+        $res = \app\models\user\User::register($account, $password, $spread, $real_name, $addres);
         if ($res) return Json::successful('创建成功!');
         else return Json::fail('创建失败');
     }
+
     /**
      * 编辑模板消息
      * @param $id
@@ -398,7 +430,7 @@ class User extends AuthController
     public function edit($uid)
     {
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
+        $user = UserModel::where('uid', $uid)->find();
         if (!$user) return Json::fail('数据不存在!');
         $f = array();
         $f[] = Form::input('account', '用户账号', $user->getData('account'))->disabled(1);
@@ -432,17 +464,15 @@ class User extends AuthController
             ['status', 0],
         ]);
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
+        $user = UserModel::where('uid', $uid)->find();
         if (!$user) return Json::fail('数据不存在!');
         BaseModel::beginTrans();
         $edit = array();
-        if(input('pwd','')!='')
-        {
-            if(strlen(input('pwd',''))<6)
-            {
+        if (input('pwd', '') != '') {
+            if (strlen(input('pwd', '')) < 6) {
                 return Json::fail('密码不能少于6位!');
             }
-            $edit['pwd']= md5(input('pwd',''));
+            $edit['pwd'] = md5(input('pwd', ''));
         }
         $res1 = false;
         $res2 = false;
@@ -880,10 +910,10 @@ class User extends AuthController
     {
         return Json::successful(UserBillAdmin::getOneBalanceChangList(compact('uid', 'page', 'limit')));
     }
-  
+
     /**
-     *充值审核列表 
-     */ 
+     *充值审核列表
+     */
     public function recharge_auth()
     {
         $this->assign([
@@ -893,6 +923,7 @@ class User extends AuthController
         ]);
         return $this->fetch();
     }
+
     public function recharge_list()
     {
         $where = Util::getMore([
@@ -903,26 +934,24 @@ class User extends AuthController
             ['limit', 20],
             ['excel', 0]
         ]);
-   
-        return Json::successlayui( UserSystemRecharge::systemPage($where));
+
+        return Json::successlayui(UserSystemRecharge::systemPage($where));
     }
-   
+
     /**
      * 审核保存
-     */ 
-    public function recharge_auth_save($id,$auth_status)
+     */
+    public function recharge_auth_save($id, $auth_status)
     {
         if (!$id) return Json::fail('缺少参数');
         if (!$auth_status) return Json::fail('缺少参数');
         $info = UserSystemRecharge::find($id);
-      
-        if($info)
-        {
+
+        if ($info) {
             $data = $info->toarray();
-            $user = UserModel::where('uid',$info['uid'])->find();
-            UserSystemRecharge::edit(['auth_status'=>$auth_status,'auth_admin_id'=>$this->adminId,'auth_admin_time'=>time()],$info['id']);
-            if($auth_status==1)
-            {
+            $user = UserModel::where('uid', $info['uid'])->find();
+            UserSystemRecharge::edit(['auth_status' => $auth_status, 'auth_admin_id' => $this->adminId, 'auth_admin_time' => time()], $info['id']);
+            if ($auth_status == 1) {
                 if ($data['way'] == 1) {//增加
                     $edit[$data['type']] = bcadd($user[$data['type']], $data['number'], 2);
                     $res1 = UserBillAdmin::income('系统增加余额', $user['uid'], $data['type'], 'system_add', $data['number'], $this->adminId, $edit[$data['type']], '系统增加了' . floatval($data['number']) . '数量');
@@ -930,18 +959,18 @@ class User extends AuthController
                     $edit[$data['type']] = bcsub($user[$data['type']], $data['number'], 2);
                     $res1 = UserBillAdmin::expend('系统减少余额', $user['uid'], $data['type'], 'system_sub', $data['number'], $this->adminId, $edit[$data['type']], '系统扣除了' . floatval($data['number']) . '数量');
                 }
-                UserModel::edit($edit,$data['uid'],'uid');
+                UserModel::edit($edit, $data['uid'], 'uid');
             }
             return Json::successful('审核成功');
-        }
-        else
+        } else
             return Json::fail('审核失败');
-        
+
     }
-    public function exchange($uid=0)
+
+    public function exchange($uid = 0)
     {
         if (!$uid) return $this->failed('数据不存在');
-        $user = UserModel::where('uid',$uid)->find();
+        $user = UserModel::where('uid', $uid)->find();
         if (!$user) return Json::fail('数据不存在!');
         $f = array();
         $f[] = Form::input('account', '用户账号', $user->getData('account'))->disabled(1);
@@ -952,14 +981,15 @@ class User extends AuthController
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');
     }
+
     public function exchange_save($uid)
     {
-        list($card_number,$card_password) = UtilService::postMore([
-            ['card_number',''],
-            ['card_password',''],
-        ],$this->request,true);
-        $rs = CardInfo::verification($card_number,$card_password,$uid,1,0,1);
-        if(!$rs) return Json::fail(CardInfo::getErrorInfo());
+        list($card_number, $card_password) = UtilService::postMore([
+            ['card_number', ''],
+            ['card_password', ''],
+        ], $this->request, true);
+        $rs = CardInfo::verification($card_number, $card_password, $uid, 1, 0, 1);
+        if (!$rs) return Json::fail(CardInfo::getErrorInfo());
         return Json::fail('兑换完成');
     }
 }

+ 2 - 2
app/admin/view/store/store_product/create.php

@@ -609,10 +609,10 @@
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
-                                                <label class="layui-form-label">最多可抵扣积分</label>
+                                                <label class="layui-form-label">抵扣积分</label>
                                                 <div class="layui-input-block">
                                                     <input type="number" name="max_use_integral" lay-verify="title"
-                                                           autocomplete="off" placeholder="请输入最多可抵扣积分" class="layui-input" v-model="formData.max_use_integral">
+                                                           autocomplete="off" placeholder="请输入抵扣积分" class="layui-input" v-model="formData.max_use_integral">
                                                 </div>
                                             </div>
                                         </div>

+ 28 - 0
app/admin/view/user/user/index.php

@@ -256,6 +256,12 @@
                                     <i class="layui-icon layui-icon-close-fill" aria-hidden="true"></i> 清除等级</a>
                             </li>
                             {{# } }}
+                            {{# if(d.fg>0){ }}
+                            <li>
+                                <a href="javascript:void(0);" lay-event="clear_gf">
+                                    <i class="layui-icon layui-icon-close-fill" aria-hidden="true"></i> 清除股份</a>
+                            </li>
+                            {{# } }}
                         </ul>
                     </script>
                 </div>
@@ -316,6 +322,7 @@
             {field: 'phone', title: '手机号',align:'center',width:'8%'},
             {field: 'now_money', title: '余额',width:'6%',sort:true,event:'now_money',align:'center'},
             {field: 'integral', title: '积分',width:'6%',sort:true,event:'integral',align:'center'},
+            {field: 'gf', title: '股份',width:'6%',sort:true,event:'gf',align:'center'},
             {field: 'pay_count', title: '购买次数',align:'center',width:'6%'},
             {field: 'extract_count_price', title: '累计提现',align:'center',width:'6%'},
             {field: 'consumer', title: '消费券',width:'6%',align:'center'},
@@ -369,6 +376,9 @@
             case 'integral':
                 layList.reload({order: layList.order(type,'u.integral')},true,null,obj);
                 break;
+            case 'gf':
+                layList.reload({order: layList.order(type,'u.gf')},true,null,obj);
+                break;
         }
     });
     //监听并执行 uid 的排序
@@ -399,6 +409,24 @@
                     confirm:'是的我要清除'
                 })
                 break;
+            case 'clear_gf':
+                $eb.$swal('delete',function(){
+                    $eb.axios.get(layList.U({a:'clear_gf',q:{uid:data.uid}})).then(function(res){
+                        if(res.status == 200 && res.data.code == 200) {
+                            $eb.$swal('success',res.data.msg);
+                            obj.update({vip_name:false});
+                            layList.reload();
+                        }else
+                            return Promise.reject(res.data.msg || '清除失败')
+                    }).catch(function(err){
+                        $eb.$swal('error',err);
+                    });
+                },{
+                    title:'您确定要清除【'+data.nickname+'】的股份吗?',
+                    text:'清除后无法恢复请谨慎操作',
+                    confirm:'是的我要清除'
+                })
+                break;
             case 'give_level':
                 $eb.createModalFrame(data.nickname+'-赠送会员',layList.Url({a:'give_level',p:{uid:data.uid}}),{w:500,h:300});
                 break;

+ 6 - 2
app/models/store/StoreCart.php

@@ -214,16 +214,18 @@ class StoreCart extends BaseModel
                         $invalid[] = $cart;
                     else {
                         $cart['productInfo']['attrInfo'] = $attrInfo;
-                        if ($cart['combination_id'] || $cart['seckill_id'] || $cart['bargain_id'] || $cart['is_consumer'] || $cart['is_suit']) {
+                        if ($cart['combination_id'] || $cart['seckill_id'] || $cart['bargain_id'] || $cart['is_consumer'] || $cart['is_suit'] || (($cart['productInfo']['max_use_integral'] ?? 0) > 0)) {
                             if ($cart['bargain_id']) {
                                 $cart['truePrice'] = $cart['productInfo']['price'];
                             } else {
                                 $cart['truePrice'] = $attrInfo['price'];
                             }
                             $cart['vip_truePrice'] = 0;
+                            $cart['use_integral'] = $cart['productInfo']['max_use_integral'] ?? 0;
                         } else {
                             $cart['truePrice'] = (float)StoreProduct::setLevelPrice($attrInfo['price'], $uid, true);
                             $cart['vip_truePrice'] = (float)StoreProduct::setLevelPrice($attrInfo['price'], $uid);
+                            $cart['use_integral'] = 0;
                         }
                         $cart['trueStock'] = $attrInfo['stock'];
                         $cart['costPrice'] = $attrInfo['cost'];
@@ -231,9 +233,10 @@ class StoreCart extends BaseModel
                         $valid[] = $cart;
                     }
                 } else {
-                    if ($cart['combination_id'] || $cart['seckill_id'] || $cart['bargain_id'] || $cart['is_consumer'] || $cart['is_suit']) {
+                    if ($cart['combination_id'] || $cart['seckill_id'] || $cart['bargain_id'] || $cart['is_consumer'] || $cart['is_suit'] || (($cart['productInfo']['max_use_integral'] ?? 0) > 0)) {
                         $cart['truePrice'] = $cart['productInfo']['price'];
                         $cart['vip_truePrice'] = 0;
+                        $cart['use_integral'] = $cart['productInfo']['max_use_integral'] ?? 0;
                         if ($cart['bargain_id']) {
                             $cart['productInfo']['attrInfo'] = StoreProductAttrValue::where('product_id', $cart['bargain_id'])->where('type', 2)->find();
                         }
@@ -242,6 +245,7 @@ class StoreCart extends BaseModel
                     } else {
                         $cart['truePrice'] = (float)StoreProduct::setLevelPrice($cart['productInfo']['price'], $uid, true);
                         $cart['vip_truePrice'] = (float)StoreProduct::setLevelPrice($cart['productInfo']['price'], $uid);
+                        $cart['use_integral'] = 0;
                     }
                     $cart['trueStock'] = $cart['productInfo']['stock'];
                     $cart['costPrice'] = $cart['productInfo']['cost'];

+ 59 - 38
app/models/store/StoreOrder.php

@@ -76,6 +76,7 @@ class StoreOrder extends BaseModel
         $totalPrice = self::getOrderSumPrice($cartInfo, 'truePrice');//获取订单总金额
         $costPrice = self::getOrderSumPrice($cartInfo, 'costPrice');//获取订单成本价
         $vipPrice = self::getOrderSumPrice($cartInfo, 'vip_truePrice');//获取订单会员优惠金额
+        $use_integral = self::getOrderSumPrice($cartInfo, 'use_integral');//获取订单会员优惠金额
         //如果满额包邮等于0
         if (!$storeFreePostage) {
             $storePostage = 0;
@@ -145,7 +146,7 @@ class StoreOrder extends BaseModel
             }
             if ($storeFreePostage <= $totalPrice) $storePostage = 0;//如果总价大于等于满额包邮 邮费等于0
         }
-        return compact('storePostage', 'storeFreePostage', 'totalPrice', 'costPrice', 'vipPrice');
+        return compact('use_integral', 'storePostage', 'storeFreePostage', 'totalPrice', 'costPrice', 'vipPrice');
     }
 
 
@@ -286,6 +287,7 @@ class StoreOrder extends BaseModel
             $priceGroup = $cartGroup['priceGroup'];
             $other = $cartGroup['other'];
             $payPrice = (float)$priceGroup['totalPrice'];
+            $useIntegrals = (float)$priceGroup['use_integral'];
             $addr = UserAddress::where('uid', $uid)->where('id', $addressId)->find();
             if ($payType == 'offline' && sys_config('offline_postage') == 1) {
                 $payPostage = 0;
@@ -387,39 +389,53 @@ class StoreOrder extends BaseModel
                 }
             }
 
+//            //积分抵扣
+//            $res2 = true;
+//            $SurplusIntegral = 0;
+//            if ($useIntegral && $userInfo['integral'] > 0) {
+//                if ($userInfo['integral'] > $maxUseIntegral) {
+//                    $useIntegral = $maxUseIntegral;
+//                } else {
+//                    $useIntegral = $userInfo['integral'];
+//                }
+//                if ($useIntegral > 0) {
+//                    $deductionPrice = (float)bcmul($useIntegral, $other['integralRatio'], 2);
+//                    if ($deductionPrice < $payPrice) {
+//                        $payPrice = bcsub($payPrice, $deductionPrice, 2);
+//                        $usedIntegral = $useIntegral;
+//                        $SurplusIntegral = 0;
+//                        $res2 = false !== User::edit(['integral' => bcsub($userInfo['integral'], $usedIntegral, 2)], $userInfo['uid'], 'uid');
+//                    } else {
+//                        $deductionPrice = $payPrice;
+//                        $usedIntegral = (float)bcdiv($payPrice, $other['integralRatio'], 2);
+//                        $SurplusIntegral = bcsub($userInfo['integral'], $usedIntegral, 2);
+//                        $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $usedIntegral, 'uid');
+//                        $payPrice = 0;
+//                    }
+//                    $res2 = $res2 && false != UserBill::expend('积分抵扣', $uid, 'integral', 'deduction', $usedIntegral, $key, $userInfo['integral'], '购买商品使用' . floatval($usedIntegral) . '积分抵扣' . floatval($deductionPrice) . '元');
+//                } else {
+//                    $deductionPrice = 0;
+//                    $usedIntegral = 0;
+//                }
+//            } else {
+//                $deductionPrice = 0;
+//                $usedIntegral = 0;
+//            }
+//            if (!$res2) return self::setErrorInfo('使用积分抵扣失败!', true);
+
             //积分抵扣
-            $res2 = true;
+            $deductionPrice = 0;
             $SurplusIntegral = 0;
-            if ($useIntegral && $userInfo['integral'] > 0) {
-                if ($userInfo['integral'] > $maxUseIntegral) {
-                    $useIntegral = $maxUseIntegral;
+            if ($useIntegrals > 0) {
+                if ($userInfo['integral'] >= $useIntegrals) {
+                    $SurplusIntegral = bcsub($userInfo['integral'], $useIntegrals, 2);
+                    $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $useIntegrals, 'uid');
+                    $res2 = $res2 && false != UserBill::expend('积分商品', $uid, 'integral', 'deduction', $useIntegrals, $key, $userInfo['integral'], '购买积分商品使用' . floatval($useIntegrals));
                 } else {
-                    $useIntegral = $userInfo['integral'];
+                    return self::setErrorInfo('积分不足' . $useIntegrals . '!', true);
                 }
-                if ($useIntegral > 0) {
-                    $deductionPrice = (float)bcmul($useIntegral, $other['integralRatio'], 2);
-                    if ($deductionPrice < $payPrice) {
-                        $payPrice = bcsub($payPrice, $deductionPrice, 2);
-                        $usedIntegral = $useIntegral;
-                        $SurplusIntegral = 0;
-                        $res2 = false !== User::edit(['integral' => bcsub($userInfo['integral'], $usedIntegral, 2)], $userInfo['uid'], 'uid');
-                    } else {
-                        $deductionPrice = $payPrice;
-                        $usedIntegral = (float)bcdiv($payPrice, $other['integralRatio'], 2);
-                        $SurplusIntegral = bcsub($userInfo['integral'], $usedIntegral, 2);
-                        $res2 = false !== User::bcDec($userInfo['uid'], 'integral', $usedIntegral, 'uid');
-                        $payPrice = 0;
-                    }
-                    $res2 = $res2 && false != UserBill::expend('积分抵扣', $uid, 'integral', 'deduction', $usedIntegral, $key, $userInfo['integral'], '购买商品使用' . floatval($usedIntegral) . '积分抵扣' . floatval($deductionPrice) . '元');
-                } else {
-                    $deductionPrice = 0;
-                    $usedIntegral = 0;
-                }
-            } else {
-                $deductionPrice = 0;
-                $usedIntegral = 0;
+                if (!$res2) return self::setErrorInfo('使用积分抵扣失败!', true);
             }
-            if (!$res2) return self::setErrorInfo('使用积分抵扣失败!', true);
             if ($payPrice <= 0) $payPrice = 0;
             if ($test) {
                 self::rollbackTrans();
@@ -430,6 +446,7 @@ class StoreOrder extends BaseModel
                     'coupon_price' => $couponPrice,
                     'deduction_price' => $deductionPrice,
                     'SurplusIntegral' => $SurplusIntegral,
+                    'useIntegral' => $useIntegrals,
                 ];
             }
             $id = self::getkeytoid('order_id');
@@ -451,7 +468,7 @@ class StoreOrder extends BaseModel
                 'deduction_price' => $deductionPrice,
                 'paid' => 0,
                 'pay_type' => $payType,
-                'use_integral' => $usedIntegral,
+                'use_integral' => $useIntegrals,
                 'gain_integral' => $gainIntegral,
                 'mark' => htmlspecialchars($mark),
                 'combination_id' => $combinationId,
@@ -2520,10 +2537,12 @@ class StoreOrder extends BaseModel
                         $brokeragePrice = bcmul($award, $suit, 2);
                         if ($brokeragePrice > $send) {
                             $real_send = bcsub($brokeragePrice, $send, 2);
-                            $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
-                            $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
-                            $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
-                            $send = $brokeragePrice;
+                            if ($real_send > 0) {
+                                $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买套装商品,获得极差奖励' . $real_send;
+                                $res = $res && UserBill::income('套装极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
+                                $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
+                                $send = $brokeragePrice;
+                            }
                         }
                     }
                 }
@@ -2533,10 +2552,12 @@ class StoreOrder extends BaseModel
                 if ($order['use_integral'] > 0) $brokeragePrice = bcmul(bcdiv($group_level['integral_group_award'], 100, 4), bcsub($order['pay_price'], $suit_price, 2), 2);
                 if ($brokeragePrice > $send_normal) {
                     $real_send = bcsub($brokeragePrice, $send_normal, 2);
-                    $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买' . ($order['use_integral'] > 0 ? '积分' : '普通') . '商品,获得极差奖励' . $real_send;
-                    $res = $res && UserBill::income('极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
-                    $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
-                    $send_normal = $brokeragePrice;
+                    if ($real_send > 0) {
+                        $mark = '用户' . $userInfo['nickname'] . '(' . $order['uid'] . ')' . '购买' . ($order['use_integral'] > 0 ? '积分' : '普通') . '商品,获得极差奖励' . $real_send;
+                        $res = $res && UserBill::income('极差奖', $spread['uid'], 'now_money', 'brokerage', $real_send, $order['id'], bcadd($spread['brokerage_price'], $real_send, 2), $mark);
+                        $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $real_send)->update();
+                        $send_normal = $brokeragePrice;
+                    }
                 }
             }
             $spread = User::getUserInfo($spread['spread_uid']);

+ 10 - 10
app/models/user/UserBill.php

@@ -38,16 +38,16 @@ class UserBill extends BaseModel
     {
         $pm = 1;
         $add_time = date("Y-m-d H:i:s");
-        $id =  self::getkeytoid('bill_id');
-        return self::create(compact('title', 'uid', 'link_id', 'category', 'type', 'number', 'balance', 'mark', 'status', 'pm', 'add_time','id'));
+        $id = self::getkeytoid('bill_id');
+        return self::create(compact('title', 'uid', 'link_id', 'category', 'type', 'number', 'balance', 'mark', 'status', 'pm', 'add_time', 'id'));
     }
 
     public static function expend($title, $uid, $category, $type, $number, $link_id = 0, $balance = 0, $mark = '', $status = 1)
     {
         $pm = 0;
         $add_time = date("Y-m-d H:i:s");
-        $id =  self::getkeytoid('bill_id');
-        return self::create(compact('title', 'uid', 'link_id', 'category', 'type', 'number', 'balance', 'mark', 'status', 'pm', 'add_time','id'));
+        $id = self::getkeytoid('bill_id');
+        return self::create(compact('title', 'uid', 'link_id', 'category', 'type', 'number', 'balance', 'mark', 'status', 'pm', 'add_time', 'id'));
     }
 
     /**
@@ -158,26 +158,26 @@ class UserBill extends BaseModel
      * @param int $type 展示类型
      * @return array
      * */
-    public static function getUserBillList($uid, $page, $limit, $type,$category='now_money')
+    public static function getUserBillList($uid, $page, $limit, $type, $category = 'now_money')
     {
         if (!$limit) return [];
         $model = self::where('uid', $uid)->where('category', $category)->order('add_time desc')->where('number', '<>', 0)
             ->field('FROM_UNIXTIME(add_time,"%Y-%m") as time,group_concat(DISTINCT id ORDER BY id DESC SEPARATOR ",") ids')->group('time');
         switch ((int)$type) {
             case 0:
-                $model = $model->where('type', 'in', 'recharge,brokerage,pay_money,system_add,pay_product_refund,system_sub');
+                $model = $model;
                 break;
             case 1:
-                $model = $model->where('type', 'pay_money');
+                $model = $model->where('type', '<>', 'brokerage')->where('pm', 0);
                 break;
             case 2:
-                $model = $model->where('type', 'in', 'recharge,system_add');
+                $model = $model->where('type', '<>', 'brokerage')->where('pm', 1);
                 break;
             case 3:
-                $model = $model->where('type', 'brokerage');
+                $model = $model->where('type', 'brokerage')->where('pm', 1);
                 break;
             case 4:
-                $model = $model->where('type', 'extract');
+                $model = $model->where('type', 'brokerage')->where('pm', 0);
                 break;
             case 5:
                 $model = $model->where('type', 'in', 'system_add_consumer,spread_add_consumer,consumer_product_refund,qr_add_consumer');

+ 1 - 0
crmeb/services/YLYService.php

@@ -146,6 +146,7 @@ class YLYService extends HttpService implements ProviderInterface
         ]);
         if ($request === false) return false;
         $request = json_decode($request, true);
+        var_dump($request);
         if (isset($request['error']) && in_array($request['error'], [18, 14]) && $errorCount == 0) {
             CacheModel::delectDbCache('YLY_access_token');
             $this->getAccessToken();