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. 30
      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.modules.activity.entity.ActivityInfoEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -36,7 +37,6 @@ import java.util.Map;
@Mapper
public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
/**
*
* 功能描述: 活动查询
*
* @param: Map<String, Object>
@ -47,7 +47,6 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
List<ActivityInfoEntity> selectListOfActivityInfo(Map<String, Object> params);
/**
*
* 功能描述: 活动查询
*
* @param: formDto
@ -57,9 +56,7 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
*/
List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto);
/**
*
* 功能描述: 活动查询
*
* @param: formDto
@ -68,4 +65,14 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
* @date: 2020/6/22 10:01
*/
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 java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -93,9 +92,6 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
@Override
public ActivityInfoDTO get(String id) {
ActivityInfoEntity entity = baseDao.selectById(id);
// 查询活动参与人数
Integer signUpNum = getSignUpNumber(id);
entity.setSignUpNum(signUpNum);
return ConvertUtils.sourceToTarget(entity, ActivityInfoDTO.class);
}
@ -135,9 +131,6 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
public ActivityDetailResultDTO activityDetail(ActivityDetailFormDTO formDto) {
ActivityInfoEntity entity = baseDao.activityDetail(formDto);
ActivityDetailResultDTO dto = ConvertUtils.sourceToTarget(entity, ActivityDetailResultDTO.class);
// 查询活动参与人数
Integer signUpNum = getSignUpNumber(dto.getId());
dto.setSignUpNum(signUpNum);
// 查询当前用户是否参与活动
String signUpFlag = isParticipate(formDto.getActivityId(), formDto.getUserId());
dto.setSignUpFlag(signUpFlag);
@ -150,11 +143,4 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
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.elink.esua.epdc.commons.mybatis.service.impl.BaseServiceImpl;
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.utils.ConvertUtils;
import com.elink.esua.epdc.commons.tools.utils.IdentityNoUtils;
import com.elink.esua.epdc.dto.UserDTO;
import com.elink.esua.epdc.dto.activity.ActivityParticipantDTO;
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.entity.ActivityParticipantEntity;
import com.elink.esua.epdc.modules.activity.redis.ActivityParticipantRedis;
@ -56,6 +58,9 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart
@Autowired
private UserFeignClient userFeignClient;
@Autowired
ActivityInfoDao activityInfoDao;
@Override
public PageData<ActivityParticipantDTO> page(Map<String, Object> params) {
IPage<ActivityParticipantEntity> page = getPage(params);
@ -96,12 +101,23 @@ public class ActivityParticipantServiceImpl extends BaseServiceImpl<ActivityPart
@Override
@Transactional(rollbackFor = Exception.class)
public void signUp(ActivityParticipantFormDTO dto) {
ActivityParticipantEntity user = baseDao.selectParticipant(dto.getActId(), dto.getUserId());
// 先判断用户是否已报名,已报名则直接正常返回。
if (user != null) {
return;
}
ActivityParticipantEntity entity = ConvertUtils.sourceToTarget(dto, ActivityParticipantEntity.class);
UserDTO userDto = userFeignClient.getUserInfoById(dto.getUserId()).getData();
if (userDto == null) {
throw new RenException("无法获取用户信息");
}
entity.setPartyFlag(userDto.getPartyFlag());
entity.setIdentityNo(userDto.getIdentityNo());
entity.setAge(getAge(userDto.getIdentityNo()));
// 写入报名表
insert(entity);
// 活动表已报名人数字段 同步修改
activityInfoDao.signUp(dto.getActId());
}
@Override

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

@ -71,37 +71,32 @@
a.TITLE,
a.HEAD_PIC,
s.FRONT_STYLE,
s. NAME AS CATEGORY_NAME,
s.NAME AS CATEGORY_NAME,
a.ACT_START_TIME,
a.ACT_END_TIME,
a.ACT_QUOTA_FLAG,
a.ACT_QUOTA,
SUM(
a.SIGN_UP_NUM,
(
CASE
WHEN P.ID != NULL THEN
1
WHEN p.id IS NULL THEN
'1'
ELSE
0
'0'
END
) AS SIGN_UP_NUM,
SUM(
CASE
WHEN P.USER_ID = '1' THEN
1
ELSE
0
END
) AS SING_UP_FLAG
) AS SIGN_UP_FLAG
FROM
epdc_activity_info a
LEFT JOIN epdc_section_category s ON a.CATEGORY_CODE = s. CODE
LEFT JOIN epdc_activity_participant p ON a.ID = p.ACT_ID
AND p.USER_ID = #{userId}
WHERE
a.DEL_FLAG = '0'
AND a.ACT_STATUS = '1'
<if test="activityState == '0' or activityState == 0">
AND a.SIGN_UP_START_TIME &lt;= NOW()
AND a.ACT_END_TIME &gt;= NOW()
AND a.PUBLISH_TIME &lt;= NOW()
</if>
<if test="activityState == '1' or activityState == 1">
AND a.ACT_END_TIME &lt;= NOW()
@ -120,4 +115,11 @@
DEL_FLAG = '0'
AND ID = #{activityId}
</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>
Loading…
Cancel
Save