Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mall-server
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
yimu
mall-server
Commits
9ef1aa1c
Commit
9ef1aa1c
authored
Dec 27, 2021
by
wlx@33.cn
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
https://gitlab.33.cn/yimu/mall-server
into dev
parents
bfda9001
48d81970
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
590 additions
and
118 deletions
+590
-118
UserAsset.java
...java/com/fzm/mall/server/front/asset/model/UserAsset.java
+7
-0
UserAssetRecord.java
...om/fzm/mall/server/front/asset/model/UserAssetRecord.java
+3
-0
AssetTranDTO.java
...m/fzm/mall/server/front/asset/model/dto/AssetTranDTO.java
+2
-1
UserAssetServiceImpl.java
...server/front/asset/service/impl/UserAssetServiceImpl.java
+2
-2
GoodSpuMapper.java
...com/fzm/mall/server/front/goods/mapper/GoodSpuMapper.java
+3
-0
SkuMapper.java
...ava/com/fzm/mall/server/front/goods/mapper/SkuMapper.java
+11
-0
SkuVo.java
.../java/com/fzm/mall/server/front/goods/model/vo/SkuVo.java
+2
-0
IGoodSpuService.java
.../fzm/mall/server/front/goods/service/IGoodSpuService.java
+2
-0
ISkuService.java
.../com/fzm/mall/server/front/goods/service/ISkuService.java
+7
-0
GoodSpuServiceImpl.java
...l/server/front/goods/service/impl/GoodSpuServiceImpl.java
+5
-0
SkuServiceImpl.java
.../mall/server/front/goods/service/impl/SkuServiceImpl.java
+16
-0
Delivery.java
.../java/com/fzm/mall/server/front/order/model/Delivery.java
+2
-0
OrderDetail.java
...va/com/fzm/mall/server/front/order/model/OrderDetail.java
+2
-0
OrderServiceImpl.java
...all/server/front/order/service/impl/OrderServiceImpl.java
+516
-115
mall_create.sql
mall-sql/mall_create.sql
+10
-0
No files found.
mall-server-front/src/main/java/com/fzm/mall/server/front/asset/model/UserAsset.java
View file @
9ef1aa1c
...
...
@@ -63,7 +63,14 @@ public class UserAsset implements Serializable {
@TableField
(
exist
=
false
)
private
BigDecimal
totalPrice
;
@ApiModelProperty
(
value
=
"商品币对于skuId"
)
private
String
goodsCoin
;
@ApiModelProperty
(
value
=
"溯源hash"
)
@TableField
(
exist
=
false
)
private
String
hash
;
@ApiModelProperty
(
value
=
"商品coin"
)
private
String
goodsCoin
;
}
mall-server-front/src/main/java/com/fzm/mall/server/front/asset/model/UserAssetRecord.java
View file @
9ef1aa1c
...
...
@@ -72,6 +72,9 @@ public class UserAssetRecord implements Serializable {
@ApiModelProperty
(
value
=
"备注"
)
private
String
note
;
@ApiModelProperty
(
value
=
"商品coin"
)
private
String
goodsCoin
;
public
void
init
(
String
uid
,
String
coin
,
Integer
type
,
BigDecimal
amount
,
Integer
status
,
String
otherSide
,
String
hash
,
String
note
)
{
setFlowId
(
UUIdUtil
.
getUUID
());
setUid
(
uid
);
...
...
mall-server-front/src/main/java/com/fzm/mall/server/front/asset/model/dto/AssetTranDTO.java
View file @
9ef1aa1c
...
...
@@ -35,5 +35,6 @@ public class AssetTranDTO {
public
AssetTranDTO
()
{
}
@ApiModelProperty
(
value
=
"商品coin"
)
private
String
goodsCoin
;
}
mall-server-front/src/main/java/com/fzm/mall/server/front/asset/service/impl/UserAssetServiceImpl.java
View file @
9ef1aa1c
...
...
@@ -97,10 +97,10 @@ public class UserAssetServiceImpl extends ServiceImpl<UserAssetMapper, UserAsset
BigDecimal
amount
=
i
.
getAmount
();
i
.
setAmount
(
amount
.
setScale
(
2
,
BigDecimal
.
ROUND_DOWN
));
i
.
setFrozen
(
i
.
getFrozen
().
setScale
(
2
,
BigDecimal
.
ROUND_DOWN
));
if
(
StringUtil
.
isNullOrEmpty
(
i
.
getCoin
()))
{
if
(
StringUtil
.
isNullOrEmpty
(
i
.
get
Goods
Coin
()))
{
continue
;
}
SkuVo
skuVo
=
skuService
.
querySkuByCoin
(
i
.
getCoin
());
SkuVo
skuVo
=
skuService
.
querySkuByCoin
(
i
.
get
Goods
Coin
());
if
(
skuVo
!=
null
)
{
BigDecimal
totalPrice
=
amount
.
multiply
(
skuVo
.
getOriginalPrice
()).
setScale
(
2
,
BigDecimal
.
ROUND_DOWN
);
i
.
setTotalPrice
(
totalPrice
);
...
...
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/mapper/GoodSpuMapper.java
View file @
9ef1aa1c
...
...
@@ -23,4 +23,7 @@ public interface GoodSpuMapper extends BaseMapper<GoodSpu> {
@Select
(
"select a.commodity_pass from goods_spu a left join goods_sku b on a.goods_id = b.goods_id where b.sku_id = #{skuId} "
)
int
getCommodityBySkuId
(
@Param
(
"skuId"
)
String
skuId
);
@Select
(
"select nft_sales_type from goods_sku where sku_id = #{skuId} "
)
int
getNftSalesType
(
@Param
(
"skuId"
)
String
skuId
);
}
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/mapper/SkuMapper.java
View file @
9ef1aa1c
package
com
.
fzm
.
mall
.
server
.
front
.
goods
.
mapper
;
import
com.alibaba.fastjson.JSON
;
import
com.fzm.mall.server.front.goods.model.Sku
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.fzm.mall.server.front.goods.model.vo.SkuVo
;
import
com.fzm.mall.server.front.order.model.vo.ShopInfoVo
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Select
;
import
org.apache.ibatis.annotations.Update
;
import
java.util.List
;
...
...
@@ -38,4 +40,13 @@ public interface SkuMapper extends BaseMapper<Sku> {
@Select
(
"select token_id from external_token where label_name = #{coin} limit 1"
)
Long
getTrueCoin
(
@Param
(
"coin"
)
String
coin
);
@Select
(
"select token_id from goods_sku a left join external_token b on a.commodity_pass_id = b.commodity_pass_id where a.sku_id = #{skuId}"
)
Long
getTokenId
(
@Param
(
"skuId"
)
String
skuId
);
@Select
(
"select serial_no from goods_sku_usufruct where commodity_pass_id = #{commodity_pass_id}"
)
String
getSerialNo
(
@Param
(
"commodity_pass_id"
)
String
tokenId
);
@Update
(
"update goods_sku_usufruct set serial_no = #{toJSONString} where commodity_pass_id = #{commodityPassId}"
)
void
updateSerialNo
(
@Param
(
"toJSONString"
)
String
toJSONString
,
@Param
(
"commodityPassId"
)
String
commodityPassId
);
}
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/model/vo/SkuVo.java
View file @
9ef1aa1c
...
...
@@ -64,4 +64,6 @@ public class SkuVo {
private
Integer
type
;
private
String
commodityPassId
;
}
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/service/IGoodSpuService.java
View file @
9ef1aa1c
...
...
@@ -17,4 +17,6 @@ public interface IGoodSpuService extends IService<GoodSpu> {
String
getTemplateIdByGoodsId
(
String
goodsId
);
int
getCommodityBySkuId
(
String
skuId
);
int
getNftSalesType
(
String
skuId
);
}
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/service/ISkuService.java
View file @
9ef1aa1c
package
com
.
fzm
.
mall
.
server
.
front
.
goods
.
service
;
import
com.alibaba.fastjson.JSON
;
import
com.fzm.mall.server.front.goods.model.Sku
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.fzm.mall.server.front.goods.model.vo.SkuVo
;
...
...
@@ -34,4 +35,10 @@ public interface ISkuService extends IService<Sku> {
Boolean
checkOrder
(
OrderVo
orderVo
);
Long
getTrueCoin
(
String
coin
);
Long
getTokenId
(
String
skuId
);
String
getSerialNo
(
String
tokenId
);
void
updateSerialNo
(
String
toJSONString
,
String
commodityPassId
);
}
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/service/impl/GoodSpuServiceImpl.java
View file @
9ef1aa1c
...
...
@@ -54,4 +54,9 @@ public class GoodSpuServiceImpl extends ServiceImpl<GoodSpuMapper, GoodSpu> impl
return
goodSpuMapper
.
getCommodityBySkuId
(
skuId
);
}
@Override
public
int
getNftSalesType
(
String
skuId
)
{
return
goodSpuMapper
.
getNftSalesType
(
skuId
);
}
}
mall-server-front/src/main/java/com/fzm/mall/server/front/goods/service/impl/SkuServiceImpl.java
View file @
9ef1aa1c
package
com
.
fzm
.
mall
.
server
.
front
.
goods
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.Wrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.fzm.mall.server.front.goods.model.Sku
;
...
...
@@ -80,6 +81,21 @@ public class SkuServiceImpl extends ServiceImpl<SkuMapper, Sku> implements ISkuS
return
skuMapper
.
getTrueCoin
(
coin
);
}
@Override
public
Long
getTokenId
(
String
skuId
)
{
return
skuMapper
.
getTokenId
(
skuId
);
}
@Override
public
String
getSerialNo
(
String
tokenId
)
{
return
skuMapper
.
getSerialNo
(
tokenId
);
}
@Override
public
void
updateSerialNo
(
String
toJSONString
,
String
commodityPassId
)
{
skuMapper
.
updateSerialNo
(
toJSONString
,
commodityPassId
);
}
private
boolean
checkMerchantIdAndSkuId
(
String
merchantId
,
String
skuId
)
{
SkuVo
skuVo
=
skuMapper
.
getBySkuId
(
skuId
);
if
(
merchantId
.
equals
(
skuVo
.
getMerchantId
()))
{
...
...
mall-server-front/src/main/java/com/fzm/mall/server/front/order/model/Delivery.java
View file @
9ef1aa1c
...
...
@@ -107,4 +107,6 @@ public class Delivery implements Serializable {
@ApiModelProperty
(
value
=
"邮费"
)
private
BigDecimal
postFee
;
private
String
serialNo
;
}
mall-server-front/src/main/java/com/fzm/mall/server/front/order/model/OrderDetail.java
View file @
9ef1aa1c
...
...
@@ -88,4 +88,6 @@ public class OrderDetail implements Serializable {
@ApiModelProperty
(
value
=
"店铺名称"
)
@TableField
(
exist
=
false
)
private
String
shopName
;
private
String
serialNo
;
}
mall-server-front/src/main/java/com/fzm/mall/server/front/order/service/impl/OrderServiceImpl.java
View file @
9ef1aa1c
...
...
@@ -319,12 +319,36 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if
(
i
!=
1
)
{
throw
new
RuntimeException
(
"库存不足!!!"
);
}
//统计每家店对应商品数量
merchantGoodSize
=
merchantGoodSize
+
orderSkuVo
.
getNum
();
//统计每家店对应商品重量
//merchantGoodWeight = merchantGoodWeight.add(skuVo.getWeight().multiply(new BigDecimal(orderSkuVo.getNum())));
templateId
=
skuVo
.
getTemplateId
();
OrderDetail
orderDetail
=
new
OrderDetail
();
int
commodity
=
spuService
.
getCommodityBySkuId
(
orderSkuVo
.
getSkuId
());
if
(
commodity
==
3
){
int
saleType
=
spuService
.
getNftSalesType
(
orderSkuVo
.
getSkuId
());
if
(
saleType
==
2
){
String
serialNo
=
skuService
.
getSerialNo
(
skuVo
.
getCommodityPassId
());
JSONArray
array
=
JSON
.
parseArray
(
serialNo
);
if
(
array
.
size
()<
orderSkuVo
.
getNum
()){
throw
new
RuntimeException
(
"库存不足!!!"
);
}
int
index
=
1
;
List
<
String
>
list
=
new
ArrayList
<>();
for
(
Object
o:
array
)
{
if
(
index
<=
orderSkuVo
.
getNum
()){
list
.
add
(
o
.
toString
());
}
else
{
break
;
}
}
array
.
remove
(
list
);
skuService
.
updateSerialNo
(
JSON
.
toJSONString
(
array
),
skuVo
.
getCommodityPassId
());
orderDetail
.
setSerialNo
(
JSON
.
toJSONString
(
list
));
}
}
orderDetail
.
setOid
(
order
.
getOid
());
orderDetail
.
setGoodsId
(
skuVo
.
getGoodsId
());
orderDetail
.
setSkuId
(
skuVo
.
getSkuId
());
...
...
@@ -407,7 +431,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
pay
.
setTotal
(
all
);
pay
.
setPaidAmount
(
BigDecimal
.
ZERO
);
pay
.
setUnpaidAmount
(
all
);
pay
.
setPayType
(
0
);
pay
.
setPayType
(
4
);
pay
.
setOidsJson
(
a
.
toJSONString
());
payService
.
save
(
pay
);
return
pay
.
getPayId
();
...
...
@@ -659,122 +683,475 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
if
(
order
.
getDelivery
()
==
0
)
{
for
(
OrderDetail
orderDetail
:
details
)
{
SkuVo
skuVo
=
skuService
.
getBySkuId
(
orderDetail
.
getSkuId
());
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
log
.
error
(
"skuVo+++"
+
skuVo
.
toString
());
//String hash = paraChainUtil.evmTransfer(, null, user.getAddress(), , orderDetail.getCoin());
//String replace = orderDetail.getCoin().replace(MALLGlobalConfig.GOODS_NFT_PREFIX,"");
String
hash
=
tranCoinAndNft
(
skuVo
.
getSkuId
(),
m
.
getTokenIssueAddr
(),
user
.
getAddress
(),
new
BigDecimal
(
orderDetail
.
getNumber
()),
skuVo
.
getType
(),
orderDetail
.
getCoin
());
int
commodity
=
spuService
.
getCommodityBySkuId
(
orderDetail
.
getSkuId
());
if
(
commodity
==
1
){
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
coinName
=
orderDetail
.
getCoin
().
replace
(
MALLGlobalConfig
.
GOODS_NFT_PREFIX
,
""
);
String
hash
=
chainUtil
.
tranToken
(
m
.
getTokenIssueAddr
(),
""
,
user
.
getAddress
(),
new
BigDecimal
(
orderDetail
.
getNumber
()),
coinName
);
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
}
else
if
(
commodity
==
2
){
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
coinName
=
orderDetail
.
getCoin
().
replace
(
MALLGlobalConfig
.
GOODS_NFT_PREFIX
,
""
);
String
hash
=
chainUtil
.
tranToken
(
m
.
getTokenIssueAddr
(),
""
,
user
.
getAddress
(),
new
BigDecimal
(
orderDetail
.
getNumber
()),
coinName
);
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
}
else
if
(
commodity
==
3
){
int
saleType
=
spuService
.
getNftSalesType
(
orderDetail
.
getSkuId
());
if
(
saleType
==
1
){
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
hash
=
chainUtil
.
evmTransfer
(
user
.
getAddress
(),
m
.
getTokenIssueAddr
(),
Long
.
valueOf
(
orderDetail
.
getCoin
()),
orderDetail
.
getAmount
().
longValue
());
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
}
else
{
String
json
=
orderDetail
.
getSerialNo
();
JSONArray
array
=
JSON
.
parseArray
(
json
);
for
(
Object
o:
array
)
{
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
o
.
toString
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
hash
=
chainUtil
.
evmTransfer
(
user
.
getAddress
(),
m
.
getTokenIssueAddr
(),
Long
.
valueOf
(
o
.
toString
()),
1
);
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
}
}
}
//String hash = tranCoinAndNft(skuVo.getSkuId(),m.getTokenIssueAddr(),user.getAddress(),new BigDecimal(orderDetail.getNumber()),skuVo.getType(),orderDetail.getCoin());
//记录
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
}
}
else
{
Collection
<
Delivery
>
list
=
new
ArrayList
<>();
for
(
OrderDetail
orderDetail
:
details
)
{
//打币
SkuVo
skuVo
=
skuService
.
getBySkuId
(
orderDetail
.
getSkuId
());
String
hash
=
tranCoinAndNft
(
skuVo
.
getSkuId
(),
m
.
getTokenIssueAddr
(),
user
.
getAddress
(),
new
BigDecimal
(
orderDetail
.
getNumber
()),
skuVo
.
getType
(),
orderDetail
.
getCoin
());
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setFrozen
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addUserfrozenAsset
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
int
commodity
=
spuService
.
getCommodityBySkuId
(
orderDetail
.
getSkuId
());
if
(
commodity
==
1
){
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
coinName
=
orderDetail
.
getCoin
().
replace
(
MALLGlobalConfig
.
GOODS_NFT_PREFIX
,
""
);
String
hash
=
chainUtil
.
tranToken
(
m
.
getTokenIssueAddr
(),
""
,
user
.
getAddress
(),
new
BigDecimal
(
orderDetail
.
getNumber
()),
coinName
);
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
//提货
UserAssetRecord
userAssetRecord2
=
new
UserAssetRecord
();
userAssetRecord2
.
setUid
(
order
.
getUid
());
userAssetRecord2
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord2
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord2
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord2
.
setType
(
18
);
userAssetRecord2
.
setStatus
(
2
);
userAssetRecord2
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord2
);
Delivery
delivery
=
new
Delivery
();
delivery
.
setOrderDeliveryId
(
OrderUtil
.
getDeliveryId
());
delivery
.
setUid
(
order
.
getUid
());
delivery
.
setMerchantId
(
order
.
getMerchantId
());
delivery
.
setGoodsId
(
orderDetail
.
getGoodsId
());
delivery
.
setSkuId
(
orderDetail
.
getSkuId
());
delivery
.
setCoin
(
orderDetail
.
getCoin
());
delivery
.
setName
(
orderDetail
.
getName
());
delivery
.
setNumber
(
orderDetail
.
getNumber
());
delivery
.
setUname
(
order
.
getUname
());
delivery
.
setPhone
(
order
.
getPhone
());
delivery
.
setAddress
(
order
.
getAddress
());
delivery
.
setNote
(
orderDetail
.
getNote
());
delivery
.
setDeliveryState
(
0
);
list
.
add
(
delivery
);
}
else
if
(
commodity
==
2
){
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
coinName
=
orderDetail
.
getCoin
().
replace
(
MALLGlobalConfig
.
GOODS_NFT_PREFIX
,
""
);
String
hash
=
chainUtil
.
tranToken
(
m
.
getTokenIssueAddr
(),
""
,
user
.
getAddress
(),
new
BigDecimal
(
orderDetail
.
getNumber
()),
coinName
);
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
//提货
UserAssetRecord
userAssetRecord2
=
new
UserAssetRecord
();
userAssetRecord2
.
setUid
(
order
.
getUid
());
userAssetRecord2
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord2
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord2
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord2
.
setType
(
18
);
userAssetRecord2
.
setStatus
(
2
);
userAssetRecord2
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord2
);
Delivery
delivery
=
new
Delivery
();
delivery
.
setOrderDeliveryId
(
OrderUtil
.
getDeliveryId
());
delivery
.
setUid
(
order
.
getUid
());
delivery
.
setMerchantId
(
order
.
getMerchantId
());
delivery
.
setGoodsId
(
orderDetail
.
getGoodsId
());
delivery
.
setSkuId
(
orderDetail
.
getSkuId
());
delivery
.
setCoin
(
orderDetail
.
getCoin
());
delivery
.
setName
(
orderDetail
.
getName
());
delivery
.
setNumber
(
orderDetail
.
getNumber
());
delivery
.
setUname
(
order
.
getUname
());
delivery
.
setPhone
(
order
.
getPhone
());
delivery
.
setAddress
(
order
.
getAddress
());
delivery
.
setNote
(
orderDetail
.
getNote
());
delivery
.
setDeliveryState
(
0
);
list
.
add
(
delivery
);
}
else
if
(
commodity
==
3
){
int
saleType
=
spuService
.
getNftSalesType
(
orderDetail
.
getSkuId
());
if
(
saleType
==
1
){
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
orderDetail
.
getCoin
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
hash
=
chainUtil
.
evmTransfer
(
user
.
getAddress
(),
m
.
getTokenIssueAddr
(),
Long
.
valueOf
(
orderDetail
.
getCoin
()),
orderDetail
.
getAmount
().
longValue
());
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
//提货
UserAssetRecord
userAssetRecord2
=
new
UserAssetRecord
();
userAssetRecord2
.
setUid
(
order
.
getUid
());
userAssetRecord2
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord2
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord2
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord2
.
setType
(
18
);
userAssetRecord2
.
setStatus
(
2
);
userAssetRecord2
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord2
);
Delivery
delivery
=
new
Delivery
();
delivery
.
setOrderDeliveryId
(
OrderUtil
.
getDeliveryId
());
delivery
.
setUid
(
order
.
getUid
());
delivery
.
setMerchantId
(
order
.
getMerchantId
());
delivery
.
setGoodsId
(
orderDetail
.
getGoodsId
());
delivery
.
setSkuId
(
orderDetail
.
getSkuId
());
delivery
.
setCoin
(
orderDetail
.
getCoin
());
delivery
.
setName
(
orderDetail
.
getName
());
delivery
.
setNumber
(
orderDetail
.
getNumber
());
delivery
.
setUname
(
order
.
getUname
());
delivery
.
setPhone
(
order
.
getPhone
());
delivery
.
setAddress
(
order
.
getAddress
());
delivery
.
setNote
(
orderDetail
.
getNote
());
delivery
.
setDeliveryState
(
0
);
list
.
add
(
delivery
);
}
else
{
String
json
=
orderDetail
.
getSerialNo
();
JSONArray
array
=
JSON
.
parseArray
(
json
);
for
(
Object
o:
array
)
{
//打币
UserAsset
coin
=
userAssetService
.
getCoin
(
order
.
getUid
(),
o
.
toString
());
if
(
coin
==
null
)
{
coin
=
new
UserAsset
();
coin
.
setCoin
(
orderDetail
.
getCoin
());
coin
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
coin
.
setUid
(
order
.
getUid
());
coin
.
setType
(
1
);
coin
.
setGoodsCoin
(
orderDetail
.
getCoin
());
userAssetService
.
save
(
coin
);
}
else
{
userAssetService
.
addCoin
(
coin
.
getId
(),
new
BigDecimal
(
orderDetail
.
getNumber
()));
}
String
hash
=
chainUtil
.
evmTransfer
(
user
.
getAddress
(),
m
.
getTokenIssueAddr
(),
Long
.
valueOf
(
o
.
toString
()),
1
);
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
""
);
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
//提货
UserAssetRecord
userAssetRecord2
=
new
UserAssetRecord
();
userAssetRecord2
.
setUid
(
order
.
getUid
());
userAssetRecord2
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord2
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord2
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord2
.
setType
(
18
);
userAssetRecord2
.
setStatus
(
2
);
userAssetRecord2
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord2
);
}
Delivery
delivery
=
new
Delivery
();
delivery
.
setOrderDeliveryId
(
OrderUtil
.
getDeliveryId
());
delivery
.
setUid
(
order
.
getUid
());
delivery
.
setMerchantId
(
order
.
getMerchantId
());
delivery
.
setGoodsId
(
orderDetail
.
getGoodsId
());
delivery
.
setSkuId
(
orderDetail
.
getSkuId
());
delivery
.
setCoin
(
orderDetail
.
getCoin
());
delivery
.
setName
(
orderDetail
.
getName
());
delivery
.
setNumber
(
orderDetail
.
getNumber
());
delivery
.
setUname
(
order
.
getUname
());
delivery
.
setPhone
(
order
.
getPhone
());
delivery
.
setAddress
(
order
.
getAddress
());
delivery
.
setNote
(
orderDetail
.
getNote
());
delivery
.
setDeliveryState
(
0
);
delivery
.
setSerialNo
(
orderDetail
.
getSerialNo
());
list
.
add
(
delivery
);
}
}
//String hash = tranCoinAndNft(skuVo.getSkuId(),m.getTokenIssueAddr(),user.getAddress(),new BigDecimal(orderDetail.getNumber()),skuVo.getType(),orderDetail.getCoin());
//记录
UserAssetRecord
userAssetRecord
=
new
UserAssetRecord
();
userAssetRecord
.
setUid
(
order
.
getUid
());
userAssetRecord
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord
.
setType
(
12
);
userAssetRecord
.
setStatus
(
2
);
userAssetRecord
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord
);
//提货
UserAssetRecord
userAssetRecord2
=
new
UserAssetRecord
();
userAssetRecord2
.
setUid
(
order
.
getUid
());
userAssetRecord2
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
userAssetRecord2
.
setCoin
(
orderDetail
.
getCoin
());
userAssetRecord2
.
setFlowId
(
OrderUtil
.
getFlowId
());
userAssetRecord2
.
setType
(
18
);
userAssetRecord2
.
setStatus
(
2
);
userAssetRecord2
.
setNote
(
order
.
getOid
());
userAssetRecordService
.
save
(
userAssetRecord2
);
Delivery
delivery
=
new
Delivery
();
delivery
.
setOrderDeliveryId
(
OrderUtil
.
getDeliveryId
());
delivery
.
setUid
(
order
.
getUid
());
delivery
.
setMerchantId
(
order
.
getMerchantId
());
delivery
.
setGoodsId
(
orderDetail
.
getGoodsId
());
delivery
.
setSkuId
(
orderDetail
.
getSkuId
());
delivery
.
setCoin
(
orderDetail
.
getCoin
());
delivery
.
setName
(
orderDetail
.
getName
());
delivery
.
setNumber
(
orderDetail
.
getNumber
());
delivery
.
setUname
(
order
.
getUname
());
delivery
.
setPhone
(
order
.
getPhone
());
delivery
.
setAddress
(
order
.
getAddress
());
delivery
.
setNote
(
orderDetail
.
getNote
());
delivery
.
setDeliveryState
(
0
);
list
.
add
(
delivery
);
//转币
TranDto
tranDto
=
new
TranDto
();
tranDto
.
setId
(
userAssetRecord
.
getId
());
tranDto
.
setAmount
(
new
BigDecimal
(
orderDetail
.
getNumber
()));
//tranDto.setCoin(aLong.toString());
tranDto
.
setFromAddr
(
m
.
getNftAddr
());
tranDto
.
setHash
(
hash
);
tranDto
.
setToAddr
(
user
.
getAddress
());
tranDto
.
setDelivery
(
order
.
getDelivery
()
==
1
);
tranDto
.
setRecoAddr
(
m
.
getTokenRecoverAddr
());
tranDto
.
setPrice
(
orderDetail
.
getAmount
());
tranDto
.
setUpdateTime
(
System
.
currentTimeMillis
());
log
.
error
(
JSONObject
.
toJSONString
(
tranDto
));
msgProducer
.
sendTTL
(
JSONObject
.
toJSONString
(
tranDto
),
QueueTTLTypeEnum
.
CONFIRM_WITHDRAW_TTL
,
5
*
1000
);
//加销量
countService
.
addSale
(
orderDetail
.
getGoodsId
(),
orderDetail
.
getNumber
());
goodSkuService
.
addSales
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
deliveryService
.
saveBatch
(
list
);
}
deliveryService
.
saveBatch
(
list
);
}
}
...
...
@@ -795,6 +1172,14 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
for
(
OrderDetail
orderDetail
:
list
)
{
//加库存
goodSkuService
.
addStock
(
orderDetail
.
getSkuId
(),
orderDetail
.
getNumber
());
String
no
=
orderDetail
.
getSerialNo
();
List
<
Long
>
noList
=
JSON
.
parseArray
(
no
,
Long
.
class
);
SkuVo
skuVo
=
goodSkuService
.
getSkuVoBySkuId
(
orderDetail
.
getSkuId
());
String
serialNo
=
skuService
.
getSerialNo
(
skuVo
.
getCommodityPassId
());
List
<
Long
>
serialNoList
=
JSON
.
parseArray
(
serialNo
,
Long
.
class
);
serialNoList
.
addAll
(
noList
);
Collections
.
sort
(
serialNoList
);
skuService
.
updateSerialNo
(
JSON
.
toJSONString
(
serialNoList
),
skuVo
.
getCommodityPassId
());
}
}
...
...
@@ -963,12 +1348,12 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
}
public
static
void
main
(
String
[]
args
)
{
String
str
=
"
NTF-128938890
"
;
str
=
str
.
replace
(
"NTF-"
,
""
);
System
.
out
.
println
(
str
);
String
str
=
"
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
"
;
JSONArray
array
=
JSON
.
parseArray
(
str
);
System
.
out
.
println
(
array
.
toJSONString
()
);
}
private
String
tranCoinAndNft
(
String
skuId
,
String
from
,
String
to
,
BigDecimal
number
,
int
goodsType
,
String
coin
)
{
/*
private String tranCoinAndNft(String skuId,String from,String to,BigDecimal number,int goodsType,String coin) {
//商品通证(0.否 1.是,自动生成Token 2.是,使用外部既有Token)
int commodity = spuService.getCommodityBySkuId(skuId);
if(goodsType == 1||goodsType == 2){
...
...
@@ -985,12 +1370,28 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
String coinName = coin.replace(MALLGlobalConfig.GOODS_NFT_PREFIX, "");
return chainUtil.evmTransfer(to,from,Long.valueOf(coinName),number.longValue());
}else if(commodity == 2){
Long
trueCoin
=
skuService
.
getTrueCoin
(
coin
);
long
[]
a
=
new
long
[]{
trueCoin
};
long
[]
b
=
new
long
[]{
number
.
longValue
()};
return
chainUtil
.
evmExec
(
a
,
b
,
from
,
to
);
return chainUtil.evmTransfer(to,from,Long.valueOf(coin),number.longValue());
}else if(commodity == 3){
int saleType = spuService.getNftSalesType(skuId);
if(saleType ==1){
return chainUtil.evmTransfer(to,from,Long.valueOf(coin),number.longValue());
}else{
Long tokenId = skuService.getTokenId(skuId);
String json = skuService.getSerialNo(tokenId);
JSONArray array = JSON.parseArray(json);
for(int i = 1;i<=number.intValue();i++){
for (int j = 1;j<=array.size();j++) {
if(array.getInteger(j)==1){
String coinName = tokenId+""+j;
chainUtil.evmTransfer(to,from,Long.valueOf(coinName),1);
}
}
}
}
}
}
return "";
}
}*/
}
mall-sql/mall_create.sql
View file @
9ef1aa1c
...
...
@@ -2514,3 +2514,12 @@ CREATE TABLE `goods_sku_usufruct` (
PRIMARY
KEY
(
`id`
)
USING
BTREE
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
ROW_FORMAT
=
DYNAMIC
COMMENT
=
'使用权'
;
ADD
COLUMN
`param`
varchar
(
500
)
NOT
NULL
DEFAULT
''
COMMENT
'功能区跳转参数'
;
ALTER
TABLE
`order_detail`
ADD
COLUMN
`serial_no`
JSON
NULL
DEFAULT
NULL
COMMENT
'序列号'
;
ALTER
TABLE
`user_asset`
ADD
COLUMN
`goods_coin`
VARCHAR
(
32
)
NOT
NULL
DEFAULT
'0'
COMMENT
'商品coin'
;
update
user_asset
set
goods_coin
=
coin
;
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment