Commit e704974c by 徐高华

登录

parent 14c039f7
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
/**
* Created by tgs on 2020/2/9.
*/
public class EnterpriseDetailDTO implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String wxEnterpriseRelatedId;
private String enterpriseName;
private String wxEnterpriseId;
private String enterpriseId;
private String version;
private int nodeCount;
private String enterpriseLogo;
/**
* 导购编辑权限
*/
private Integer clerkEditFlag;
private String staffId;
private String staffName;
private Date createTime;
private String brandName;
private Integer wxEnterpriseType;
private Integer memberOpenCardFlag;
public Integer getClerkEditFlag() {
return clerkEditFlag;
}
public void setClerkEditFlag(Integer clerkEditFlag) {
this.clerkEditFlag = clerkEditFlag;
}
public Integer getWxEnterpriseType() {
return wxEnterpriseType;
}
public void setWxEnterpriseType(Integer wxEnterpriseType) {
this.wxEnterpriseType = wxEnterpriseType;
}
public Integer getMemberOpenCardFlag() {
return memberOpenCardFlag;
}
public void setMemberOpenCardFlag(Integer memberOpenCardFlag) {
this.memberOpenCardFlag = memberOpenCardFlag;
}
public String getWxEnterpriseRelatedId() {
return wxEnterpriseRelatedId;
}
public void setWxEnterpriseRelatedId(String wxEnterpriseRelatedId) {
this.wxEnterpriseRelatedId = wxEnterpriseRelatedId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public int getNodeCount() {
return nodeCount;
}
public void setNodeCount(int nodeCount) {
this.nodeCount = nodeCount;
}
public String getEnterpriseLogo() {
return enterpriseLogo;
}
public void setEnterpriseLogo(String enterpriseLogo) {
this.enterpriseLogo = enterpriseLogo;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
}
package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
import java.util.Date;
/**
* Created by tgs on 2020/2/9.
*/
public class EnterpriseDetailDTO implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String wxEnterpriseRelatedId;
private String enterpriseName;
private String wxEnterpriseId;
private String enterpriseId;
private String version;
private int nodeCount;
private String enterpriseLogo;
/**
* 导购编辑权限
*/
private Integer clerkEditFlag;
private String staffId;
private String staffName;
private Date createTime;
private String brandName;
private Integer wxEnterpriseType;
private Integer memberOpenCardFlag;
// 是否有权限访问 1是0否
private int aclFlag = 1 ;
public int getAclFlag() {
return aclFlag;
}
public void setAclFlag(int aclFlag) {
this.aclFlag = aclFlag;
}
public Integer getClerkEditFlag() {
return clerkEditFlag;
}
public void setClerkEditFlag(Integer clerkEditFlag) {
this.clerkEditFlag = clerkEditFlag;
}
public Integer getWxEnterpriseType() {
return wxEnterpriseType;
}
public void setWxEnterpriseType(Integer wxEnterpriseType) {
this.wxEnterpriseType = wxEnterpriseType;
}
public Integer getMemberOpenCardFlag() {
return memberOpenCardFlag;
}
public void setMemberOpenCardFlag(Integer memberOpenCardFlag) {
this.memberOpenCardFlag = memberOpenCardFlag;
}
public String getWxEnterpriseRelatedId() {
return wxEnterpriseRelatedId;
}
public void setWxEnterpriseRelatedId(String wxEnterpriseRelatedId) {
this.wxEnterpriseRelatedId = wxEnterpriseRelatedId;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getWxEnterpriseId() {
return wxEnterpriseId;
}
public void setWxEnterpriseId(String wxEnterpriseId) {
this.wxEnterpriseId = wxEnterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public int getNodeCount() {
return nodeCount;
}
public void setNodeCount(int nodeCount) {
this.nodeCount = nodeCount;
}
public String getEnterpriseLogo() {
return enterpriseLogo;
}
public void setEnterpriseLogo(String enterpriseLogo) {
this.enterpriseLogo = enterpriseLogo;
}
public String getStaffId() {
return staffId;
}
public void setStaffId(String staffId) {
this.staffId = staffId;
}
public String getStaffName() {
return staffName;
}
public void setStaffName(String staffName) {
this.staffName = staffName;
}
public Date getCreateTime() {
return createTime;
}
public void setCreateTime(Date createTime) {
this.createTime = createTime;
}
public String getBrandName() {
return brandName;
}
public void setBrandName(String brandName) {
this.brandName = brandName;
}
}
package com.gic.haoban.manage.api.service;
import java.util.Date;
import java.util.List;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.*;
public interface WxEnterpriseRelatedApiService {
/**
* 查询好办所有的企业id
* @return : 返回好办关联的所有企业id
*/
List<String> findAllEnterpriseId();
List<EnterpriseDetailDTO> listEnterpriseByWxEnterpriseId(String wxEnterpriseId);
String getGicEnterpriseIdByEnterpriseRelatedId(String wxEnterpriseRelatedId);
boolean enterpriseUseNew(String enterpriseId);
@Deprecated
EnterpriseDetailDTO getByEnterpriseId(String enterpriseId);
List<EnterpriseDetailDTO> queryAllHasGicEnterpriseId();
List<EnterpriseDetailDTO> listEnterpriseByEnterpriseIds(List<String> enterpriseIds);
/**
* 返回在一定时期内的信息
* @return
*/
List<EnterpriseDetailDTO> queryBindGicEnterpriseByTime(String seqTime);
/**
* 企业绑定
*
* @param detailDTO
* @return
*/
ServiceResponse wxEnterpriseBind(WxEnterpriseRelationDetailDTO detailDTO);
/**
* 异步刷新门店
*
* @param message
*/
public void flushBindStoreByDelayMq(String message);
/**
* 刷新门店绑定到延迟队列
*
* @param enterpriseId
*/
public void flushBindStoreToDelayMq(String enterpriseId, FlushStoreMqDTO mqDTO);
/**
* 刷新企业门店
*
* @param enterpriseId
* @param wxEnterpriseId
* @param optStaffId
* @param channalCode
* @return
*/
public ServiceResponse flushBindStoreByEnterpriseId(String enterpriseId, String wxEnterpriseId, String optStaffId, int channalCode);
/**
* 获取企业绑定详情
*
* @param wxEnterpriseId
* @param enterpriseId
* @return
*/
public WxEnterpriseRelationDetailDTO getEnterpriseBindInfo(String wxEnterpriseId, String enterpriseId);
/**
* 根据商户id 获取关联的微信企业列表
*
* @param enterpriseId
* @return
*/
public List<WxEnterpriseDTO> listWxEnterpriseByEid(String enterpriseId);
/**
* 根据商户id 获取所有被绑定分组
*
* @param enterpriseId
* @return
*/
public List<StoreRangeInfoDTO> listAllBindStoreOrGroup(String enterpriseId);
/**
* @param enterpriseId
* @param search
* @param pageInfo
* @return
*/
public Page<BindStoreInfoDTO> pageBindStoreByEnterpriseId(String wxEnterpriseId, String enterpriseId, String search, BasePageInfo pageInfo);
/**
* 查询绑定得门店id
*
* @param wxEnterpriseId
* @return
*/
public List<String> listStoreIdByWxEnterpriseId(String wxEnterpriseId);
/**
* 查询绑定得门店id
*
* @param wxEnterpriseId
* @return
*/
public List<String> listStoreIdByEnterpriseId(String wxEnterpriseId, String enterpriseId);
/**
* 查询绑定得门店id
*
* @param wxEnterpriseId
* @return
*/
public List<StoreOrGroupInfoDTO> listStoreRelationByEnterpriseId(String wxEnterpriseId, String enterpriseId, String search);
/**
* 初始化历史门店数据
*
* @return
*/
public boolean initHistoryEnterprise(String wxEnterpriseId);
/**
* 初始化历史门店数据
*
* @return
*/
public boolean setClerkEditFlag(String wxEnterprieseRelatedId, int clerkEditFlag);
/**
* 判断企业是否是总部 true是 false 不是
*
* @return
*/
public boolean checkIsGeneral(String wxEnterpriseId, String enterpriseId);
}
package com.gic.haoban.manage.api.service;
import java.util.List;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.*;
public interface WxEnterpriseRelatedApiService {
/**
* 查询好办所有的企业id
* @return : 返回好办关联的所有企业id
*/
List<String> findAllEnterpriseId();
@Deprecated
List<EnterpriseDetailDTO> listEnterpriseByWxEnterpriseId(String wxEnterpriseId);
List<EnterpriseDetailDTO> listEnterpriseByWxEnterpriseId(String wxEnterpriseId , String phoneNumber , int filteRight);
String getGicEnterpriseIdByEnterpriseRelatedId(String wxEnterpriseRelatedId);
boolean enterpriseUseNew(String enterpriseId);
@Deprecated
EnterpriseDetailDTO getByEnterpriseId(String enterpriseId);
List<EnterpriseDetailDTO> queryAllHasGicEnterpriseId();
List<EnterpriseDetailDTO> listEnterpriseByEnterpriseIds(List<String> enterpriseIds);
/**
* 返回在一定时期内的信息
* @return
*/
List<EnterpriseDetailDTO> queryBindGicEnterpriseByTime(String seqTime);
/**
* 企业绑定
*
* @param detailDTO
* @return
*/
ServiceResponse wxEnterpriseBind(WxEnterpriseRelationDetailDTO detailDTO);
/**
* 异步刷新门店
*
* @param message
*/
public void flushBindStoreByDelayMq(String message);
/**
* 刷新门店绑定到延迟队列
*
* @param enterpriseId
*/
public void flushBindStoreToDelayMq(String enterpriseId, FlushStoreMqDTO mqDTO);
/**
* 刷新企业门店
*
* @param enterpriseId
* @param wxEnterpriseId
* @param optStaffId
* @param channalCode
* @return
*/
public ServiceResponse flushBindStoreByEnterpriseId(String enterpriseId, String wxEnterpriseId, String optStaffId, int channalCode);
/**
* 获取企业绑定详情
*
* @param wxEnterpriseId
* @param enterpriseId
* @return
*/
public WxEnterpriseRelationDetailDTO getEnterpriseBindInfo(String wxEnterpriseId, String enterpriseId);
/**
* 根据商户id 获取关联的微信企业列表
*
* @param enterpriseId
* @return
*/
public List<WxEnterpriseDTO> listWxEnterpriseByEid(String enterpriseId);
/**
* 根据商户id 获取所有被绑定分组
*
* @param enterpriseId
* @return
*/
public List<StoreRangeInfoDTO> listAllBindStoreOrGroup(String enterpriseId);
/**
* @param enterpriseId
* @param search
* @param pageInfo
* @return
*/
public Page<BindStoreInfoDTO> pageBindStoreByEnterpriseId(String wxEnterpriseId, String enterpriseId, String search, BasePageInfo pageInfo);
/**
* 查询绑定得门店id
*
* @param wxEnterpriseId
* @return
*/
public List<String> listStoreIdByWxEnterpriseId(String wxEnterpriseId);
/**
* 查询绑定得门店id
*
* @param wxEnterpriseId
* @return
*/
public List<String> listStoreIdByEnterpriseId(String wxEnterpriseId, String enterpriseId);
/**
* 查询绑定得门店id
*
* @param wxEnterpriseId
* @return
*/
public List<StoreOrGroupInfoDTO> listStoreRelationByEnterpriseId(String wxEnterpriseId, String enterpriseId, String search);
/**
* 初始化历史门店数据
*
* @return
*/
public boolean initHistoryEnterprise(String wxEnterpriseId);
/**
* 初始化历史门店数据
*
* @return
*/
public boolean setClerkEditFlag(String wxEnterprieseRelatedId, int clerkEditFlag);
/**
* 判断企业是否是总部 true是 false 不是
*
* @return
*/
public boolean checkIsGeneral(String wxEnterpriseId, String enterpriseId);
}
......@@ -2,6 +2,7 @@ package com.gic.haoban.manage.service.service.out.impl;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.clerk.api.service.RightService;
import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.ToolUtil;
......@@ -24,6 +25,9 @@ import com.gic.haoban.manage.service.service.*;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
import com.google.common.collect.Sets;
import cn.hutool.core.collection.CollectionUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -54,10 +58,8 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
private DepartmentService departmentService;
@Autowired
private StaffService staffService;
@Autowired
private MiniprogramSettingService miniprogramSettingService;
@Autowired
private AuthorizeService authorizeService;
@Autowired
......@@ -68,6 +70,8 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
private StoreRangeService storeRangeService;
@Autowired
private StoreService storeService;
@Autowired
private RightService rightService;
/**
* 查询好办所有的企业id
......@@ -81,12 +85,38 @@ public class WxEnterpriseRelatedApiServiceImpl implements WxEnterpriseRelatedApi
@Override
public List<EnterpriseDetailDTO> listEnterpriseByWxEnterpriseId(String wxEnterpriseId) {
return this.listEnterpriseByWxEnterpriseId(wxEnterpriseId, null, 0) ;
}
@Override
public List<EnterpriseDetailDTO> listEnterpriseByWxEnterpriseId(String wxEnterpriseId, String phoneNumber,
int filteRight) {
List<TabHaobanWxEnterpriseRelated> relatedList = wxEnterpriseRelatedMapper.listByWxenterpriseId(wxEnterpriseId);
List<EnterpriseDetailDTO> result = EntityUtil.changeEntityListByJSON(EnterpriseDetailDTO.class, relatedList);
if (CollectionUtils.isEmpty(result)) {
return result;
List<EnterpriseDetailDTO> list = EntityUtil.changeEntityListByJSON(EnterpriseDetailDTO.class, relatedList);
if (CollectionUtils.isEmpty(list)) {
return list;
}
List<String> enterpriseIds = list.stream().map(s -> s.getEnterpriseId()).collect(Collectors.toList());
List<EnterpriseDTO> enterpriseList = enterpriseService.listEnterpriseByIds(enterpriseIds);
Map<String, EnterpriseDTO> map = com.gic.commons.util.CollectionUtil.toMap(enterpriseList, "enterpriseId");
for (EnterpriseDetailDTO dto : list) {
EnterpriseDTO enterpriseDTO = map.get(dto.getEnterpriseId());
if (enterpriseDTO != null) {
if(StringUtils.isNotBlank(phoneNumber)) {
com.gic.api.base.commons.ServiceResponse<Boolean> resp = this.rightService.hasHaobanAcl(enterpriseDTO.getEnterpriseId(), phoneNumber) ;
if(!resp.getResult()) {
dto.setAclFlag(0);
if(filteRight==1) {
continue ;
}
}
}
dto.setEnterpriseName(enterpriseDTO.getEnterpriseName());
dto.setEnterpriseLogo(enterpriseDTO.getQcloudImageUrl());
dto.setBrandName(enterpriseDTO.getBrandName());
}
}
return result;
return list;
}
@Override
......
......@@ -308,7 +308,12 @@ public class LoginController extends WebBaseController {
loginUser.setBrandName(enterprise.getBrandName());
AuthWebRequestUtil.setSessionUser(loginUser);
AuthWebRequestUtil.setAppLoginUser(token, loginUser);
return resultResponse(HaoBanErrCode.ERR_1, true);
boolean flag = wxEnterpriseApiService.enterpriseIsOver(enterpriseId);
if(flag) {
logger.info("切换商户失败,商户已过期,eid={},phone={}", enterpriseId, phoneNumber);
return this.fail("切换商户失败,商户已过期") ;
}
return resultResponse(HaoBanErrCode.ERR_1, false);
}
/**
......
package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.DateUtil;
import com.gic.enterprise.api.dto.EnterpriseAndUserDTO;
import com.gic.enterprise.api.dto.EnterpriseDTO;
import com.gic.enterprise.api.dto.*;
import com.gic.enterprise.api.dto.EnterpriseWxaRelationDTO;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreSearchDTO;
import com.gic.enterprise.api.service.AuthorizeService;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.base.api.common.pojo.dto.WebStaffDTO;
import com.gic.haoban.common.anno.IgnoreLogin;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.manage.api.dto.AgentEnterpriseDTO;
import com.gic.haoban.manage.api.dto.BindStoreInfoDTO;
import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.EnterpriseDetailDTO;
import com.gic.haoban.manage.api.dto.MaterialDTO;
import com.gic.haoban.manage.api.dto.MiniprogramSettingDTO;
import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.StoreOrGroupInfoDTO;
import com.gic.haoban.manage.api.dto.WelcomeDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseRelationDetailDTO;
import com.gic.haoban.manage.api.enums.ChannelCodeEnum;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.*;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.MiniprogramSettingQo;
......@@ -36,16 +69,8 @@ import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.gic.wechat.token.api.dto.QywxCorpInfoDTO;
import com.gic.wechat.token.api.service.QywxTokenManageService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.collection.CollectionUtil;
@RestController
public class WxEnterpriseController extends WebBaseController {
......@@ -75,7 +100,6 @@ public class WxEnterpriseController extends WebBaseController {
@Autowired
private AuthorizeService authorizeService;
//授权企业列表
@RequestMapping("wxa-enterprise-list")
public HaobanResponse wxEnterpriseList() {
......@@ -104,28 +128,14 @@ public class WxEnterpriseController extends WebBaseController {
}
//授权企业列表
//授权企业列表 filteRight 是否过滤无登录权限的列表
@RequestMapping("wx-enterprise-list")
public HaobanResponse wxaEnterpriseList() {
public HaobanResponse wxaEnterpriseList(@RequestParam(defaultValue="0") int filteRight) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
String wxEnterpriseId = login.getWxEnterpriseId();
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
if (CollectionUtil.isNotEmpty(list)) {
List<String> enterpriseIds = list.stream().map(s -> s.getEnterpriseId()).collect(Collectors.toList());
List<EnterpriseDTO> enterpriseList = enterpriseService.listEnterpriseByIds(enterpriseIds);
Map<String, EnterpriseDTO> map = com.gic.commons.util.CollectionUtil.toMap(enterpriseList, "enterpriseId");
for (EnterpriseDetailDTO dto : list) {
EnterpriseDTO enterpriseDTO = map.get(dto.getEnterpriseId());
if (enterpriseDTO != null) {
dto.setEnterpriseName(enterpriseDTO.getEnterpriseName());
dto.setEnterpriseLogo(enterpriseDTO.getQcloudImageUrl());
dto.setBrandName(enterpriseDTO.getBrandName());
}
}
}
String phoneNumber = login.getPhoneNumber() ;
List<EnterpriseDetailDTO> list = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId,phoneNumber,filteRight);
return resultResponse(HaoBanErrCode.ERR_1, list);
}
//企业信息
......
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