admin
2021-01-15 5405154d6979f1b50ce2d881bb164b1acca80b6d
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityJoinAssistServiceImpl.java
@@ -1,33 +1,39 @@
package com.ks.lucky.service.impl.remote;
import com.ks.lib.common.exception.ParamsException;
import com.ks.lucky.exception.LuckyActivityException;
import com.ks.lucky.exception.LuckyActivityJoinAssistException;
import com.ks.lucky.mapper.LuckyActivityJoinAssistMapper;
import com.ks.lucky.mapper.LuckyActivityJoinRecordMapper;
import com.ks.lucky.mapper.LuckyActivityMapper;
import com.ks.lucky.pojo.DO.LuckyActivity;
import com.ks.lucky.pojo.DO.LuckyActivityJoinAssist;
import com.ks.lucky.pojo.DO.LuckyActivityJoinRecord;
import com.ks.lucky.pojo.DO.*;
import com.ks.lucky.pojo.DTO.ActivityAssistFriend;
import com.ks.lucky.pojo.DTO.ActivityFriendAssistInfo;
import com.ks.lucky.pojo.DTO.mq.ActivityAssistMsgDTO;
import com.ks.lucky.query.ActivityJoinAssistQuery;
import com.ks.lucky.remote.service.LuckyActivityJoinAssistService;
import com.ks.lucky.service.impl.AppManager;
import com.ks.lucky.service.impl.LuckyActivityJoinManager;
import com.ks.lucky.service.impl.LuckyActivityUserWeightRecordManager;
import com.ks.lucky.util.factory.LuckyActivityUserWeightRecordFactory;
import com.ks.lucky.util.mq.CMQManager;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
@Service(version = "1.0")
@Service(version = "1.0.0")
public class LuckyActivityJoinAssistServiceImpl implements LuckyActivityJoinAssistService {
    @Resource
    private LuckyActivityJoinAssistMapper luckyActivityJoinAssistMapper;
    @Resource
    private AppManager appManager;
    private LuckyActivityUserWeightRecordManager luckyActivityUserWeightRecordManager;
    @Resource
    private LuckyActivityJoinRecordMapper luckyActivityJoinRecordMapper;
@@ -39,9 +45,8 @@
    private LuckyActivityMapper luckyActivityMapper;
    @Transactional(rollbackFor = Exception.class)
    @Validated
    @Override
    public void assist(Long activityId, String appKey, String uid, String targetUid) throws LuckyActivityException, LuckyActivityJoinAssistException {
    public void assist(Long activityId, Long appId, String uid, String targetUid, ActivityJoinAssistEvent eventKey, int weight) throws LuckyActivityException, LuckyActivityJoinAssistException {
        if (uid.equalsIgnoreCase(targetUid)) {
            throw new LuckyActivityJoinAssistException(1, "不能为自己助力");
@@ -57,8 +62,6 @@
        }
        Long appId = appManager.getAppId(appKey);
        LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, targetUid);
        if (record == null) {
@@ -71,6 +74,7 @@
        query.joinId = record.getId();
        query.appId = appId;
        query.uid = uid;
        query.eventKey = eventKey;
        query.start = 0;
        query.count = 1;
        List<LuckyActivityJoinAssist> list = luckyActivityJoinAssistMapper.list(query);
@@ -84,14 +88,63 @@
        assist.setCreateTime(new Date());
        assist.setJoinId(record.getId());
        assist.setUid(uid);
        assist.setWeight(1);
        assist.setWeight(weight);
        assist.setEventKey(eventKey);
        luckyActivityJoinRecordMapper.addWeight(record.getId(), assist.getWeight());
        luckyActivityJoinAssistMapper.insertSelective(assist);
        LuckyActivityUserWeightRecord weightRecord = LuckyActivityUserWeightRecordFactory.createAssist(activityId, appId, targetUid, eventKey, weight);
        try {
            luckyActivityUserWeightRecordManager.addRecord(weightRecord);
        } catch (ParamsException e) {
            throw new LuckyActivityJoinAssistException(1, "添加记录出错");
        }
        //助力消息
        CMQManager.getInstance().publishActivityAssistMsg(new ActivityAssistMsgDTO(activityId, appId, uid, targetUid, true, assist.getCreateTime(),eventKey));
    }
    @Override
    public List<LuckyActivityJoinAssist> getAssistRecordList(Long activityId, String appKey, String uid, int page, int pageSize) {
        Long appId = appManager.getAppId(appKey);
    public boolean isAssisted(@NotNull Long joinId, @NotNull Long appId, @NotEmpty String uid, @NotNull ActivityJoinAssistEvent eventKey) {
        ActivityJoinAssistQuery query = new ActivityJoinAssistQuery();
        query.joinId = joinId;
        query.appId = appId;
        query.uid = uid;
        query.eventKey = eventKey;
        return luckyActivityJoinAssistMapper.count(query) > 0;
    }
    @Override
    public LuckyActivityJoinAssist getRecord(Long joinId, Long activityId, @NotNull Long appId, @NotEmpty String uid, @NotNull ActivityJoinAssistEvent eventKey) {
        if (joinId != null) {
            ActivityJoinAssistQuery query = new ActivityJoinAssistQuery();
            query.joinId = joinId;
            query.appId = appId;
            query.uid = uid;
            query.eventKey = eventKey;
            query.count = 1;
            List<LuckyActivityJoinAssist> assistList = luckyActivityJoinAssistMapper.list(query);
            if (assistList == null || assistList.size() == 0) {
                return null;
            }
            return assistList.get(0);
        } else {
            ActivityJoinAssistQuery query = new ActivityJoinAssistQuery();
            query.appId = appId;
            query.uid = uid;
            query.eventKey = eventKey;
            query.count = 1;
            List<LuckyActivityJoinAssist> assistList = luckyActivityJoinAssistMapper.listByActivityId(query, activityId);
            if (assistList == null || assistList.size() == 0) {
                return null;
            }
            return assistList.get(0);
        }
    }
    @Override
    public List<LuckyActivityJoinAssist> getAssistRecordList(Long activityId, Long appId, String uid, int page, int pageSize) {
        LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
        if (record == null) {
            return null;
@@ -108,8 +161,7 @@
    }
    @Override
    public long countAssistRecord(Long activityId, String appKey, String uid) {
        Long appId = appManager.getAppId(appKey);
    public long countAssistRecord(Long activityId, Long appId, String uid) {
        LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
        if (record == null) {
            return 0L;
@@ -122,4 +174,32 @@
        return luckyActivityJoinAssistMapper.count(query);
    }
    @Override
    public List<ActivityAssistFriend> getAssistFriendsList(Long appId, String targetUid, int page, int pageSize) {
        return luckyActivityJoinAssistMapper.listAssistFriends(appId, targetUid, (page - 1) * pageSize, pageSize);
    }
    @Override
    public long countAssistFriends(Long appId, String targetUid) {
        return luckyActivityJoinAssistMapper.countAssistFriends(appId, targetUid);
    }
    @Override
    public List<ActivityFriendAssistInfo> getActivityFriendAssistInfoList(Long activityId, Long appId, String uid, int page, int pageSize) {
        LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
        if (record == null) {
            return null;
        }
        return luckyActivityJoinAssistMapper.listActivityFriendAssistInfo(record.getId(), (page - 1) * pageSize, pageSize);
    }
    @Override
    public long countyActivityFriendAssistInfo(Long activityId, Long appId, String uid) {
        LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid);
        if (record == null) {
            return 0L;
        }
        return luckyActivityJoinAssistMapper.countActivityFriendAssistInfo(record.getId());
    }
}