Newhome.php 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. <?php
  2. namespace app\controller\api\newhome;
  3. use app\common\model\store\product\Product;
  4. use app\common\repositories\store\product\ProductRepository;
  5. use app\controller\api\store\product\Jt;
  6. use crmeb\basic\BaseController;
  7. use think\App;
  8. use think\facade\Db;
  9. class Newhome extends BaseController
  10. {
  11. private $merId;
  12. private $source;
  13. public function __construct(App $app)
  14. {
  15. parent::__construct($app);
  16. $this->source = $this->request->header('source');
  17. $this->merId = $this->request->header('merId');
  18. }
  19. //首页商品列表
  20. public function product_lst()
  21. {
  22. [$page, $limit] = $this->getPage();
  23. $ProductRepository=app() -> make(ProductRepository::class);
  24. $where=[
  25. 'is_used'=>1,
  26. 'mer_status'=>1,
  27. 'is_show'=>1,
  28. 'is_hide'=>0,
  29. 'is_del' => 0,
  30. 'status' => 1,
  31. ];
  32. $product_id_yin = explode('=',systemConfig('product_ids_yin'));
  33. $Productmodel=new Product();
  34. $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();
  35. foreach ($da_cang_product as &$da_cang){
  36. $da_cang['flag']='1';
  37. // $da_cang['yanglao']=bcmul(bcmul($da_cang['dc_price'],'0.1',2),'0.5',2);
  38. $da_cang['yanglao']=set_price_rtrim($ProductRepository->yanglaojin($da_cang['product_id']));
  39. $dacang_price=Db::name('store_product_attr_value')->where('product_id',$da_cang['product_id'])->order('dacang_price','asc')->limit(1)->value('dacang_price');
  40. $da_cang['da_cang_price']=set_price_rtrim($dacang_price);
  41. $da_cang['shop_name'] = Db::name('merchant')->where('mer_id',$da_cang['mer_id'])->value('mer_name');
  42. }
  43. return app('json')->success($da_cang_product);
  44. }
  45. //会员免费商品
  46. public function free_product()
  47. {
  48. $Productmodel=new Product();
  49. $data=$Productmodel->field('store_name,image,price,product_id')->where('product_id',systemConfig('vip_exclusive_product'))->find();
  50. if($data)
  51. return app('json')->success($data);
  52. return app('json')->fail('暂无数据');
  53. }
  54. //大仓banner
  55. public function banner($type)
  56. {
  57. if($this->source=='yhc'){
  58. $banner = merchantGroupData($this->merId,$type);
  59. }else{
  60. $banner = systemGroupData($type);
  61. }
  62. return app('json')->success($banner);
  63. }
  64. //签到
  65. public function sgin()
  66. {
  67. $uid=$this->request->uid();
  68. $year=date('Y',time());
  69. $month=date('m',time());
  70. $day=date('d',time());
  71. //查到最后一天签到记录
  72. $signdata=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->find();
  73. if($signdata){
  74. if($year==$signdata['year']&&$month==$signdata['month']&&$day==$signdata['day']){
  75. return app('json')->fail('今日已签到');
  76. }
  77. }
  78. if(!$signdata){
  79. $pension=$this->one_sign($uid);
  80. }elseif($signdata['num']>=1&&$signdata['num']<8){
  81. $res=$this->lianxu_sign($signdata['day'],$uid);
  82. if($res==0){
  83. $this->one_sign($uid);
  84. }else {
  85. $pension = rand('1', '50');
  86. $pension=$pension*0.01;
  87. Db::name('sign')->insert(['uid' => $uid, 'year' => $year, 'month' => $month, 'day' => $day,'num' => $signdata['num'] + 1, 'pension' => $pension, 'status' => 1]);
  88. }
  89. }elseif($signdata['num']==8){
  90. $res=$this->lianxu_sign($signdata['day'],$uid);
  91. if($res==0){
  92. Db::name('sign')->where('uid',$uid)->update(['status'=>3]);
  93. $this->one_sign($uid);
  94. }else {
  95. $pension = rand('10', '100');
  96. $pension=$pension*0.01;
  97. Db::name('sign')->insert(['uid' => $uid, 'year' => $year, 'month' => $month, 'day' => $day, 'num' => $signdata['num'] + 1, 'pension' => $pension, 'status' => 1]);
  98. }
  99. }else{
  100. $pension='0.00';
  101. }
  102. return app('json')->success($pension);
  103. }
  104. //首次签到
  105. public function one_sign($uid)
  106. {
  107. $year=date('Y',time());
  108. $month=date('m',time());
  109. $day=date('d',time());
  110. $pension=['0.5','0.6','1'];
  111. $pensions=array_rand($pension);
  112. Db::name('sign')->insert(['uid'=>$uid,'year'=>$year,'month'=>$month,'day'=>$day,'num'=>1,'pension'=>$pension[$pensions],'status'=>1]);
  113. return $pension[$pensions];
  114. }
  115. //签到是否正常
  116. public function lianxu_sign($day,$uid)
  117. {
  118. $data=date('d',time()-86400);
  119. if($data==$day){
  120. return 1;//正常签到
  121. }else{
  122. Db::name('sign')->where('uid',$uid)->where('status','1')->update(['status'=>3]);
  123. return 0;//中断签到
  124. }
  125. }
  126. //每日结算已达到九天签到的养老金
  127. public function jiesuanpension()
  128. {
  129. //已达到九天的用户
  130. $uid=Db::name('sign')->where('num',9)->where('status',1)->field('uid,id')->select()->toArray();
  131. $pension=0;
  132. foreach ($uid as $k => $v){
  133. $pension=Db::name('sign')->where('uid',$v['uid'])->where('status',1)->sum('pension');
  134. if($pension!=0) {
  135. $billData = [
  136. 'uid' => $v['uid'],
  137. 'link_id' => 0,
  138. 'pm' => 1,
  139. 'title' => '签到养老金',
  140. 'category' => 'now_money',
  141. 'type' => 'commission',
  142. 'number' => $pension,
  143. 'balance' => 0,
  144. 'mark' => '连续签到9天得' . $pension . '养老金',
  145. 'create_time' => date("Y-m-d H:i:s", time()),
  146. 'status' => 1,
  147. 'order_sn' => "111111111111111111",
  148. 'type_shop' => 0,
  149. 'commission_type' => 5,
  150. 'order_type' => 1,
  151. 'source' => 0,
  152. 'gzc' => 0,
  153. ];
  154. Db::name('user_bill')->insert($billData);
  155. Db::name('sign')->where('uid',$v['uid'])->where('status',1)->update(['status'=>2]);
  156. Db::name('user')->where('uid',$v['uid'])->inc('annuity',$pension);
  157. Db::name('user')->where('uid',$v['uid'])->inc('annuity_num',1);
  158. }
  159. echo "签到:给用户".$v['uid'].'--'.$pension.'养老金';echo "<br>";
  160. }
  161. }
  162. public function sign_lst()
  163. {
  164. $uid=$this->request->uid();
  165. $today=date('d',time());
  166. $year=date('Y',time());
  167. $month=date('m',time());
  168. //签到天数
  169. $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->find();
  170. if($sign_day){
  171. if($today!=$sign_day['day']||$sign_day['year']!=$year||$month!=$sign_day['month']) {
  172. $res = $this->lianxu_sign($sign_day['day'], $uid);
  173. if ($res==1) {
  174. $sign_day = $sign_day['num'];
  175. } else {
  176. $sign_day = 0;
  177. }
  178. }else{
  179. $sign_day=$sign_day['num'];
  180. }
  181. }else{
  182. $sign_day=0;
  183. }
  184. $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension');
  185. $return_data=['pension'=>$pensions,'sign_day'=>$sign_day];
  186. return app('json')->success($return_data);
  187. // //查今天有没有签到
  188. // $data=explode("-",date('Y-m-d'));
  189. // $year = $data[0];
  190. // $month = $data[1];
  191. // $day = $data[2];
  192. // $signdata=Db::name('sign')
  193. // ->where('uid',$uid)
  194. // ->where('status',1)
  195. // ->where('year',$year)
  196. // ->where('month',$month)
  197. // ->where('day',$day)
  198. // ->find();
  199. // dump($signdata);
  200. // if($signdata){
  201. // $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension');
  202. // //签到天数
  203. // $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->value('num');
  204. // }else{
  205. // //查昨天有没有签到
  206. // $data=explode("-",date('Y-m-d',time()-86400));
  207. // $year = $data[0];
  208. // $month = $data[1];
  209. // $day = $data[2];
  210. // $signdata=Db::name('sign')
  211. // ->where('uid',$uid)
  212. // ->where('status',1)
  213. // ->where('year',$year)
  214. // ->where('month',$month)
  215. // ->where('day',$day)
  216. // ->find();
  217. // //昨天没有签到
  218. // if(!$signdata){
  219. // $pensions=$sign_day=0;
  220. // }else{
  221. // //昨天签到了
  222. // $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension');
  223. // //签到天数
  224. // $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->value('num');
  225. // }
  226. // }
  227. $return_data=['pension'=>$pensions,'sign_day'=>$sign_day??0];
  228. return app('json')->success($return_data);
  229. }
  230. public function sign_today()
  231. {
  232. $uid=$this->request->uid();
  233. $today=date('d',time());
  234. $year=date('Y',time());
  235. $month=date('m',time());
  236. $where=[
  237. 'day'=>$today,
  238. 'month'=>$month,
  239. 'year'=>$year
  240. ];
  241. $res=Db::name('sign')->where('uid',$uid)->where($where)->find();
  242. if($res){
  243. return app('json')->success(1);
  244. }else{
  245. return app('json')->success(0);
  246. }
  247. }
  248. }