Browse Source

改善活动查看业务逻辑

hotfix/yujt_opt
zhangyuan 5 years ago
parent
commit
f56908823a
  1. 3
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActivityInfoDao.java
  2. 17
      epdc-cloud-property/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActivityInfoServiceImpl.java
  3. 44
      epdc-cloud-property/src/main/resources/mapper/activity/ActivityInfoDao.xml

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

@ -20,6 +20,7 @@ package com.elink.esua.epdc.modules.activity.dao;
import com.elink.esua.epdc.commons.mybatis.dao.BaseDao;
import com.elink.esua.epdc.dto.activity.form.ActivityDetailFormDTO;
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;
@ -54,7 +55,7 @@ public interface ActivityInfoDao extends BaseDao<ActivityInfoEntity> {
* @author: zhy
* @date: 2020/6/22 10:01
*/
List<ActivityInfoEntity> listActivity(ActivityInfoFormDTO formDto);
List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto);
/**

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

@ -128,22 +128,7 @@ public class ActivityInfoServiceImpl extends BaseServiceImpl<ActivityInfoDao, Ac
public List<ActivityInfoResultDTO> listActivity(ActivityInfoFormDTO formDto) {
// sql limit条件转换
formDto.setPageIndex((formDto.getPageIndex() - NumConstant.ONE) * formDto.getPageSize());
List<ActivityInfoEntity> entityList = baseDao.listActivity(formDto);
// 多一步转换,丰富字段
List<ActivityInfoDTO> dtoList = ConvertUtils.sourceToTarget(entityList, ActivityInfoDTO.class);
dtoList.forEach(dto -> {
// 查询前端样式
SectionCategoryEntity sectionCategoryEntity = sectionCategoryDao.selectByCode(dto.getCategoryCode());
dto.setFrontStyle(sectionCategoryEntity.getFrontStyle());
// 查询当前用户是否参与活动
String signUpFlag = isParticipate(dto.getId(), formDto.getUserId());
dto.setSignUpFlag(signUpFlag);
// 查询活动参与人数
Integer signUpNum = getSignUpNumber(dto.getId());
dto.setSignUpNum(signUpNum);
});
return ConvertUtils.sourceToTarget(dtoList, ActivityInfoResultDTO.class);
return baseDao.listActivity(formDto);
}
@Override

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

@ -65,22 +65,50 @@
</if>
ORDER BY CREATED_TIME DESC
</select>
<select id="listActivity" resultType="com.elink.esua.epdc.modules.activity.entity.ActivityInfoEntity">
<select id="listActivity" resultType="com.elink.esua.epdc.dto.activity.result.ActivityInfoResultDTO">
SELECT
<include refid="Base_Column_List"/>
a.ID,
a.TITLE,
a.HEAD_PIC,
s.FRONT_STYLE,
s. NAME AS CATEGORY_NAME,
a.ACT_START_TIME,
a.ACT_END_TIME,
a.ACT_QUOTA_FLAG,
a.ACT_QUOTA,
SUM(
CASE
WHEN P.ID != NULL THEN
1
ELSE
0
END
) AS SIGN_UP_NUM,
SUM(
CASE
WHEN P.USER_ID = '1' THEN
1
ELSE
0
END
) AS SING_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
WHERE
DEL_FLAG = '0'
AND ACT_STATUS = '1'
a.DEL_FLAG = '0'
AND a.ACT_STATUS = '1'
<if test="activityState == '0' or activityState == 0">
AND ACT_START_TIME &lt;= NOW()
AND ACT_END_TIME &gt;= NOW()
AND a.SIGN_UP_START_TIME &lt;= NOW()
AND a.ACT_END_TIME &gt;= NOW()
</if>
<if test="activityState == '1' or activityState == 1">
AND ACT_END_TIME &lt;= NOW()
AND a.ACT_END_TIME &lt;= NOW()
</if>
ORDER BY CREATED_TIME DESC
GROUP BY
a.id
ORDER BY a.CREATED_TIME DESC
LIMIT #{pageIndex}, #{pageSize};
</select>
<select id="activityDetail" resultType="com.elink.esua.epdc.modules.activity.entity.ActivityInfoEntity">

Loading…
Cancel
Save