Commit d6b59222 authored by zhz's avatar zhz

Merge branch 'master_dev' of git.shenbd.com:qm-develop/shenbd into master_dev

parents 08a5dbc4 45212853
......@@ -52,6 +52,7 @@ class IndexController extends \Our\Controller_Abstract {
}
public function indexAction() {
echo 1;exit;
$orderDao = \DAO\Order\OrderModel::getInstance();
$res=$orderDao->getList(array('buyer_id'=>1),'*',0,10);
......
......@@ -64,11 +64,13 @@ class ClientPush
}
public function push($pushData)
{
$pushFlag=(APP_ENV=='product')?true:false;
// echo json_encode($pushData);
$title=$this->getMessageType($pushData['fromType']);
$messageContent=$this->getMessageContent($pushData['message']);
// $pushObject=array('id'=>$toId,'memberName'=>'abc');
// $pushData['toId']=249;
echo $pushData['toId'];
try {
$response = $this->client->push()
->setPlatform('all')
......@@ -116,7 +118,7 @@ class ClientPush
// apns_production: 表示APNs是否生产环境,
// True 表示推送生产环境,False 表示要推送开发环境;如果不指定则默认为推送生产环境
'apns_production' => false,
'apns_production' => $pushFlag,
// big_push_duration: 表示定速推送时长(分钟),又名缓慢推送,把原本尽可能快的推送速度,降低下来,
// 给定的 n 分钟内,均匀地向这次推送的目标用户推送。最大值为1400.未设置则不是定速推送
......
......@@ -109,21 +109,23 @@ class DescribeConst
const specialCoupon = '指定券';
const giftCoupon = '礼品券';
const couponFullAvailable = '满{0}可用';
const couponFullAvailable = '满{0}可用';
const couponFullDiscount = '满{0}享{1}折';
const couponFullForCoupon = '满{0}送指订券';
const couponFullForGift = '满{0}送礼品券';
const noLimitGoodsCouponName = '元无门槛';
const noLimitGoodsCouponName = '{0}元无门槛';
const available = '可用';
const minus = '减';
const couponTitleFullAvailAbleNoAmountLimit = '全场减{0}';//无门槛减免券
const couponTitleFullAvailAble = '满{0}减{1}';
const couponTitleFullAvailAble = '满{0}减{1}';
const couponTitleFullDiscountNoAmoutLimit = '全场{0}折';
const couponTitleFullDiscount = '满{0}享{1}折';
const couponTitleFullForCoupon = '满{0}送券';
const couponTitleFullForGift = '满{0}送礼品';
const couponDiscount = '{0}折';
const couponGoodsName = '指定商品';
//平台介入
const unagreeSellerProccess = '对商家处理不满意';
//添加日志的角色
......
......@@ -550,7 +550,7 @@ class CartServiceModel extends \Business\AbstractModel{
//\DAO\MemberModel::getInstance()->_changeNum(\Our\NameConst::goodsCollection,$memberId,count($cartList));
\Redis\Db1\MemberCenterRedisModel::getInstance()->tableHDel($memberId,\Our\NameConst::goodsCollection);
$cartDao->db->doCommit();
return false;
return true;
}
/**
......
......@@ -51,7 +51,15 @@ class CouponServiceModel extends \Business\AbstractModel{
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$temp['title'] = $coupon['discount'];
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullDiscount,$orderAmount,$coupon['discount']);
if($orderAmount>0){
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscount,$orderAmount,$coupon['discount']);
}else{
if(in_array($coupon['type'],array(\Our\ApiConst::goodsCoupon,\Our\ApiConst::goodsClassCoupon))){
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponDiscount,$coupon['discount']);
}else{
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscountNoAmoutLimit,$coupon['discount']);
}
}
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType){
$temp['title'] = \Our\DescribeConst::specialCoupon;
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullForCoupon,$orderAmount);
......@@ -105,7 +113,15 @@ class CouponServiceModel extends \Business\AbstractModel{
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$result['title'] = $coupon['discount'];
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullDiscount,$orderAmount,$coupon['discount']);
if($orderAmount>0){
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscount,$orderAmount,$coupon['discount']);
}else{
if(in_array($coupon['type'],array(\Our\ApiConst::goodsCoupon,\Our\ApiConst::goodsClassCoupon))){
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponDiscount,$coupon['discount']);
}else{
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscountNoAmoutLimit,$coupon['discount']);
}
}
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType){
$result['title'] = \Our\DescribeConst::specialCoupon;
$result['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullForCoupon,$orderAmount);
......@@ -249,14 +265,15 @@ class CouponServiceModel extends \Business\AbstractModel{
\Error\ErrorModel::throwException(\Error\CodeConfigModel::couponNoUsedTicketNum);
}
$memberCouponDao = \DAO\Coupon\MemberCouponModel::getInstance($dbName);
/*if($coupon['is_overlay']){//允许领用多张的优惠券是否存在已经领取的未使用有效优惠券
$whereSql = ' member_id ='.$memberId.' and coupon_id='.$coupon['id'].' and out_time > '.time();
if($coupon['is_overlay']){//允许领用多张的优惠券是否存在已经领取的未使用有效优惠券
$whereSql = ' coupon_state = '.\Our\ApiConst::couponUnused.' member_id ='.$memberId.' and coupon_id='.$coupon['id'].' and out_time > '.time();
//$memberCoupons = \Our\RedisHelper::cachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array($whereSql),\Our\ApiConst::oneHour,array($where['couponId']));
$memberCoupons = $memberCouponDao->getList($whereSql);
if($memberCoupons&&count($memberCoupons)>=$coupon['get_ticket_num']){
if($memberCoupons&&count($memberCoupons)>\Our\ApiConst::zero){
\Error\ErrorModel::throwException(\Error\CodeConfigModel::alreadyGetTheCoupon);
}
}else{//不允许领用多张的优惠券
}
/*else{//不允许领用多张的优惠券
}*/
$memberCoupons = \Our\RedisHelper::cachedFunction(\Redis\Db13\MemberCouponRedisModel::getInstance(), array(&$memberCouponDao, 'getList'),array(array('coupon_id'=>$where['couponId'],'member_id'=>$memberId)),\Our\ApiConst::oneHour,array($memberId));
......@@ -287,10 +304,22 @@ class CouponServiceModel extends \Business\AbstractModel{
public function getStoreCoupons($where,$memberId = null){
$couponDao = \DAO\Coupon\CouponModel::getInstance();
$couponDao->validStoreCouponParam($where);
$couponList = \Our\RedisHelper::cachedFunction(\Redis\Db13\CouponRedisModel::getInstance(), array(&$this, 'getStoreCouponsById'),array($where['storeId'],$memberId),\Our\ApiConst::oneHour,array($where['storeId']."_".$memberId));
if($couponList){
$couponList = \Our\RedisHelper::cachedFunction(\Redis\Db13\CouponRedisModel::getInstance(), array(&$this, 'getStoreCouponsById'),array($where['storeId'],$memberId,\Our\ApiConst::one),\Our\ApiConst::oneHour,array($where['storeId']."_".$memberId));
//var_dump($couponList);
if($couponList) {
$couponList = array_values($couponList);
$tempCouponList = array();
foreach($couponList as $tempCoupon){
if($tempCoupon['startTime']<TIMESTAMP&&$tempCoupon['endTime']>=TIMESTAMP){
unset($tempCoupon['startTime']);
unset($tempCoupon['endTime']);
$tempCouponList[] = $tempCoupon;
}
}
$couponList = $tempCouponList;
if($couponList){
$couponList =$this->sortCouponList($couponList);
}
}else{
$couponList = array();
}
......@@ -302,8 +331,20 @@ class CouponServiceModel extends \Business\AbstractModel{
$couponDao = \DAO\Coupon\CouponModel::getInstance();
$couponDao->validStoreCouponParam($where);
$couponList = \Our\RedisHelper::cachedFunction(\Redis\Db13\CouponRedisModel::getInstance(), array(&$this, 'getStoreCouponsById'),array($where['storeId'],$memberId,\Our\ApiConst::one),\Our\ApiConst::oneHour,array($where['storeId']."_".$memberId));
if($couponList){
if(!$couponList){
return array('couponsTitle'=>array(),'coupons'=>array());
}
$couponList = array_values($couponList);
$tempCouponList = array();
foreach($couponList as $tempCoupon){
if($tempCoupon['startTime']<TIMESTAMP&&$tempCoupon['endTime']>=TIMESTAMP){
$tempCouponList[] = $tempCoupon;
}
}
$couponList = $tempCouponList;
if(!$couponList){
return array('couponsTitle'=>array(),'coupons'=>array());
}
$couponList = $this->sortCouponList($couponList);
if(count($couponList)>=\Our\ApiConst::defaultCouponTitleLength){
$couponTitleArray= array_slice($couponList,0,\Our\ApiConst::defaultCouponTitleLength);
......@@ -313,7 +354,7 @@ class CouponServiceModel extends \Business\AbstractModel{
$couponTitles = array();
foreach($couponTitleArray as $coupon){
if($coupon['type'] == \Our\ApiConst::noLimitCouponType){
$couponTitles[] = $coupon['title'].\Our\DescribeConst::noLimitGoodsCouponName;
$couponTitles[] = \Our\Common::format(\Our\DescribeConst::noLimitGoodsCouponName,$coupon['title']);
}else if($coupon['type'] == \Our\ApiConst::fullMinusCouponType){
$couponTitles[] = str_replace(\Our\DescribeConst::available,\Our\DescribeConst::minus.$coupon['title'],$coupon['subTitle']);
}else{
......@@ -321,9 +362,6 @@ class CouponServiceModel extends \Business\AbstractModel{
}
}
return array('couponsTitle'=>$couponTitles,'coupons'=>$couponList);
}else{
return array('couponsTitle'=>array(),'coupons'=>array());
}
}
public function validCouponStore($where){
......
......@@ -194,7 +194,7 @@ class MessageServiceModel extends \Business\AbstractModel
foreach ($messageOneList['list'] as &$val) {
$self = $this->getUserByMemberIdAndSelfType($val['fromId'], $val['fromType']);
$toMember = $this->getUserByMemberIdAndSelfType($val['toId'], $val['toType']);
$val['toAvatar'] = $toMember['avatar'];
$val['toAvatar'] = !empty($toMember['avatar'])?$toMember['avatar']:'';
$val['message'] = $messageHistoryDao->convertMessage($val['message']);
$val['fromAvatar'] = $self['avatar'];
// $val['toAvatar']=$this->getAvatar($val['toType'],$val['toId']);
......
......@@ -1015,7 +1015,15 @@ class OrderServiceModel extends \Business\AbstractModel
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable, $orderAmount);
} else if ($coupon['coupon_type'] == \Our\ApiConst::discountCouponType) {
$temp['title'] = $coupon['discount'];
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullDiscount, $orderAmount, $coupon['discount']);
if($orderAmount>0){
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscount,$orderAmount,$coupon['discount']);
}else{
if(in_array($coupon['type'],array(\Our\ApiConst::goodsCoupon,\Our\ApiConst::goodsClassCoupon))){
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponDiscount , $coupon['discount']);
}else{
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscountNoAmoutLimit , $coupon['discount']);
}
}
} else if ($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType) {
$temp['title'] = \Our\DescribeConst::specialCoupon;
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullForCoupon, $orderAmount);
......
......@@ -168,6 +168,7 @@ class CouponModel extends \DAO\AbstractModel {
$storeClassIds = array_column($storeClasses,'gc_id');
}
$result = array();
$goodsCommonDao = \DAO\GoodsCommonModel::getInstance();
foreach($coupons as $coupon){
if(!($coupon['start_time']<=TIMESTAMP&&$coupon['end_time']>TIMESTAMP)){
continue;
......@@ -183,6 +184,22 @@ class CouponModel extends \DAO\AbstractModel {
continue;
}
}
if($coupon['type']==\Our\ApiConst::goodsCoupon){ //指定商品优惠券,判断商品是否在线,在线才能展示
$goodsCommmonIds = array_filter(explode(',',$coupon['ids']));
if(!$goodsCommmonIds){
continue;
}
$goodsCon = array();
$goodsCon['goods_commonid'] = array('in',$goodsCommmonIds);
$goodsCon['goods_state'] = \Our\ApiConst::onlineGoodsState;
$goodsCon['goods_verify'] = \Our\ApiConst::onlineGoodsVerify;
$goodsCon['is_del'] = \Our\ApiConst::onlineGoodsDel;
//$goodsCommonFlag = \Our\RedisHelper::cachedFunction(\Redis\Db4\GoodsCommonRedisModel::getInstance(), array(&$goodsCommonDao, 'getOne'),array($goodsCon,'goods_commonid'),\Our\ApiConst::oneHour);
$goodsCommonFlag = $goodsCommonDao->getOne($goodsCon,'goods_commonid');
if(!$goodsCommonFlag){
continue;
}
}
$temp = array();
$temp['couponId'] = $coupon['id'];
$orderAmount = intval($coupon['order_amount']);
......@@ -196,9 +213,13 @@ class CouponModel extends \DAO\AbstractModel {
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
if($orderAmount>0){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscount,$orderAmount,$coupon['discount']);
}else{
if(in_array($coupon['type'],array(\Our\ApiConst::goodsCoupon,\Our\ApiConst::goodsClassCoupon))){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponDiscount,$coupon['discount']);
}else{
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscountNoAmoutLimit,$coupon['discount']);
}
}
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullForCoupon,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForGiftCouponType){
......@@ -241,11 +262,19 @@ class CouponModel extends \DAO\AbstractModel {
$temp['gift_goods_ids'] = isset($coupon['gift_goods_ids'])?$coupon['gift_goods_ids']:\Our\NameConst::emptyString;
$orderAmount = intval($coupon['order_amount']);
if($coupon['type'] == \Our\ApiConst::noLimitCoupon){//无门槛优惠券
$temp['title'] = intval($coupon['cash_money']).\Our\DescribeConst::noLimitGoodsCouponName;
$temp['title'] = \Our\Common::format(\Our\DescribeConst::noLimitGoodsCouponName,intval($coupon['cash_money']));
}else if($coupon['coupon_type'] == \Our\ApiConst::fullMinusCouponType){//满额减免券
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullAvailAble,$orderAmount,intval($coupon['cash_money']));
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponFullDiscount,$orderAmount,$coupon['discount']);
if($orderAmount>0){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscount,$orderAmount,$coupon['discount']);
}else{
if(in_array($coupon['type'],array(\Our\ApiConst::goodsCoupon,\Our\ApiConst::goodsClassCoupon))){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponDiscount,$coupon['discount']);
}else{
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscountNoAmoutLimit,$coupon['discount']);
}
}
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType){
$temp['title'] = \Our\Common::format(\Our\DescribeConst::couponFullForCoupon,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForGiftCouponType){
......@@ -282,7 +311,15 @@ class CouponModel extends \DAO\AbstractModel {
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullAvailable,$orderAmount);
}else if($coupon['coupon_type'] == \Our\ApiConst::discountCouponType){
$temp['title'] = $coupon['discount'];
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullDiscount,$orderAmount,$coupon['discount']);
if($orderAmount>0){
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscount,$orderAmount,$coupon['discount']);
}else{
if(in_array($coupon['type'],array(\Our\ApiConst::goodsCoupon,\Our\ApiConst::goodsClassCoupon))){
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponDiscount,$coupon['discount']);
}else{
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponTitleFullDiscountNoAmoutLimit,$coupon['discount']);
}
}
}else if($coupon['coupon_type'] == \Our\ApiConst::fullForCouponCouponType){
$temp['title'] = \Our\DescribeConst::specialCoupon;
$temp['subTitle'] = \Our\Common::format(\Our\DescribeConst::couponFullForCoupon,$orderAmount);
......
......@@ -68,7 +68,7 @@ class FavoritesModel extends \DAO\AbstractModel {
public function insertAllOrUpdate($datas){
$this->setDb(\Our\DbNameConst::masterDBConnectName);
$error = 0;
$baseSql = "insert into {$this->_tableName}(member_id,goods_commonid,fav_time,fav_type) values";
$baseSql = "insert into {$this->_tableName}(member_id,goods_commonid,fav_time,fav_type,update_time) values";
$insertAllSql = $baseSql;
for ($i = 0; $i < count($datas); $i++) {
$addSql = \Our\Common::format("({0},{1},{2},{3},{4}),", $datas[$i]['member_id'], $datas[$i]['goods_commonid'], time(),$datas[$i]['fav_type'],time());
......
......@@ -32,8 +32,15 @@ class GoodsCommonModel extends \DAO\AbstractModel {
public function getOne($where,$field = \Our\NameConst::allField){
$this->setDb($this->dbName);
return $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne();
if(is_array($where)){
$where = $this->db->getSqlWhereByArray($where);
}
$result = $this->db->select($field)->from($this->_tableName)->where($where)->fetchOne();
return $result ;
}
public function getGoodsSaleNumFromCache($goodsCommonId){
$goodsCommonRedis = \Redis\Db4\GoodsCommonRedisModel::getInstance();
$onlineGoodsCommonSaleNumKey = \Our\NameConst::onlineGoodsCommonSaleNumPrefix;
......
......@@ -24,23 +24,16 @@ resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8"
;
; ; 从库配置
;resources.database.slave.params.driver = "pdo_mysql"
;resources.database.slave.params.hostname = "127.0.0.1"
;resources.database.slave.params.port = 3306
;resources.database.slave.params.database = "qmcs"
;resources.database.slave.params.username = "qmcsreader"
;resources.database.slave.params.password = "!@#$%12345werty"
;resources.database.slave.params.charset = "UTF8"
;resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
;
resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "172.16.142.15"
resources.database.slave.params.hostname = "127.0.0.1"
resources.database.slave.params.port = 3306
resources.database.slave.params.database = "qmcs"
resources.database.slave.params.username = "root"
resources.database.slave.params.username = "qmcsreader"
resources.database.slave.params.password = "!@#$%12345werty"
resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
;
redis.database.params.host = "172.16.142.15"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
......@@ -369,3 +362,48 @@ push.user.service.type=7
elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
[lyztest : common]
; 数据库配置
resources.database.params.driver = "pdo_mysql"
resources.database.params.hostname = "127.0.0.1"
resources.database.params.port = 3306
resources.database.params.database = "testqmcs"
resources.database.params.username = "root"
resources.database.params.password = "123456"
resources.database.params.charset = "UTF8"
resources.database.params.driver_options.1002 = "SET NAMES utf8"
; 从库配置
resources.database.slave.params.driver = "pdo_mysql"
resources.database.slave.params.hostname = "127.0.0.1"
resources.database.slave.params.port = 3306
resources.database.slave.params.database = "testqmcs"
resources.database.slave.params.username = "root"
resources.database.slave.params.password = "123456"
resources.database.slave.params.charset = "UTF8"
resources.database.slave.params.driver_options.1002 = "SET NAMES utf8"
redis.database.params.host = "127.0.0.1"
redis.database.params.port = "6379"
redis.database.params.prefix = "qm_"
;redis.database.params.password = "23456ertyu"
out.config="/data/config";
;锁文件
out.locks="/data/locks";
; redis配置
;redis.database.params.password = "test"
;推送配置
push.clientHost="ws://192.168.80.134:9502"
push.host="192.168.134.18"
push.port="9503"
push.open=1
push.user.service.id=293
push.user.service.type=7
elastic.master.host="192.168.1.201"
elastic.master.port="9200"
elastic.master.scheme="http";
\ No newline at end of file
......@@ -151,3 +151,20 @@ config.url.convert="/usr/local/bin/wkhtmltoimage";
config.url.indexUrl="/www/local.qm.com/application/library/React"
config.url.libary="/www/local.qm.com/application/library"
; 文件目录
[lyztest : common]
; url相关配置
config.url.resourcesHost = "http://local.qm.com"
; 用户中心host
config.url.userHost = ""
; oss 域名
config.url.ossHost = "http://qmoss-01.oss-cn-hangzhou.aliyuncs.com"
;推送域名
config.url.pushHost="127.0.0.1:9503";
config.url.convert="/usr/local/bin/wkhtmltoimage";
config.url.indexUrl="/www/local.qm.com/application/library/React"
config.url.libary="/www/local.qm.com/application/library"
\ No newline at end of file
......@@ -49,7 +49,7 @@ class cliOrderClose extends basecli
}
$clientPush=\JPush\ClientPush::getInstance();
//$messageService=\DAO\MessageHistoryModel::getInstance();
while($pushData=$redis->lPop('push_center')){
while($pushData=$redis->rPop('push_center')){
$addData = unserialize($pushData);
$addData['message'] = unserialize($addData['message']);
$clientPush->push($addData);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment