首页图文历史版本保存修改
This commit is contained in:
parent
10533bdd7f
commit
ead7236990
|
|
@ -52,6 +52,11 @@ public class AdvertisementListVO {
|
||||||
*/
|
*/
|
||||||
private List<AdvertisementItemVO> items;
|
private List<AdvertisementItemVO> items;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本号
|
||||||
|
*/
|
||||||
|
private String version;
|
||||||
|
|
||||||
public List<AdvertisementItemVO> getItems(){
|
public List<AdvertisementItemVO> getItems(){
|
||||||
if (StrUtil.isBlank(content)){
|
if (StrUtil.isBlank(content)){
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -51,6 +51,11 @@ public class Advertisement implements Serializable {
|
||||||
*/
|
*/
|
||||||
private String content;
|
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.AdvertisementListVO;
|
||||||
import com.nflg.wms.common.pojo.vo.AdvertisementVO;
|
import com.nflg.wms.common.pojo.vo.AdvertisementVO;
|
||||||
import com.nflg.wms.common.util.UserUtil;
|
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.entity.Advertisement;
|
||||||
import com.nflg.wms.repository.mapper.AdvertisementMapper;
|
import com.nflg.wms.repository.mapper.AdvertisementMapper;
|
||||||
import com.nflg.wms.repository.service.IAdvertisementService;
|
import com.nflg.wms.repository.service.IAdvertisementService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -43,33 +44,30 @@ public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, A
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void save(AdvertisementSaveRequest request) {
|
public void save(AdvertisementSaveRequest request) {
|
||||||
if (Objects.isNull(request.getId())) {
|
LocalDateTime now = LocalDateTime.now();
|
||||||
VUtil.trueThrowBusinessError(lambdaQuery().eq(Advertisement::getType, request.getType())
|
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())
|
.eq(Advertisement::getPosition, request.getPosition())
|
||||||
.exists())
|
.update();
|
||||||
.throwMessage("已存在相同位置的广告");
|
|
||||||
Advertisement ad = new Advertisement()
|
Advertisement ad = new Advertisement()
|
||||||
.setType(request.getType())
|
.setType(request.getType())
|
||||||
.setPosition(request.getPosition())
|
.setPosition(request.getPosition())
|
||||||
.setInterval(request.getInterval())
|
.setInterval(request.getInterval())
|
||||||
.setContent(JSONUtil.toJsonStr(request.getItems()))
|
.setContent(JSONUtil.toJsonStr(request.getItems()))
|
||||||
.setEnable(request.getEnable())
|
.setVersion(version)
|
||||||
.setCreateBy(UserUtil.getUserName())
|
.setEnable(true)
|
||||||
.setCreateTime(LocalDateTime.now());
|
.setCreateBy(userName)
|
||||||
|
.setCreateTime(now);
|
||||||
save(ad);
|
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
|
@Override
|
||||||
|
|
@ -86,4 +84,19 @@ public class AdvertisementServiceImpl extends ServiceImpl<AdvertisementMapper, A
|
||||||
.in(Advertisement::getId, request.getIds())
|
.in(Advertisement::getId, request.getIds())
|
||||||
.update();
|
.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 di1 ON ad.type = di1.id
|
||||||
INNER JOIN dictionary_item di2 ON ad.position = di2.id
|
INNER JOIN dictionary_item di2 ON ad.position = di2.id
|
||||||
where di1.code = #{type} AND di2.code=#{position} and ad.enable
|
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>
|
||||||
|
|
||||||
<select id="getList" resultType="com.nflg.wms.common.pojo.vo.AdvertisementListVO">
|
<select id="getList" resultType="com.nflg.wms.common.pojo.vo.AdvertisementListVO">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue