Browse Source

活动报名接口修改增加更新报名人数,优化活动列表接口

hotfix/yujt_opt
zhangyuan 5 years ago
parent
commit
ac9ed0373e
  1. 15
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActivityInfoDao.java
  2. 14
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActivityInfoServiceImpl.java
  3. 16
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActivityParticipantServiceImpl.java
  4. 28
      epdc-cloud-property/src/main/resources/mapper/activity/ActivityInfoDao.xml

15
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActivityInfoDao.java

@ -23,6 +23,7 @@ import com.elink.esua.epdc.dto.activity.form.ActivityInfoFormDTO;
import com.elink.esua.epdc.dto.activity.result.ActivityInfoResultDTO; import com.elink.esua.epdc.dto.activity.result.ActivityInfoResultDTO;
import com.elink.esua.epdc.modules.activity.entity.ActivityInfoEntity; import com.elink.esua.epdc.modules.activity.entity.ActivityInfoEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -36,7 +37,6 @@ import java.util.Map;
@Mapper @Mapper
public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> { public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
/** /**
*
* 功能描述: 活动查询 * 功能描述: 活动查询
* *
* @param: Map<String, Object> * @param: Map<String, Object>
@ -47,7 +47,6 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
List<ActivityInfoEntity> selectListOfActivityInfo(Map<String, Object> params); List<ActivityInfoEntity> selectListOfActivityInfo(Map<String, Object> params);
/** /**
*
* 功能描述: 活动查询 * 功能描述: 活动查询
* *
* @param: formDto * @param: formDto
@ -57,9 +56,7 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
*/ */
List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto); List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto);
/** /**
*
* 功能描述: 活动查询 * 功能描述: 活动查询
* *
* @param: formDto * @param: formDto
@ -68,4 +65,14 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
* @date: 2020/6/22 10:01 * @date: 2020/6/22 10:01
*/ */
ActivityInfoEntity activityDetail(ActivityDetailFormDTO formDto); ActivityInfoEntity activityDetail(ActivityDetailFormDTO formDto);
/**
* 功能描述: 活动人数更新
*
* @param: entity
* @return: int
* @author: zhy
* @date: 2020/6/22 10:01
*/
int signUp(@Param("id") String id);
} }

14
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActivityInfoServiceImpl.java

@ -44,7 +44,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -93,9 +92,6 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
@Override @Override
public ActivityInfoDTO get(String id) { public ActivityInfoDTO get(String id) {
ActivityInfoEntity entity = baseDao.selectById(id); ActivityInfoEntity entity = baseDao.selectById(id);
// 查询活动参与人数
Integer signUpNum = getSignUpNumber(id);
entity.setSignUpNum(signUpNum);
return ConvertUtils.sourceToTarget(entity, ActivityInfoDTO.class); return ConvertUtils.sourceToTarget(entity, ActivityInfoDTO.class);
} }
@ -135,9 +131,6 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
public ActivityDetailResultDTO activityDetail(ActivityDetailFormDTO formDto) { public ActivityDetailResultDTO activityDetail(ActivityDetailFormDTO formDto) {
ActivityInfoEntity entity = baseDao.activityDetail(formDto); ActivityInfoEntity entity = baseDao.activityDetail(formDto);
ActivityDetailResultDTO dto = ConvertUtils.sourceToTarget(entity, ActivityDetailResultDTO.class); ActivityDetailResultDTO dto = ConvertUtils.sourceToTarget(entity, ActivityDetailResultDTO.class);
// 查询活动参与人数
Integer signUpNum = getSignUpNumber(dto.getId());
dto.setSignUpNum(signUpNum);
// 查询当前用户是否参与活动 // 查询当前用户是否参与活动
String signUpFlag = isParticipate(formDto.getActivityId(), formDto.getUserId()); String signUpFlag = isParticipate(formDto.getActivityId(), formDto.getUserId());
dto.setSignUpFlag(signUpFlag); dto.setSignUpFlag(signUpFlag);
@ -150,11 +143,4 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
return entity != null ? NumConstant.ZERO_STR : NumConstant.ONE_STR; return entity != null ? NumConstant.ZERO_STR : NumConstant.ONE_STR;
} }
private Integer getSignUpNumber(String activityId) {
// 查询活动参与人数
Map<String, Object> params = new HashMap<>(1);
params.put("id", activityId);
List<ActivityParticipantEntity> activityParticipantNum = activityParticipantDao.selectListOfActivityParticipant(params);
return activityParticipantNum.size();
}
} }

16
epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActivityParticipantServiceImpl.java

@ -21,12 +21,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl; import com.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
import com.elink.esua.epdc.commons.tools.constant.FieldConstant; import com.elink.esua.epdc.commons.tools.constant.FieldConstant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils; import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils;
import com.elink.esua.epdc.dto.UserDTO; import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.activity.ActivityParticipantDTO; import com.elink.esua.epdc.dto.activity.ActivityParticipantDTO;
import com.elink.esua.epdc.dto.activity.form.ActivityParticipantFormDTO; import com.elink.esua.epdc.dto.activity.form.ActivityParticipantFormDTO;
import com.elink.esua.epdc.modules.activity.dao.ActivityInfoDao;
import com.elink.esua.epdc.modules.activity.dao.ActivityParticipantDao; import com.elink.esua.epdc.modules.activity.dao.ActivityParticipantDao;
import com.elink.esua.epdc.modules.activity.entity.ActivityParticipantEntity; import com.elink.esua.epdc.modules.activity.entity.ActivityParticipantEntity;
import com.elink.esua.epdc.modules.activity.redis.ActivityParticipantRedis; import com.elink.esua.epdc.modules.activity.redis.ActivityParticipantRedis;
@ -56,6 +58,9 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart
@Autowired @Autowired
private UserFeignClient userFeignClient; private UserFeignClient userFeignClient;
@Autowired
ActivityInfoDao activityInfoDao;
@Override @Override
public PageData<ActivityParticipantDTO> page(Map<String, Object> params) { public PageData<ActivityParticipantDTO> page(Map<String, Object> params) {
IPage<ActivityParticipantEntity> page = getPage(params); IPage<ActivityParticipantEntity> page = getPage(params);
@ -96,12 +101,23 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void signUp(ActivityParticipantFormDTO dto) { public void signUp(ActivityParticipantFormDTO dto) {
ActivityParticipantEntity user = baseDao.selectParticipant(dto.getActId(), dto.getUserId());
// 先判断用户是否已报名,已报名则直接正常返回。
if (user != null) {
return;
}
ActivityParticipantEntity entity = ConvertUtils.sourceToTarget(dto, ActivityParticipantEntity.class); ActivityParticipantEntity entity = ConvertUtils.sourceToTarget(dto, ActivityParticipantEntity.class);
UserDTO userDto = userFeignClient.getUserInfoById(dto.getUserId()).getData(); UserDTO userDto = userFeignClient.getUserInfoById(dto.getUserId()).getData();
if (userDto == null) {
throw new RenException("无法获取用户信息");
}
entity.setPartyFlag(userDto.getPartyFlag()); entity.setPartyFlag(userDto.getPartyFlag());
entity.setIdentityNo(userDto.getIdentityNo()); entity.setIdentityNo(userDto.getIdentityNo());
entity.setAge(getAge(userDto.getIdentityNo())); entity.setAge(getAge(userDto.getIdentityNo()));
// 写入报名表
insert(entity); insert(entity);
// 活动表已报名人数字段 同步修改
activityInfoDao.signUp(dto.getActId());
} }
@Override @Override

28
epdc-cloud-property/src/main/resources/mapper/activity/ActivityInfoDao.xml

@ -76,32 +76,27 @@
a.ACT_END_TIME, a.ACT_END_TIME,
a.ACT_QUOTA_FLAG, a.ACT_QUOTA_FLAG,
a.ACT_QUOTA, a.ACT_QUOTA,
SUM( a.SIGN_UP_NUM,
(
CASE CASE
WHEN P.ID != NULL THEN WHEN p.id IS NULL THEN
1 '1'
ELSE ELSE
0 '0'
END END
) AS SIGN_UP_NUM, ) AS SIGN_UP_FLAG
SUM(
CASE
WHEN P.USER_ID = '1' THEN
1
ELSE
0
END
) AS SING_UP_FLAG
FROM FROM
epdc_activity_info a epdc_activity_info a
LEFT JOIN epdc_section_category s ON a.CATEGORY_CODE = s. CODE LEFT JOIN epdc_section_category s ON a.CATEGORY_CODE = s. CODE
LEFT JOIN epdc_activity_participant p ON a.ID = p.ACT_ID LEFT JOIN epdc_activity_participant p ON a.ID = p.ACT_ID
AND p.USER_ID = #{userId}
WHERE WHERE
a.DEL_FLAG = '0' a.DEL_FLAG = '0'
AND a.ACT_STATUS = '1' AND a.ACT_STATUS = '1'
<if test="activityState == '0' or activityState == 0"> <if test="activityState == '0' or activityState == 0">
AND a.SIGN_UP_START_TIME &lt;= NOW() AND a.SIGN_UP_START_TIME &lt;= NOW()
AND a.ACT_END_TIME &gt;= NOW() AND a.ACT_END_TIME &gt;= NOW()
AND a.PUBLISH_TIME &lt;= NOW()
</if> </if>
<if test="activityState == '1' or activityState == 1"> <if test="activityState == '1' or activityState == 1">
AND a.ACT_END_TIME &lt;= NOW() AND a.ACT_END_TIME &lt;= NOW()
@ -120,4 +115,11 @@
DEL_FLAG = '0' DEL_FLAG = '0'
AND ID = #{activityId} AND ID = #{activityId}
</select> </select>
<update id="signUp">
UPDATE epdc_activity_info
SET SIGN_UP_NUM = SIGN_UP_NUM + 1
WHERE
DEL_FLAG = '0'
AND ID = #{id}
</update>
</mapper> </mapper>
Loading…
Cancel
Save