| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338 |
- <?php
- namespace app\controller\api\newhome;
- use app\common\model\store\product\Product;
- use app\common\repositories\store\product\ProductRepository;
- use app\controller\api\store\product\Jt;
- use crmeb\basic\BaseController;
- use think\App;
- use think\facade\Db;
- class Newhome extends BaseController
- {
- private $merId;
- private $source;
- public function __construct(App $app)
- {
- parent::__construct($app);
- $this->source = $this->request->header('source');
- $this->merId = $this->request->header('merId');
- }
- //首页商品列表
- public function product_lst()
- {
- [$page, $limit] = $this->getPage();
- $ProductRepository=app() -> make(ProductRepository::class);
- $where=[
- 'is_used'=>1,
- 'mer_status'=>1,
- 'is_show'=>1,
- 'is_hide'=>0,
- 'is_del' => 0,
- 'status' => 1,
- ];
- $product_id_yin = explode('=',systemConfig('product_ids_yin'));
- $Productmodel=new Product();
- $da_cang_product=$Productmodel->where('type',5) ->whereNotIn('product_id',$product_id_yin)->where($where)->page($page,50)->order('returrn_profit_rate DESC')->select()->toArray();
- foreach ($da_cang_product as &$da_cang){
- $da_cang['flag']='1';
- // $da_cang['yanglao']=bcmul(bcmul($da_cang['dc_price'],'0.1',2),'0.5',2);
- $da_cang['yanglao']=set_price_rtrim($ProductRepository->yanglaojin($da_cang['product_id']));
- $dacang_price=Db::name('store_product_attr_value')->where('product_id',$da_cang['product_id'])->order('dacang_price','asc')->limit(1)->value('dacang_price');
- $da_cang['da_cang_price']=set_price_rtrim($dacang_price);
- $da_cang['shop_name'] = Db::name('merchant')->where('mer_id',$da_cang['mer_id'])->value('mer_name');
- }
- return app('json')->success($da_cang_product);
- }
- //会员免费商品
- public function free_product()
- {
- $Productmodel=new Product();
- $data=$Productmodel->field('store_name,image,price,product_id')->where('product_id',systemConfig('vip_exclusive_product'))->find();
- if($data)
- return app('json')->success($data);
- return app('json')->fail('暂无数据');
- }
- //大仓banner
- public function banner($type)
- {
- if($this->source=='yhc'){
- $banner = merchantGroupData($this->merId,$type);
- }else{
- $banner = systemGroupData($type);
- }
- return app('json')->success($banner);
- }
- //签到
- public function sgin()
- {
- $uid=$this->request->uid();
- $year=date('Y',time());
- $month=date('m',time());
- $day=date('d',time());
- //查到最后一天签到记录
- $signdata=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->find();
- if($signdata){
- if($year==$signdata['year']&&$month==$signdata['month']&&$day==$signdata['day']){
- return app('json')->fail('今日已签到');
- }
- }
- //第一天签到获得2积分,第二天获得4积分,第三天获得6积分,第四天获得 10 积分,第五天获得 14积分第六天获得 20积分,
- //连续签到从第七天开始,每日签到获得3积分,第七天连续签到额外奖励 38积分,第 14 天连续签到额外奖励 68 积分,第 21天连续签到额外奖励 128 积分第 30 天连续签到额外奖励 188 积分
- $guizeList = ['1'=>2,'2'=>4,'3'=>6,'4'=>10,'5'=>14,'6'=>20];
- $guizeLxList = [['sizi'=>7, 'value'=> 38], ['sizi'=>14, 'value'=> 68], ['sizi'=>21, 'value'=> 38], ['sizi'=>30, 'value'=> 188]];//连续签到额外奖励
- if(!$signdata){
- $pension=$this->one_sign($uid);
- }elseif($signdata['num']>=1&&$signdata['num']<7){
- $res=$this->lianxu_sign($signdata['day'],$uid);
- if($res==0){
- $this->one_sign($uid);
- }else {
- $pension = rand('1', '50');
- $pension=$pension*0.01;
- $score = $guizeList[$signdata['num']]??3;
- $this->sign_add($uid, $score,1,'签到赠送积分','','');
- Db::name('sign')->insert(['uid' => $uid, 'year' => $year, 'month' => $month, 'day' => $day,'num' => $signdata['num'] + 1, 'score' => $score, 'pension' => $pension, 'status' => 1]);
- }
- }elseif($signdata['num'] >= 7){
- $res=$this->lianxu_sign($signdata['day'],$uid);
- if($res==0){
- Db::name('sign')->where('uid',$uid)->update(['status'=>3]);
- $this->one_sign($uid);
- }else {
- $pension = rand('10', '100');
- $pension=$pension*0.01;
- $score = $guizeList[$signdata['num']]??3;
- $this->sign_add($uid, $score,1,'签到赠送积分','','');
- $scoreGw = 0;
- foreach ($guizeLxList as $val) {
- if ($signdata['num'] >= $val['sizi']) {
- $scoreGw = $val['value'];
- }
- }
- if($scoreGw > 0){
- $this->sign_add($uid, $score,1,'连续签到赠送额外奖励积分','','');
- }
- Db::name('sign')->insert(['uid' => $uid, 'year' => $year, 'month' => $month, 'day' => $day, 'num' => $signdata['num'] + 1, 'score' => $score, 'pension' => $pension, 'status' => 1]);
- }
- }else{
- $pension='0.00';
- }
- return app('json')->success($pension);
- }
- //首次签到
- public function one_sign($uid)
- {
- $year=date('Y',time());
- $month=date('m',time());
- $day=date('d',time());
- $pension=['0.5','0.6','1'];
- $pensions=array_rand($pension);
- Db::name('sign')->insert(['uid'=>$uid,'year'=>$year,'month'=>$month,'day'=>$day,'num'=>1,'pension'=>$pension[$pensions],'status'=>1]);
- // //首次签到送30积分,同时赠送邀请人30积分
- // $this->sign_add($uid, 30,1,'首次签到送30积分','','');
- // $member_info = Db::name('user')->where( array('uid' => $uid) )->find();
- // if($member_info['spread_uid']){
- // $spreadUid = $member_info['spread_uid'];
- // $this->sign_add($spreadUid, 30,1,'邀请人首次签到送30积分','','');
- // }
- return $pension[$pensions];
- }
- /**
- * @param int $uid 用户ID
- * @param string $score 积分
- * @param int $status 积分状态
- * @param string $mark 备注
- * @param string $has_qian 连续签到天数
- * @param string $today_signintime 签到时间
- * @param int $order_id 订单ID
- * @param int $pm 1-收入。2-支出
- * @param string $order_type
- * @throws DbException
- */
- public function sign_add($uid, $score, $status, $mark, $has_qian = '', $today_signintime = '', $order_id = 0, $pm = 1, $order_type = '',$type='',$settlement_time = '')
- {
- if(!in_array($type,[1,2])){
- // 其他情况都直接返回,因为目前只有365专区购买才可以获得
- return false;
- }
- $ins_data['uid'] = $uid;
- $ins_data['continuity_day'] = $has_qian;
- $ins_data['reward_socre'] = $score;
- $ins_data['signin_time'] = $today_signintime;
- $ins_data['addtime'] = time();
- $ins_data['status'] = $status;
- $ins_data['mark'] = $mark;
- $ins_data['type'] = $type;
- $ins_data['settlement_time'] = $settlement_time;// 结算时间 真正到了结算时间会结算
- $ins_data['order_id'] = $order_id;
- $ins_data['pm'] = $pm;
- $ins_data['order_type'] = $order_type;
- Db::name('user_sign_score')->insertGetId($ins_data);
- if($pm == 1 && $status == 1){
- Db::name('user')->where('uid',$uid)->inc('score', $score)->update();
- }
- if($pm == 2){
- Db::name('user')->where('uid', $uid)->dec('score', $score)->update();
- }
- }
- //签到是否正常
- public function lianxu_sign($day,$uid)
- {
- $data=date('d',time()-86400);
- if($data==$day){
- return 1;//正常签到
- }else{
- Db::name('sign')->where('uid',$uid)->where('status','1')->update(['status'=>3]);
- return 0;//中断签到
- }
- }
- //每日结算已达到九天签到的养老金
- public function jiesuanpension()
- {
- //已达到九天的用户
- $uid=Db::name('sign')->where('num',9)->where('status',1)->field('uid,id')->select()->toArray();
- $pension=0;
- foreach ($uid as $k => $v){
- $pension=Db::name('sign')->where('uid',$v['uid'])->where('status',1)->sum('pension');
- if($pension!=0) {
- $billData = [
- 'uid' => $v['uid'],
- 'link_id' => 0,
- 'pm' => 1,
- 'title' => '签到养老金',
- 'category' => 'now_money',
- 'type' => 'commission',
- 'number' => $pension,
- 'balance' => 0,
- 'mark' => '连续签到9天得' . $pension . '养老金',
- 'create_time' => date("Y-m-d H:i:s", time()),
- 'status' => 1,
- 'order_sn' => "111111111111111111",
- 'type_shop' => 0,
- 'commission_type' => 5,
- 'order_type' => 1,
- 'source' => 0,
- 'gzc' => 0,
- ];
- Db::name('user_bill')->insert($billData);
- Db::name('sign')->where('uid',$v['uid'])->where('status',1)->update(['status'=>2]);
- Db::name('user')->where('uid',$v['uid'])->inc('annuity',$pension);
- Db::name('user')->where('uid',$v['uid'])->inc('annuity_num',1);
- }
- echo "签到:给用户".$v['uid'].'--'.$pension.'养老金';echo "<br>";
- }
- }
- public function sign_lst()
- {
- $uid=$this->request->uid();
- $today=date('d',time());
- $year=date('Y',time());
- $month=date('m',time());
- //签到天数
- $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->find();
- if($sign_day){
- if($today!=$sign_day['day']||$sign_day['year']!=$year||$month!=$sign_day['month']) {
- $res = $this->lianxu_sign($sign_day['day'], $uid);
- if ($res==1) {
- $sign_day = $sign_day['num'];
- } else {
- $sign_day = 0;
- }
- }else{
- $sign_day=$sign_day['num'];
- }
- }else{
- $sign_day=0;
- }
- $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension');
- $return_data=['pension'=>$pensions,'sign_day'=>$sign_day];
- return app('json')->success($return_data);
- // //查今天有没有签到
- // $data=explode("-",date('Y-m-d'));
- // $year = $data[0];
- // $month = $data[1];
- // $day = $data[2];
- // $signdata=Db::name('sign')
- // ->where('uid',$uid)
- // ->where('status',1)
- // ->where('year',$year)
- // ->where('month',$month)
- // ->where('day',$day)
- // ->find();
- // dump($signdata);
- // if($signdata){
- // $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension');
- // //签到天数
- // $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->value('num');
- // }else{
- // //查昨天有没有签到
- // $data=explode("-",date('Y-m-d',time()-86400));
- // $year = $data[0];
- // $month = $data[1];
- // $day = $data[2];
- // $signdata=Db::name('sign')
- // ->where('uid',$uid)
- // ->where('status',1)
- // ->where('year',$year)
- // ->where('month',$month)
- // ->where('day',$day)
- // ->find();
- // //昨天没有签到
- // if(!$signdata){
- // $pensions=$sign_day=0;
- // }else{
- // //昨天签到了
- // $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension');
- // //签到天数
- // $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->value('num');
- // }
- // }
- $return_data=['pension'=>$pensions,'sign_day'=>$sign_day??0];
- return app('json')->success($return_data);
- }
- public function sign_today()
- {
- $uid=$this->request->uid();
- $today=date('d',time());
- $year=date('Y',time());
- $month=date('m',time());
- $where=[
- 'day'=>$today,
- 'month'=>$month,
- 'year'=>$year
- ];
- $res=Db::name('sign')->where('uid',$uid)->where($where)->find();
- if($res){
- return app('json')->success(1);
- }else{
- return app('json')->success(0);
- }
- }
- }
|