首页图文历史版本保存修改
This commit is contained in:
parent
10533bdd7f
commit
ead7236990
|
|
@ -52,6 +52,11 @@ public class AdvertisementListVO {
|
|||
*/
|
||||
private List<AdvertisementItemVO> items;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private String version;
|
||||
|
||||
public List<AdvertisementItemVO> getItems(){
|
||||
if (StrUtil.isBlank(content)){
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -51,6 +51,11 @@ public class Advertisement implements Serializable {
|
|||
*/
|
||||
private String content;
|
||||
|
||||
/**
|
||||
* 版本号
|
||||
*/
|
||||
private String version;
|
||||
|
||||
/**
|
||||
* 是否启用
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -11,13 +11,14 @@ import com.nflg.wms.common.pojo.vo.AdvertisementItemVO;
|
|||
import com.nflg.wms.common.pojo.vo.AdvertisementListVO;
|
||||
import com.nflg.wms.common.pojo.vo.AdvertisementVO;
|
||||
import com.nflg.wms.common.util.UserUtil;
|
||||
import com.nflg.wms.common.util.VUtil;
|
||||
import com.nflg.wms.repository.entity.Advertisement;
|
||||
import com.nflg.wms.repository.mapper.AdvertisementMapper;
|
||||
import com.nflg.wms.repository.service.IAdvertisementService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
|
|
@ -43,33 +44,30 @@ public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, A
|
|||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void save(AdvertisementSaveRequest request) {
|
||||
if (Objects.isNull(request.getId())) {
|
||||
VUtil.trueThrowBusinessError(lambdaQuery().eq(Advertisement::getType, request.getType())
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
String userName = UserUtil.getUserName();
|
||||
String version = generateNextVersion(request.getType(), request.getPosition());
|
||||
|
||||
lambdaUpdate()
|
||||
.set(Advertisement::getEnable, false)
|
||||
.set(Advertisement::getUpdateBy, userName)
|
||||
.set(Advertisement::getUpdateTime, now)
|
||||
.eq(Advertisement::getType, request.getType())
|
||||
.eq(Advertisement::getPosition, request.getPosition())
|
||||
.exists())
|
||||
.throwMessage("已存在相同位置的广告");
|
||||
.update();
|
||||
|
||||
Advertisement ad = new Advertisement()
|
||||
.setType(request.getType())
|
||||
.setPosition(request.getPosition())
|
||||
.setInterval(request.getInterval())
|
||||
.setContent(JSONUtil.toJsonStr(request.getItems()))
|
||||
.setEnable(request.getEnable())
|
||||
.setCreateBy(UserUtil.getUserName())
|
||||
.setCreateTime(LocalDateTime.now());
|
||||
.setVersion(version)
|
||||
.setEnable(true)
|
||||
.setCreateBy(userName)
|
||||
.setCreateTime(now);
|
||||
save(ad);
|
||||
} else {
|
||||
Advertisement ad = new Advertisement()
|
||||
.setId(request.getId())
|
||||
.setType(request.getType())
|
||||
.setPosition(request.getPosition())
|
||||
.setInterval(request.getInterval())
|
||||
.setContent(JSONUtil.toJsonStr(request.getItems()))
|
||||
.setEnable(request.getEnable())
|
||||
.setUpdateBy(UserUtil.getUserName())
|
||||
.setUpdateTime(LocalDateTime.now());
|
||||
updateById(ad);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -86,4 +84,19 @@ public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, A
|
|||
.in(Advertisement::getId, request.getIds())
|
||||
.update();
|
||||
}
|
||||
|
||||
private String generateNextVersion(Long type, Long position) {
|
||||
List<Advertisement> advertisements = lambdaQuery()
|
||||
.select(Advertisement::getVersion)
|
||||
.eq(Advertisement::getType, type)
|
||||
.eq(Advertisement::getPosition, position)
|
||||
.list();
|
||||
int maxVersion = advertisements.stream()
|
||||
.map(Advertisement::getVersion)
|
||||
.filter(Objects::nonNull)
|
||||
.mapToInt(version -> Integer.parseInt(version.substring(1)))
|
||||
.max()
|
||||
.orElse(0);
|
||||
return "v" + (maxVersion + 1);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
INNER JOIN dictionary_item di1 ON ad.type = di1.id
|
||||
INNER JOIN dictionary_item di2 ON ad.position = di2.id
|
||||
where di1.code = #{type} AND di2.code=#{position} and ad.enable
|
||||
ORDER BY CAST(SUBSTRING(ad.version, 2) AS UNSIGNED) DESC
|
||||
LIMIT 1
|
||||
</select>
|
||||
|
||||
<select id="getList" resultType="com.nflg.wms.common.pojo.vo.AdvertisementListVO">
|
||||
|
|
|
|||
Loading…
Reference in New Issue