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

Commit 0427d863 authored by 胡佳晨's avatar 胡佳晨

Merge branch 'master' into dev_kid

parents de2d0e24 9dbabd5d
......@@ -241,6 +241,7 @@ public class GoblinRedisConst {
public static final String ANTICIPATE_VALUE_SKUID = PREFIX.concat("anticipate:value:skuid:");
public static final String NFT_PAY_TYPE = PREFIX.concat("nft:payType");
......
......@@ -304,7 +304,7 @@ public class KylinRefundsStatusServiceImpl {
UpdateResult updateResult = mongoTemplate.getCollection(KylinOrderRefundsVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderRefundsId").is(orderRefundsId)).getQueryObject(),
new Document("$set", new Document("status", KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL)
.append("updatedAt", LocalDateTime.now()))
.append("updatedAt", mongoConverter.convertToMongoType(LocalDateTime.now())))
);
} else { // 这里主要是防止批量审核同一个用户多个票 每次查询都还有正在退款的订单 导致拒绝了还是退款中状态 后期可想办法优化
KylinOrderRefunds kylinOrderRefunds = KylinOrderRefunds.getNew();
......
......@@ -110,7 +110,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
mongoTemplate.getCollection(IntegralActivityDrawVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("drawId").is(drawId)).getQueryObject(),
new Document("$set", new Document("receivingStatus", 2)
.append("updatedAt", LocalDateTime.now()))
.append("updatedAt", mongoTemplate.getConverter().convertToMongoType(LocalDateTime.now())))
);
return update;
......
......@@ -2,9 +2,11 @@ package com.liquidnet.service.consumer.kylin.receiver;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.consumer.kylin.service.processor.ConsumerGalaxyJsonNftPublishAndBuyProcessor;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto;
import com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyRespDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.stream.StreamRecords;
......@@ -27,8 +29,10 @@ public class ConsumerGalaxyJsonNftPublishAndBuyReceiver extends AbstractBizRedis
aBoolean = true;
} else {
//执行计数
jsonNftPublishAndBuyProcessor.nftPublishAndBuy(textMessage);
aBoolean = true;
ResponseDto<GalaxyNftPublishAndBuyRespDto> responseDto = jsonNftPublishAndBuyProcessor.nftPublishAndBuy(textMessage);
if(responseDto.isSuccess()){
aBoolean = true;
}
}
} catch (Exception e) {
log.error("CONSUMER MSG EX_HANDLE ==> [{}]:{}", this.getRedisStreamKey(), msg, e);
......
......@@ -125,9 +125,9 @@
// Query.query(Criteria.where("artworkId").is(fromArtworkId).and("state").ne(1)).getQueryObject(),
// Update.update("state", userDigitalArtworkVo.getState())
// .set("delFlg", userDigitalArtworkVo.getDelFlg())
// .set("openingAt", userDigitalArtworkVo.getOpeningAt().minusHours(8))
// .set("updatedAt", userDigitalArtworkVo.getUpdatedAt().minusHours(8))
// .set("deletedAt", userDigitalArtworkVo.getDeletedAt().minusHours(8))
// .set("openingAt", mongoTemplate.getConverter().convertToMongoType(userDigitalArtworkVo.getOpeningAt()))
// .set("updatedAt", mongoTemplate.getConverter().convertToMongoType(userDigitalArtworkVo.getUpdatedAt()))
// .set("deletedAt", mongoTemplate.getConverter().convertToMongoType(userDigitalArtworkVo.getDeletedAt()))
// .getUpdateObject()
// );
// }
......
......@@ -100,49 +100,44 @@ public class DragonOrdersServiceImpl implements IDragonOrdersService {
public DragonPayBaseRespDto dragonNotifyApple(DragonPayBaseReqDto dragonPayBaseReqDto) {
//1 调用苹果查询结果
String verifyResult = buyAppVerify(dragonPayBaseReqDto.getReceiptData());
//第二部
//持久化通知记录
dragonServiceCommonBiz.createDragonOrderLogs(dragonPayBaseReqDto.getCode(),dragonPayBiz.getPaymentType(dragonPayBaseReqDto.getPayType(),dragonPayBaseReqDto.getDeviceFrom()),verifyResult);
if (verifyResult == null) {
// 苹果服务器没有返回验证结果
log.info("苹果支付,app调用,查不到订单信息");
return null;
} else {
JSONObject job = JSONObject.parseObject(verifyResult);
String states = job.getString("status");
if (states.equals("0")){ // 前端所提供的收据是有效的 验证成功
String r_receipt = job.getString("receipt");
Integer states = job.getInteger("status");
if (states==0){ // 前端所提供的收据是有效的 验证成功
/* String r_receipt = job.getString("receipt");
JSONObject returnJson = JSONObject.parseObject(r_receipt);
String in_app = returnJson.getString("in_app");
JSONObject in_appJson = JSONObject.parseObject(in_app.substring(1, in_app.length() - 1));
/* ApplePayRefundDto applePayRefundDto=ApplePayRefundDto.getNew();*/
String product_id = in_appJson.getString("product_id");
/*applePayRefundDto.setProductId(product_id);*/
String transaction_id = in_appJson.getString("transaction_id"); // 订单号
String transaction_id = in_appJson.getString("transaction_id"); // 订单号*/
//如果单号一致 则开始处理逻辑
if(dragonPayBaseReqDto.getTransactionId().equals(transaction_id)){
//判断是已经查过了。
DragonPayBaseRespDto dragonPayBaseRespDto=dataUtils.getDragonPayBaseRespDto(dragonPayBaseReqDto.getOrderCode());
if(null!=dragonPayBaseRespDto){
return dragonPayBaseRespDto;
}
/*String[] moneys = product_id.split("\\.");//实际支付金额*/
//此处开始业务逻辑
//2 插入支付该支付的东西(预支付的东西)//dragon_orders
dragonServiceCommonBiz.buildPayOrders(dragonPayBaseReqDto,null);
//第二部
//持久化通知记录
dragonServiceCommonBiz.createDragonOrderLogs(dragonPayBaseReqDto.getCode(),dragonPayBiz.getPaymentType(dragonPayBaseReqDto.getPayType(),dragonPayBaseReqDto.getDeviceFrom()),verifyResult);
//修改状态
applepay.completeSuccessOrder(dataUtils.getPayOrderByCode(dragonPayBaseReqDto.getCode()),transaction_id,verifyResult);
//
DragonPayBaseRespDto respDto = buildCommonRespDto(dragonPayBaseReqDto);
respDto.setProductId(product_id);
dataUtils.createAPPLePayOrder(dragonPayBaseReqDto.getOrderCode(),respDto);
return respDto;
//判断是已经查过了。
DragonPayBaseRespDto dragonPayBaseRespDto=dataUtils.getDragonPayBaseRespDto(dragonPayBaseReqDto.getOrderCode());
if(null!=dragonPayBaseRespDto){
return dragonPayBaseRespDto;
}
/*String[] moneys = product_id.split("\\.");//实际支付金额*/
//此处开始业务逻辑
//2 插入支付该支付的东西(预支付的东西)//dragon_orders
dragonServiceCommonBiz.buildPayOrders(dragonPayBaseReqDto,null);
//修改状态
applepay.completeSuccessOrder(dataUtils.getPayOrderByCode(dragonPayBaseReqDto.getCode()),dragonPayBaseReqDto.getTransactionId(),verifyResult);
//
DragonPayBaseRespDto respDto = buildCommonRespDto(dragonPayBaseReqDto);
respDto.setStatus(0);
dataUtils.createAPPLePayOrder(dragonPayBaseReqDto.getOrderCode(),respDto);
return respDto;
} else {
return null;
}
}
return null;
}
public String buyAppVerify(String receipt) {
try{
......
......@@ -68,7 +68,7 @@ public class ZxinTradeCommonBiz {
//获取sku信息
GalaxySeriesNftInfoBo seriesNftInfoBo = dataUtils.getSeriesNftInfoBo(reqDto.getRouterType(),reqDto.getSkuId());
if(StringUtil.isNull(seriesNftInfoBo)){
if(StringUtil.isNull(seriesNftInfoBo)||StringUtil.isEmpty(seriesNftInfoBo.getSeriesId())){
log.error("开始执行nftPublishAndBuy error msg:{}",GalaxyErrorEnum.SERIES_NFT_INFO_NOT_EXIST.getMessage());
return ResponseDto.failure(GalaxyErrorEnum.SERIES_NFT_INFO_NOT_EXIST.getCode(), GalaxyErrorEnum.SERIES_NFT_INFO_NOT_EXIST.getMessage());
}
......@@ -87,7 +87,11 @@ public class ZxinTradeCommonBiz {
&&nftOrderBo.getNftBuyStatus().equalsIgnoreCase(GalaxyEnum.TaskStatusEnum.INIT.getCode())){
//再次发起购买
GalaxyNftPublishAndBuyRespDto nftPublishAndBuyRespDto = this.executeBuyBusiness(reqDto,userInfoBo,seriesNftInfoBo,nftOrderBo);
return ResponseDto.success(nftPublishAndBuyRespDto);
if(StringUtil.isNotNull(nftPublishAndBuyRespDto)&&StringUtil.isNotEmpty(nftPublishAndBuyRespDto.getNftId())){
return ResponseDto.success(nftPublishAndBuyRespDto);
}else{
return ResponseDto.failure(GalaxyErrorEnum.NFT_BUY_FAIL.getCode(),GalaxyErrorEnum.NFT_BUY_FAIL.getMessage());
}
}
}
......@@ -277,7 +281,11 @@ public class ZxinTradeCommonBiz {
//第二步:执行购买逻辑
if(StringUtil.isNotEmpty(nftId)){
GalaxyNftPublishAndBuyRespDto nftPublishAndBuyRespDto = this.executeBuyBusiness(reqDto,userInfoBo,seriesNftInfoBo,nftOrderBo);
return ResponseDto.success(nftPublishAndBuyRespDto);
if(StringUtil.isNotNull(nftPublishAndBuyRespDto)&&StringUtil.isNotEmpty(nftPublishAndBuyRespDto.getNftId())){
return ResponseDto.success(nftPublishAndBuyRespDto);
}else{
return ResponseDto.failure(GalaxyErrorEnum.NFT_BUY_FAIL.getCode(),GalaxyErrorEnum.NFT_BUY_FAIL.getMessage());
}
}
return ResponseDto.failure(GalaxyErrorEnum.PUBLISH_FAIL.getCode(), GalaxyErrorEnum.PUBLISH_FAIL.getMessage());
}
......
......@@ -5,6 +5,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinNftGoodsSkuInfoVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftGoodsSkuListVo;
import com.liquidnet.service.goblin.service.IGoblinNftGoodsAppService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
......@@ -25,6 +26,9 @@ public class GoblinNftGoodsAppController {
@Autowired
IGoblinNftGoodsAppService goblinNftGoodsAppService;
@Autowired
GoblinRedisUtils redisUtils;
@GetMapping("list")
@ApiOperation("获得NFT商品列表")
......@@ -68,4 +72,19 @@ public class GoblinNftGoodsAppController {
}
}
@PostMapping("payType")
@ApiOperation("设置payType")
@ApiImplicitParams({
@ApiImplicitParam(type = "from", required = true, dataType = "String", name = "value", value = "状态[0-苹果支付|1-微信支付宝]", example = "1"),
})
public ResponseDto<Boolean> setPayType(@RequestParam("value") Integer value) {
redisUtils.setPayType(value);
return ResponseDto.success();
}
@GetMapping("payType")
@ApiOperation("获取payType")
public ResponseDto<Integer> getPayType() {
return ResponseDto.success(redisUtils.getPayType());
}
}
......@@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
/**
* <p>
......@@ -51,16 +52,13 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
if (!anticipateValueVo.getState().equals(1)) {
return ResponseDto.failure("该商品预约尚未开始或已经结束,不可预约!");
}
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
if (userInfo==null){
return ResponseDto.failure("登陆信息有误");
}
//查询该用户是否预
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, userInfo.getUid());
String uid = CurrentUtil.getCurrentUid();
GoblinGoodAnticipateUserVo userVo = goblinRedisUtils.getUserAboutAut(skuId, uid);
LinkedList<Object[]> sqlValue = CollectionUtil.linkedListObjectArr();
if (userVo == null) {
GoblinGoodAnticipateUserVo user = new GoblinGoodAnticipateUserVo();
user.setUid(userInfo.getUid());
user.setUid(uid);
user.setSkuId(skuId);
String mobile = StringUtils.defaultString(((String) CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_MOBILE)), "");
user.setPhone(mobile);
......@@ -79,8 +77,13 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
});
sendRedis("goblin_goods_anticipate_user", sqlValue);
goblinRedisUtils.setSkuIdPeople(skuId);
//储存用户头像
goblinRedisUtils.setUserAvatar(skuId,userInfo.getAvatar());
//获取用户头像个数小于等于2则保存用户头像
List<String> userAvatar = goblinRedisUtils.getUserAvatar(skuId);
if (userAvatar != null && userAvatar.size() <= 2) {
//查询用户信息获取用户头像并保存
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
goblinRedisUtils.setUserAvatar(skuId, userInfo.getAvatar());
}
}
return ResponseDto.success();
}
......@@ -89,11 +92,8 @@ public class GoblinGoodsAnticipateServiceImpl implements IGoblinGoodsAnticipateS
@Override
public ResponseDto<Boolean> selectAnticipate(String skuId) {
AdamUserInfoVo userInfo = goblinAnticipateUtils.getUserInfo();
if (userInfo == null){
return ResponseDto.failure("登陆信息有误!");
}
return ResponseDto.success(goblinRedisUtils.getUserAboutAut(skuId,userInfo.getUid()) != null) ;
String uid = CurrentUtil.getCurrentUid();
return ResponseDto.success(goblinRedisUtils.getUserAboutAut(skuId, uid) != null);
}
public void sendRedis(String sqlKey, LinkedList<Object[]> sqlData) {
......
......@@ -51,6 +51,8 @@ public class GoblinNftJobServiceImpl {
Criteria.where("skuType").is(1).and("delFlg").is("0")
.and("status").is("3").and("shelvesStatus").is("3")
.and("skuAppear").is("0")
.orOperator(Criteria.where("unbox").is("0").and("upchain").is(1), Criteria.where("unbox").is("1"))
);
LocalDateTime nowTime = LocalDateTime.now();
// 未开始的正序20个
......@@ -66,6 +68,7 @@ public class GoblinNftJobServiceImpl {
Criteria.where("skuType").is(1).and("delFlg").is("0")
.and("status").is("3").and("shelvesStatus").is("3")
.and("skuAppear").is("0")
.orOperator(Criteria.where("unbox").is("0").and("upchain").is(1), Criteria.where("unbox").is("1"))
);
// 已开始的倒序80个
query2.addCriteria(Criteria.where("saleStartTime").lte(nowTime));
......
......@@ -21,7 +21,6 @@ import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.QueueUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......
......@@ -50,24 +50,45 @@ public class GoblinRedisUtils {
/* ---------------------------------------- 预约相关 ---------------------------------------- */
/**
* 设置 IOS 支付方式
*
* @param value 0-苹果支付|1-微信支付宝
*/
public void setPayType(int value) {
if (value != 0 && value != 1) {
value = 0;
}
redisUtil.set(GoblinRedisConst.NFT_PAY_TYPE, value);
}
public int getPayType() {
Object obj = redisUtil.get(GoblinRedisConst.NFT_PAY_TYPE);
if (obj == null) {
return 0;
} else {
return (int) obj;
}
}
/**
* 该skuId已开启预约
*/
public void setValue(GoblinGoodsAnticipateValueVo valueVo){
redisUtil.set(GoblinRedisConst.ANTICIPATE_VALUE_SKUID.concat(valueVo.getSkuId()),valueVo);
public void setValue(GoblinGoodsAnticipateValueVo valueVo) {
redisUtil.set(GoblinRedisConst.ANTICIPATE_VALUE_SKUID.concat(valueVo.getSkuId()), valueVo);
}
/**
* 根据skuId获取valueVo
*/
public GoblinGoodsAnticipateValueVo getValueBySkuId(String skuId){
return (GoblinGoodsAnticipateValueVo)redisUtil.get(GoblinRedisConst.ANTICIPATE_VALUE_SKUID.concat(skuId));
public GoblinGoodsAnticipateValueVo getValueBySkuId(String skuId) {
return (GoblinGoodsAnticipateValueVo) redisUtil.get(GoblinRedisConst.ANTICIPATE_VALUE_SKUID.concat(skuId));
}
/**
* 获取关联
*/
public boolean getSkuId(String skuId){
public boolean getSkuId(String skuId) {
return redisUtil.get(GoblinRedisConst.ANTICIPATE_VALUE_SKUID.concat(skuId)) != null;
}
......@@ -75,7 +96,7 @@ public class GoblinRedisUtils {
/**
* 删除skuId已开启预约
*/
public void delSkuId(String skuId){
public void delSkuId(String skuId) {
redisUtil.del(GoblinRedisConst.ANTICIPATE_VALUE_SKUID.concat(skuId));
}
......@@ -88,7 +109,7 @@ public class GoblinRedisUtils {
*/
public void setUserAboutSku(GoblinGoodAnticipateUserVo user) {
goblinMongoUtils.setGoblinGoodsAnticipateUserVo(user);
redisUtil.set(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(user.getSkuId()).concat(user.getUid()),user,60*60*24*30);
redisUtil.set(GoblinRedisConst.USER_ANTICIPATE_STATE.concat(user.getSkuId()).concat(user.getUid()), user, 60 * 60 * 24 * 30);
}
/**
......@@ -96,9 +117,9 @@ public class GoblinRedisUtils {
*/
public void setSkuIdPeople(String skuId) {
BigInteger num = (BigInteger) redisUtil.get(GoblinRedisConst.ANTICIPATE_PEOPLE.concat(skuId));
num = num!=null?num: BigInteger.valueOf(0);
num = num != null ? num : BigInteger.valueOf(0);
//新预约 +1
redisUtil.set(GoblinRedisConst.ANTICIPATE_PEOPLE.concat(skuId),num.add(BigInteger.valueOf(1)));
redisUtil.set(GoblinRedisConst.ANTICIPATE_PEOPLE.concat(skuId), num.add(BigInteger.valueOf(1)));
//跟新valueVo
GoblinGoodsAnticipateValueVo anticipateValueVo = getValueBySkuId(skuId);
......@@ -116,24 +137,22 @@ public class GoblinRedisUtils {
/**
* 保存用户头像
*/
public void setUserAvatar(String skuId,String avatar) {
public void setUserAvatar(String skuId, String avatar) {
Object list = redisUtil.get(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId));
List<String> urlList = list != null ? (List<String>)list : CollectionUtil.arrayListString();
if (urlList.size()<=2){
urlList.add(avatar);
redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId),urlList);
}
List<String> urlList = list != null ? (List<String>) list : CollectionUtil.arrayListString();
urlList.add(avatar);
redisUtil.set(GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId), urlList);
}
/**
* 获取用户预约头像
*/
public List<String> getUserAvatar(String skuId){
public List<String> getUserAvatar(String skuId) {
String rdk = GoblinRedisConst.ANTICIPATE_SKUID_AVATAR.concat(skuId);
Object obj = redisUtil.get(rdk);
if(obj==null){
if (obj == null) {
return CollectionUtil.arrayListString();
}else{
} else {
return (List<String>) obj;
}
}
......@@ -1638,53 +1657,62 @@ public class GoblinRedisUtils {
}
/**
* private int skuType 商品类型[0-常规|1-数字藏品]
* private String status 审核状态[0-初始编辑|1-审核中|2-审核不通过|3-审核通过];
* private String shelvesStatus 单品上架状态[0-待上架|1-下架|2-违规|3-上架];
* private String skuAppear 是否隐藏[0-默认展示|1-隐藏];
* private String delFlg 删除标记[0-未删除|1-删除];
*
* private LocalDateTime saleStartTime 开售时间;
* private LocalDateTime saleStopTime 停售时间 预留 暂时不做处理;
* private String soldoutStatus 是否售罄[0-否|1-是];
*
* private String skuCanbuy 是否购买[0-否|1-是] 这个用来预览 前端自己判断;
* private int skuType 商品类型[0-常规|1-数字藏品]
* private String status 审核状态[0-初始编辑|1-审核中|2-审核不通过|3-审核通过];
* private String shelvesStatus 单品上架状态[0-待上架|1-下架|2-违规|3-上架];
* private String skuAppear 是否隐藏[0-默认展示|1-隐藏];
* private String delFlg 删除标记[0-未删除|1-删除];
* <p>
* private LocalDateTime saleStartTime 开售时间;
* private LocalDateTime saleStopTime 停售时间 预留 暂时不做处理;
* private String soldoutStatus 是否售罄[0-否|1-是];
* <p>
* private String skuCanbuy 是否购买[0-否|1-是] 这个用来预览 前端自己判断;
* <p>
* Integer upchain NFT上传声明状态[0-待上传|1-已声明|2-声明失败|9-声明中]
* <p>
* String unbox; 是否盲盒[0-否|1-是]
*/
// 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉
public int getSkuAllStatusStock(GoblinGoodsSkuInfoVo info) {
if (
info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime())
&& (null == info.getSoldoutStatus() || info.getSoldoutStatus().equals("0"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime())
&& (null == info.getSoldoutStatus() || info.getSoldoutStatus().equals("0"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
&& (null == info.getSkuCanbuy() || info.getSkuCanbuy().equals("1"))
) {// 可以返回库存
return getSkuStock(null, info.getSkuId());
} else {// 不计入库存
return 0;
}
}
// 各种状态下判断藏品是否可以展示
public boolean getSkuAllStatusShow(GoblinGoodsSkuInfoVo info) {
if (
info != null
&& info.getSkuType() == 1
&& info.getStatus().equals("3")
&& info.getShelvesStatus().equals("3")
&& (info.getSkuAppear() == null || info.getSkuAppear().equals("0"))
&& info.getDelFlg().equals("0")
info != null
&& info.getSkuType() == 1
&& info.getStatus().equals("3")
&& info.getShelvesStatus().equals("3")
&& (info.getSkuAppear() == null || info.getSkuAppear().equals("0"))
&& info.getDelFlg().equals("0")
&& ((info.getUnbox().equals("0") && info.getUpchain() == 1) || info.getUnbox().equals("1"))
// && (info.getUnbox().equals("1") || info.getUpchain() == 1)
) {
return true;
} else {
return false;
}
}
// 各种状态下判断藏品总库存
public Integer getSkuTotalStock(GoblinGoodsSkuInfoVo info) {
if (
info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime())
&& (null == info.getSoldoutStatus() || info.getSoldoutStatus().equals("0"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
info != null
&& LocalDateTime.now().isAfter(info.getSaleStartTime())
&& (null == info.getSoldoutStatus() || info.getSoldoutStatus().equals("0"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
) {// 可以返回库存
return info.getSkuStock();
} else {// 不计入库存
......
package com.liquidnet.service.goblin.test;
import com.fasterxml.jackson.databind.ObjectWriter;
import com.liquidnet.commons.lang.util.JsonUtils;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
//@ActiveProfiles("test")
@SpringBootTest
public class TestGoblinMongo {
@Autowired
private MongoTemplate mongoTemplate;
@SneakyThrows
@Test
public void testMongoUpdateLocalDateTime() {
ObjectWriter om = JsonUtils.OM().writerWithDefaultPrettyPrinter();
LocalDateTime now = LocalDateTime.now();
Object nowTimeMdbObj = mongoTemplate.getConverter().convertToMongoType(now);
Date from = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
log.info("now:{},mdbObj:{},from:{}", now, nowTimeMdbObj, from);
// GoblinGoodsSkuInfoVo findRstVo = mongoTemplate.findOne(Query.query(Criteria.where("delFlg").is("0").and("deletedAt").is("2022-04-18T04:33:12.443+00:00")), GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
// log.info("MDB.findOne:{}", om.writeValueAsString(findRstVo));
// LocalDateTime now = LocalDateTime.now();
// Object nowObj = mongoTemplate.getConverter().convertToMongoType(now);
// UpdateResult updateResult = mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateOne(
// Query.query(Criteria.where("skuId").is(findRstVo.getSkuId())).getQueryObject(),
// Update.update("deletedAt", nowObj).set("deletedBy", "local.test").set("updatedAt", now).set("updatedBy", "local.test").getUpdateObject()
// );
// log.info("MDB.getCollection(...).updateOne:{}", JsonUtils.toJson(updateResult));
//
// findRstVo = mongoTemplate.findOne(Query.query(Criteria.where("delFlg").is("0")), GoblinGoodsSkuInfoVo.class, GoblinGoodsSkuInfoVo.class.getSimpleName());
// log.info("MDB.findOne:{}", om.writeValueAsString(findRstVo));
}
@Test
public void testUpdate(){
// String skuId = "1234567890-sku-0225";
// Query query = Query.query(Criteria.where("skuId").is(skuId));
// GalaxySeriesNftInfoBo seriesNftInfoBo = dataUtils.getSeriesNftInfoBo2("zxinchain",skuId);
// log.info(seriesNftInfoBo.toString());
//1、插入时间正确 为UTC时间
// seriesNftInfoBo.setSkuId("1234567890-sku-0226");
// seriesNftInfoBo.setCreatedAt(LocalDateTime.now());
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// Document document = (Document)mongoConverter.convertToMongoType(seriesNftInfoBo);
// mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).insertOne(document);
//2、插入时间正确
// UpdateResult result = mongoTemplate.updateMulti(
// query,
// Update.update("nftName", "正在映画NFT名字003").set("updatedAt", LocalDateTime.now()),
// GalaxySeriesNftInfoVo2.class.getSimpleName()
// );
//3、插入时间正确 为UTC时间
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// BasicDBObject basicDBObject = new BasicDBObject();
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// basicDBObject.append("$set", mongoConverter.convertToMongoType(seriesNftInfoBo))
// );
//4、时间插入正确
// BasicDBObject basicDBObject = new BasicDBObject();
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// Document result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).findOneAndUpdate(
// query.getQueryObject(),
// basicDBObject.append("$set", mongoConverter.convertToMongoType(seriesNftInfoBo)),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.info("updateSeriesNftCrtCount result:{}", result.toString());
//5、插入时间正确 为UTC时间
//注意:使用mongoConverter.convertToMongoType转换时 update.set不生效
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// Document document = (Document)mongoConverter.convertToMongoType(seriesNftInfoBo);
// Update update = Update.fromDocument(document);
// update.set("updatedAt",LocalDateTime.now());//
// UpdateResult result = mongoTemplate.updateFirst(query,update, GalaxySeriesNftInfoVo2.class,GalaxySeriesNftInfoVo2.class.getSimpleName());
//6、插入时间正确 插入为非UTC时间 2022-04-14T17:03:23.269
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// BasicDBObject orderObject = new BasicDBObject("$set", JSON.parse(JsonUtils.toJson(seriesNftInfoBo)));
// mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// orderObject
// );
//7、时间插入正确 为UTC
// HashMap<String, Object> map = new HashMap<>();
// map.put("nftName", "正在映画NFT名字002");
// map.put("updatedAt", LocalDateTime.now());
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// new BasicDBObject("$set", mongoConverter.convertToMongoType(map))
// );
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
//8、时间插入正确 为UTC
// HashMap<String, Object> map = new HashMap<>();
// map.put("nftName", "正在映画NFT名字003");
// map.put("updatedAt", LocalDateTime.now());
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// new Document("$set", mongoConverter.convertToMongoType(map))
// );
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
//1、时间插入错误
// 把当前时间强制转换为了UTC时间 直接在时间后加'Z' 2022-04-14T07:19:35.374Z
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// new Document("$set", new Document("updatedAt", LocalDateTime.now()).append("nftName", "正在映画NFT名字002"))
// );
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
//2、时间插入错误
// 把当前时间强制转换为了UTC时间 直接在时间后加'Z' 2022-04-14T07:19:35.374Z
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// Update.update("nftName", "正在映画NFT名字001").set("updatedAt", LocalDateTime.now()).getUpdateObject());
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
//3、插入时间错误
//把当前时间强制转换为了UTC时间 直接在时间后加'Z' 2022-04-14T07:19:35.374Z
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateMany(
// query.getQueryObject(),
// Update.update("nftName", "正在映画NFT名字001").set("updatedAt", LocalDateTime.now()).getUpdateObject());
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
//4、时间插入错误
// 把当前时间强制转换为了UTC时间 直接在时间后加'Z' 2022-04-14T07:19:35.374Z
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// Document result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).findOneAndUpdate(
// query.getQueryObject(),
// Update.update("nftName", "正在映画NFT名字001").set("updatedAt", LocalDateTime.now()).getUpdateObject(),
// new FindOneAndUpdateOptions().returnDocument(ReturnDocument.AFTER)
// );
// log.info("updateSeriesNftCrtCount result:{}", result.toString());
//5、插入时间未知,执行报错
// seriesNftInfoBo.setUpdatedAt(LocalDateTime.now());
// Update update = Update.fromDocument(Document.parse(JsonUtils.toJson(seriesNftInfoBo)));
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateMany(
// query.getQueryObject(),
// update.getUpdateObject());
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
//6、时间插入错误
// 把当前时间强制转换为了UTC时间 直接在时间后加'Z' 2022-04-14T07:19:35.374Z
// HashMap<String, Object> map = new HashMap<>();
// map.put("nftName", "正在映画NFT名字002");
// map.put("updatedAt", LocalDateTime.now());
// UpdateResult result = mongoTemplate.getCollection(GalaxySeriesNftInfoVo2.class.getSimpleName()).updateOne(
// query.getQueryObject(),
// new BasicDBObject("$set", map)
// );
// log.info("updateSeriesNftCrtCount result:{}",result.toString());
}
}
......@@ -644,7 +644,7 @@ public class KylinOrderTicketsRefundServiceImpl {
mongoTemplate.getCollection(KylinOrderRefundsVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderRefundsId").is(orderRefundsId)).getQueryObject(),
new Document("$set", new Document("status", KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL).append("updatedAt", time))
new Document("$set", new Document("status", KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL).append("updatedAt", mongoTemplate.getConverter().convertToMongoType(time)))
);
sqlsDataC.add(new Object[]{
......
......@@ -1288,7 +1288,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsService {
mongoTemplate.getCollection(KylinOrderRefundsVo.class.getSimpleName()).updateOne(
Query.query(Criteria.where("orderRefundsId").is(orderRefundsId)).getQueryObject(),
new Document("$set", new Document("status", KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL).append("updatedAt", time))
new Document("$set", new Document("status", KylinTableStatusConst.ORDER_REFUND_STATUS_CANCEL).append("updatedAt", mongoTemplate.getConverter().convertToMongoType(time)))
);
sqlsDataC.add(new Object[]{
......
......@@ -218,7 +218,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
continue;
}
// 不能购买的 没库存的 概率是0的 过滤
if (nftOrderUtils.getSkuHitRatio(skuInfoVo.getHitRatio()) && nftOrderUtils.getSkuAllStatusShow(skuInfoVo) && nftOrderUtils.getSkuAllStatusStock(skuInfoVo) > 0) {
if (nftOrderUtils.getSkuAllStatusShow(skuInfoVo) && nftOrderUtils.getSkuAllStatusStock(skuInfoVo) > 0) {
skuInfoVos.add(skuInfoVo);
}
}
......
......@@ -35,59 +35,59 @@ public class OrderApplePayServiceImpl {
public boolean pay(String orderId, String type, String receiptData, String transactionId) {
try {
log.info("苹果支付成功通知参数 [orderId:{},type:{},receiptData:{}]", orderId, type, receiptData);
GoblinNftOrderVo nftOrder = nftOrderUtils.getNftOrder(orderId);
if (null == nftOrder) {
log.info("未找到该订单 [orderId:{}]", orderId);
return false;
}
LinkedMultiValueMap<String, String> httpData = CollectionUtil.linkedMultiValueMapStringString();
httpData.add("type", type);
httpData.add("price", nftOrder.getPriceActual().toString());
httpData.add("name", nftOrder.getStoreName());
GoblinGoodsSkuInfoVo skuVo = goblinRedisUtils.getGoodsSkuInfoVo(nftOrder.getSkuId());
httpData.add("detail", skuVo.getName());
httpData.add("orderCode", nftOrder.getOrderCode());
httpData.add("orderId", nftOrder.getOrderId());
httpData.add("clientIp", CurrentUtil.getCliIpAddr());
httpData.add("notifyUrl", "");
httpData.add("createDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expireTime", "5");
httpData.add("payType", nftOrder.getPayType());
httpData.add("deviceFrom", nftOrder.getDeviceFrom());
httpData.add("openId", "");
httpData.add("showUrl", "");
httpData.add("returnUrl", "");
httpData.add("receiptData", receiptData);
httpData.add("transactionId", transactionId);
log.info("苹果支付成功通知参数 [orderId:{},type:{},receiptData:{},transactionId:{}]", orderId, type, receiptData, transactionId);
GoblinNftOrderVo nftOrder = nftOrderUtils.getNftOrder(orderId);
if (null == nftOrder) {
log.info("未找到该订单 [orderId:{}]", orderId);
return false;
}
LinkedMultiValueMap<String, String> httpData = CollectionUtil.linkedMultiValueMapStringString();
httpData.add("type", type);
httpData.add("price", nftOrder.getPriceActual().toString());
httpData.add("name", nftOrder.getStoreName());
GoblinGoodsSkuInfoVo skuVo = goblinRedisUtils.getGoodsSkuInfoVo(nftOrder.getSkuId());
httpData.add("detail", skuVo.getName());
httpData.add("orderCode", nftOrder.getOrderCode());
httpData.add("orderId", nftOrder.getOrderId());
httpData.add("clientIp", CurrentUtil.getCliIpAddr());
httpData.add("notifyUrl", "");
httpData.add("createDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expireTime", "5");
httpData.add("payType", nftOrder.getPayType());
httpData.add("deviceFrom", nftOrder.getDeviceFrom());
httpData.add("openId", "");
httpData.add("showUrl", "");
httpData.add("returnUrl", "");
httpData.add("receiptData", receiptData);
httpData.add("transactionId", transactionId);
LinkedMultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(payUrl, httpData, header);
log.info("苹果支付调用DRAGON结果 = " + returnData);
ResponseDto<GoblinApplePayInnerResultVo> dto = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<GoblinApplePayInnerResultVo>>() {
});
GoblinApplePayInnerResultVo dtoData = dto.getData();
if (null == dtoData || StringUtil.isEmpty(dtoData.getProductId())) {
return false;
} else {
// 支付成功
GoblinNftOrderPayCallbackParam NftOrderPayCallbackParam = GoblinNftOrderPayCallbackParam.getNew();
NftOrderPayCallbackParam.setCode(dtoData.getCode());
NftOrderPayCallbackParam.setOrderCode(nftOrder.getOrderCode());
NftOrderPayCallbackParam.setPaymentAt(DateUtil.format(LocalDateTime.now(), DateUtil.Formatter.yyyyMMddHHmmss));
NftOrderPayCallbackParam.setPrice(nftOrder.getPriceActual());
NftOrderPayCallbackParam.setPaymentId(transactionId);
NftOrderPayCallbackParam.setPaymentType(nftOrder.getDeviceFrom().concat(nftOrder.getPayType()).toUpperCase());
NftOrderPayCallbackParam.setStatus(1);
if (type.equals("NFT")) {
String isSync = goblinNftOrderService.syncOrder(NftOrderPayCallbackParam);
if (!isSync.equals("success")) {
return false;
LinkedMultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
String returnData = HttpUtil.post(payUrl, httpData, header);
log.info("苹果支付调用DRAGON结果 = " + returnData);
ResponseDto<GoblinApplePayInnerResultVo> dto = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<GoblinApplePayInnerResultVo>>() {
});
GoblinApplePayInnerResultVo dtoData = dto.getData();
if (null == dtoData || dtoData.getStatus() != 0) {
return false;
} else {
// 支付成功
GoblinNftOrderPayCallbackParam NftOrderPayCallbackParam = GoblinNftOrderPayCallbackParam.getNew();
NftOrderPayCallbackParam.setCode(dtoData.getCode());
NftOrderPayCallbackParam.setOrderCode(nftOrder.getOrderCode());
NftOrderPayCallbackParam.setPaymentAt(DateUtil.format(LocalDateTime.now(), DateUtil.Formatter.yyyyMMddHHmmss));
NftOrderPayCallbackParam.setPrice(nftOrder.getPriceActual());
NftOrderPayCallbackParam.setPaymentId(transactionId);
NftOrderPayCallbackParam.setPaymentType(nftOrder.getDeviceFrom().concat(nftOrder.getPayType()).toUpperCase());
NftOrderPayCallbackParam.setStatus(1);
if (type.equals("NFT")) {
String isSync = goblinNftOrderService.syncOrder(NftOrderPayCallbackParam);
if (!isSync.equals("success")) {
return false;
}
}
return true;
}
return true;
}
} catch (Exception e) {
log.error("OrderApplePayServiceImplE e:{}", e);
return false;
......
......@@ -345,6 +345,12 @@ public class GoblinNftOrderUtils {
* private String soldoutStatus 是否售罄[0-否|1-是];
*
* private String skuCanbuy 是否购买[0-否|1-是] 这个用来预览 前端自己判断;
*
* Integer upchain NFT上传声明状态[0-待上传|1-已声明|2-声明失败|9-声明中]
*
* 根据概率判断是否过滤当前sku 没设置概率或者设置了的返回true
*
* String unbox; 是否盲盒[0-否|1-是]
*/
// 获取盲盒下藏品的库存 各种状态下不能算库存的排除掉
public int getSkuAllStatusStock(GoblinGoodsSkuInfoVo info) {
......@@ -353,6 +359,7 @@ public class GoblinNftOrderUtils {
&& LocalDateTime.now().isAfter(info.getSaleStartTime())
&& (null == info.getSoldoutStatus() || info.getSoldoutStatus().equals("0"))
&& (null == info.getSkuCanbuy() || info.getSkuCanbuy().equals("1"))
&& (null == info.getHitRatio() || info.getHitRatio().compareTo(BigDecimal.ZERO) > 0)
) {// 可以返回库存
return goblinRedisUtils.getSkuStock(info.getSkuId());
} else {// 不计入库存
......@@ -368,18 +375,12 @@ public class GoblinNftOrderUtils {
&& info.getShelvesStatus().equals("3")
&& (info.getSkuAppear() == null || info.getSkuAppear().equals("0"))
&& info.getDelFlg().equals("0")
&& ((info.getUnbox().equals("0") && info.getUpchain() == 1) || info.getUnbox().equals("1"))
) {
return true;
} else {
return false;
}
}
// 根据概率判断是否过滤当前sku 没设置概率或者设置了的返回true
public boolean getSkuHitRatio(BigDecimal hitRatio) {
if (hitRatio == null || hitRatio.compareTo(BigDecimal.ZERO) > 0) {
return true;
} else {
return false;
}
}
}
......@@ -70,15 +70,15 @@ public class PlatformGoblinGoodsService extends ServiceImpl<GoblinGoodsMapper, G
LiquidnetServiceException liquidnetServiceException = new LiquidnetServiceException();
if (goblinGoodsSkuMapper.update(updateSku, updateSkuWrapper) > 0) {
LocalDateTime time = now.minusHours(8);
Object nowTimeMdbObj = mongoTemplate.getConverter().convertToMongoType(now);
UpdateResult updateSpuResult = mongoTemplate.getCollection(GoblinGoodsInfoVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("spuId").in(spuIdList).and("delFlg").is("0").and("shelvesStatus").in("0", "1").and("shelvesHandle").is("3")).getQueryObject(),
Update.update("shelvesStatus", "3").set("shelvesAt", time).getUpdateObject()
Update.update("shelvesStatus", "3").set("shelvesAt", nowTimeMdbObj).getUpdateObject()
);
if (updateSpuResult.getModifiedCount() > 0) {
UpdateResult updateSkuResult = mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("spuId").in(spuIdList).and("delFlg").is("0")).getQueryObject(),
Update.update("shelvesStatus", "3").set("shelvesAt", time).getUpdateObject()
Update.update("shelvesStatus", "3").set("shelvesAt", nowTimeMdbObj).getUpdateObject()
);
if (updateSkuResult.getModifiedCount() > 0) {
AbstractRedisUtil redisGoblinUtil = redisDataSourceUtil.getRedisGoblinUtil();
......
......@@ -68,15 +68,15 @@ public class PlatformGoblinGoodsSkuService extends ServiceImpl<GoblinGoodsSkuMap
LiquidnetServiceException liquidnetServiceException = new LiquidnetServiceException();
if (goblinGoodsMapper.update(updateSpu, updateSpuWrapper) > 0) {
LocalDateTime time = now.minusHours(8);
Object timeMdbObj = mongoTemplate.getConverter().convertToMongoType(now);
UpdateResult updateSkuResult = mongoTemplate.getCollection(GoblinGoodsSkuInfoVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("skuId").in(skuIdList).and("delFlg").is("0").and("shelvesStatus").in("0").and("shelvesHandle").is("3")).getQueryObject(),
Update.update("shelvesStatus", "3").set("shelvesAt", time).set("updatedAt", time).getUpdateObject()
Update.update("shelvesStatus", "3").set("shelvesAt", timeMdbObj).set("updatedAt", timeMdbObj).getUpdateObject()
);
if (updateSkuResult.getModifiedCount() > 0) {
UpdateResult updateSpuResult = mongoTemplate.getCollection(GoblinGoodsInfoVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("spuId").in(spuIdList).and("delFlg").is("0")).getQueryObject(),
Update.update("shelvesStatus", "3").set("shelvesAt", time).set("updatedAt", time).getUpdateObject()
Update.update("shelvesStatus", "3").set("shelvesAt", timeMdbObj).set("updatedAt", timeMdbObj).getUpdateObject()
);
if (updateSpuResult.getModifiedCount() > 0) {
AbstractRedisUtil redisGoblinUtil = redisDataSourceUtil.getRedisGoblinUtil();
......
......@@ -57,9 +57,10 @@ public class PlatformGoblinStoreCouponService extends ServiceImpl<GoblinStoreCou
updateWrapper.set(GoblinStoreCoupon::getUpdatedBy, "task");
if (this.update(updateWrapper)) {
Object timeMdbObj = mongoTemplate.getConverter().convertToMongoType(now);
UpdateResult updateResult = mongoTemplate.getCollection(GoblinStoreCouponBasicVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("delFlg").is("0").and("state").is("0").and("storeCouponId").in(storeCouponIdList)).getQueryObject(),
Update.update("state", "1").set("updatedAt", now.minusHours(8)).set("updatedBy", "task").getUpdateObject()
Update.update("state", "1").set("updatedAt", timeMdbObj).set("updatedBy", "task").getUpdateObject()
);
if (updateResult.getModifiedCount() <= 0) {
log.warn("###商铺活动:优惠券处理失败:[now={},storeCouponIdList={}]", now, JsonUtils.toJson(storeCouponIdList));
......@@ -104,9 +105,10 @@ public class PlatformGoblinStoreCouponService extends ServiceImpl<GoblinStoreCou
updateWrapper.set(GoblinStoreCoupon::getUpdatedAt, now);
updateWrapper.set(GoblinStoreCoupon::getUpdatedBy, "task");
if (this.update(updateWrapper)) {
Object timeMdbObj = mongoTemplate.getConverter().convertToMongoType(now);
UpdateResult updateResult = mongoTemplate.getCollection(GoblinStoreCouponBasicVo.class.getSimpleName()).updateMany(
Query.query(Criteria.where("delFlg").is("0").and("state").is("1").and("storeCouponId").in(storeCouponIdList)).getQueryObject(),
Update.update("state", "2").set("updatedAt", now.minusHours(8)).set("updatedBy", "task").getUpdateObject()
Update.update("state", "2").set("updatedAt", timeMdbObj).set("updatedBy", "task").getUpdateObject()
);
if (updateResult.getModifiedCount() <= 0) {
log.warn("###商铺活动:优惠券处理失败:[now={},storeCouponIdList={}]", now, JsonUtils.toJson(storeCouponIdList));
......
......@@ -56,8 +56,8 @@ public class SweetArtistsController {
@ApiImplicitParam(type = "query", dataType = "String", name = "name", value = "艺人姓名", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "pinyin", value = "姓名拼音", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "describes", value = "艺人简介", required = true),
@ApiImplicitParam(type = "query", dataType = "String[]", name = "picArray", value = "图片数组", required = true),
@ApiImplicitParam(type = "query", dataType = "String[]", name = "videoArray", value = "视频数组", required = true)
@ApiImplicitParam(type = "query", dataType = "String[]", name = "picArray", value = "图片数组", required = false),
@ApiImplicitParam(type = "query", dataType = "String[]", name = "videoArray", value = "视频数组", required = false)
})
public ResponseDto<Boolean> add(SweetArtistsListParam sweetArtistsList) {
return sweetArtistsService.add(sweetArtistsList);
......@@ -80,8 +80,8 @@ public class SweetArtistsController {
@ApiImplicitParam(type = "query", dataType = "String", name = "name", value = "艺人姓名", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "pinyin", value = "姓名拼音", required = true),
@ApiImplicitParam(type = "query", dataType = "String", name = "describes", value = "艺人简介", required = true),
@ApiImplicitParam(type = "query", dataType = "String[]", name = "picArray", value = "图片数组", required = true),
@ApiImplicitParam(type = "query", dataType = "String[]", name = "videoArray", value = "视频数组", required = true)
@ApiImplicitParam(type = "query", dataType = "String[]", name = "picArray", value = "图片数组", required = false),
@ApiImplicitParam(type = "query", dataType = "String[]", name = "videoArray", value = "视频数组", required = false)
})
public ResponseDto<Boolean> change(@RequestParam() String artistsId, SweetArtistsListParam sweetArtistsList) {
return sweetArtistsService.change(artistsId, sweetArtistsList);
......
......@@ -88,15 +88,19 @@ public class SweetArtistsServiceImpl extends ServiceImpl<SweetArtistsMapper, Swe
sweetArtistsMapper.insert(sweetArtists);
sweetArtistsUrl.setArtistsId(mid);
sweetArtistsUrl.setCreatedAt(time);
for (String img : sweetArtistsList.getPicArray()) {
sweetArtistsUrl.setUrl(img);
sweetArtistsUrl.setType("1");
sweetArtistsUrlMapper.insert(sweetArtistsUrl);
if (sweetArtistsList.getPicArray() != null) {
for (String img : sweetArtistsList.getPicArray()) {
sweetArtistsUrl.setUrl(img);
sweetArtistsUrl.setType("1");
sweetArtistsUrlMapper.insert(sweetArtistsUrl);
}
}
for (String video : sweetArtistsList.getVideoArray()) {
sweetArtistsUrl.setUrl(video);
sweetArtistsUrl.setType("2");
sweetArtistsUrlMapper.insert(sweetArtistsUrl);
if (sweetArtistsList.getVideoArray() != null) {
for (String video : sweetArtistsList.getVideoArray()) {
sweetArtistsUrl.setUrl(video);
sweetArtistsUrl.setType("2");
sweetArtistsUrlMapper.insert(sweetArtistsUrl);
}
}
return ResponseDto.success();
} catch (Exception e) {
......
......@@ -319,7 +319,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
.append("receivingCity", receivingCity)
.append("receivingCounty", receivingCounty)
.append("receivingAddress", receivingAddress)
.append("updatedAt", nowTime))
.append("updatedAt", mongoTemplate.getConverter().convertToMongoType(nowTime)))
);
redisDataUtils.delIntegralActivityDrawList(drawVo.getUserId(), drawVo.getIntegralActivityId());
......@@ -382,7 +382,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
// Query.query(Criteria.where("drawId").is(drawId)).getQueryObject(),
// new Document("$set", new Document("receivingStatus", 2)
// .append("relationId", couponId)
// .append("updatedAt", LocalDateTime.now())
// .append("updatedAt", mongoTemplate.getConverter().convertToMongoType(LocalDateTime.now()))
// )
// );
......
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