package com.ks.lucky.service.impl.remote;
|
|
import com.ks.lucky.exception.LuckyActivityException;
|
import com.ks.lucky.exception.LuckyActivityJoinException;
|
import com.ks.lucky.mapper.LuckyActivityJoinRecordMapper;
|
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
|
import com.ks.lucky.pojo.DTO.JoinInfo;
|
import com.ks.lucky.remote.service.LuckyActivityJoinService;
|
import com.ks.lucky.service.impl.AppManager;
|
import com.ks.lucky.service.impl.LuckyActivityJoinManager;
|
import com.ks.lucky.service.impl.LuckyActivityManager;
|
import org.apache.dubbo.config.annotation.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import java.util.Date;
|
|
@Service(version = "1.0")
|
public class LuckyActivityJoinServiceImpl implements LuckyActivityJoinService {
|
|
@Resource
|
private LuckyActivityJoinManager luckyActivityJoinManager;
|
|
@Resource
|
private LuckyActivityManager luckyActivityManager;
|
|
@Resource
|
private AppManager appManager;
|
|
@Resource
|
private LuckyActivityJoinRecordMapper luckyActivityJoinRecordMapper;
|
|
|
@Transactional(rollbackFor = Exception.class)
|
@Override
|
public void join(Long activityId, String appKey, String uid, JoinInfo joinInfo) throws LuckyActivityException, LuckyActivityJoinException {
|
luckyActivityManager.canJoin(activityId);
|
Long appId = appManager.getAppId(appKey);
|
LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
|
if (record != null) {
|
throw new LuckyActivityJoinException(1, "已经参加");
|
}
|
record = new LuckyActivityJoinRecord();
|
record.setActivityId(activityId);
|
record.setAppId(appId);
|
record.setCreateTime(new Date());
|
record.setJoinInfo(joinInfo.toString());
|
record.setUid(uid);
|
record.setUserType(LuckyActivityJoinRecord.USER_TYPE_REAL);
|
record.setWeight(1);
|
record.setCreateTime(new Date());
|
luckyActivityJoinRecordMapper.insertSelective(record);
|
luckyActivityManager.addJoinCount(activityId, record.getWeight());
|
}
|
|
@Override
|
public LuckyActivityJoinRecord getJoinInfo(Long activityId, String appKey, String uid) {
|
Long appId = appManager.getAppId(appKey);
|
LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
|
return record;
|
}
|
}
|