Browse Source

banner图功能优化

feature/dangjian
liuchuang 6 years ago
parent
commit
a240d6e011
  1. 10
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/ActInfoController.java
  2. 22
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/dao/ActBannerDao.java
  3. 22
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActBannerService.java
  4. 9
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java
  5. 14
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActBannerServiceImpl.java
  6. 101
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/impl/ActInfoServiceImpl.java
  7. 16
      esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActBannerDao.xml

10
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/controller/ActInfoController.java

@ -101,6 +101,16 @@ public class ActInfoController {
actInfoService.update(dto);
return new Result();
}
/**
*
* 取消活动
*
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2020/2/6 21:18
*/
@PostMapping("cancel")
public Result cancel(@RequestBody ActInfoFormDTO dto){
//效验数据

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

@ -44,4 +44,26 @@ public interface ActBannerDao extends BaseDao<ActBannerEntity> {
* @date 2020-02-06
*/
ActBannerDTO getBannerInfo(String actId);
/**
*
* 下架第十条及以后的banner数据
*
* @params []
* @return void
* @author liuchuang
* @since 2020/2/6 21:05
*/
void takeOffOtherBanners();
/**
*
* 根据活动ID下架banner
*
* @params [actId]
* @return void
* @author liuchuang
* @since 2020/2/6 21:24
*/
void updateBannerByActId(String actId);
}

22
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActBannerService.java

@ -108,4 +108,26 @@ public interface ActBannerService extends BaseService<ActBannerEntity> {
* @date 2020-02-06
*/
ActBannerDTO getBannerInfo(String actId);
/**
*
* 下架第十条及以后的banner数据
*
* @params []
* @return void
* @author liuchuang
* @since 2020/2/6 20:50
*/
void takeOffOtherBanners();
/**
*
* 根据活动ID下架banner
*
* @params [actId]
* @return void
* @author liuchuang
* @since 2020/2/6 21:22
*/
void takeOffBannerByActId(String actId);
}

9
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/java/com/elink/esua/epdc/modules/activity/service/ActInfoService.java

@ -147,6 +147,15 @@ public interface ActInfoService extends BaseService<ActInfoEntity> {
*/
void update(ActInfoDTO dto);
/**
*
* 取消活动
*
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result
* @author liuchuang
* @since 2020/2/6 21:18
*/
Result cancel(ActInfoFormDTO dto);
/**

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

@ -102,6 +102,8 @@ public class ActBannerServiceImpl extends BaseServiceImpl<ActBannerDao, ActBanne
updateEntity.setStatusTime(new Date());
// 上架
if (ActStateConstant.ACT_BANNER_STATUS_UNDERCARRIAGE.equals(entity.getStatus())) {
// 上架前banner表处理
this.takeOffOtherBanners();
updateEntity.setStatus(ActStateConstant.ACT_BANNER_STATUS_GROUNDING);
updateById(updateEntity);
// 下架
@ -139,4 +141,16 @@ public class ActBannerServiceImpl extends BaseServiceImpl<ActBannerDao, ActBanne
return bannerDto;
}
@Override
@Transactional(rollbackFor = Exception.class)
public void takeOffOtherBanners() {
// 下架第十条及以后的banner数据
baseDao.takeOffOtherBanners();
}
@Override
public void takeOffBannerByActId(String actId) {
baseDao.updateBannerByActId(actId);
}
}

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

@ -124,40 +124,17 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
@Override
@Transactional(rollbackFor = Exception.class)
public Result save(ActInfoDTO dto) {
ActInfoEntity entity = ConvertUtils.sourceToTarget(dto, ActInfoEntity.class);
insert(entity);
//保存banner信息
ActBannerDTO bannerDto = new ActBannerDTO();
bannerDto.setActId(entity.getId());
bannerDto.setTitle(dto.getTitle());
bannerDto.setBannerImg(dto.getBannerUrl());
bannerDto.setBannerType("0");
bannerDto.setBannerPosition("0");
bannerDto.setUrl("");
bannerDto.setStatus(dto.getIsBanner());
bannerDto.setStatusTime(new Date());
bannerDto.setDeptId(dto.getDeptId());
ValidatorUtils.validateEntity(bannerDto, AddGroup.class, DefaultGroup.class);
actBannerService.save(bannerDto);
ScheduleJobDTO jobDTO = new ScheduleJobDTO();
jobDTO.setBeanName("AutoAuditActUserTask");
jobDTO.setParams(entity.getId());
jobDTO.setStatus(1);
String cron = "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(dto.getActStartTime());
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hours = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND);
System.out.println(dto.getActStartTime());
if (insert(entity)) {
if (NumConstant.ONE_STR.equals(dto.getIsBanner())) {
// 保存到banner
this.saveActInfoToBanner(entity.getId(), dto);
}
// 创建定时任务(活动开始后将未审核的报名人员自动置为审核通过或不通过)
return this.saveActToScheduleJob(entity.getId(), dto.getActStartTime());
}
cron = second +" "+ minutes +" "+ hours + " " + day + " " + month + " ? " + year + "-" + year;
jobDTO.setCronExpression(cron);
return jobFeignClient.save(jobDTO);
return new Result().error();
}
@Override
@ -194,6 +171,7 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
List<ActInfoAppResultDTO> data = baseDao.listItemsByApp(formDto);
return new Result<List<ActInfoAppResultDTO>>().ok(data);
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result cancel(ActInfoFormDTO dto) {
@ -208,6 +186,9 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
updateEntity.setCancelReason(dto.getCancelReason());
updateEntity.setActStatus(ActStateConstant.ACT_INFO_STATUS_UNDERCARRIAGE);
updateById(updateEntity);
// 下架banner
actBannerService.takeOffBannerByActId(dto.getId());
return new Result();
}
@ -396,4 +377,60 @@ public class ActInfoServiceImpl extends BaseServiceImpl<ActInfoDao, ActInfoEntit
ActBannerEntity bannerEntity = ConvertUtils.sourceToTarget(bannerDto, ActBannerEntity.class);
actBannerService.updateById(bannerEntity);
}
/**
*
* 活动保存到banner
*
* @params [entity]
* @return void
* @author liuchuang
* @since 2020/2/6 20:44
*/
private void saveActInfoToBanner(String actId, ActInfoDTO dto) {
// banner表处理:banner图限制最多10个,超出10个再发布就把最早顶下去
actBannerService.takeOffOtherBanners();
ActBannerDTO bannerDto = new ActBannerDTO();
bannerDto.setActId(actId);
bannerDto.setTitle(dto.getTitle());
bannerDto.setBannerImg(dto.getBannerUrl());
bannerDto.setBannerType(NumConstant.ONE_STR);
bannerDto.setBannerPosition(NumConstant.ONE_STR);
bannerDto.setUrl("");
bannerDto.setStatus(dto.getIsBanner());
bannerDto.setStatusTime(new Date());
bannerDto.setDeptId(dto.getDeptId());
ValidatorUtils.validateEntity(bannerDto, AddGroup.class, DefaultGroup.class);
actBannerService.save(bannerDto);
}
/**
*
* 创建定时任务活动开始后将未审核的报名人员自动置为审核通过或不通过
*
* @params [actId, actStartTime]
* @return Result
* @author liuchuang
* @since 2020/2/6 21:10
*/
private Result saveActToScheduleJob(String actId, Date actStartTime) {
ScheduleJobDTO jobDTO = new ScheduleJobDTO();
jobDTO.setBeanName("AutoAuditActUserTask");
jobDTO.setParams(actId);
jobDTO.setStatus(NumConstant.ONE);
String cron = "";
Calendar calendar = Calendar.getInstance();
calendar.setTime(actStartTime);
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int day = calendar.get(Calendar.DATE);
int hours = calendar.get(Calendar.HOUR_OF_DAY);
int minutes = calendar.get(Calendar.MINUTE);
int second=calendar.get(Calendar.SECOND);
cron = second +" "+ minutes +" "+ hours + " " + day + " " + month + " ? " + year + "-" + year;
jobDTO.setCronExpression(cron);
return jobFeignClient.save(jobDTO);
}
}

16
esua-epdc/epdc-module/epdc-heart/epdc-heart-server/src/main/resources/mapper/activity/ActBannerDao.xml

@ -64,4 +64,20 @@
</select>
<update id="takeOffOtherBanners">
UPDATE epdc_act_banner
SET `STATUS` = '0'
WHERE
ID NOT IN (
SELECT
t.ID
FROM
( SELECT ID FROM epdc_act_banner WHERE `STATUS` = '1' AND DEL_FLAG = '0' ORDER BY CREATED_TIME DESC LIMIT 9 ) AS t
)
</update>
<update id="updateBannerByActId">
UPDATE epdc_act_banner SET `STATUS` = '0' WHERE ACT_ID = #{actId}
</update>
</mapper>
Loading…
Cancel
Save