RUserController.php 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <?php
  2. class RUserController extends AdminController{
  3. public function actionIndex()
  4. {
  5. $users = RUser::findAll();
  6. foreach ($users as $user) {
  7. $user->avatar = str_replace('http://odulcd8g1.bkt.clouddn.com','http://avatar.yiguanjia.me',$user->avatar);
  8. $user->save();
  9. }
  10. // 订单类型
  11. $type_data = Yii::app()->params['o2o_service'];
  12. $type = CommonFn::getComboboxData($type_data, 100, true, 100);
  13. $this->render('index', array(
  14. 'type' => $type
  15. ));
  16. }
  17. public function actionList(){
  18. $search = Yii::app()->request->getParam('search', '');
  19. $id = Yii::app()->request->getParam('id', '');
  20. $params = CommonFn::getPageParams();
  21. if(isset($params['sort']) && isset($params['sort']['register_time'])){
  22. $params['sort'] = array('_id' => $params['sort']['register_time']);
  23. }
  24. $criteria = new EMongoCriteria($params);
  25. if ($id != ''){
  26. $user_id = new MongoId($id);
  27. $criteria->_id('==', $user_id);
  28. }
  29. if ($search != '' && !CommonFn::isMongoId($search)){
  30. $criteria->addCond('source','or', new MongoRegex('/' . $search . '/'));
  31. $criteria->addCond('user_info.mobile','or', new MongoRegex('/' . $search . '/'));
  32. $criteria->addCond('user_info.name','or', new MongoRegex('/' . $search . '/'));
  33. $criteria->user_name('or', new MongoRegex('/' . $search . '/'));
  34. if (CommonFn::isMongoId($search)){
  35. $criteria->_id('or', new MongoId($search));
  36. }
  37. }
  38. if (CommonFn::isMongoId($search)) {
  39. $criteria = new EMongoCriteria();
  40. $criteria->_id('==', new MongoId($search));
  41. }
  42. $cursor = RUser::model()->findAll($criteria);
  43. $total = $cursor->count();
  44. $rows = CommonFn::getRowsFromCursor($cursor);
  45. $parsedRows = RUser::model()->parse($rows);
  46. echo CommonFn::composeDatagridData($parsedRows, $total);
  47. }
  48. public function actionUpdate(){
  49. $id = Yii::app()->request->getParam('id', '');
  50. if(!$id){
  51. CommonFn::requestAjax(false, "缺少必须参数");
  52. }
  53. $criteria = new EMongoCriteria();
  54. $criteria->_id = new MongoId($id);
  55. $user = RUser::model()->find($criteria);
  56. $mobile = Yii::app()->getRequest()->getParam('mobile','');
  57. $name = Yii::app()->getRequest()->getParam('name','');
  58. $user->user_info = array('name' => $name,'mobile' => $mobile);
  59. $success = $user->save();
  60. CommonFn::requestAjax($success, '修改成功', array());
  61. }
  62. public function actionGetCoupons(){
  63. $user_id = Yii::app()->getRequest()->getParam("user_id");
  64. $UserCoupon = new UserCoupon();
  65. $criteria = new EMongoCriteria();
  66. $criteria->user('==',new MongoId($user_id));
  67. $current_time = time();
  68. $criteria->end_time('>=',$current_time);
  69. $criteria->status('==',1);
  70. $coupons = UserCoupon::model()->findAll($criteria);
  71. $coupon_list = array();
  72. foreach ($coupons as $value) {
  73. $coupon = Coupon::get($value->coupon);
  74. if($coupon->status!=1){
  75. continue;
  76. }
  77. $coupon = $UserCoupon->parseRow($value,array('id','start_time','end_time','start_time_str','end_time_str','coupon'));
  78. $coupon['unuseable_reason'] = '可使用';
  79. $coupon_list[] = $coupon;
  80. }
  81. $criteria = new EMongoCriteria();
  82. $criteria->user('==',new MongoId($user_id));
  83. $criteria->status('==',-1);
  84. $coupons = UserCoupon::model()->findAll($criteria);
  85. foreach ($coupons as $value) {
  86. $coupon = $UserCoupon->parseRow($value,array('id','start_time','end_time','start_time_str','end_time_str','coupon'));
  87. $coupon['unuseable_reason'] = '已使用';
  88. $coupon_list[] = $coupon;
  89. }
  90. $criteria = new EMongoCriteria();
  91. $criteria->user('==',new MongoId($user_id));
  92. $current_time = time();
  93. $criteria->end_time('<',$current_time);
  94. $coupons = UserCoupon::model()->findAll($criteria);
  95. foreach ($coupons as $value) {
  96. $coupon = $UserCoupon->parseRow($value,array('id','start_time','end_time','start_time_str','end_time_str','coupon'));
  97. $coupon['unuseable_reason'] = '已过期';
  98. $coupon_list[] = $coupon;
  99. }
  100. foreach ($coupon_list as $key => $value) {
  101. $coupon_list[$key]['name'] = $value['coupon']['name'];
  102. $coupon_list[$key]['value'] = $value['coupon']['value'];
  103. $coupon_list[$key]['min_price'] = $value['coupon']['min_price'];
  104. $coupon_list[$key]['type_str'] = $value['coupon']['type_str'];
  105. }
  106. $total = count($coupon_list);
  107. $data = $coupon_list;
  108. echo CommonFn::composeDatagridData($data, $total);
  109. }
  110. public function actionChangeBalance(){
  111. $id = Yii::app()->request->getParam('id');
  112. $amount = intval(Yii::app()->request->getParam('amount'));
  113. $memo = Yii::app()->request->getParam('memo');
  114. $type = Yii::app()->request->getParam('type');
  115. if(!$id||!$amount||!$memo||!$type){
  116. CommonFn::requestAjax(false, "缺少必须参数");
  117. }
  118. $user = RUser::get(new MongoId($id));
  119. if(!$user){
  120. CommonFn::requestAjax(false, "用户不存在");
  121. }
  122. $user->balance = $user->balance+$amount;
  123. if($user->balance<0){
  124. CommonFn::requestAjax(false, "用户余额不能小于0");
  125. }
  126. $user->save();
  127. $balance_log = new BalanceLog();
  128. $balance_log->time = time();
  129. $balance_log->user = $user->_id;
  130. $balance_log->memo = $memo;
  131. $balance_log->type = $type;
  132. $balance_log->amount = $amount;
  133. $balance_log->save(true);
  134. CommonFn::requestAjax(true, '修改成功', array());
  135. }
  136. public function actionBalanceLog(){
  137. $id = Yii::app()->request->getParam('id', '');
  138. $params = CommonFn::getPageParams();
  139. $criteria = new EMongoCriteria($params);
  140. if ($id != ''){
  141. $id = new MongoId($id);
  142. $criteria->user('==', $id);
  143. }else{
  144. CommonFn::requestAjax(false, "缺少必须参数");
  145. }
  146. $cursor = BalanceLog::model()->findAll($criteria);
  147. $total = $cursor->count();
  148. $rows = CommonFn::getRowsFromCursor($cursor);
  149. $parsedRows = BalanceLog::model()->parse($rows);
  150. echo CommonFn::composeDatagridData($parsedRows, $total);
  151. }
  152. public function actionSendCoupon() {
  153. $user_id = Yii::app()->request->getParam('user_id', '');
  154. $coupon_id = Yii::app()->request->getParam('coupon_id', '');
  155. $start_time = Yii::app()->request->getParam('start_time', '');
  156. $end_time = Yii::app()->request->getParam('end_time', '');
  157. $need_sms = intval(Yii::app()->request->getParam('need_sms', '0'));
  158. $copy = Yii::app()->request->getParam('copy', '');
  159. $mongo = new MongoClient(DB_CONNETC);
  160. $db = $mongo->fuwu;
  161. $coll = 'admin_send_coupon_log';
  162. $collection = $db->selectCollection($coll);
  163. $admin = Yii::app()->user;
  164. $admin_id = $admin->id;
  165. $user_id = new MongoId($user_id);
  166. $coupon_id = new MongoId($coupon_id);
  167. $time = time();
  168. $user = RUser::get($user_id);
  169. //开始与结束时间处理
  170. $start_time = empty($start_time) ? $time : strtotime($start_time);
  171. $end_time = empty($end_time) ? strtotime('+30 day', $start_time) : strtotime($end_time);
  172. //插入user_coupons表
  173. $flag_user_coupon = Service::factory('CouponService')->giveCoupon($user_id, $coupon_id, $start_time, $end_time);
  174. if (!$flag_user_coupon) {
  175. CommonFn::requestAjax($flag_user_coupon, '发放优惠券失败', array());
  176. }
  177. //插入admin_send_coupon_log表
  178. $data = array(
  179. 'admin_id' => $admin_id,
  180. 'user_id' => $user_id,
  181. 'coupon_id' => $coupon_id,
  182. 'time' => $time
  183. );
  184. $flag_send_log = $collection->insert($data);
  185. if ($flag_send_log['err'] != null) {
  186. CommonFn::requestAjax($flag_user_coupon, '优惠券已发放,日志记录失败', array());
  187. }
  188. //发送短信
  189. if ($need_sms) {
  190. if (isset($user->mobile)&&$user->mobile != '') {
  191. Service::factory('SendSMSService')->send_sms($copy, $user->mobile);
  192. } else if (!empty($user->shop_address) && isset($user->shop_address[0]['mobile'])) {
  193. $mobile = $user->shop_address[0]['mobile'];
  194. Service::factory('SendSMSService')->send_sms($copy, $mobile);
  195. }
  196. }
  197. CommonFn::requestAjax(true, '优惠券已成功发放');
  198. }
  199. }