1.修复活动发起者时间币没有扣除

2.修复管理后台活动管理参与者列表显示重复用户
master
pan 4 years ago
parent ed8d5c0a4a
commit 09741ca25e
  1. 3
      src/main/java/com/share/help/dao/ActivityMapper.java
  2. 34
      src/main/java/com/share/help/res/ActivitySendUser.java
  3. 26
      src/main/java/com/share/help/service/ActivityService.java
  4. 8
      src/main/resources/mapping/ActivityMapper.xml
  5. 8
      src/test/java/com/share/help/HelpApplicationTests.java

@ -6,6 +6,7 @@ import com.share.help.entity.custorm.ActivitySimple;
import com.share.help.entity.custorm.FindActivityRes; import com.share.help.entity.custorm.FindActivityRes;
import com.share.help.entity.custorm.SeekHelpSum; import com.share.help.entity.custorm.SeekHelpSum;
import com.share.help.form.manager.ActiveUserRes; import com.share.help.form.manager.ActiveUserRes;
import com.share.help.res.ActivitySendUser;
import com.share.help.res.ManagerActivityRes; import com.share.help.res.ManagerActivityRes;
import com.share.help.res.Page; import com.share.help.res.Page;
import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Delete;
@ -80,4 +81,6 @@ public interface ActivityMapper {
//查询活跃用户 //查询活跃用户
List<ActiveUserRes> queryActiveUser(@Param("userId") String userId,@Param("serviceAddress") String serviceAddress); List<ActiveUserRes> queryActiveUser(@Param("userId") String userId,@Param("serviceAddress") String serviceAddress);
//查询活动举办者信息
ActivitySendUser querySendUser(@Param("activityId") Long activityId);
} }

@ -0,0 +1,34 @@
package com.share.help.res;
//查询活动举办人信息
public class ActivitySendUser {
private Long activityId;
private String userId;
private Integer timeScore;
public Long getActivityId() {
return activityId;
}
public void setActivityId(Long activityId) {
this.activityId = activityId;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public Integer getTimeScore() {
return timeScore;
}
public void setTimeScore(Integer timeScore) {
this.timeScore = timeScore;
}
}

@ -12,10 +12,7 @@ import com.share.help.entity.UserEntity;
import com.share.help.entity.custorm.*; import com.share.help.entity.custorm.*;
import com.share.help.form.*; import com.share.help.form.*;
import com.share.help.form.manager.ActiveUserRes; import com.share.help.form.manager.ActiveUserRes;
import com.share.help.res.DefaultRes; import com.share.help.res.*;
import com.share.help.res.JSONResponse;
import com.share.help.res.Page;
import com.share.help.res.Result;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -171,7 +168,7 @@ public class ActivityService{
@Transactional @Transactional
public JSONResponse<DefaultRes,Integer> apply(UpdateActivityForm activityForm) throws RuntimeException{ public JSONResponse<DefaultRes,Integer> apply(UpdateActivityForm activityForm) throws RuntimeException{
//记录用户完成活动返回的时间币 //记录用户完成活动返回的时间币
Integer timeScore = null; int resultScore=0;
// 保存到活动历史记录 // 保存到活动历史记录
ActivityHistoryEntity activityEntity=new ActivityHistoryEntity(); ActivityHistoryEntity activityEntity=new ActivityHistoryEntity();
@ -181,16 +178,25 @@ public class ActivityService{
activityEntity.setActivityStatus(activityForm.getActivityStatus().name()); activityEntity.setActivityStatus(activityForm.getActivityStatus().name());
//完成活动结算时间币 //完成活动结算时间币
if(ActivityStatus.complete==activityForm.getActivityStatus()){ if(ActivityStatus.complete==activityForm.getActivityStatus()){
timeScore=activityHistoryMapper.getTimeScore(activityForm.getActivityId(),activityForm.getUserId()); int timeScore=activityHistoryMapper.getTimeScore(activityForm.getActivityId(),activityForm.getUserId());
logger.info("奖励时间币:"+timeScore); logger.info("奖励用户"+activityForm.getUserId()+"时间币:"+timeScore);
activityEntity.setTimeScore(timeScore); activityEntity.setTimeScore(timeScore);
UserEntity userEntity=userMapper.findOne(activityEntity.getUserId()); UserEntity userEntity=userMapper.findOne(activityEntity.getUserId());
timeScore+=userEntity.getTimeScore(); resultScore=timeScore+userEntity.getTimeScore();
userEntity.setTimeScore(timeScore); userEntity.setTimeScore(resultScore);
if(!userMapper.update(userEntity)){ if(!userMapper.update(userEntity)){
throw new RuntimeException("结算时间币失败"); throw new RuntimeException("结算时间币失败");
} }
ActivitySendUser activitySendUser=activityMapper.querySendUser(activityForm.getActivityId());
UserEntity sendUser=userMapper.findOne(activitySendUser.getUserId());
logger.info("扣除用户"+activitySendUser.getUserId()+"时间币"+timeScore);
sendUser.setTimeScore(sendUser.getTimeScore()-timeScore);
if(!userMapper.update(sendUser)){
throw new RuntimeException("扣除时间币失败");
}
} }
if(!activityHistoryMapper.insert(activityEntity)){ if(!activityHistoryMapper.insert(activityEntity)){
throw new RuntimeException("保存活动历史记录失败"); throw new RuntimeException("保存活动历史记录失败");
@ -210,7 +216,7 @@ public class ActivityService{
if(!leaveWordMapper.insert(leaveWordEntity)){ if(!leaveWordMapper.insert(leaveWordEntity)){
throw new RuntimeException("保存留言信息失败"); throw new RuntimeException("保存留言信息失败");
} }
return new JSONResponse<DefaultRes,Integer>(DefaultRes.ok,Result.OK).setBody(timeScore); return new JSONResponse<DefaultRes,Integer>(DefaultRes.ok,Result.OK).setBody(resultScore);
} }
/** /**

@ -80,7 +80,7 @@
activity.activity_start_time as activityStartTime, activity.activity_start_time as activityStartTime,
activity.activity_end_time as activityEndTime, activity.activity_end_time as activityEndTime,
activity.user_id as seekHelpUser, activity.user_id as seekHelpUser,
group_concat(activity_history.user_id) as helpUser group_concat(distinct activity_history.user_id) as helpUser
from activity_history,activity where activity.activity_id=activity_history.activity_id group by activity.activity_id from activity_history,activity where activity.activity_id=activity_history.activity_id group by activity.activity_id
union all union all
select activity_id as activityId, select activity_id as activityId,
@ -185,4 +185,10 @@ limit #{start},#{count}
limit 0,3 limit 0,3
</select> </select>
<select id="querySendUser" resultType="com.share.help.res.ActivitySendUser">
select activity.activity_id as activityId, user.user_id as userId, user.time_score as timeScore
from activity,
user
where activity.activity_id =#{activityId} and activity.user_id=user.user_id
</select>
</mapper> </mapper>

@ -7,6 +7,7 @@ import com.share.help.entity.UserEntity;
import com.share.help.entity.custorm.*; import com.share.help.entity.custorm.*;
import com.share.help.form.ActivityStatus; import com.share.help.form.ActivityStatus;
import com.share.help.form.manager.ActiveUserRes; import com.share.help.form.manager.ActiveUserRes;
import com.share.help.res.ActivitySendUser;
import com.share.help.res.ManagerActivityRes; import com.share.help.res.ManagerActivityRes;
import com.share.help.res.Page; import com.share.help.res.Page;
import com.share.help.res.TimeScore; import com.share.help.res.TimeScore;
@ -331,4 +332,11 @@ class HelpApplicationTests {
TimeScore timeScore= activityHistoryMapper.queryActivityHistory("123",65L); TimeScore timeScore= activityHistoryMapper.queryActivityHistory("123",65L);
Assertions.assertEquals(24, (int) timeScore.getTimeScore()); Assertions.assertEquals(24, (int) timeScore.getTimeScore());
} }
//测试查询时间币
@Test
public void testQuerySendUser(){
ActivitySendUser activitySendUser=activityMapper.querySendUser(63L);
Assertions.assertEquals(20,activitySendUser.getTimeScore());
}
} }

Loading…
Cancel
Save