Browse Source

活动确认积分前端对按钮增加防连击,后台增加重复操作校验

feature/syp_points
zhangyongzhangyong 5 years ago
parent
commit
ddc153b1ad
  1. 11
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserClockLogDao.java
  2. 5
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java
  3. 11
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserClockLogDao.xml

11
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActUserClockLogDao.java

@ -54,4 +54,15 @@ public interface ActUserClockLogDao extends BaseDao<ActUserClockLogEntity> {
* @return void
*/
void rejectActClockInfo(@Param("relationId") String relationId);
/**
* 统计 同一个用户对同一活动确认积分的次数
* @param userId
* @param actId
* @return java.lang.Integer
* @Author zhangyong
* @Date 15:06 2020-09-29
**/
Integer countPointsConfirmationTimes(@Param("userId") String userId,
@Param("actId") String actId);
}

5
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActUserClockLogServiceImpl.java

@ -163,6 +163,11 @@ public class ActUserClockLogServiceImpl extends BaseServiceImpl<ActUserClockLogD
@Transactional(rollbackFor = Exception.class)
public Result pointCheck(ActPointCheckFormDTO dto) {
ActUserRelationDTO actUserRelationDTO = actUserRelationService.get(dto.getId());
// 同一个用户对同一活动只能被确认一次积分,如果该用户对该活动已被确认过积分,提示“当前活动已对该用户确认过积分,请勿重复操作”
Integer confirmationTimes = baseDao.countPointsConfirmationTimes(actUserRelationDTO.getUserId(), dto.getActId());
if (NumConstant.ZERO < confirmationTimes){
throw new RenException("当前活动已对该用户确认过积分,请勿重复操作");
}
ActInfoDTO actInfoDTO = actInfoService.get(dto.getActId());
ActUserPointsLogDTO actUserPointsLogDTO = new ActUserPointsLogDTO();
actUserPointsLogDTO.setActUserId(dto.getId());

11
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActUserClockLogDao.xml

@ -81,4 +81,15 @@
UPDATE epdc_act_user_clock_log SET DEL_FLAG = 1,UPDATED_TIME=NOW()
where id=#{relationId}
</update>
<select id="countPointsConfirmationTimes" resultType="java.lang.Integer">
SELECT
COUNT(*) confirmationTimes
FROM epdc_act_user_relation r
LEFT JOIN epdc_act_user_points_log l ON r.ID = l.ACT_USER_ID
WHERE r.DEL_FLAG = '0'
AND l.DEL_FLAG = '0'
AND r.ACT_ID = #{actId}
AND r.USER_ID = #{userId};
</select>
</mapper>

Loading…
Cancel
Save