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

Commit 2c0c89db authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !320
parents 65cb2b38 b1c59055
package com.liquidnet.service.goblin.dto.manage.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.service.goblin.dto.manage.GoblinGoodsAnticipateValueAddParam;
import io.swagger.annotations.ApiModelProperty;
......@@ -18,6 +19,7 @@ import java.time.LocalDateTime;
* @since 2022-04-08
*/
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinGoodsAnticipateValueVo implements Cloneable {
private static final long serialVersionUID = 1L;
......
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -8,6 +9,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinListCollectVo implements Serializable, Cloneable{
@ApiModelProperty(value = "listId")
private String listId;
......
package com.liquidnet.service.goblin.dto.vo;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.goblin.param.GoblinMixDetailsParam;
......@@ -13,6 +14,7 @@ import java.util.List;
@Data
@EqualsAndHashCode
@JsonIgnoreProperties(ignoreUnknown = true)
public class GoblinMixDetailsVo implements Serializable, Cloneable {
@ApiModelProperty(position = 0, value = "活动id")
private String mixId;
......
......@@ -46,4 +46,9 @@ public class SweetYbEnrollParam implements Serializable {
@ApiModelProperty(position = 19, required = false, value = "活动id", example = "0")
private String activityId;
@ApiModelProperty(position = 20, required = false, value = "平均年龄", example = "0")
private Integer age;
}
package com.liquidnet.client.admin.web.controller.zhengzai.sweet;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.controller.BaseController;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.utils.poi.ExcelUtil;
......@@ -35,7 +37,7 @@ import java.util.List;
@Api(tags = "YB活动管理")
@RestController
@RequestMapping("/sweet/activity")
public class SweetYbActivityController {
public class SweetYbActivityController extends BaseController {
@Autowired
ISweetYbActivityService sweetYbActivityService;
......@@ -80,12 +82,13 @@ public class SweetYbActivityController {
@ApiOperation("活动列表")
@ResponseBody
public TableDataInfo aList(SweetYbActivityListParam param) {
PageInfo<SweetYbActivityVo> result = sweetYbActivityService.aList(param);
TableDataInfo rspData = new TableDataInfo();
rspData.setCode(0);
rspData.setRows(result.getList());
rspData.setTotal(result.getTotal());
return rspData;
PageHelper.startPage(param.getPageNum(), param.getPageSize());
List<SweetYbActivity> result = sweetYbActivityService.aList(param);
// TableDataInfo rspData = new TableDataInfo();
// rspData.setCode(0);
// rspData.setRows(result.getList());
// rspData.setTotal(result.getTotal());
return getDataTable(result);
}
@PostMapping("/export")
......
......@@ -117,7 +117,7 @@
// onCheckAll: onCheckAll,
sortName: "createdAt",
sortOrder: "desc",
modalName: "活动",
modalName: "本活动名单",
columns: [
{
field: 'cover',
......
......@@ -173,6 +173,10 @@
$(this).fileinput("upload");
})
.on("fileuploaded", function (event, data) { //上传回调事件
console.log(event, data, '????')
if (data.response.code == 1) {
return layer.msg(data.response.message)
}
let showPicture = 'https://img.zhengzai.tv/' + data.response.data.ossPath;
$("#viewImg").attr('src', showPicture)
})
......
......@@ -11,12 +11,16 @@ import java.time.format.DateTimeFormatter;
@Data
public class SweetYbActivityExportVo implements Serializable, Cloneable {
@Excel(name = "活动名称", cellType = Excel.ColumnType.STRING)
private String activityName;
@Excel(name = "联系电话", cellType = Excel.ColumnType.STRING)
private String contactTell;
@Excel(name = "联系微信", cellType = Excel.ColumnType.STRING)
private String contactWechat;
@Excel(name = "乐队名称", cellType = Excel.ColumnType.STRING)
private String nickname;
@Excel(name = "平均年龄", cellType = Excel.ColumnType.STRING)
private String age;
@Excel(name = "风格", cellType = Excel.ColumnType.STRING)
private String style;
@Excel(name = "图片地址", cellType = Excel.ColumnType.STRING)
......@@ -42,7 +46,9 @@ public class SweetYbActivityExportVo implements Serializable, Cloneable {
return new SweetYbActivityExportVo();
}
public SweetYbActivityExportVo copyOrderExportVo(SweetYbEnroll source) {
public SweetYbActivityExportVo copyOrderExportVo(SweetYbEnroll source,String name) {
this.setActivityName(name);
this.setAge(source.getAge()+"");
this.setContactTell(source.getContactTell());
this.setContactWechat(source.getContactWechat());
this.setNickname(source.getNickname());
......
......@@ -31,7 +31,7 @@ public interface ISweetYbActivityService {
SweetYbActivityVo aDetails(String activityId);
PageInfo<SweetYbActivityVo> aList(SweetYbActivityListParam param);
List<SweetYbActivity> aList(SweetYbActivityListParam param);
AjaxResult aUpdate(SweetYbActivityParam param);
......
package com.liquidnet.client.admin.zhengzai.sweet.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageInfo;
import com.liquidnet.client.admin.common.core.domain.AjaxResult;
import com.liquidnet.client.admin.common.exception.BusinessException;
import com.liquidnet.client.admin.zhengzai.kylin.dto.OrderDetailedExportVo;
import com.liquidnet.client.admin.zhengzai.sweet.dto.SweetYbActivityExportVo;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetAdminQrCodeService;
import com.liquidnet.client.admin.zhengzai.sweet.service.ISweetYbActivityService;
import com.liquidnet.client.admin.zhengzai.sweet.utils.SweetRedisAdminUtils;
import com.liquidnet.commons.lang.util.DateUtil;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.kylin.dao.OrderExportDao;
import com.liquidnet.service.kylin.dao.PerformanceAdminListDao;
import com.liquidnet.service.kylin.dto.param.CreateActiveQrCodeParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityListParam;
import com.liquidnet.service.sweet.dto.param.admin.SweetYbActivityParam;
import com.liquidnet.service.sweet.dto.vo.SweetYbActivityVo;
import com.liquidnet.service.sweet.entity.SweetQrCode;
import com.liquidnet.service.sweet.entity.SweetYbActivity;
import com.liquidnet.service.sweet.entity.SweetYbEnroll;
import com.liquidnet.service.sweet.mapper.SweetQrCodeMapper;
import com.liquidnet.service.sweet.mapper.SweetYbActivityMapper;
import com.liquidnet.service.sweet.mapper.SweetYbEnrollMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.liquidnet.commons.lang.util.DateUtil.DTF_YMD_HMS;
......@@ -84,16 +73,15 @@ public class SweetYbActivityServiceImpl implements ISweetYbActivityService {
}
@Override
public PageInfo<SweetYbActivityVo> aList(SweetYbActivityListParam param) {
PageInfo<SweetYbActivityVo> pageInfo;
List<SweetYbActivity> data = sweetYbActivityMapper.selectList(Wrappers.lambdaQuery(SweetYbActivity.class).like(SweetYbActivity::getTitle, param.getTitle()));
List<SweetYbActivityVo> voList = new ArrayList<>();
for (SweetYbActivity entity : data) {
SweetYbActivityVo vo = initVo(entity);
voList.add(vo);
}
pageInfo = new PageInfo(voList);
return pageInfo;
public List<SweetYbActivity> aList(SweetYbActivityListParam param) {
List<SweetYbActivity> data = sweetYbActivityMapper.selectList(Wrappers.lambdaQuery(SweetYbActivity.class).like(SweetYbActivity::getTitle, param.getTitle()).orderByDesc(SweetYbActivity::getCreatedAt));
// List<SweetYbActivityVo> voList = new ArrayList<>();
// for (SweetYbActivity entity : data) {
// SweetYbActivityVo vo = initVo(entity);
// voList.add(vo);
// }
// pageInfo = new PageInfo(voList);
return data;
}
@Override
......@@ -151,10 +139,11 @@ public class SweetYbActivityServiceImpl implements ISweetYbActivityService {
@Override
public List<SweetYbActivityExportVo> aExport(String activityId) {
try {
SweetYbActivity activity = sweetYbActivityMapper.selectOne(Wrappers.lambdaQuery(SweetYbActivity.class).eq(SweetYbActivity::getActivityId, activityId));
List<SweetYbEnroll> list = sweetYbEnrollMapper.selectList(Wrappers.lambdaQuery(SweetYbEnroll.class).eq(SweetYbEnroll::getActivityId, activityId));
List<SweetYbActivityExportVo> voList = new ArrayList();
for (SweetYbEnroll item : list) {
voList.add(SweetYbActivityExportVo.getNew().copyOrderExportVo(item));
voList.add(SweetYbActivityExportVo.getNew().copyOrderExportVo(item, activity.getTitle()));
}
return voList;
} catch (Exception e) {
......
......@@ -70,6 +70,11 @@ public class SweetYbEnroll implements Serializable {
*/
private String cityName;
/**
* 平均年龄
*/
private int age;
/**
* 活动id
*/
......
......@@ -71,7 +71,16 @@ public class GoblinStoreZhengzaiServiceImpl implements IGoblinStoreZhengzaiServi
if (storeInfoVo == null) {
return ResponseDto.failure("店铺不存在");
}
GoblinSelfMarketingVo marketingVo = redisUtils.getSelfMarket(marketId);
if (marketingVo.getStatus() == 7) {
return ResponseDto.failure("活动已停用");
}
//todo
String storeId = storeInfoVo.getStoreId();
GoblinMarketingZhengzaiRelationVo marketingZhengzaiRelationVo = redisUtils.getZhengzaiRelation(marketId, storeId);
if (marketingZhengzaiRelationVo == null) {
return ResponseDto.failure("未参加活动");
}
List<GoblinMarketRelationVo> relationVo = redisUtils.getMarketRelation(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue(), marketId);
List<String> spuIdList = relationVo.stream().map(GoblinMarketRelationVo::getSpuId).collect(Collectors.toList());
List<GoblinZhengzaiGoodVo> voList = ObjectUtil.getGoblinZhengzaiGoodVoArrayList();
......@@ -124,7 +133,7 @@ public class GoblinStoreZhengzaiServiceImpl implements IGoblinStoreZhengzaiServi
//redis
redisUtils.setGoblinOrder(storeOrderVo.getOrderId(), storeOrderVo);
sqlDataOrder.add(new Object[]{
storeOrderVo.getZhengzaiStatus(),storeOrderVo.getStatus(), now, storeOrderVo.getOrderId(), now, now
storeOrderVo.getZhengzaiStatus(), storeOrderVo.getStatus(), now, storeOrderVo.getOrderId(), now, now
});
}
//mysql
......
......@@ -485,12 +485,22 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
payInnerResultVo.setPrice(BigDecimal.valueOf(0));
payInnerResultVo.setPayType(preParam.getPayType());
} else if (preParam.getPayType().equals("huifu")) {
isFree = true;
preParam.setPayType("huifu");
payCode = "HUIFU_PAY_CODE";
// isFree = true;
// preParam.setPayType("huifu");
// payCode = "HUIFU_PAY_CODE";
// payInnerResultVo = GoblinPayInnerResultVo.getNew();
// payInnerResultVo.setPrice(preParam.getPriceActual());
// payInnerResultVo.setPayType(preParam.getPayType());
payInnerResultVo = GoblinPayInnerResultVo.getNew();
payInnerResultVo.setPrice(preParam.getPriceActual());
payInnerResultVo.setCode("HUIFU_PAY_CODE");
payInnerResultVo.setOrderCode(preParam.getOrderMasterCode());
payInnerResultVo.setPayData(null);
payInnerResultVo.setPayType(preParam.getPayType());
payInnerResultVo.setPrice(preParam.getPriceActual());
payInnerResultVo.setMsg("汇付支付");
payCode = payInnerResultVo.getCode();
payInnerResultVo.setShowUrl(preParam.getShowUrl());
payInnerResultVo.setReturnUrl(preParam.getReturnUrl());
} else {
isFree = true;
preParam.setPayType("FREE");
......
......@@ -129,7 +129,7 @@ public class MixOrderServiceImpl implements IMixOrderService {
initStock(canBuyIds, mixId, isUseLimit, uid);
return ResponseDto.failure("该商品SPU不存在~");
} else {
GoblinGoodsSkuInfoVo boxSkuInfo = nftOrderUtils.lotteryDraw(skuIdList, itemVo.getCount(), nt, mixId);
GoblinGoodsSkuInfoVo boxSkuInfo = nftOrderUtils.lotteryDrawUnStatus(skuIdList, itemVo.getCount(), nt, mixId);
if (null == boxSkuInfo) {
return ResponseDto.failure("库存不足啦~");
} else {
......
......@@ -488,6 +488,37 @@ public class GoblinNftOrderUtils {
}
}
// 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉 不考虑状态
public int getSkuAllStatusStockUnStatus(String listId, GoblinGoodsSkuInfoVo info) {
if (
info != null
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
) {// 可以返回库存
// 外面只有盲盒才能请求进来 里面只有不是分批购才判断盲盒里藏品的开售时间
if (null == listId) {
return goblinRedisUtils.getSkuStock(listId, info.getSkuId());
} else {
return goblinRedisUtils.getSkuStock(listId, info.getSkuId());
}
} else {// 不计入库存
return 0;
}
}
//不考虑状态
public boolean getSkuAllStatusShowUnStatus(GoblinGoodsSkuInfoVo info) {
if (
info != null
&& info.getSkuType() == 1
&& info.getDelFlg().equals("0")
&& ((info.getUnbox().equals("0") && info.getUpchain() == 1) || info.getUnbox().equals("1"))
) {
return true;
} else {
return false;
}
}
public GoblinGoodsSkuInfoVo lotteryDraw(List<String> skuIdList, int number, LocalDateTime nowTime, String listId) {
// private HashMap<String, Object> lotteryDraw(List<String> skuIdList, int number, LocalDateTime nowTime) {
try {
......@@ -578,7 +609,112 @@ public class GoblinNftOrderUtils {
// String endListId = newListIds.get(index);
// 判断库存
int surplusGeneral = goblinRedisUtils.decrSkuStock(listId, goodsSkuInfoVo.getSkuId(), number);
log.error("剩余 skuId = "+surplusGeneral);
log.error("剩余 skuId = " + surplusGeneral);
if (surplusGeneral < 0) {
goblinRedisUtils.incrSkuStock(listId, goodsSkuInfoVo.getSkuId(), number);
return lotteryDraw(skuIdList, number, nowTime, listId);
} else {
// HashMap<String, Object> map = CollectionUtil.mapStringObject();
// map.put("goodsSkuInfoVo", goodsSkuInfoVo);
// map.put("listId", endListId);
// return map;
return goodsSkuInfoVo;
}
}
} catch (Exception e) {
log.error("NFT下单-抽盲盒异常", e);
return null;
}
}
// 不判断状态
public GoblinGoodsSkuInfoVo lotteryDrawUnStatus(List<String> skuIdList, int number, LocalDateTime nowTime, String listId) {
try {
ArrayList<GoblinGoodsSkuInfoVo> skuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
for (String kid : skuIdList) {
HashMap<String, Object> map = goblinRedisUtils.getGoodsSkuInfoVo(nowTime, kid);
GoblinGoodsSkuInfoVo skuInfoVo = (GoblinGoodsSkuInfoVo) map.get("vo");
// 是盲盒的扔掉
if (skuInfoVo.getUnbox().equals("1")) {
continue;
}
// 不能购买的 没库存的 概率是0的 过滤
if (getSkuAllStatusShowUnStatus(skuInfoVo) && getSkuAllStatusStockUnStatus(listId, skuInfoVo) > 0) {
skuInfoVos.add(skuInfoVo);
}
}
if (CollectionUtil.isEmpty(skuInfoVos)) {
return null;
} else {
// 计算总概率 和 剩余没填概率的平均概率
int size = 0;
BigDecimal sumHitRatio = BigDecimal.ZERO;
for (GoblinGoodsSkuInfoVo skuInfoVo : skuInfoVos) {
if (null == skuInfoVo.getHitRatio()) {
size++;
} else {
sumHitRatio = sumHitRatio.add(skuInfoVo.getHitRatio());
}
}
/**
* 剔除掉没库存的商品再去算未设置概率商品的平均概率 会导致未设置概率的商品的概率增加
* 如果不剔除掉没库存的商品去算未设置概率商品的平均概率 会导致总概率小于100 如果随机数还是0-100的话就有可能会中奖溢出
* 想保持概率 1.不剔除无库存商品算平均概率 2.随机数最大值为排序后概率的最后一个值
*/
BigDecimal avgHitRatio = BigDecimal.ZERO;
if (size > 0) {// 说明有未设置抽奖概率的
avgHitRatio = new BigDecimal(100).subtract(sumHitRatio).divide(new BigDecimal(size), 2, RoundingMode.HALF_UP);
}
// 未设置概率的写入概率
ArrayList<GoblinGoodsSkuInfoVo> newSkuInfoVos = ObjectUtil.cloneArrayGoblinGoodsSkuInfoListVo();
// ArrayList<String> newListIds = ObjectUtil.cloneArrayListString();
int skuListSize = skuInfoVos.size();
for (int i = 0; i < skuListSize; i++) {
GoblinGoodsSkuInfoVo infoVo = skuInfoVos.get(i);
if (null == infoVo.getHitRatio() || infoVo.getHitRatio().compareTo(BigDecimal.ZERO) < 0) {
/**
* 算所得平均概率是0 即中不了 剔除掉
* 但是这么处理会导致前端页面显示有库存 买的时候显示没有
* 所以要么概率加起来必须100 要么前端计算盲盒总概率的时候也要同样处理
*/
if (avgHitRatio.compareTo(BigDecimal.ZERO) <= 0) {
continue;
} else {
infoVo.setHitRatio(avgHitRatio);
}
}
// 等于0的最终概率就是设置的值 大于0最终的概率是自己的+上面的
if (i > 0) {
infoVo.setHitRatio(skuInfoVos.get(i - 1).getHitRatio().add(infoVo.getHitRatio()));
}
newSkuInfoVos.add(infoVo);
// newListIds.add(listIds.get(i));
}
if (CollectionUtil.isEmpty(newSkuInfoVos)) {
log.info("该盲盒概率超过100导致不能卖 skuIdList:{}", skuIdList);
return null;
}
// 按照概率排序 按照上面的运算最后一定是最大的不用排序了
// List<GoblinGoodsSkuInfoVo> listSort = newSkuInfoVos.stream().sorted(Comparator.comparing(GoblinGoodsSkuInfoVo::getHitRatio)).collect(Collectors.toList());
List<BigDecimal> hitRatioList = newSkuInfoVos.stream().map(GoblinGoodsSkuInfoVo::getHitRatio).collect(Collectors.toList());
// 根据区块值来获取抽取到的物品索引
double nextDouble = Math.random();
BigDecimal nextDoubleNew = BigDecimal.valueOf(nextDouble);
nextDoubleNew = nextDoubleNew.multiply(hitRatioList.get(hitRatioList.size() - 1)).setScale(4, RoundingMode.HALF_UP);
hitRatioList.add(nextDoubleNew);
Collections.sort(hitRatioList);
int index = hitRatioList.indexOf(nextDoubleNew);
GoblinGoodsSkuInfoVo goodsSkuInfoVo = newSkuInfoVos.get(index);
// String endListId = newListIds.get(index);
// 判断库存
int surplusGeneral = goblinRedisUtils.decrSkuStock(listId, goodsSkuInfoVo.getSkuId(), number);
log.error("剩余 skuId = " + surplusGeneral);
if (surplusGeneral < 0) {
goblinRedisUtils.incrSkuStock(listId, goodsSkuInfoVo.getSkuId(), number);
return lotteryDraw(skuIdList, number, nowTime, listId);
......
......@@ -512,6 +512,8 @@ alter table sweet_yb_enroll
add city_name varchar(255) NOT NULL DEFAULT '' COMMENT '常驻城市名称' after universities;
alter table sweet_yb_enroll
add activity_id varchar(255) DEFAULT '0' COMMENT '活动id' after city_name;
alter table sweet_yb_enroll
add age int DEFAULT 0 COMMENT '平均年龄' after city_name;
-- YB活动
drop TABLE if exists `sweet_yb_activity`;
......
......@@ -15,6 +15,7 @@ import com.liquidnet.service.sweet.service.ISweetYbEnrollService;
import com.liquidnet.service.sweet.utils.ObjectUtil;
import com.liquidnet.service.sweet.utils.QueueUtils;
import com.liquidnet.service.sweet.utils.RedisDataUtils;
import org.apache.logging.log4j.util.PropertySource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -47,6 +48,9 @@ public class SweetYbEnrollServiceImpl implements ISweetYbEnrollService {
if (param.getActivityId() == null || param.getActivityId().equals("")) {
param.setActivityId("0");
}
if (param.getAge() == null ) {
param.setAge(0);
}
LinkedList<String> sqls = CollectionUtil.linkedListString();
LinkedList<Object[]> sqlsDataA = CollectionUtil.linkedListObjectArr();
sqls.add(SqlMapping.get("sweet_yb_enroll.insert"));
......@@ -54,7 +58,7 @@ public class SweetYbEnrollServiceImpl implements ISweetYbEnrollService {
IDGenerator.nextSnowId(), StringUtil.isEmpty(param.getContactTell()) ? "" : param.getContactTell(),
StringUtil.isEmpty(param.getContactWechat()) ? "" : param.getContactWechat(), param.getNickname(), param.getStyle(),
param.getImgUrl(), param.getAudioUrl(), StringUtil.isEmpty(param.getUniversities()) ? "" : param.getUniversities(),
StringUtil.isEmpty(param.getCityName()) ? "" : param.getCityName(), param.getActivityId()
StringUtil.isEmpty(param.getCityName()) ? "" : param.getCityName(), param.getActivityId(),param.getAge()
});
queueUtils.sendMsgByRedis(MQConst.SweetQueue.SWEET_ANSWER_INSERT.getKey(),
SqlMapping.gets(sqls, sqlsDataA));
......@@ -69,18 +73,18 @@ public class SweetYbEnrollServiceImpl implements ISweetYbEnrollService {
LocalDateTime now = LocalDateTime.now();
for (String id : list) {
SweetYbActivityVo vo = redisDataUtils.getSweetYbActivityVo(id);
LocalDateTime st = LocalDateTime.parse(vo.getStartTime(),DTF_YMD_HMS);
LocalDateTime et = LocalDateTime.parse(vo.getEndTime(),DTF_YMD_HMS);
if(now.isAfter(et)){
LocalDateTime st = LocalDateTime.parse(vo.getStartTime(), DTF_YMD_HMS);
LocalDateTime et = LocalDateTime.parse(vo.getEndTime(), DTF_YMD_HMS);
if (now.isAfter(et)) {
vo.setStatus(9);
}else if(now.isBefore(st)){
} else if (now.isBefore(st)) {
vo.setStatus(0);
}else{
} else {
vo.setStatus(6);
}
voList.add(vo);
}
voList = voList.stream().sorted(Comparator.comparing(SweetYbActivityVo::getEndTime, Comparator.reverseOrder())).collect(Collectors.toList());
voList = voList.stream().sorted(Comparator.comparing(SweetYbActivityVo::getStatus, Comparator.naturalOrder()).thenComparing(SweetYbActivityVo::getStartTime,Comparator.reverseOrder())).collect(Collectors.toList());
return ResponseDto.success(voList);
}
......
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