记得上下班打卡 | git大法好,push需谨慎

Commit d1fb9e76 authored by Administrator's avatar Administrator

Merge branch 'dev-wyf-sweet' into 'master'

草莓手册修改

See merge request !401
parents 9a5edb2e c9bf02ac
...@@ -25,4 +25,6 @@ public interface ISweetManualService extends IService<SweetManual> { ...@@ -25,4 +25,6 @@ public interface ISweetManualService extends IService<SweetManual> {
//发布与否 //发布与否
ResponseDto<Boolean> changeRelease(String manualId, Integer isRelease); ResponseDto<Boolean> changeRelease(String manualId, Integer isRelease);
ResponseDto<Boolean> changeReleaseManual(String manualId, Integer isReleaseManual);
} }
...@@ -38,6 +38,12 @@ public class SweetManualAppletDto implements Serializable ,Cloneable{ ...@@ -38,6 +38,12 @@ public class SweetManualAppletDto implements Serializable ,Cloneable{
@ApiModelProperty("纬度") @ApiModelProperty("纬度")
private String latitude; private String latitude;
@ApiModelProperty("是否发布手册 0:不发布 1:发布")
private Integer isReleaseManual;
@ApiModelProperty("是否距离今日最近 0:否 1:是")
private Integer isNear;
private static final SweetManualAppletDto obj = new SweetManualAppletDto(); private static final SweetManualAppletDto obj = new SweetManualAppletDto();
public static SweetManualAppletDto getNew() { public static SweetManualAppletDto getNew() {
......
...@@ -31,6 +31,9 @@ public class SweetManualDto implements Serializable ,Cloneable{ ...@@ -31,6 +31,9 @@ public class SweetManualDto implements Serializable ,Cloneable{
@ApiModelProperty("是否发布") @ApiModelProperty("是否发布")
private Integer isRelease; private Integer isRelease;
@ApiModelProperty("是否发布手册 0:不发布 1:发布")
private Integer isReleaseManual;
private static final SweetManualDto obj = new SweetManualDto(); private static final SweetManualDto obj = new SweetManualDto();
public static SweetManualDto getNew() { public static SweetManualDto getNew() {
try { try {
......
...@@ -45,6 +45,11 @@ public class SweetManual implements Serializable,Cloneable { ...@@ -45,6 +45,11 @@ public class SweetManual implements Serializable,Cloneable {
*/ */
private Integer isRelease; private Integer isRelease;
/**
* 0取消手册 1发布手册
*/
private Integer isReleaseManual;
/** /**
* 创建时间 * 创建时间
*/ */
......
...@@ -49,7 +49,8 @@ ...@@ -49,7 +49,8 @@
t.time_sell , t.time_sell ,
t.time_stop, t.time_stop,
IFNULL(sm.status ,0) as 'manualStatus', IFNULL(sm.status ,0) as 'manualStatus',
IFNULL(sm.is_release,0) as 'is_release' IFNULL(sm.is_release,0) as 'is_release',
IFNULL(sm.is_release_manual,0) as 'is_release_manual'
FROM FROM
kylin_performances AS p kylin_performances AS p
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
...@@ -131,7 +132,8 @@ ...@@ -131,7 +132,8 @@
p.time_end, p.time_end,
t1.time_sell, t1.time_sell,
t1.pay_countdown_minute, t1.pay_countdown_minute,
t1.is_member t1.is_member,
sm.is_release_manual
FROM kylin_performances AS p FROM kylin_performances AS p
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
LEFT JOIN kylin_performance_relations AS pr ON p.performances_id = pr.performance_id LEFT JOIN kylin_performance_relations AS pr ON p.performances_id = pr.performance_id
......
...@@ -9,6 +9,7 @@ import com.liquidnet.service.sweet.dto.SweetPerformArtistTimeListDto; ...@@ -9,6 +9,7 @@ import com.liquidnet.service.sweet.dto.SweetPerformArtistTimeListDto;
import com.liquidnet.service.sweet.entity.SweetManualNotify; import com.liquidnet.service.sweet.entity.SweetManualNotify;
import com.liquidnet.service.sweet.entity.SweetManualShop; import com.liquidnet.service.sweet.entity.SweetManualShop;
import com.liquidnet.service.sweet.entity.SweetRichtext; import com.liquidnet.service.sweet.entity.SweetRichtext;
import com.liquidnet.service.sweet.utils.MarkNearestUtils;
import com.liquidnet.service.sweet.utils.ObjectUtil; import com.liquidnet.service.sweet.utils.ObjectUtil;
import com.liquidnet.service.sweet.utils.RedisArDataUtils; import com.liquidnet.service.sweet.utils.RedisArDataUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils; import com.liquidnet.service.sweet.utils.RedisDataUtils;
...@@ -49,9 +50,13 @@ public class SweetAppletController { ...@@ -49,9 +50,13 @@ public class SweetAppletController {
List<SweetManualAppletDto> vo = ObjectUtil.getSweetManualAppletDtoList(); List<SweetManualAppletDto> vo = ObjectUtil.getSweetManualAppletDtoList();
for (SweetManualAppletDto item : dto) { for (SweetManualAppletDto item : dto) {
if (item.getTitle().contains(name)) { if (item.getTitle().contains(name)) {
if (item.getIsReleaseManual() == null) {
item.setIsReleaseManual(0);
}
vo.add(item); vo.add(item);
} }
} }
MarkNearestUtils.markNearestPerformance(vo);
return ResponseDto.success(vo); return ResponseDto.success(vo);
} }
......
...@@ -4,9 +4,7 @@ package com.liquidnet.service.sweet.controller; ...@@ -4,9 +4,7 @@ package com.liquidnet.service.sweet.controller;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualDto; import com.liquidnet.service.sweet.dto.SweetManualDto;
import com.liquidnet.service.sweet.entity.SweetStage;
import com.liquidnet.service.sweet.service.ISweetManualService; import com.liquidnet.service.sweet.service.ISweetManualService;
import com.liquidnet.service.sweet.service.ISweetManualSortService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
...@@ -77,4 +75,16 @@ public class SweetManualController { ...@@ -77,4 +75,16 @@ public class SweetManualController {
return sweetManualService.changeStatus(manualId, performancesId, status); return sweetManualService.changeStatus(manualId, performancesId, status);
} }
@PostMapping("changeReleaseManual")
@ApiOperation("修改是否发布手册")
@ApiImplicitParams({
@ApiImplicitParam(type = "query", dataType = "String", name = "manualId", value = "电子手册id", required = true),
@ApiImplicitParam(type = "query", dataType = "Integer", name = "isReleaseManual", value = "是否发布手册", required = true),
})
public ResponseDto<Boolean> changeReleaseManual(@RequestParam(value = "manualId") String manualId,
@RequestParam(value = "isReleaseManual") Integer isReleaseManual) {
return sweetManualService.changeReleaseManual(manualId, isReleaseManual);
}
} }
package com.liquidnet.service.sweet.service.impl; package com.liquidnet.service.sweet.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.liquidnet.commons.lang.util.BeanUtil;
import com.liquidnet.commons.lang.util.CollectionUtil; import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.DateUtil; import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator; import com.liquidnet.commons.lang.util.IDGenerator;
...@@ -11,11 +11,8 @@ import com.liquidnet.service.base.ErrorMapping; ...@@ -11,11 +11,8 @@ import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.sweet.dto.SweetManualDto; import com.liquidnet.service.sweet.dto.SweetManualDto;
import com.liquidnet.service.sweet.entity.SweetManual; import com.liquidnet.service.sweet.entity.SweetManual;
import com.liquidnet.service.sweet.entity.SweetStage;
import com.liquidnet.service.sweet.mapper.SweetManualMapper; import com.liquidnet.service.sweet.mapper.SweetManualMapper;
import com.liquidnet.service.sweet.mapper.SweetStageMapper;
import com.liquidnet.service.sweet.service.ISweetManualService; import com.liquidnet.service.sweet.service.ISweetManualService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liquidnet.service.sweet.utils.RedisDataUtils; import com.liquidnet.service.sweet.utils.RedisDataUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -128,4 +125,18 @@ public class SweetManualServiceImpl extends ServiceImpl<SweetManualMapper, Sweet ...@@ -128,4 +125,18 @@ public class SweetManualServiceImpl extends ServiceImpl<SweetManualMapper, Sweet
redisDataUtils.deletePushListRedisData(); redisDataUtils.deletePushListRedisData();
return ResponseDto.success(); return ResponseDto.success();
} }
@Override
public ResponseDto<Boolean> changeReleaseManual(String manualId, Integer isReleaseManual) {
try {
SweetManual sweetManual = SweetManual.getNew();
sweetManual.setIsReleaseManual(isReleaseManual);
sweetManual.setUpdatedAt(LocalDateTime.now());
sweetManualMapper.update(sweetManual, Wrappers.lambdaUpdate(SweetManual.class).eq(SweetManual::getManualId, manualId));
} catch (Exception e) {
return ResponseDto.failure();
}
redisDataUtils.deletePushListRedisData();
return ResponseDto.success();
}
} }
package com.liquidnet.service.sweet.utils;
import com.liquidnet.service.sweet.dto.SweetManualAppletDto;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
public class MarkNearestUtils {
private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
static {
// 如果 timeStart 是北京时间,设置时区
DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("GMT+8"));
}
/**
* 1. 设置列表中距离当前时间最近的演出 isNear = 1,其余为 0
* 2. 按timeStart 降序排列
*
* @param list 演出手册 DTO 列表
*/
public static void markNearestPerformance(List<SweetManualAppletDto> list) {
if (list == null || list.isEmpty()) {
return;
}
Date now = new Date();
SweetManualAppletDto nearest = null;
Date nearestTime = null;
for (SweetManualAppletDto dto : list) {
if (dto.getTimeStart() == null || dto.getTimeStart().trim().isEmpty()) {
dto.setIsNear(0);
continue;
}
try {
Date startTime = DATE_FORMAT.parse(dto.getTimeStart());
// 可选:如果只考虑未来或正在进行的演出,可取消下面的注释
if (startTime.before(now)) continue;
if (nearestTime == null || Math.abs(startTime.getTime() - now.getTime()) <
Math.abs(nearestTime.getTime() - now.getTime())) {
nearestTime = startTime;
nearest = dto;
}
} catch (ParseException e) {
// 解析失败,设为 0
dto.setIsNear(0);
}
}
// 先将所有 isNear 设为 0
for (SweetManualAppletDto dto : list) {
dto.setIsNear(0);
}
// 将最近的那个设为 1
if (nearest != null) {
nearest.setIsNear(1);
}
// 第二步:按 timeStart 降序排序(最新的在前)
list.sort((a, b) -> {
if (a.getTimeStart() == null && b.getTimeStart() == null) return 0;
if (a.getTimeStart() == null) return 1;
if (b.getTimeStart() == null) return -1;
try {
Date dateA = DATE_FORMAT.parse(a.getTimeStart());
Date dateB = DATE_FORMAT.parse(b.getTimeStart());
return dateB.compareTo(dateA); // 降序:b.compareTo(a)
} catch (ParseException e) {
// 解析失败,保持原顺序(或可抛出异常)
return 0;
}
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment