Authored by tanling

部分提交到test6.9.0的代码恢复

... ... @@ -12,6 +12,7 @@ public interface InviteRecordMapper {
InviteRecord selectByPrimaryKey(Integer id);
int insertSelective(InviteRecord record);
List<InviteRecord> selectByInviterUid(@Param("inviterUid") Integer inviterUid);
... ...
... ... @@ -11,10 +11,10 @@
<result column="type" property="type" jdbcType="TINYINT" />
<result column="create_time" property="createTime" jdbcType="INTEGER" />
<result column="update_time" property="updateTime" jdbcType="INTEGER" />
<result column="show_invite_code" property="showInviteCoe" jdbcType="VARCHAR" />
<result column="show_invite_code" property="showInviteCode" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
id, uid, order_code, payment, status, amount, type, create_time, update_time
id, uid, order_code, payment, status, amount, type, create_time, update_time, show_invite_code
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
... ...
... ... @@ -39,6 +39,7 @@
update invite_record
set status=#{status,jdbcType=INTEGER}
where inviter_uid = #{inviterUid,jdbcType=INTEGER}
and invite_activity_id!=0
</update>
... ... @@ -70,6 +71,9 @@
<if test="createTime != null" >
create_time,
</if>
<if test="updateTime != null" >
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
... ... @@ -78,18 +82,21 @@
<if test="inviterUid != null" >
#{inviterUid,jdbcType=INTEGER},
</if>
<if test="inviterId != null" >
#{inviterId,jdbcType=INTEGER},
</if>
<if test="inviteeUid != null" >
#{inviteeUid,jdbcType=INTEGER},
</if>
<if test="inviterId != null" >
#{inviterId,jdbcType=INTEGER},
</if>
<if test="inviteActivityId != null" >
#{inviteActivityId,jdbcType=INTEGER},
</if>
<if test="createTime != null" >
#{createTime,jdbcType=INTEGER},
</if>
<if test="updateTime != null" >
#{updateTime,jdbcType=INTEGER},
</if>
</trim>
</insert>
<select id="selectByInviteeUid" resultMap="BaseResultMap" >
... ...
package com.yohoufo.order.common;
import org.apache.commons.lang3.StringUtils;
public enum InviterType {
STORED_SELLER(1, "UFO", "入驻商家"),
CLASS_B_AGENT(2, "NB", "一级代理");
... ... @@ -10,6 +12,18 @@ public enum InviterType {
private String name;
// 邀请码数字部分
private String value;
public void setValue(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public int getType() {
return type;
}
... ... @@ -36,7 +50,7 @@ public enum InviterType {
public static InviterType getInviteType(String inputInviteCode){
InviterType inviterType = null;
for (InviterType item : values()){
if (inputInviteCode.startsWith(item.getAlphabet())){
if (StringUtils.startsWithIgnoreCase(inputInviteCode, item.getAlphabet())){
inviterType = item;
break;
}
... ... @@ -46,8 +60,9 @@ public enum InviterType {
return null;
}
String digit = inputInviteCode.replaceFirst(inviterType.getAlphabet(),"");
String digit = StringUtils.removeStartIgnoreCase(inputInviteCode, inviterType.getAlphabet());
if (digit.matches("\\d+")){
inviterType.setValue(digit);
return inviterType;
}
... ...
package com.yohoufo.order.service.handler;
import com.google.common.eventbus.Subscribe;
import com.yohoufo.common.alarm.IEventHandler;
import com.yohoufo.dal.order.EntrySellerRechargeOrderMapper;
import com.yohoufo.dal.order.model.EntrySellerRechargeOrder;
... ... @@ -35,6 +36,7 @@ public class InviteRecordHandler implements IEventHandler<InviteRecordEvent> {
* @param event
*/
@Override
@Subscribe
public void handle(InviteRecordEvent event) {
if (event.getEventType() == null){
... ... @@ -42,16 +44,16 @@ public class InviteRecordHandler implements IEventHandler<InviteRecordEvent> {
return;
}
EntrySellerRechargeOrder entrySellerRechargeOrder = entrySellerRechargeOrderMapper.selectByOrderCodeUid(event.getOrderCode(), event.getUid());
if (entrySellerRechargeOrder == null){
logger.info("has no invite code, uid is {}, orderCode is {}", event.getUid(), event.getOrderCode());
return;
}
// 入驻回调事件处理
int result = 0;
if (event.getEventType() == EnterQuitEnum.ENTER){
EntrySellerRechargeOrder entrySellerRechargeOrder = entrySellerRechargeOrderMapper.selectByOrderCodeUid(event.getOrderCode(), event.getUid());
if (entrySellerRechargeOrder == null){
logger.info("has no invite code, uid is {}, orderCode is {}", event.getUid(), event.getOrderCode());
return;
}
result = inviteService.firstEnterInviteeRecord(entrySellerRechargeOrder.getShowInviteCode(), event.getUid(), event.getOrderCode());
}
// 申请退驻
... ... @@ -60,7 +62,7 @@ public class InviteRecordHandler implements IEventHandler<InviteRecordEvent> {
result = inviteService.quitInviter(event.getUid());
}
logger.info("[{}] [{}] [{}]. invite end result is {}.", entrySellerRechargeOrder.getShowInviteCode(), event.getUid(), event.getOrderCode(), result);
logger.info(" [{}] [{}]. invite end result is {}.", event.getUid(), event.getOrderCode(), result);
}
... ...
... ... @@ -37,7 +37,7 @@ import java.util.stream.Collectors;
@Service
public class InviteServiceImpl implements IInviteService {
private static final Logger LOGGER = LoggerFactory.getLogger(AppraiseService.class);
private static final Logger LOGGER = LoggerFactory.getLogger(InviteServiceImpl.class);
@Autowired
IStoredSellerService storedSellerService;
... ... @@ -127,11 +127,7 @@ public class InviteServiceImpl implements IInviteService {
throw new ServiceException(ServiceError.INVITE_CODE_NOT_EXIST);
}
String inviteCode = showInviteCode.replaceFirst(inviterType.getAlphabet(), "");
if (!inviteCode.matches("\\d+")){
LOGGER.warn("invite invalidate, showInviteCode is {}", showInviteCode);
throw new ServiceException(ServiceError.INVITE_CODE_NOT_EXIST);
}
String inviteCode = inviterType.getValue();
// 未开始
InviteActivity inviteActivity = inviteActivityMapper.selectLastActivtiy();
... ... @@ -151,7 +147,7 @@ public class InviteServiceImpl implements IInviteService {
// 不能自己邀请自己
if (inviter.getUid() == uid){
LOGGER.info("can not invite self, uid is {}, showInviteCode is {}", uid, showInviteCode);
throw new ServiceException(ServiceError.INVITE_CODE_NOT_EXIST);
throw new ServiceException(ServiceError.CAN_NOT_INVITE_SELF);
}
// 校验是否已经有绑定关系
... ... @@ -169,6 +165,11 @@ public class InviteServiceImpl implements IInviteService {
throw new ServiceException(ServiceError.INVITE_ACTIVITY_HAS_END);
}
if (!storedSellerService.isStoredSeller(inviter.getUid())){
LOGGER.warn("inviter has quit, showInviteCode is {}, uid is {}", showInviteCode, uid);
throw new ServiceException(ServiceError.INVITE_CODE_INVALIDATE);
}
}
}
... ... @@ -217,7 +218,7 @@ public class InviteServiceImpl implements IInviteService {
.uid(uid)
.showInviteCode(showInviteCode)
.inviteeUidNum(inviteeUidList.size())
.finishedOrderNum(orderNumMap.keySet().stream().collect(Collectors.summingInt(Integer::intValue)))
.finishedOrderNum(orderNumMap.values().stream().collect(Collectors.summingInt(Integer::intValue)))
.inviteRecordList(getInviteRecordList(inviteRecords, storedSellerMap, orderNumMap, nickNameMap))
.build();
... ... @@ -234,7 +235,7 @@ public class InviteServiceImpl implements IInviteService {
return inviteRecords.stream().map(x ->{
return InviteInfoResp.InviteRecord.builder()
.inviteeUid(x.getInviteeUid())
.nikeName(Objects.isNull(nickNameMap.get(x.getInviteeUid())) ? "" : nickNameMap.get(x.getInviteeUid()))
.nickName(Objects.isNull(nickNameMap.get(x.getInviteeUid())) ? "" : nickNameMap.get(x.getInviteeUid()))
.enterTime(storedSellerMap.get(x.getInviteeUid()) == null ? "" : DateUtil.getDateFormatLong(storedSellerMap.get(x.getInviteeUid())))
.orderNum(Objects.isNull(orderNumMap.get(x.getInviteeUid())) ? 0 : orderNumMap.get(x.getInviteeUid()))
.build();
... ... @@ -356,7 +357,7 @@ public class InviteServiceImpl implements IInviteService {
*/
public int quitInviter(int uid){
// 检查该退驻的商户是否是邀请人,则之前的所有绑定关系无效
// 检查该退驻的商户是否邀请人,将使用A类邀请码的绑定关系设置成无效
InviteRecord inviteRecord = new InviteRecord();
inviteRecord.setInviterUid(uid);
inviteRecord.setStatus(InviteRecordStatusEnum.INVALID.getCode());
... ... @@ -385,11 +386,7 @@ public class InviteServiceImpl implements IInviteService {
return 0;
}
String inviteCode = showInviteCode.replaceFirst(inviterType.getAlphabet(),"");
if (!inviteCode.matches("\\d+")){
LOGGER.warn("[{}] [{}] [{}]. invite code invaliate.", showInviteCode, uid, orderCode);
return 0 ;
}
String inviteCode = inviterType.getValue();
Inviter inviter = inviterMapper.selectValidateInviter(inviterType.getType(), Integer.parseInt(inviteCode));
// 无有效的邀请信息
... ... @@ -416,9 +413,12 @@ public class InviteServiceImpl implements IInviteService {
record.setInviterUid(inviter.getUid());
record.setInviteeUid(uid);
record.setInviterId(inviter.getId());
record.setInviteActivityId(inviteActivity.getId());
record.setCreateTime(DateUtils.getCurrentTimeSeconds());
inviteRecordMapper.insert(record);
record.setStatus(InviterStatus.VALID.getCode());
record.setInviteActivityId(inviterType == InviterType.STORED_SELLER ? inviteActivity.getId() : 0);
int now = DateUtils.getCurrentTimeSeconds();
record.setCreateTime(now);
record.setUpdateTime(now);
inviteRecordMapper.insertSelective(record);
return 1;
}
... ...
... ... @@ -156,7 +156,7 @@ public class InviteSettlementItemCreator {
return false;
}
// 验证是否过了奖励时间
int days = activity.getRewardDays();
int days = activity.getRewardDays() * 24 * 60 * 60;
if (inviteTime + days < orderCreateTime) {
log.warn("{} fail, reward end", tag);
return false;
... ...