Pointvoucher.php 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?php
  2. namespace app\api\controller;
  3. use think\facade\Lang;
  4. /**
  5. * ============================================================================
  6. * DSMall多用户商城
  7. * ============================================================================
  8. * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
  9. * 网站地址: http://www.csdeshang.com
  10. * ----------------------------------------------------------------------------
  11. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
  12. * 不允许对程序代码以任何形式任何目的的再发布。
  13. * ============================================================================
  14. * 控制器
  15. */
  16. class Pointvoucher extends MobileMall
  17. {
  18. public function initialize()
  19. {
  20. parent::initialize(); // TODO: Change the autogenerated stub
  21. Lang::load(base_path().'home/lang/'.config('lang.default_lang').'/voucher.lang.php');
  22. //判断系统是否开启积分兑换功能
  23. if (config('ds_config.points_isuse') != 1 || config('ds_config.pointprod_isuse') != 1) {
  24. ds_json_encode(10001, lang('pointshop_unavailable'));
  25. }
  26. if (config('ds_config.voucher_allow') != 1){
  27. ds_json_encode(10001,lang('voucher_pointunavailable'));
  28. }
  29. }
  30. public function index(){
  31. $this->pointvoucher();
  32. }
  33. /**
  34. * 代金券列表
  35. */
  36. public function pointvoucher(){
  37. $voucher_model = model('voucher');
  38. //代金券模板状态
  39. $templatestate_arr = $voucher_model->getTemplateState();
  40. //查询会员信息
  41. $member_info = model('member')->getMemberInfoByID(session('member_id'));
  42. //查询代金券列表
  43. $where = array();
  44. $where[]=array('vouchertemplate_if_private','=',0);
  45. $where[]=array('vouchertemplate_state','=',$templatestate_arr['usable'][0]);
  46. $where[]=array('vouchertemplate_enddate','>',TIMESTAMP);
  47. if (intval(input('storeclass_id')) > 0){
  48. $where[]=array('vouchertemplate_sc_id','=',intval(input('storeclass_id')));
  49. }
  50. if (intval(input('price')) > 0){
  51. $where[]=array('vouchertemplate_price','=',intval(input('price')));
  52. }
  53. //查询仅我能兑换和所需积分
  54. $points_filter = array();
  55. if (intval(input('isable')) == 1){
  56. $points_filter['isable'] = $member_info['member_points'];
  57. }
  58. if (intval(input('points_min')) > 0){
  59. $points_filter['min'] = intval(input('points_min'));
  60. }
  61. if (intval(input('points_max')) > 0){
  62. $points_filter['max'] = intval(input('points_max'));
  63. }
  64. if (count($points_filter) > 0){
  65. asort($points_filter);
  66. if (count($points_filter) > 1){
  67. $points_filter = array_values($points_filter);
  68. $where[] = array('vouchertemplate_points','between',array($points_filter[0],$points_filter[1]));
  69. } else {
  70. if ($points_filter['min']){
  71. $where[]=array('vouchertemplate_points','>=',$points_filter['min']);
  72. } elseif ($points_filter['max']) {
  73. $where[]=array('vouchertemplate_points','<=',$points_filter['max']);
  74. } elseif ($points_filter['isable']) {
  75. $where[]=array('vouchertemplate_points','<=',$points_filter['isable']);
  76. }
  77. }
  78. }
  79. //排序
  80. switch (input('orderby')){
  81. case 'exchangenumdesc':
  82. $orderby = 'vouchertemplate_giveout desc,';
  83. break;
  84. case 'exchangenumasc':
  85. $orderby = 'vouchertemplate_giveout asc,';
  86. break;
  87. case 'pointsdesc':
  88. $orderby = 'vouchertemplate_points desc,';
  89. break;
  90. case 'pointsasc':
  91. $orderby = 'vouchertemplate_points asc,';
  92. break;
  93. default:
  94. $orderby = '';
  95. }
  96. $orderby .= 'vouchertemplate_id desc';
  97. $voucherlist = $voucher_model->getVouchertemplateList($where, '*', 0, 18, $orderby);
  98. $page_count = $voucher_model->page_info;
  99. //查询代金券面额
  100. $pricelist = $voucher_model->getVoucherPriceList();
  101. //查询店铺分类
  102. $store_class = rkcache('storeclass', true);
  103. $result = array_merge(array('voucherlist' => $voucherlist, 'pricelist' => $pricelist, 'store_class' => $store_class), mobile_page($page_count));
  104. ds_json_encode(10000, '', $result);
  105. }
  106. /**
  107. * 兑换代金券保存信息
  108. *
  109. */
  110. public function voucherexchange_save(){
  111. $member_id = $this->getMemberIdIfExists();
  112. if(!$member_id){
  113. ds_json_encode(10001,lang('param_error'));
  114. }
  115. $vid = intval(input('post.vid'));
  116. if ($vid <= 0){
  117. ds_json_encode(10001,lang('param_error'));
  118. }
  119. $seller_model = model('seller');
  120. $seller_info = $seller_model->getSellerInfo(array('member_id' => $member_id));
  121. $voucher_model = model('voucher');
  122. //验证是否可以兑换代金券
  123. $data = $voucher_model->getCanChangeTemplateInfo($vid,intval($member_id),$seller_info['store_id']);
  124. if ($data['state'] == false){
  125. ds_json_encode(10001,$data['msg']);
  126. }
  127. //添加代金券信息
  128. $data = $voucher_model->exchangeVoucher($data['info'],$member_id);
  129. if ($data['state'] == true){
  130. ds_json_encode(10000,$data['msg']);
  131. } else {
  132. ds_json_encode(10001,$data['msg']);
  133. }
  134. }
  135. }