Commit 2d6449c0 authored by wangpeng's avatar wangpeng

Merge branch 'test' into 'master'

Test See merge request !48
parents cc8c8199 c0e890fa
...@@ -127,7 +127,6 @@ public class GoodsListController { ...@@ -127,7 +127,6 @@ public class GoodsListController {
@PutMapping("/cancelCheck/{goodsId}") @PutMapping("/cancelCheck/{goodsId}")
public ResponseVO cancelCheck(@PathVariable String goodsId, @ApiParam(name = "adminId", value = "管理员id") public ResponseVO cancelCheck(@PathVariable String goodsId, @ApiParam(name = "adminId", value = "管理员id")
@RequestHeader String adminId) { @RequestHeader String adminId) {
adminService.adminAuthCheck(adminId, AdminTypeEnum.MERCHANT.getType());
String merchantId1 = adminService.getByAdminId(adminId).getMerchantId(); String merchantId1 = adminService.getByAdminId(adminId).getMerchantId();
String merchantId2 = spuService.getByGoodsId(goodsId).getMerchantId(); String merchantId2 = spuService.getByGoodsId(goodsId).getMerchantId();
if (!merchantId1.equals(merchantId2)) { if (!merchantId1.equals(merchantId2)) {
......
...@@ -211,7 +211,6 @@ public class SpuController { ...@@ -211,7 +211,6 @@ public class SpuController {
@PutMapping("/goodsList/cancelCheck/{goodsId}") @PutMapping("/goodsList/cancelCheck/{goodsId}")
public ResponseVO cancel(@PathVariable String goodsId, @ApiParam(name = "adminId", value = "管理员id") public ResponseVO cancel(@PathVariable String goodsId, @ApiParam(name = "adminId", value = "管理员id")
@RequestHeader String adminId) { @RequestHeader String adminId) {
adminService.adminAuthCheck(adminId, AdminTypeEnum.MERCHANT.getType());
String merchantId1 = adminService.getByAdminId(adminId).getMerchantId(); String merchantId1 = adminService.getByAdminId(adminId).getMerchantId();
String merchantId2 = spuService.getByGoodsId(goodsId).getMerchantId(); String merchantId2 = spuService.getByGoodsId(goodsId).getMerchantId();
if (!merchantId1.equals(merchantId2)) { if (!merchantId1.equals(merchantId2)) {
......
...@@ -22,7 +22,8 @@ public enum SpuStatusEnum { ...@@ -22,7 +22,8 @@ public enum SpuStatusEnum {
CHECK_FAIL(6),//审核未通过 CHECK_FAIL(6),//审核未通过
CHECK_PASS(7),//审核通过 CHECK_PASS(7),//审核通过
CANCEL(8),//取消发布 CANCEL(8),//取消发布
DRAFT(9);//草稿 DRAFT(9),//草稿
PREHEAT(10);//预热
private Integer status; private Integer status;
......
...@@ -161,4 +161,6 @@ public interface ISpuService extends IService<Spu> { ...@@ -161,4 +161,6 @@ public interface ISpuService extends IService<Spu> {
*/ */
List<GoodsListVO> getSpuByVague(String goodsInfo, String merchantId); List<GoodsListVO> getSpuByVague(String goodsInfo, String merchantId);
List<Spu> listForPreheat();
} }
...@@ -117,12 +117,14 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E ...@@ -117,12 +117,14 @@ public class ExternalTokenServiceImpl extends ServiceImpl<ExternalTokenMapper, E
externalToken.setPublishTime(publishTime); externalToken.setPublishTime(publishTime);
externalToken.setPublisher(publisher); externalToken.setPublisher(publisher);
Map<String, Object> map = new HashMap<>(); if (!url.equals("http://146.56.218.121:8081/open/nft/hash")) {
map.put("tokenId", tokenId); Map<String, Object> map = new HashMap<>();
String httpGet = HttpUtil.httpGet(url, map); map.put("tokenId", tokenId);
JSONObject json = JSONObject.parseObject(httpGet); String httpGet = HttpUtil.httpGet(url, map);
if (json.getString("code").equals("200")) { JSONObject json = JSONObject.parseObject(httpGet);
externalToken.setHash(json.getString("data")); if (json.getString("code").equals("200")) {
externalToken.setHash(json.getString("data"));
}
} }
//TODO 唐拓接口 //TODO 唐拓接口
save(externalToken); save(externalToken);
......
...@@ -84,12 +84,16 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -84,12 +84,16 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
if (StringUtils.isBlank(kDTO.getImage())) { if (StringUtils.isBlank(kDTO.getImage())) {
sku.setThumb(thumb); sku.setThumb(thumb);
} }
if (salesType.equals(SalesTypeEnum.ORDINARY.getType())) { if (salesType == null) {
sku.setCirculation(kDTO.getStock());
sku.setPrice(kDTO.getOriginalPrice());
}
if (salesType != null && salesType.equals(SalesTypeEnum.ORDINARY.getType())) {
sku.setCirculation(kDTO.getStock()); sku.setCirculation(kDTO.getStock());
sku.setOriginalPrice(price); sku.setOriginalPrice(price);
sku.setPrice(price); sku.setPrice(price);
} }
if (salesType.equals(SalesTypeEnum.BLIND_BOX.getType())) { if (salesType != null && salesType.equals(SalesTypeEnum.BLIND_BOX.getType())) {
sku.setOriginalPrice(blindBoxPrice); sku.setOriginalPrice(blindBoxPrice);
sku.setPrice(blindBoxPrice); sku.setPrice(blindBoxPrice);
} }
...@@ -100,7 +104,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -100,7 +104,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
//规格属性入库 //规格属性入库
skuPropService.add(kDTO.getPropertyList(), skuId); skuPropService.add(kDTO.getPropertyList(), skuId);
if (salesType.equals(SalesTypeEnum.BLIND_BOX.getType())) { if (salesType != null && salesType.equals(SalesTypeEnum.BLIND_BOX.getType())) {
if (commodityPass.equals(CommodityPassTypeEnum.INNER.getType())) { if (commodityPass.equals(CommodityPassTypeEnum.INNER.getType())) {
long tokenId = System.currentTimeMillis(); long tokenId = System.currentTimeMillis();
sku.setCoinName(MALLGlobalConfig.NFT_PREFIX + tokenId); sku.setCoinName(MALLGlobalConfig.NFT_PREFIX + tokenId);
...@@ -146,7 +150,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -146,7 +150,7 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
//发行NFT //发行NFT
ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId(kDTO.getCoinName(), merchantId); ExternalToken externalToken = externalTokenService.queryByLabelNameAndMerchantId(kDTO.getCoinName(), merchantId);
String tokenId = externalToken.getTokenId().toString(); /*String tokenId = externalToken.getTokenId().toString();
long[] nos = new long[Math.toIntExact(kDTO.getStock())]; long[] nos = new long[Math.toIntExact(kDTO.getStock())];
String[] hashs = new String[Math.toIntExact(kDTO.getStock())]; String[] hashs = new String[Math.toIntExact(kDTO.getStock())];
for (int i = 0; i < kDTO.getStock(); i++) { for (int i = 0; i < kDTO.getStock(); i++) {
...@@ -155,15 +159,17 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS ...@@ -155,15 +159,17 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
String hash = chainUtil.evmPublishTokenSplit(addr, suffixAll, 1L); String hash = chainUtil.evmPublishTokenSplit(addr, suffixAll, 1L);
nos[i] = suffixAll; nos[i] = suffixAll;
hashs[i] = hash; hashs[i] = hash;
} }*/
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("goodsId", goodsId); map.put("goodsId", goodsId);
map.put("hashs", hashs); // map.put("hashs", hashs);
map.put("prefix", tokenId); map.put("prefix", externalToken.getTokenId().toString());
map.put("merchantId", merchantId); map.put("merchantId", merchantId);
map.put("commodityPassId", externalToken.getCommodityPassId()); map.put("commodityPassId", externalToken.getCommodityPassId());
map.put("nos", JSONArray.toJSON(nos)); // map.put("nos", JSONArray.toJSON(nos));
map.put("stock",kDTO.getStock());
map.put("addr",addr);
producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 10 * 1000); producer.sendTTL(map, QueueTTLTypeEnum.NFT_USU_TTL, 10 * 1000);
} }
} }
......
...@@ -31,6 +31,7 @@ import com.fzm.mall.server.admin.home_page.service.IMerchantService; ...@@ -31,6 +31,7 @@ import com.fzm.mall.server.admin.home_page.service.IMerchantService;
import com.fzm.mall.server.admin.opration.service.IFloorGoodsService; import com.fzm.mall.server.admin.opration.service.IFloorGoodsService;
import com.fzm.mall.server.admin.util.UUIDUtil; import com.fzm.mall.server.admin.util.UUIDUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.dozer.DozerBeanMapper; import org.dozer.DozerBeanMapper;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -41,6 +42,7 @@ import java.math.BigDecimal; ...@@ -41,6 +42,7 @@ import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.fzm.mall.server.admin.goods_center.enums.type.GoodsTypeEnum.*; import static com.fzm.mall.server.admin.goods_center.enums.type.GoodsTypeEnum.*;
...@@ -52,6 +54,7 @@ import static com.fzm.mall.server.admin.goods_center.enums.type.GoodsTypeEnum.*; ...@@ -52,6 +54,7 @@ import static com.fzm.mall.server.admin.goods_center.enums.type.GoodsTypeEnum.*;
* @since JDK 1.8 * @since JDK 1.8
*/ */
@Service @Service
@Slf4j
@Transactional @Transactional
public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuService { public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuService {
...@@ -110,7 +113,8 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS ...@@ -110,7 +113,8 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
goodsId = UUIDUtil.getUUID(); goodsId = UUIDUtil.getUUID();
} }
if (pDTO.getSalesType().equals(SalesTypeEnum.ORDINARY.getType())) { log.info("salesType:" + pDTO.getSalesType());
if (pDTO.getSalesType() != null && pDTO.getSalesType().equals(SalesTypeEnum.ORDINARY.getType())) {
nftService.add(pDTO.getNftdto(), goodsId, pDTO.getName(), addr, merchantId, timestamp); nftService.add(pDTO.getNftdto(), goodsId, pDTO.getName(), addr, merchantId, timestamp);
if (pDTO.getNftdto().getTzType().equals(1)) { if (pDTO.getNftdto().getTzType().equals(1)) {
List<GoodsSkuDTO> objects = pDTO.getSkuList().stream().peek(v -> { List<GoodsSkuDTO> objects = pDTO.getSkuList().stream().peek(v -> {
...@@ -132,13 +136,16 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS ...@@ -132,13 +136,16 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
spu = beanMapper.map(pDTO, Spu.class); spu = beanMapper.map(pDTO, Spu.class);
spu.setGoodsId(goodsId); spu.setGoodsId(goodsId);
spu.setMerchantId(merchantId); spu.setMerchantId(merchantId);
if (!Objects.equals(spu.getSalesType(), SalesTypeEnum.BLIND_BOX.getType())){
spu.setBlindBoxRule("无");
}
Integer status = SpuStatusEnum.WAIT_CHECK.getStatus(); Integer status = SpuStatusEnum.WAIT_CHECK.getStatus();
if ((pDTO.getCommodityPass().equals(CommodityPassTypeEnum.COPY.getType()) && pDTO.getSkuList().get(0).getNftSalesType().equals(NFTSalesTypeEnum.COPY.getType())) || pDTO.getCommodityPass().equals(CommodityPassTypeEnum.INNER.getType())) { if ((pDTO.getCommodityPass().equals(CommodityPassTypeEnum.COPY.getType()) && pDTO.getSkuList().get(0).getNftSalesType().equals(NFTSalesTypeEnum.COPY.getType())) || pDTO.getCommodityPass().equals(CommodityPassTypeEnum.INNER.getType())) {
status = SpuStatusEnum.ISSUE.getStatus(); status = SpuStatusEnum.ISSUE.getStatus();
} }
spu.setStatus(status); spu.setStatus(status);
//设置商品最大最小值 //设置商品最大最小值
if (pDTO.getSalesType().equals(SalesTypeEnum.BLIND_BOX.getType())) { if (pDTO.getSalesType() != null && pDTO.getSalesType().equals(SalesTypeEnum.BLIND_BOX.getType())) {
spu.setMaxPrice(pDTO.getBlindBoxPrice()); spu.setMaxPrice(pDTO.getBlindBoxPrice());
spu.setDefaultPrice(pDTO.getBlindBoxPrice()); spu.setDefaultPrice(pDTO.getBlindBoxPrice());
} else { } else {
...@@ -541,4 +548,12 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS ...@@ -541,4 +548,12 @@ public class SpuServiceImpl extends ServiceImpl<SpuMapper, Spu> implements ISpuS
externalTokenService.updateById(externalToken); externalTokenService.updateById(externalToken);
} }
} }
@Override
public List<Spu> listForPreheat() {
LambdaQueryWrapper<Spu> qw = new LambdaQueryWrapper<>();
qw.eq(Spu::getStatus, SpuStatusEnum.PREHEAT.getStatus());
return list(qw);
}
} }
...@@ -16,6 +16,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener; ...@@ -16,6 +16,7 @@ import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Map; import java.util.Map;
/** /**
...@@ -60,13 +61,26 @@ public class NftConsumer { ...@@ -60,13 +61,26 @@ public class NftConsumer {
public void usuCoinsPrice(Map<String, Object> obj) { public void usuCoinsPrice(Map<String, Object> obj) {
try { try {
String goodsId = obj.get("goodsId") + ""; String goodsId = obj.get("goodsId") + "";
String[] hashs = (String[]) obj.get("hashs"); // String[] hashs = (String[]) obj.get("hashs");
String prefix = obj.get("prefix") + ""; String prefix = obj.get("prefix") + "";
String nos = obj.get("nos") + ""; // String nos = obj.get("nos") + "";
String merchantId = obj.get("merchantId") + ""; String merchantId = obj.get("merchantId") + "";
String commodityPassId = obj.get("commodityPassId") + ""; String commodityPassId = obj.get("commodityPassId") + "";
// String tokenId = obj.get("tokenId") + "";
Long stock = (Long) obj.get("stock");
String addr = obj.get("addr") + "";
System.err.println("obj:" + obj); System.err.println("obj:" + obj);
long[] nos = new long[Math.toIntExact(stock)];
String[] hashs = new String[Math.toIntExact(stock)];
for (int i = 0; i < stock; i++) {
String suffix = i + 1 + "";
Long suffixAll = Long.parseLong(prefix + "00000000".substring(0, 8 - suffix.length()) + suffix);
String hash = chainUtil.evmPublishTokenSplit(addr, suffixAll, 1L);
nos[i] = suffixAll;
hashs[i] = hash;
}
int length = hashs.length; int length = hashs.length;
//发行token //发行token
...@@ -88,7 +102,7 @@ public class NftConsumer { ...@@ -88,7 +102,7 @@ public class NftConsumer {
spuService.updateStatus(goodsId, SpuStatusEnum.WAIT_CHECK.getStatus(), ""); spuService.updateStatus(goodsId, SpuStatusEnum.WAIT_CHECK.getStatus(), "");
GoodsSkuUsufruct goodsSkuUsufruct = new GoodsSkuUsufruct(); GoodsSkuUsufruct goodsSkuUsufruct = new GoodsSkuUsufruct();
goodsSkuUsufruct.setPrefix(prefix); goodsSkuUsufruct.setPrefix(prefix);
goodsSkuUsufruct.setSerialNo(nos.toString()); goodsSkuUsufruct.setSerialNo(Arrays.toString(nos));
goodsSkuUsufruct.setCommodityPassId(commodityPassId); goodsSkuUsufruct.setCommodityPassId(commodityPassId);
goodsSkuUsufruct.setMerchantId(merchantId); goodsSkuUsufruct.setMerchantId(merchantId);
goodsSkuUsufructService.save(goodsSkuUsufruct); goodsSkuUsufructService.save(goodsSkuUsufruct);
......
package com.fzm.mall.server.admin.task.goods;
import com.fzm.mall.server.admin.goods_center.enums.status.SpuStatusEnum;
import com.fzm.mall.server.admin.goods_center.model.Spu;
import com.fzm.mall.server.admin.goods_center.service.ISpuService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @author wangp
* @date 2021/6/18 10:43
* @description 订单定时任务
* @since JDK 1.8
*/
@Component
@Slf4j
@Transactional
public class GoodsTask {
@Autowired
private ISpuService spuService;
//预热商品上架
@Scheduled(cron = "10 * * * * ?")
public void yrsj() {
List<Spu> spuList = spuService.listForPreheat();
spuList.forEach(v -> {
if (v.getPreheatEndTime() < System.currentTimeMillis()) {
//修改状态为上架
spuService.updateStatus(v.getGoodsId(), SpuStatusEnum.ON.getStatus(), "");
}
});
}
}
...@@ -37,7 +37,7 @@ public class PaymentTypeConst { ...@@ -37,7 +37,7 @@ public class PaymentTypeConst {
/** /**
* 待支付 * 待支付
*/ */
public final static int PAY_WAIT = 0; public final static int PAY_WAIT = 7;
/** /**
* 待收货 * 待收货
......
...@@ -3,6 +3,10 @@ package com.fzm.mall.server.front.enums; ...@@ -3,6 +3,10 @@ package com.fzm.mall.server.front.enums;
public enum OrderStateEnum { public enum OrderStateEnum {
/** /**
* 6->支付中
*/
ORDER_STATE_PAYING(6),
/**
* 7->待支付 * 7->待支付
*/ */
ORDER_STATE_TO_PAY(7), ORDER_STATE_TO_PAY(7),
......
...@@ -37,7 +37,7 @@ public class orderCloseCousumer { ...@@ -37,7 +37,7 @@ public class orderCloseCousumer {
log.error("orderPayConsumer:pid:"+message +"订单不存在"); log.error("orderPayConsumer:pid:"+message +"订单不存在");
return; return;
} }
if(pay.getState()!=6){ if(pay.getState()!=3 && pay.getState()!=6){
log.error("orderPayConsumer:pid:"+message +"订单状态不成功"); log.error("orderPayConsumer:pid:"+message +"订单状态不成功");
return; return;
} }
......
...@@ -1238,12 +1238,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -1238,12 +1238,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
return; return;
} }
/** /**
* 关单前的订单状态:待支付 * 关单前的订单状态:待支付,支付中
*/ */
order.setOrderState(2); order.setOrderState(2);
UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<Order> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("oid", order.getOid()) updateWrapper.eq("oid", order.getOid())
.eq("order_state", OrderStateEnum.ORDER_STATE_TO_PAY.getState()); .in("order_state", Arrays.asList(OrderStateEnum.ORDER_STATE_PAYING.getState(), OrderStateEnum.ORDER_STATE_TO_PAY.getState()));
int update = orderMapper.update(order, updateWrapper); int update = orderMapper.update(order, updateWrapper);
if (update == 0) { if (update == 0) {
log.error("close order fail, order:" + order.toString()); log.error("close order fail, order:" + order.toString());
...@@ -1266,17 +1266,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements ...@@ -1266,17 +1266,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
} }
} }
/**
* 关闭订单前校验订单是否为“待支付”
*
* @param order
*/
private void checkOrderStateBeforeClose(Order order) {
if (order.getOrderState() != OrderStateEnum.ORDER_STATE_TO_PAY.getState()) {
throw new RuntimeException("close order fail, order:" + order.toString());
}
}
@Override @Override
@Transactional @Transactional
public int applyReturn(String uid, String oid) { public int applyReturn(String uid, String oid) {
......
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