| | |
| | | package com.ks.lucky.service.impl.remote; |
| | | |
| | | 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.query.ActivityJoinAssistQuery; |
| | |
| | | import com.ks.lucky.service.impl.LuckyActivityJoinManager; |
| | | import org.apache.dubbo.config.annotation.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.Date; |
| | |
| | | @Resource |
| | | private LuckyActivityJoinManager luckyActivityJoinManager; |
| | | |
| | | @Resource |
| | | private LuckyActivityMapper luckyActivityMapper; |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Validated |
| | | @Override |
| | | public void assist(Long activityId, String appKey, String uid, String targetUid) throws LuckyActivityJoinAssistException { |
| | | public void assist(Long activityId, String appKey, String uid, String targetUid) throws LuckyActivityException, LuckyActivityJoinAssistException { |
| | | |
| | | if (uid.equalsIgnoreCase(targetUid)) { |
| | | throw new LuckyActivityJoinAssistException(1, "不能为自己助力"); |
| | | } |
| | | |
| | | LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId); |
| | | if (activity == null) { |
| | | throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在"); |
| | | } |
| | | |
| | | if (activity.getState() != LuckyActivity.STATE_STARTED) { |
| | | throw new LuckyActivityException(1, "当前活动不可助力"); |
| | | } |
| | | |
| | | |
| | | Long appId = appManager.getAppId(appKey); |
| | | |
| | | |
| | | LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, uid); |
| | | LuckyActivityJoinRecord record = luckyActivityJoinManager.getRecord(activityId, appId, targetUid); |
| | | |
| | | if (record == null) { |
| | | throw new LuckyActivityJoinAssistException(1, "助力对象尚未参加活动"); |
| | | } |
| | | |
| | | record = luckyActivityJoinRecordMapper.selectByPrimaryKeyForUpdate(record.getId()); |
| | | |
| | | ActivityJoinAssistQuery query = new ActivityJoinAssistQuery(); |
| | | query.joinId = record.getId(); |
| | |
| | | assist.setJoinId(record.getId()); |
| | | assist.setUid(uid); |
| | | assist.setWeight(1); |
| | | luckyActivityJoinAssistMapper.insertSelective(assist); |
| | | |
| | | luckyActivityJoinRecordMapper.addWeight(record.getId(), assist.getWeight()); |
| | | luckyActivityJoinAssistMapper.insertSelective(assist); |
| | | } |
| | | |
| | | @Override |