记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
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
董敬伟
liquidnet-bus-v1
Commits
fa2d3042
Commit
fa2d3042
authored
Jul 18, 2022
by
张国柄
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master' into dev_xuper
parents
74736f41
c032b792
Changes
45
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
1919 additions
and
46 deletions
+1919
-46
GoblinRedisConst.java
...m/liquidnet/service/goblin/constant/GoblinRedisConst.java
+3
-0
IGoblinNftOrderService.java
...uidnet/service/goblin/service/IGoblinNftOrderService.java
+2
-1
KylinRedisConst.java
...com/liquidnet/service/kylin/constant/KylinRedisConst.java
+4
-0
KylinAcitveParam.java
...m/liquidnet/service/kylin/dto/param/KylinAcitveParam.java
+73
-0
IKylinArActiveService.java
...iquidnet/service/kylin/service/IKylinArActiveService.java
+16
-0
IKylinAcitveService.java
...dnet/service/kylin/service/admin/IKylinAcitveService.java
+23
-0
IKylinTicketActiveService.java
...ervice/kylin/service/admin/IKylinTicketActiveService.java
+20
-0
BusinessType.java
...com/liquidnet/client/admin/common/enums/BusinessType.java
+5
-0
LocalAdminController.java
...t/admin/web/controller/zhengzai/LocalAdminController.java
+16
-0
GoblinGagoController.java
.../web/controller/zhengzai/goblin/GoblinGagoController.java
+124
-0
KylinAcitveController.java
.../web/controller/zhengzai/kylin/KylinAcitveController.java
+75
-0
remote-search-nft.js
...min-web/src/main/resources/static/js/remote-search-nft.js
+169
-0
gago.html
...c/main/resources/templates/zhengzai/goblin/gago/gago.html
+104
-0
edit.html
...n/resources/templates/zhengzai/smile/volunteers/edit.html
+6
-6
activityList.html
...ates/zhengzai/sweet/performanceActivity/activityList.html
+114
-0
createActivity.html
...es/zhengzai/sweet/performanceActivity/createActivity.html
+110
-0
ticketList.html
...plates/zhengzai/sweet/performanceActivity/ticketList.html
+91
-0
pom.xml
...dnet-client-admin/liquidnet-client-admin-zhengzai/pom.xml
+5
-0
GoblinGageServiceImpl.java
...n/zhengzai/goblin/service/impl/GoblinGageServiceImpl.java
+9
-0
GoblinRedisUtils.java
.../client/admin/zhengzai/goblin/utils/GoblinRedisUtils.java
+105
-2
ActiveTicketExportVo.java
...client/admin/zhengzai/kylin/dto/ActiveTicketExportVo.java
+39
-0
KylinAcitveServiceImpl.java
...n/zhengzai/kylin/service/impl/KylinAcitveServiceImpl.java
+87
-0
KylinTicketActiveServiceImpl.java
...gzai/kylin/service/impl/KylinTicketActiveServiceImpl.java
+58
-0
IDGenerator.java
...ain/java/com/liquidnet/commons/lang/util/IDGenerator.java
+26
-0
liquidnet-service-order.yml
...t-bus-config/liquidnet-config/liquidnet-service-order.yml
+1
-0
KylinAcitve.java
...ain/java/com/liquidnet/service/kylin/dao/KylinAcitve.java
+66
-0
KylinTicketActive.java
...va/com/liquidnet/service/kylin/dao/KylinTicketActive.java
+73
-0
KylinAcitveMapper.java
...com/liquidnet/service/kylin/mapper/KylinAcitveMapper.java
+16
-0
KylinTicketActiveMapper.java
...quidnet/service/kylin/mapper/KylinTicketActiveMapper.java
+16
-0
GalaxyTradeBiz.java
...java/com/liquidnet/service/galaxy/biz/GalaxyTradeBiz.java
+77
-0
ZxinTradeCommonBiz.java
...et/service/galaxy/router/zxin/biz/ZxinTradeCommonBiz.java
+19
-0
AbstractDataUtils.java
...com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
+26
-0
GoblinCouponController.java
...net/service/goblin/controller/GoblinCouponController.java
+17
-2
GoblinFrontServiceImpl.java
...t/service/goblin/service/impl/GoblinFrontServiceImpl.java
+17
-2
TestRedisUtil.java
...java/com/liquidnet/service/goblin/test/TestRedisUtil.java
+39
-0
db_kylin_structure.sql
.../liquidnet-service-kylin-impl/docu/db_kylin_structure.sql
+45
-0
KylinArActiveController.java
...net/service/kylin/controller/KylinArActiveController.java
+53
-0
KylinArActiveServiceImpl.java
.../service/kylin/service/impl/KylinArActiveServiceImpl.java
+60
-0
DataUtils.java
...ain/java/com/liquidnet/service/kylin/utils/DataUtils.java
+19
-0
sqlmap.properties
...t-service-kylin-impl/src/main/resources/sqlmap.properties
+3
-1
TestDataUtil.java
...c/test/java/com/liquidnet/service/kylin/TestDataUtil.java
+4
-0
GoblinNftOrderController.java
...et/service/order/controller/GoblinNftOrderController.java
+6
-1
GoblinInnerNftController.java
...vice/order/controller/inner/GoblinInnerNftController.java
+19
-1
GoblinNftOrderServiceImpl.java
...service/order/service/impl/GoblinNftOrderServiceImpl.java
+57
-30
MixOrderServiceImpl.java
...idnet/service/order/service/impl/MixOrderServiceImpl.java
+2
-0
No files found.
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/constant/GoblinRedisConst.java
View file @
fa2d3042
...
@@ -342,4 +342,7 @@ public class GoblinRedisConst {
...
@@ -342,4 +342,7 @@ public class GoblinRedisConst {
public
static
final
String
GOBLIN_ORDER_LOG
=
PREFIX
.
concat
(
"order:log:"
);
//无用
public
static
final
String
GOBLIN_ORDER_LOG
=
PREFIX
.
concat
(
"order:log:"
);
//无用
/* ----------------------------------------------------------------- */
/* ----------------------------------------------------------------- */
public
static
final
String
GOBLIN_NUM_LIST
=
PREFIX
.
concat
(
"nft:num:"
);
//$key+":"+$skuId 根据skuId获取序号list
public
static
final
String
GOBLIN_NUM_DETAILS
=
PREFIX
.
concat
(
"nft:num:details:"
);
//$key+$num+$skuId 根据num+skuId获取DTO
}
}
liquidnet-bus-api/liquidnet-service-goblin-api/src/main/java/com/liquidnet/service/goblin/service/IGoblinNftOrderService.java
View file @
fa2d3042
...
@@ -26,5 +26,6 @@ public interface IGoblinNftOrderService {
...
@@ -26,5 +26,6 @@ public interface IGoblinNftOrderService {
String
refundSyncOrder
(
GoblinNftOrderRefundCallbackParam
refundCallbackParam
);
String
refundSyncOrder
(
GoblinNftOrderRefundCallbackParam
refundCallbackParam
);
ResponseDto
<
Boolean
>
exchange
(
String
code
,
String
uid
,
String
deviceFrom
,
int
orderType
);
ResponseDto
<
String
>
exchange
(
String
code
,
String
uid
,
String
deviceFrom
,
int
orderType
);
}
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/constant/KylinRedisConst.java
View file @
fa2d3042
...
@@ -91,4 +91,8 @@ public class KylinRedisConst {
...
@@ -91,4 +91,8 @@ public class KylinRedisConst {
public
static
final
String
REDIS_WQ_ORDER_FIX
=
"kylin:wq:order:"
;
//纪录万青 订单填写快递地址
public
static
final
String
REDIS_WQ_ORDER_FIX
=
"kylin:wq:order:"
;
//纪录万青 订单填写快递地址
public
static
final
String
REDIS_WQ_ORDER_EXPRESS
=
"kylin:wq:pxress:order:"
;
//万青补偿快递vo 订单填写快递地址
public
static
final
String
REDIS_WQ_ORDER_EXPRESS
=
"kylin:wq:pxress:order:"
;
//万青补偿快递vo 订单填写快递地址
public
static
final
String
ACTIVE_TICKET_AR_TICKET
=
"kylin:active:ar:ticket:"
;
//互动券
public
static
final
String
ACTIVE_TICKET_AR_USER
=
"kylin:active:ar:user:"
;
//互动券 绑定的用户
}
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/dto/param/KylinAcitveParam.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
dto
.
param
;
import
com.fasterxml.jackson.annotation.JsonFormat
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
*
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
KylinAcitveParam
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
Long
mid
;
/**
* 活动名称
*/
@ApiModelProperty
(
value
=
"活动名称"
)
private
String
activeName
;
/**
* 券的数量
*/
@ApiModelProperty
(
value
=
"券的数量"
)
private
Integer
number
;
/**
* activeId
*/
@ApiModelProperty
(
value
=
"activeId"
)
private
String
activeId
;
/**
* 创建时间
*/
@ApiModelProperty
(
value
=
"创建时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
LocalDateTime
createdAt
;
/**
* 修改时间
*/
@ApiModelProperty
(
value
=
"修改时间"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
DateUtil
.
DATE_FULL_STR
)
private
LocalDateTime
updatedAt
;
/**
* 0未删除1已删除
*/
@ApiModelProperty
(
value
=
"0未删除1已删除"
)
private
Integer
delTag
;
/**
* 演出id
*/
@ApiModelProperty
(
value
=
"演出id"
)
private
String
performanceId
;
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/IKylinArActiveService.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
service
;
import
com.liquidnet.service.base.ResponseDto
;
/**
* ar前端接口
*/
public
interface
IKylinArActiveService
{
/**
* 兑换
* @param code
* @param uid
* @return
*/
ResponseDto
exchange
(
String
code
,
String
uid
);
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/admin/IKylinAcitveService.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
service
.
admin
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.dao.KylinAcitve
;
import
java.util.List
;
/**
* <p>
* 服务类
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
public
interface
IKylinAcitveService
extends
IService
<
KylinAcitve
>
{
boolean
addKylinAcitve
(
KylinAcitve
kylinAcitve
);
List
<
KylinAcitve
>
pageKylinAcitve
(
int
pageSize
,
int
pageNumber
);
}
liquidnet-bus-api/liquidnet-service-kylin-api/src/main/java/com/liquidnet/service/kylin/service/admin/IKylinTicketActiveService.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
service
.
admin
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.liquidnet.service.kylin.dao.KylinTicketActive
;
import
java.util.List
;
/**
* <p>
* 跟活动绑定的券 服务类
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
public
interface
IKylinTicketActiveService
extends
IService
<
KylinTicketActive
>
{
List
<
KylinTicketActive
>
pageKylinAcitve
(
int
pageSize
,
int
pageNumber
,
String
activeId
);
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-common/src/main/java/com/liquidnet/client/admin/common/enums/BusinessType.java
View file @
fa2d3042
...
@@ -139,4 +139,9 @@ public enum BusinessType
...
@@ -139,4 +139,9 @@ public enum BusinessType
* 修改
* 修改
*/
*/
PERFORMANCE_SAVE
,
PERFORMANCE_SAVE
,
/**
* 内部操作
*/
INNER_OPERATION
,
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/LocalAdminController.java
View file @
fa2d3042
...
@@ -19,6 +19,7 @@ public class LocalAdminController extends BaseController
...
@@ -19,6 +19,7 @@ public class LocalAdminController extends BaseController
private
final
String
stonePrefix
=
"zhengzai/stone"
;
private
final
String
stonePrefix
=
"zhengzai/stone"
;
private
final
String
storePrefix
=
"zhengzai/store"
;
private
final
String
storePrefix
=
"zhengzai/store"
;
private
final
String
smilePrefix
=
"zhengzai/smile"
;
private
final
String
smilePrefix
=
"zhengzai/smile"
;
private
final
String
activityPrefix
=
"zhengzai/sweet"
;
@Value
(
"${liquidnet.client.admin.platformUrl}"
)
@Value
(
"${liquidnet.client.admin.platformUrl}"
)
private
String
platformUrl
;
private
String
platformUrl
;
...
@@ -184,5 +185,20 @@ public class LocalAdminController extends BaseController
...
@@ -184,5 +185,20 @@ public class LocalAdminController extends BaseController
{
{
return
storePrefix
+
"/homeSet/newRecommended"
;
return
storePrefix
+
"/homeSet/newRecommended"
;
}
}
@GetMapping
(
"/performanceActivity"
)
// 活动关联券部分
public
String
performanceActivity
()
{
return
activityPrefix
+
"/performanceActivity/activityList"
;
}
@GetMapping
(
"/createActivityModal"
)
// 创建活动
public
String
createActivityModal
()
{
return
activityPrefix
+
"/performanceActivity/createActivity"
;
}
@GetMapping
(
"/activityTicketList"
)
// 活动关联券部分
public
String
activityTicketList
()
{
return
activityPrefix
+
"/performanceActivity/ticketList"
;
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/goblin/GoblinGagoController.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
goblin
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.liquidnet.client.admin.common.annotation.Log
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.enums.BusinessType
;
import
com.liquidnet.client.admin.zhengzai.goblin.utils.GoblinRedisUtils
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.HttpUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.adam.constant.AdamRedisConst
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.candy.vo.CandyCouponVo
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.goblin.dto.vo.GoblinGoodsSkuInfoVo
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiImplicitParam
;
import
io.swagger.annotations.ApiImplicitParams
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.MultiValueMap
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
@Api
(
tags
=
"商铺公共方法"
)
@Controller
@RequestMapping
(
"goblin/gago"
)
public
class
GoblinGagoController
extends
BaseController
{
@Autowired
RedisDataSourceUtil
redisDataSourceUtil
;
@Autowired
GoblinRedisUtils
goblinRedisUtils
;
@Value
(
"${liquidnet.service.order.url}"
)
private
String
orderUrl
;
// private String orderUrl = "http://127.0.0.1:9004/order";
private
final
String
prefix
=
"zhengzai/goblin/gago"
;
@GetMapping
()
public
String
mainHtml
()
{
return
prefix
+
"/gago"
;
}
@Log
(
title
=
"判断手机号是否开通数字账号"
,
businessType
=
BusinessType
.
INNER_OPERATION
)
@GetMapping
(
"nftAccount"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"form"
,
required
=
true
,
name
=
"userMobile"
,
value
=
"手机号"
),
})
@ResponseBody
public
AjaxResult
storeSearch
(
String
userMobile
)
{
AjaxResult
ajaxResult
=
AjaxResult
.
success
();
Object
obj1
=
redisDataSourceUtil
.
getRedisAdamUtil
().
get
(
AdamRedisConst
.
IDENTITY_MOBILE
.
concat
(
userMobile
));
if
(
obj1
==
null
)
{
return
AjaxResult
.
error
(
"账号不存在"
);
}
String
uid
=
(
String
)
obj1
;
Boolean
obj2
=
goblinRedisUtils
.
getIsOpenAccount
(
uid
);
if
(!
obj2
)
{
return
AjaxResult
.
error
(
"账号未开通数字账号"
);
}
ajaxResult
.
put
(
"uid"
,
uid
);
return
ajaxResult
;
}
@Log
(
title
=
"生成兑换订单"
,
businessType
=
BusinessType
.
INNER_OPERATION
)
@PostMapping
(
value
=
"/exchangeNumNftOrder"
)
@ResponseBody
public
AjaxResult
listByStatus
(
@RequestParam
(
value
=
"skuId"
)
String
skuId
,
@RequestParam
(
value
=
"nftNum"
)
int
nftNum
,
@RequestParam
(
value
=
"uid"
)
String
uid
)
{
//当前 nft序号
GoblinGoodsSkuInfoVo
skuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
skuId
);
int
cNufCount
=
goblinRedisUtils
.
getNftCountBySku
(
skuInfoVo
.
getRouteType
(),
skuId
);
if
(
cNufCount
>=
nftNum
)
{
return
AjaxResult
.
error
(
"该序号已售卖"
);
}
if
(
skuInfoVo
==
null
||
skuInfoVo
.
getSkuStock
()
<=
nftNum
)
{
return
AjaxResult
.
error
(
"该序号不存在"
);
}
if
(
skuInfoVo
.
getUnbox
().
equals
(
"1"
))
{
return
AjaxResult
.
error
(
"不支持盲盒"
);
}
boolean
addResult
=
goblinRedisUtils
.
addNftList
(
skuId
,
nftNum
+
""
);
if
(!
addResult
)
{
return
AjaxResult
.
error
(
"该序号已被占用"
);
}
//
int
count
=
goblinRedisUtils
.
decrSkuStock
(
null
,
skuId
,
1
);
if
(
count
<
0
){
goblinRedisUtils
.
incrSkuStock
(
null
,
skuId
,
1
);
goblinRedisUtils
.
removeNftList
(
skuId
,
nftNum
+
""
);
return
AjaxResult
.
error
(
"已售罄"
);
}
//下单
MultiValueMap
<
String
,
String
>
params
=
CollectionUtil
.
linkedMultiValueMapStringString
();
params
.
add
(
"userId"
,
uid
);
params
.
add
(
"skuId"
,
skuId
);
MultiValueMap
<
String
,
String
>
header
=
CollectionUtil
.
linkedMultiValueMapStringString
();
header
.
add
(
"Accept"
,
"application/json;charset=UTF-8"
);
System
.
out
.
println
(
orderUrl
.
concat
(
"/goblin/nft/airdropInner"
));
String
returnData
=
HttpUtil
.
post
(
orderUrl
.
concat
(
"/order/goblin/nft/airdropInner"
),
params
,
header
);
ResponseDto
<
String
>
innerReturnVo
=
JsonUtils
.
fromJson
(
returnData
,
new
TypeReference
<
ResponseDto
<
String
>>()
{
});
if
(
innerReturnVo
.
isSuccess
())
{
GalaxyNftPublishAndBuyReqDto
dto
=
GalaxyNftPublishAndBuyReqDto
.
getNew
();
dto
.
setBuyTimestamp
(
DateUtil
.
getNowTime
());
dto
.
setNftOrderPayId
(
innerReturnVo
.
getData
());
dto
.
setSkuId
(
skuId
);
dto
.
setUserId
(
uid
);
goblinRedisUtils
.
setNftNumDetails
(
nftNum
+
""
,
skuId
,
dto
);
return
AjaxResult
.
success
();
}
else
{
return
AjaxResult
.
error
();
}
}
/** ------------------------------------------------------------------------ **/
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/java/com/liquidnet/client/admin/web/controller/zhengzai/kylin/KylinAcitveController.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
web
.
controller
.
zhengzai
.
kylin
;
import
com.liquidnet.client.admin.common.core.controller.BaseController
;
import
com.liquidnet.client.admin.common.core.domain.AjaxResult
;
import
com.liquidnet.client.admin.common.core.page.TableDataInfo
;
import
com.liquidnet.client.admin.common.utils.poi.ExcelUtil
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.ActiveTicketExportVo
;
import
com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinAcitveServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.kylin.service.impl.KylinTicketActiveServiceImpl
;
import
com.liquidnet.service.kylin.dao.KylinAcitve
;
import
com.liquidnet.service.kylin.dto.param.KylinAcitveParam
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.List
;
/**
* <p>
* 前端控制器 活动有关的
* </p>
* @author zhangfuxin
* @since 2022-07-12
*/
@Api
(
tags
=
"活动和券的接口"
)
@RestController
@RequestMapping
(
"/kylin-acitve"
)
public
class
KylinAcitveController
extends
BaseController
{
@Autowired
private
KylinAcitveServiceImpl
kylinAcitveService
;
@Autowired
private
KylinTicketActiveServiceImpl
kylinTicketActiveService
;
@PostMapping
(
"add"
)
@ApiOperation
(
value
=
"增加活动"
)
@ResponseBody
public
AjaxResult
add
(
@RequestBody
KylinAcitveParam
kylinAcitveParam
)
{
KylinAcitve
kylinAcitve
=
new
KylinAcitve
();
BeanUtils
.
copyProperties
(
kylinAcitveParam
,
kylinAcitve
);
kylinAcitveService
.
addKylinAcitve
(
kylinAcitve
);
return
AjaxResult
.
success
(
"操作成功"
,
""
);
}
@PostMapping
(
"pageActive"
)
@ApiOperation
(
value
=
"分页活动"
)
@ResponseBody
public
TableDataInfo
pageActive
(
@RequestParam
(
name
=
"pageSize"
,
required
=
true
)
int
pageSize
,
@RequestParam
(
name
=
"pageNum"
,
required
=
true
)
int
pageNum
)
{
//return AjaxResult.success(kylinAcitveService.pageKylinAcitve(pageSize,pageNum));
return
getDataTable
(
kylinAcitveService
.
pageKylinAcitve
(
pageSize
,
pageNum
));
}
@PostMapping
(
"pageActiveTicket"
)
@ApiOperation
(
value
=
"分页券"
)
@ResponseBody
public
TableDataInfo
pageActiveTicket
(
@RequestParam
(
name
=
"pageSize"
,
required
=
true
)
int
pageSize
,
@RequestParam
(
name
=
"pageNum"
,
required
=
true
)
int
pageNum
,
@RequestParam
(
name
=
"activeId"
,
required
=
true
)
String
activeId
)
{
//return AjaxResult.success(kylinTicketActiveService.pageKylinAcitve(pageSize,pageNum,activeId));
return
getDataTable
(
kylinTicketActiveService
.
pageKylinAcitve
(
pageSize
,
pageNum
,
activeId
));
}
@PostMapping
(
"exportTicket"
)
@ApiOperation
(
value
=
"导出券"
)
@ResponseBody
public
AjaxResult
exportTicket
(
@RequestParam
(
name
=
"activeId"
,
required
=
true
)
String
activeId
,
@RequestParam
(
name
=
"activeName"
,
required
=
true
)
String
activeName
)
{
List
<
ActiveTicketExportVo
>
list
=
kylinTicketActiveService
.
exportTicket
(
activeId
);
if
(
list
.
size
()>
0
){
ExcelUtil
<
ActiveTicketExportVo
>
util
=
new
ExcelUtil
(
ActiveTicketExportVo
.
class
);
return
util
.
exportExcel
(
list
,
activeName
+
""
);
}
return
error
(
"查无信息!"
);
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/static/js/remote-search-nft.js
0 → 100644
View file @
fa2d3042
;(
function
(
$
)
{
//这里放入插件代码
var
RemoteSearchPerformance
=
function
(
element
,
options
)
{
this
.
$element
=
$
(
element
);
this
.
options
=
$
.
extend
(
true
,
{},
$
.
fn
.
remoteSearchPerformance
.
defaults
,
options
);
this
.
id
=
$
(
element
).
attr
(
'id'
);
this
.
ulID
=
'#'
+
this
.
id
+
'_ul'
;
this
.
ulFoucus
=
false
;
// Method overrides
this
.
render
=
this
.
options
.
render
||
this
.
render
;
this
.
select
=
this
.
options
.
select
||
this
.
select
;
this
.
ajax
=
$
.
extend
({},
$
.
fn
.
remoteSearchPerformance
.
defaults
.
ajax
,
this
.
options
.
ajax
);
this
.
listen
();
}
RemoteSearchPerformance
.
prototype
=
{
listen
:
function
()
{
this
.
$element
.
on
(
'blur'
,
$
.
proxy
(
this
.
blur
,
this
))
.
on
(
'keyup'
,
$
.
proxy
(
this
.
keyup
,
this
));
this
.
$element
.
parent
(
'div.remote_wrapper'
).
on
(
'click'
,
this
.
ulID
,
$
.
proxy
(
this
.
click
,
this
));
},
blur
:
function
(
e
)
{
var
that
=
this
;
e
.
stopPropagation
();
e
.
preventDefault
();
setTimeout
(
function
()
{
if
(
!
that
.
ulFoucus
)
{
that
.
$element
.
val
(
that
.
$element
.
attr
(
'data-name'
));
that
.
hide
();
}
},
150
)
},
keyup
:
function
(
e
)
{
e
.
stopPropagation
();
e
.
preventDefault
();
switch
(
e
.
keyCode
)
{
case
40
:
// down arrow
case
38
:
// up arrow
break
;
case
9
:
// tab
case
13
:
// enter
this
.
ajaxer
();
case
27
:
// escape
break
;
default
:
this
.
ajaxer
();
}
},
hide
:
function
()
{
$
(
this
.
ulID
).
remove
();
return
this
;
},
ajaxer
:
function
()
{
var
that
=
this
,
title
=
that
.
$element
.
val
();
// Query changed
that
.
title
=
title
;
// Cancel last timer if set
if
(
that
.
ajax
.
timerId
)
{
clearTimeout
(
that
.
ajax
.
timerId
);
that
.
ajax
.
timerId
=
null
;
}
// Query is good to send, set a timer
that
.
ajax
.
timerId
=
setTimeout
(
function
()
{
var
params
=
{
title
:
title
};
var
jAjax
=
(
that
.
ajax
.
method
===
"post"
)
?
$
.
post
:
$
.
get
;
jAjax
(
that
.
ajax
.
url
,
params
,
function
(
data
){
return
that
.
render
(
data
.
data
);
});
that
.
ajax
.
timerId
=
null
;
},
that
.
ajax
.
timeout
);
return
that
;
},
render
:
function
(
data
)
{
this
.
ulFoucus
=
false
;
var
liList
=
data
||
[];
var
num
=
this
.
_getNum
();
//添加 ul
if
(
$
(
this
.
ulID
).
length
==
0
)
{
this
.
$element
.
after
(
"<ul id='"
+
this
.
id
+
"_ul' class='remote_search remote_search_top'></ul>"
);
};
//添加li
var
str
=
""
;
if
(
num
)
{
if
(
liList
.
length
)
{
for
(
var
i
=
0
;
i
<
liList
.
length
;
i
++
)
{
str
+=
"<li data-id='"
+
liList
[
i
].
spuId
+
"' data-name='"
+
liList
[
i
].
spuName
+
"' title='"
+
liList
[
i
].
spuName
+
"' value='"
+
liList
[
i
].
spuId
+
"'>"
+
liList
[
i
].
spuName
+
"</li>"
;
}
}
else
{
str
=
"<li data-id='' data-name=''>搜索无数据</li>"
}
}
else
{
this
.
$element
.
attr
(
'data-name'
,
""
);
this
.
$element
.
attr
(
'data-id'
,
""
);
}
$
(
this
.
ulID
).
html
(
str
);
var
bodyHeight
=
$
(
document
.
body
).
height
();
var
offsetTop
=
this
.
$element
.
offset
().
top
;
var
height
=
$
(
this
.
ulID
).
outerHeight
(
true
);
if
(
offsetTop
+
height
>
bodyHeight
){
$
(
this
.
ulID
).
addClass
(
'remote_search_bottom'
).
removeClass
(
'remote_search_top'
);
}
else
{
$
(
this
.
ulID
).
addClass
(
'remote_search_top'
).
removeClass
(
'remote_search_bottom'
);
}
return
this
;
},
click
:
function
(
e
)
{
e
.
stopPropagation
();
e
.
preventDefault
();
var
dataName
=
$
(
e
.
target
).
attr
(
'data-name'
);
var
dataID
=
$
(
e
.
target
).
attr
(
'data-id'
);
this
.
$element
.
val
(
dataName
);
this
.
$element
.
attr
(
'data-name'
,
dataName
);
this
.
$element
.
attr
(
'data-id'
,
dataID
);
this
.
options
.
chose
(
dataName
,
dataID
);
this
.
ulFoucus
=
true
;
return
this
.
hide
();
},
_getNum
:
function
(){
return
this
.
$element
.
val
().
length
;
}
}
$
.
fn
.
remoteSearchPerformance
=
function
(
option
)
{
return
this
.
each
(
function
()
{
var
$this
=
$
(
this
),
data
=
$this
.
data
(
'remoteSearchPerformance'
),
options
=
typeof
option
===
'object'
&&
option
;
if
(
!
data
)
{
$this
.
data
(
'remoteSearchPerformance'
,
(
data
=
new
RemoteSearchPerformance
(
this
,
options
)));
}
if
(
typeof
option
===
'string'
)
{
data
[
option
]();
}
});
}
$
.
fn
.
remoteSearchPerformance
.
defaults
=
{
hiddenVal
:
''
,
chose
:
function
()
{
},
ajax
:
{
url
:
null
,
timeout
:
300
,
method
:
'get'
,
timerId
:
null
},
success
:
function
(
res
){
}
}
$
.
fn
.
remoteSearchPerformance
.
Constructor
=
RemoteSearchPerformance
;
})(
jQuery
);
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/goblin/gago/gago.html
0 → 100644
View file @
fa2d3042
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
>
<head>
<th:block
th:include=
"include :: header('gago')"
/>
</head>
<style>
td
{
horiz-align
:
center
;
text-align
:
left
;
padding
:
10px
;
}
</style>
<body
class=
"white-bg"
>
<div
class=
"wrapper wrapper-content animated fadeInRight ibox-content"
>
<form
class=
"form-horizontal m"
id=
"userMobile-form"
>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label is-required"
>
用户手机号码:
</label>
<div
class=
"col-sm-8"
>
<input
type=
"number"
id=
"userMobile"
name=
"userMobile"
class=
"form-control"
>
<input
id=
"userId"
name=
"userId"
class=
"form-control"
type=
"hidden"
readonly
>
</div>
<button
type=
"button"
class=
"btn btn-w-m btn-success"
onclick=
"getMobileIsAudit()"
>
验证手机号
</button>
</div>
</form>
<form
class=
"form-horizontal m"
id=
"nft-form"
>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label is-required"
>
数字藏品名称:
</label>
<div
class=
"col-sm-8"
>
<input
id=
"skuId"
name=
"skuId"
th:value=
"*{skuId}"
type=
"hidden"
>
<div
class=
"remote_wrapper"
style=
"position: relative;"
>
<input
name=
"ids"
type=
"hidden"
>
<input
type=
"text"
id=
"remoteSearch"
>
</div>
</div>
</div>
<div
class=
"form-group"
>
<label
class=
"col-sm-3 control-label is-required"
>
生成序号:
</label>
<div
class=
"col-sm-8"
>
<input
type=
"number"
id=
"nftNum"
name=
"nftNum"
class=
"form-control"
>
</div>
</div>
</form>
<button
type=
"button"
class=
"btn btn-w-m btn-success"
onclick=
"ce()"
>
生成订单
</button>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: bootstrap-suggest-js"
/>
<script
th:src=
"@{/js/remote-search-nft.js}"
></script>
<script
th:inline=
"javascript"
>
var
prefix
=
ctx
+
"goblin/gago"
;
function
getMobileIsAudit
()
{
var
mobile
=
$
(
"#userMobile"
).
val
();
$
(
"#userId"
).
val
(
''
);
$
.
operate
.
get
(
prefix
+
"/nftAccount?userMobile="
+
mobile
,
function
(
res
)
{
uid
=
res
.
uid
;
$
(
"#userId"
).
val
(
uid
);
});
}
$
(
'#remoteSearch'
).
remoteSearchPerformance
({
ajax
:
{
url
:
"/goblin/common/sku?type=1"
,
type
:
"get"
},
chose
:
function
(
text
,
val
)
{
$
(
"#skuId"
).
val
(
val
);
},
success
:
function
()
{
}
})
function
ce
()
{
var
skuId
=
$
(
"#skuId"
).
val
();
var
nftNum
=
$
(
"#nftNum"
).
val
();
var
uid
=
$
(
"#userId"
).
val
();
if
(
uid
==
""
||
nftNum
==
""
||
uid
==
""
)
{
alert
(
"请完整填写信息"
)
}
else
{
var
param
=
{
skuId
:
skuId
,
nftNum
:
nftNum
,
uid
:
uid
};
$
.
operate
.
post
(
prefix
+
"/exchangeNumNftOrder"
,
param
,
function
(
res
)
{
});
// alert("uid =" + uid + " skuId=" + skuId + " nftNum=" + nftNum)
}
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/smile/volunteers/edit.html
View file @
fa2d3042
...
@@ -101,14 +101,14 @@
...
@@ -101,14 +101,14 @@
<table
id=
"team-table_user"
class=
"table table-condensed table-sm"
th:border=
"1"
>
<table
id=
"team-table_user"
class=
"table table-condensed table-sm"
th:border=
"1"
>
<tr>
<tr>
<td>
名称
</td>
<td>
名称
</td>
<td>
介绍
</td
>
<!-- <td>介绍</td>--
>
<tr/>
<tr/>
<div
th:each=
"item : ${smileVolunteersDetailsVo.teamArray}"
>
<div
th:each=
"item : ${smileVolunteersDetailsVo.teamArray}"
>
<tr
class=
"content-tr"
>
<tr
class=
"content-tr"
>
<td
th:value=
"${item.name}"
th:text=
"${item.name}"
>
<td
th:value=
"${item.name}"
th:text=
"${item.name}"
>
</td>
</td>
<td
th:text=
"${item.introduce}"
>
<!-- <td th:text="${item.introduce}">--
>
</td
>
<!-- </td>--
>
</tr>
</tr>
</div>
</div>
</table>
</table>
...
@@ -118,15 +118,15 @@
...
@@ -118,15 +118,15 @@
<table
id=
"team-table"
class=
"table table-condensed table-sm"
th:border=
"1"
>
<table
id=
"team-table"
class=
"table table-condensed table-sm"
th:border=
"1"
>
<tr>
<tr>
<td>
名称
</td>
<td>
名称
</td>
<td>
介绍
</td
>
<!-- <td>介绍</td>--
>
<td>
选中
</td>
<td>
选中
</td>
<tr/>
<tr/>
<div
th:each=
"item : ${listData}"
>
<div
th:each=
"item : ${listData}"
>
<tr
class=
"content-tr"
>
<tr
class=
"content-tr"
>
<td
th:value=
"${item.name}"
th:text=
"${item.name}"
>
<td
th:value=
"${item.name}"
th:text=
"${item.name}"
>
</td>
</td>
<td
th:text=
"${item.introduce}"
>
<!-- <td th:text="${item.introduce}">--
>
</td
>
<!-- </td>--
>
<td>
<td>
<input
name=
"teamCheck"
type=
"radio"
th:value=
"${item.teamId}"
>
选中
</label>
<input
name=
"teamCheck"
type=
"radio"
th:value=
"${item.teamId}"
>
选中
</label>
</td>
</td>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/performanceActivity/activityList.html
0 → 100644
View file @
fa2d3042
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<th:block
th:include=
"include :: header('积分明细')"
/>
<style>
body
.layui-layer-btn
{
display
:
none
!important
;
}
</style>
</head>
<body
class=
"gray-bg"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<!-- <div class="col-sm-12 search-collapse">
<form id="coupon-form">
<div class="select-list">
<ul>
<input type="hidden" name="couType" th:value="${couType}"/>
<li>
<input type="text" name="mobile" placeholder="请输入手机号码"/>
</li>
<li>
状态:
<select name="status" id="">
<option value="0">全部</option>
<option value="1">正常</option>
<option value="2">冻结</option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
</li>
</ul>
</div>
</form>
</div> -->
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-primary"
onclick=
"exportSelected()"
shiro:hasPermission=
"monitor:job:export"
>
创建活动
</a>
</div>
<div
class=
"col-sm-12 select-table table-striped"
>
<table
id=
"bootstrap-table"
></table>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<script
th:inline=
"javascript"
>
var
prefix
=
ctx
+
"stone/logs"
;
var
prefix2
=
ctx
+
"local"
;
var
couType
=
[[
$
{
couType
}]];
$
(
function
()
{
var
options
=
{
url
:
'/kylin-acitve/pageActive'
,
pagination
:
true
,
modalName
:
"积分"
,
columns
:
[
{
field
:
'activeName'
,
title
:
'活动名称'
},
{
field
:
'number'
,
title
:
'券数量'
},
{
title
:
'操作'
,
// align: 'center',
formatter
:
function
(
value
,
row
,
index
)
{
let
dataArr
=
[];
dataArr
.
push
(
`<span class="btn btn-warning btn-xs" href="javascript:void(0)" onclick="opendTicketList('
${
row
.
activeId
}
')"><i class="fa fa-search"></i>查看券列表</span>`
)
return
dataArr
.
join
(
' '
)
}
}]
};
$
.
table
.
init
(
options
);
});
function
opendTicketList
(
id
)
{
console
.
log
(
id
,
'121212121212activityTicketList'
)
var
url
=
prefix2
+
'/activityTicketList?id='
+
id
;
$
.
modal
.
openTab
(
"活动券列表"
,
url
);
}
function
openModal
(
uid
,
status
,
title
)
{
$
.
modal
.
confirm
(
title
,
function
()
{
let
data
=
{
status
,
uid
}
$
.
ajax
({
type
:
'put'
,
url
:
prefix
+
'/change/status'
,
data
,
success
:
function
(
e
)
{
$
(
"button[name=refresh]"
).
click
();
}
})
});
}
// 导出数据
function
exportSelected
()
{
// console.log(userIds.toString(), 'dataParam')
$
.
modal
.
open
(
'创建活动'
,
prefix2
+
"/createActivityModal"
,
500
,
260
,
cancel
)
}
function
cancel
()
{
console
.
log
(
'确定按钮?'
)
}
</script>
</body>
</html>
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/performanceActivity/createActivity.html
0 → 100644
View file @
fa2d3042
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<th:block
th:include=
"include :: header('创建活动')"
/>
<th:block
th:include=
"include :: bootstrap-fileinput-css"
/>
<style>
.create_activity_box
{
padding
:
20px
;
}
.items
{
/* border: 1px dashed #ccc; */
border-radius
:
10px
;
padding
:
12px
;
margin-bottom
:
10px
;
}
label
{
width
:
80px
;
text-align
:
right
;
}
input
{
width
:
200px
;
height
:
30px
;
}
.footer_btn
{
margin-top
:
20px
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
select
{
height
:
30px
;
width
:
200px
;
}
</style>
</head>
<body>
<div
class=
"create_activity_box"
>
<div
class=
"items"
>
<label><span
style=
"color: red;"
>
*
</span>
活动名称:
</label>
<input
type=
"text"
id=
"activityName"
/>
</div>
<!-- <div class="items">
关联演出:
<select name="tagType">
<option value="">全部</option>
<option>1</option>
<option>1</option>
<option>1</option>
<option>1</option>
</select>
</div> -->
<div
class=
"items"
>
<label><span
style=
"color: red;"
>
*
</span>
券数量:
</label>
<input
type=
"text"
id=
"ticketNum"
/>
</div>
<div
class=
"footer_btn"
>
<button
type=
"button"
class=
"btn btn-success"
onclick=
"save()"
>
保存
</button>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<th:block
th:include=
"include :: bootstrap-fileinput-js"
/>
<th:block
th:include=
"include :: bootstrap-suggest-js"
/>
<script
th:inline=
"javascript"
>
var
prefix2
=
ctx
+
"local"
;
var
platformUrl
=
[[
$
{
platformUrl
}]];
let
count
=
0
;
let
compilationsId
=
''
;
let
createTime
=
''
;
let
cubeId
=
''
;
let
mid
=
''
;
let
updateTime
=
''
;
function
save
()
{
let
activityName
=
$
(
"#activityName"
).
val
();
let
ticketNum
=
$
(
"#ticketNum"
).
val
();
if
(
!
activityName
||
!
ticketNum
)
{
layer
.
msg
(
'请将表单填写完整!'
)
}
let
data
=
{
"activeId"
:
""
,
"activeName"
:
activityName
,
"delTag"
:
0
,
"mid"
:
0
,
"number"
:
ticketNum
,
"performanceId"
:
""
}
promiseMethods
(
'/kylin-acitve/add'
,
'post'
,
JSON
.
stringify
(
data
),
'application/json'
).
then
((
res
)
=>
{
layer
.
msg
(
"保存成功!"
)
$
(
"#activityName"
).
val
(
''
)
$
(
"#ticketNum"
).
val
(
''
)
$
.
operate
.
successCallback
(
res
);
})
}
function
promiseMethods
(
url
,
type
,
data
,
contentType
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
$
.
ajax
({
url
,
type
,
data
,
contentType
,
success
:
function
(
res
)
{
resolve
(
res
);
}
})
})
}
</script>
</body>
</html>
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-web/src/main/resources/templates/zhengzai/sweet/performanceActivity/ticketList.html
0 → 100644
View file @
fa2d3042
<!DOCTYPE html>
<html
lang=
"zh"
xmlns:th=
"http://www.thymeleaf.org"
xmlns:shiro=
"http://www.pollix.at/thymeleaf/shiro"
>
<head>
<th:block
th:include=
"include :: header('积分明细')"
/>
<style>
body
.layui-layer-btn
{
display
:
none
!important
;
}
</style>
</head>
<body
class=
"gray-bg"
>
<div
class=
"container-div"
>
<div
class=
"row"
>
<div
class=
"btn-group-sm"
id=
"toolbar"
role=
"group"
>
<a
class=
"btn btn-warning"
onclick=
"exportSelected()"
>
<i
class=
"fa fa-download"
></i>
导出
</a>
</div>
<div
class=
"col-sm-12 select-table table-striped"
>
<table
id=
"bootstrap-table"
></table>
</div>
</div>
</div>
<th:block
th:include=
"include :: footer"
/>
<script
th:inline=
"javascript"
>
var
prefix
=
ctx
+
"stone/logs"
;
var
prefix2
=
ctx
+
"local"
;
var
couType
=
[[
$
{
couType
}]];
let
id
=
''
$
(
function
()
{
var
options
=
{
url
:
'/kylin-acitve/pageActiveTicket'
,
pagination
:
true
,
modalName
:
"积分"
,
queryParams
:
queryParams
,
columns
:
[
{
field
:
'code'
,
title
:
'券码'
},
{
field
:
'state'
,
title
:
'券状态'
,
formatter
:
function
(
value
,
row
)
{
if
(
value
==
1
)
{
return
'未兑换'
}
else
if
(
value
==
2
)
{
return
'已兑换'
}
else
{
return
'已失效'
}
}
},
{
field
:
'redeemAt'
,
title
:
'使用时间'
}]
};
$
.
table
.
init
(
options
);
});
function
queryParams
(
params
)
{
let
name
=
'id'
;
var
reg
=
new
RegExp
(
"(^|&)"
+
name
+
"=([^&]*)(&|$)"
);
var
r
=
window
.
location
.
search
.
substr
(
1
).
match
(
reg
);
id
=
unescape
(
r
[
2
]);
var
search
=
$
.
table
.
queryParams
(
params
);
search
.
activeId
=
id
;
return
search
;
}
function
opendTicketList
(
id
)
{
var
url
=
prefix2
+
'activityTicketList?id='
+
id
;
$
.
modal
.
openTab
(
"活动券列表"
,
url
);
}
// 导出数据
function
exportSelected
()
{
$
.
ajax
({
type
:
'post'
,
url
:
'/kylin-acitve/exportTicket'
,
data
:
{
activeId
:
id
,
activeName
:
'dasdas'
},
success
:
function
(
res
)
{
console
.
log
(
res
,
'????'
)
window
.
location
.
href
=
ctx
+
"common/download?fileName="
+
encodeURI
(
res
.
msg
)
+
"&delete="
+
true
;
}
})
}
</script>
</body>
</html>
\ No newline at end of file
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/pom.xml
View file @
fa2d3042
...
@@ -151,6 +151,11 @@
...
@@ -151,6 +151,11 @@
<artifactId>
liquidnet-service-goblin-api
</artifactId>
<artifactId>
liquidnet-service-goblin-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-galaxy-api
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<dependency>
<groupId>
com.liquidnet
</groupId>
<groupId>
com.liquidnet
</groupId>
<artifactId>
liquidnet-service-smile-do
</artifactId>
<artifactId>
liquidnet-service-smile-do
</artifactId>
...
...
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/goblin/service/impl/GoblinGageServiceImpl.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
goblin
.
service
.
impl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.liquidnet.client.admin.zhengzai.goblin.service.IGoblinFrontSelectGoodsService
;
import
com.liquidnet.service.goblin.entity.GoblinFrontSelectGoods
;
import
com.liquidnet.service.goblin.mapper.GoblinFrontSelectGoodsMapper
;
public
class
GoblinGageServiceImpl
extends
ServiceImpl
<
GoblinFrontSelectGoodsMapper
,
GoblinFrontSelectGoods
>
implements
IGoblinFrontSelectGoodsService
{
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/goblin/utils/GoblinRedisUtils.java
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
goblin
.
utils
;
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
goblin
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
com.liquidnet.service.goblin.dto.vo.GoblinMarketingZhengzaiRelationVo
;
import
com.liquidnet.service.goblin.constant.GoblinStatusConst
;
import
com.liquidnet.service.goblin.dto.vo.GoblinSelfMarketingVo
;
import
com.liquidnet.service.goblin.constant.NftAccStatusEnum
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.entity.GoblinGoodsSku
;
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.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
@Component
@Component
...
@@ -131,4 +139,99 @@ public class GoblinRedisUtils {
...
@@ -131,4 +139,99 @@ public class GoblinRedisUtils {
redisDataSourceUtil
.
getRedisGoblinUtil
().
set
(
redisKey
,
list
);
redisDataSourceUtil
.
getRedisGoblinUtil
().
set
(
redisKey
,
list
);
}
}
//是否开通数字账号
public
Boolean
getIsOpenAccount
(
String
userId
)
{
String
redisKey
=
GoblinRedisConst
.
REDIS_GOBLIN_NFT_NUM_ACCOUNT_INFO
.
concat
(
userId
);
Object
obj
=
redisDataSourceUtil
.
getRedisGoblinUtil
().
get
(
redisKey
);
GoblinUserNftAccInfoVo
openAccountInfo
;
if
(
obj
==
null
)
{
openAccountInfo
=
null
;
}
else
{
openAccountInfo
=
(
GoblinUserNftAccInfoVo
)
obj
;
}
// 认证验证
if
(
null
==
openAccountInfo
||
!
NftAccStatusEnum
.
StatusAcc
.
SUCCESS
.
getCode
().
equals
(
openAccountInfo
.
getCode
()))
{
return
false
;
}
else
{
return
true
;
}
}
//获取 当前xx链上SkuId 发行的数量
public
int
getNftCountBySku
(
String
routerType
,
String
skuId
)
{
String
redisKey
=
GalaxyConstant
.
REDIS_KEY_GALAXY_PUBLISH_NFT
.
concat
(
routerType
).
concat
(
":"
).
concat
(
skuId
);
Object
obj
=
redisDataSourceUtil
.
getRedisGoblinUtil
().
get
(
redisKey
);
if
(
obj
==
null
)
{
return
-
1
;
}
else
{
return
(
int
)
obj
;
}
}
//获取 nft序号站位list
public
List
<
String
>
getNftList
(
String
skuId
)
{
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_LIST
.
concat
(
skuId
);
Object
obj
=
redisDataSourceUtil
.
getRedisGoblinUtil
().
get
(
redisKey
);
if
(
obj
==
null
)
{
return
CollectionUtil
.
arrayListString
();
}
else
{
return
(
List
<
String
>)
obj
;
}
}
//添加 nft序号站位list
public
boolean
addNftList
(
String
skuId
,
String
num
)
{
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_LIST
.
concat
(
skuId
);
List
<
String
>
voList
=
getNftList
(
skuId
);
if
(
voList
.
contains
(
num
))
{
return
false
;
}
voList
.
add
(
num
);
redisDataSourceUtil
.
getRedisGoblinUtil
().
set
(
redisKey
,
voList
);
return
true
;
}
//删除 nft序号站位list
public
boolean
removeNftList
(
String
skuId
,
String
num
)
{
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_LIST
.
concat
(
skuId
);
List
<
String
>
voList
=
getNftList
(
skuId
);
voList
.
remove
(
num
);
redisDataSourceUtil
.
getRedisGoblinUtil
().
set
(
redisKey
,
voList
);
return
true
;
}
public
GoblinGoodsSkuInfoVo
getGoodsSkuInfoVo
(
String
skuId
)
{
String
rk
=
GoblinRedisConst
.
BASIC_GOODS_SKU
.
concat
(
skuId
);
GoblinGoodsSkuInfoVo
vo
=
(
GoblinGoodsSkuInfoVo
)
redisDataSourceUtil
.
getRedisGoblinUtil
().
get
(
rk
);
if
(
null
==
vo
)
{
return
null
;
}
return
vo
;
}
//覆盖 站位宾哥要dto
public
void
setNftNumDetails
(
String
num
,
String
skuId
,
GalaxyNftPublishAndBuyReqDto
dto
)
{
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_DETAILS
.
concat
(
num
).
concat
(
skuId
);
redisDataSourceUtil
.
getRedisGoblinUtil
().
set
(
redisKey
,
dto
);
}
//减少库存
public
int
decrSkuStock
(
String
marketPre
,
String
skuId
,
Integer
stock
)
{
String
rk
=
GoblinRedisConst
.
REAL_STOCK_SKU
;
if
(
marketPre
!=
null
&&
!
marketPre
.
equals
(
"null"
))
{
rk
=
rk
.
concat
(
marketPre
+
":"
);
}
rk
=
rk
.
concat
(
skuId
);
return
(
int
)
redisDataSourceUtil
.
getRedisGoblinUtil
().
decr
(
rk
,
stock
);
}
//增加库存
public
int
incrSkuStock
(
String
marketPre
,
String
skuId
,
Integer
stock
)
{
String
rk
=
GoblinRedisConst
.
REAL_STOCK_SKU
;
if
(
marketPre
!=
null
&&
!
marketPre
.
equals
(
"null"
))
{
rk
=
rk
.
concat
(
marketPre
+
":"
);
}
rk
=
rk
.
concat
(
skuId
);
return
(
int
)
redisDataSourceUtil
.
getRedisGoblinUtil
().
incr
(
rk
,
stock
);
}
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/dto/ActiveTicketExportVo.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
dto
;
import
com.liquidnet.client.admin.common.annotation.Excel
;
import
lombok.Data
;
import
java.io.Serializable
;
@Data
public
class
ActiveTicketExportVo
implements
Serializable
,
Cloneable
{
@Excel
(
name
=
"券码"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
code
;
/**
* 兑换码状态 1未兑换 2已兑换 3已失效
*/
@Excel
(
name
=
"兑换码状态"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
state
;
/**
* 兑换用户id
*/
@Excel
(
name
=
"兑换用户id"
,
cellType
=
Excel
.
ColumnType
.
STRING
)
private
String
redeemUid
;
private
static
final
ActiveTicketExportVo
obj
=
new
ActiveTicketExportVo
();
public
static
ActiveTicketExportVo
getNew
()
{
try
{
return
(
ActiveTicketExportVo
)
obj
.
clone
();
}
catch
(
CloneNotSupportedException
e
)
{
e
.
printStackTrace
();
}
return
new
ActiveTicketExportVo
();
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinAcitveServiceImpl.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.liquidnet.common.cache.redis.util.RedisDataSourceUtil
;
import
com.liquidnet.commons.lang.util.IDGenerator
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.dao.KylinAcitve
;
import
com.liquidnet.service.kylin.dao.KylinTicketActive
;
import
com.liquidnet.service.kylin.mapper.KylinAcitveMapper
;
import
com.liquidnet.service.kylin.mapper.KylinTicketActiveMapper
;
import
com.liquidnet.service.kylin.service.admin.IKylinTicketActiveService
;
import
com.liquidnet.service.kylin.service.admin.IKylinAcitveService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 服务实现类
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
@Service
public
class
KylinAcitveServiceImpl
extends
ServiceImpl
<
KylinAcitveMapper
,
KylinAcitve
>
implements
IKylinAcitveService
{
@Autowired
private
KylinAcitveMapper
kylinAcitveMapper
;
@Autowired
private
KylinTicketActiveMapper
kylinTicketActiveMapper
;
@Autowired
private
IKylinTicketActiveService
iKylinTicketActiveService
;
@Autowired
RedisDataSourceUtil
redisDataSourceUtil
;
@Override
@Transactional
public
boolean
addKylinAcitve
(
KylinAcitve
kylinAcitve
)
{
kylinAcitve
.
setActiveId
(
IDGenerator
.
nextSnowId
());
kylinAcitve
.
setCreatedAt
(
LocalDateTime
.
now
());
kylinAcitve
.
setUpdatedAt
(
LocalDateTime
.
now
());
kylinAcitve
.
setDelTag
(
0
);
//保存活动
kylinAcitveMapper
.
insert
(
kylinAcitve
);
//创建券
iKylinTicketActiveService
.
saveBatch
(
getKylinTicketActive
(
kylinAcitve
.
getNumber
(),
kylinAcitve
.
getActiveId
()));
return
true
;
}
@Override
public
List
<
KylinAcitve
>
pageKylinAcitve
(
int
pageSize
,
int
pageNumber
)
{
PageHelper
.
startPage
(
pageNumber
,
pageSize
);
LambdaQueryWrapper
<
KylinAcitve
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
KylinAcitve
.
class
);
List
<
KylinAcitve
>
list
=
kylinAcitveMapper
.
selectList
(
queryWrapper
);
return
list
;
}
public
List
<
KylinTicketActive
>
getKylinTicketActive
(
int
number
,
String
activeId
){
List
<
KylinTicketActive
>
list
=
new
ArrayList
<>();
if
(
number
>
0
){
for
(
int
i
=
0
;
i
<
number
;
i
++){
KylinTicketActive
kylinTicketActive
=
new
KylinTicketActive
();
kylinTicketActive
.
setTicketId
(
IDGenerator
.
nextSnowId
());
kylinTicketActive
.
setActivityId
(
activeId
);
kylinTicketActive
.
setCode
(
IDGenerator
.
createCodeAz
(
3
,
4
,
true
));
kylinTicketActive
.
setState
(
1
);
kylinTicketActive
.
setCreatedAt
(
LocalDateTime
.
now
());
kylinTicketActive
.
setUpdatedAt
(
LocalDateTime
.
now
());
kylinTicketActive
.
setDelTag
(
0
);
list
.
add
(
kylinTicketActive
);
//redis 存
redisDataSourceUtil
.
getRedisKylinUtil
().
set
(
KylinRedisConst
.
ACTIVE_TICKET_AR_TICKET
+
kylinTicketActive
.
getCode
(),
kylinTicketActive
);
}
return
list
;
}
return
null
;
}
}
liquidnet-bus-client/liquidnet-client-admin/liquidnet-client-admin-zhengzai/src/main/java/com/liquidnet/client/admin/zhengzai/kylin/service/impl/KylinTicketActiveServiceImpl.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
client
.
admin
.
zhengzai
.
kylin
.
service
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.github.pagehelper.PageHelper
;
import
com.liquidnet.client.admin.zhengzai.kylin.dto.ActiveTicketExportVo
;
import
com.liquidnet.service.kylin.dao.KylinTicketActive
;
import
com.liquidnet.service.kylin.mapper.KylinTicketActiveMapper
;
import
com.liquidnet.service.kylin.service.admin.IKylinTicketActiveService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* <p>
* 跟活动绑定的券 服务实现类
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
@Service
public
class
KylinTicketActiveServiceImpl
extends
ServiceImpl
<
KylinTicketActiveMapper
,
KylinTicketActive
>
implements
IKylinTicketActiveService
{
@Autowired
private
KylinTicketActiveMapper
kylinTicketActiveMapper
;
@Override
public
List
<
KylinTicketActive
>
pageKylinAcitve
(
int
pageSize
,
int
pageNumber
,
String
activeId
)
{
PageHelper
.
startPage
(
pageNumber
,
pageSize
);
LambdaQueryWrapper
<
KylinTicketActive
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
KylinTicketActive
.
class
);
queryWrapper
.
eq
(
KylinTicketActive:
:
getActivityId
,
activeId
);
List
<
KylinTicketActive
>
list
=
kylinTicketActiveMapper
.
selectList
(
queryWrapper
);
return
list
;
}
public
List
<
ActiveTicketExportVo
>
exportTicket
(
String
activeId
)
{
LambdaQueryWrapper
<
KylinTicketActive
>
queryWrapper
=
Wrappers
.
lambdaQuery
(
KylinTicketActive
.
class
);
queryWrapper
.
eq
(
KylinTicketActive:
:
getActivityId
,
activeId
);
List
<
KylinTicketActive
>
list
=
kylinTicketActiveMapper
.
selectList
(
queryWrapper
);
List
<
ActiveTicketExportVo
>
voList
=
new
ArrayList
();
for
(
KylinTicketActive
item
:
list
)
{
ActiveTicketExportVo
activeTicketExportVo
=
ActiveTicketExportVo
.
getNew
();
activeTicketExportVo
.
setCode
(
item
.
getCode
());
activeTicketExportVo
.
setRedeemUid
(
item
.
getRedeemUid
()==
null
?
""
:
item
.
getRedeemUid
());
if
(
item
.
getState
()==
1
){
activeTicketExportVo
.
setState
(
"未兑换"
);
}
else
if
(
item
.
getState
()==
2
){
activeTicketExportVo
.
setState
(
"已兑换"
);
}
else
{
activeTicketExportVo
.
setState
(
"已失效"
);
}
voList
.
add
(
activeTicketExportVo
);
}
return
voList
;
}
}
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/IDGenerator.java
View file @
fa2d3042
...
@@ -184,4 +184,30 @@ public class IDGenerator {
...
@@ -184,4 +184,30 @@ public class IDGenerator {
return
str
.
toString
()+
"CH"
;
return
str
.
toString
()+
"CH"
;
}
}
/**
*创建互动兑换券的code
*/
public
static
String
createCodeAz
(
int
num
,
int
sec
,
boolean
bol
)
{
StringBuffer
str
=
new
StringBuffer
();
for
(
int
k
=
0
;
k
<
num
;
k
++)
{
for
(
int
i
=
0
;
i
<
sec
;
i
++){
int
intVal
=(
int
)(
Math
.
random
()*
58
+
65
);
if
(
intVal
>=
91
&&
intVal
<=
122
){
i
--;
}
if
(
intVal
<
91
||
intVal
>
122
){
if
(
intVal
%
2
==
0
){
str
.
append
((
char
)
intVal
);
}
else
{
str
.
append
((
int
)(
Math
.
random
()*
10
));
}
}
}
if
(
bol
){
str
.
append
(
"-"
);
}
}
return
str
.
toString
()+
"AZ"
;
}
}
}
liquidnet-bus-config/liquidnet-config/liquidnet-service-order.yml
View file @
fa2d3042
...
@@ -108,6 +108,7 @@ global-auth:
...
@@ -108,6 +108,7 @@ global-auth:
-
${liquidnet.info.context}/goblin/nft/refundSyncOrder
-
${liquidnet.info.context}/goblin/nft/refundSyncOrder
-
${liquidnet.info.context}/goblin/nft/airdrop
-
${liquidnet.info.context}/goblin/nft/airdrop
-
${liquidnet.info.context}/mix/syncOrder
-
${liquidnet.info.context}/mix/syncOrder
-
${liquidnet.info.context}/goblin/nft/airdropInner
# -----------------------------------------------------------
# -----------------------------------------------------------
# -----------------------------------------------------------
# -----------------------------------------------------------
...
...
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/KylinAcitve.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
dao
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableField
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
import
java.io.Serializable
;
import
java.time.LocalDateTime
;
/**
* <p>
*
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
KylinAcitve
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* 活动名称
*/
@TableField
(
"activeName"
)
private
String
activeName
;
/**
* 券的数量
*/
private
Integer
number
;
/**
* activeId
*/
private
String
activeId
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 修改时间
*/
private
LocalDateTime
updatedAt
;
/**
* 0未删除1已删除
*/
private
Integer
delTag
;
/**
* 演出id
*/
private
String
performanceId
;
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/dao/KylinTicketActive.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
dao
;
import
com.baomidou.mybatisplus.annotation.IdType
;
import
com.baomidou.mybatisplus.annotation.TableId
;
import
java.time.LocalDateTime
;
import
java.io.Serializable
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
/**
* <p>
* 跟活动绑定的券
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
@Data
@EqualsAndHashCode
(
callSuper
=
false
)
public
class
KylinTicketActive
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
@TableId
(
value
=
"mid"
,
type
=
IdType
.
AUTO
)
private
Long
mid
;
/**
* 票id
*/
private
String
ticketId
;
/**
* 兑换码
*/
private
String
code
;
/**
* 兑换码状态 1未兑换 2已兑换 3已失效
*/
private
Integer
state
;
/**
* 兑换用户id
*/
private
String
redeemUid
;
/**
* 兑换时间
*/
private
LocalDateTime
redeemAt
;
/**
* 活动id
*/
private
String
activityId
;
/**
* 创建时间
*/
private
LocalDateTime
createdAt
;
/**
* 更新时间
*/
private
LocalDateTime
updatedAt
;
/**
* 0未删除1已删除
*/
private
Integer
delTag
;
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinAcitveMapper.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.kylin.dao.KylinAcitve
;
/**
* <p>
* Mapper 接口
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
public
interface
KylinAcitveMapper
extends
BaseMapper
<
KylinAcitve
>
{
}
liquidnet-bus-do/liquidnet-service-kylin-do/src/main/java/com/liquidnet/service/kylin/mapper/KylinTicketActiveMapper.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
mapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.liquidnet.service.kylin.dao.KylinTicketActive
;
/**
* <p>
* 跟活动绑定的券 Mapper 接口
* </p>
*
* @author liquidnet
* @since 2022-07-12
*/
public
interface
KylinTicketActiveMapper
extends
BaseMapper
<
KylinTicketActive
>
{
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/biz/GalaxyTradeBiz.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
galaxy
.
biz
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxySeriesNftInfoBo
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyRespDto
;
import
com.liquidnet.service.galaxy.router.zxin.biz.ZxinTradeCommonBiz
;
import
com.liquidnet.service.galaxy.utils.GalaxyDataUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
java.time.LocalDateTime
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: GalaxyTradeBiz
* @Package com.liquidnet.service.galaxy.biz
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/7/11 15:47
*/
@Slf4j
@Component
public
class
GalaxyTradeBiz
{
@Autowired
private
GalaxyDataUtils
dataUtils
;
@Autowired
private
ZxinTradeCommonBiz
zxinTradeCommonBiz
;
/**
* 根据skuid和nftIndex判断是否切换nft购买订单
* @param skuid
* @param nftIndex
*/
public
boolean
isNeedSwitch
(
String
skuid
,
String
nftIndex
){
List
numsList
=
dataUtils
.
getGoblinNumList
(
skuid
);
if
(
StringUtil
.
isNotEmpty
(
numsList
)){
if
(
numsList
.
contains
(
nftIndex
)){
return
true
;
}
}
return
false
;
}
/**
* 根据skuid和nftIndex判断是否切换nft购买订单
* @param skuid
* @param nftIndex
*/
public
void
switchBuyRouterBySkuId
(
String
skuid
,
String
nftIndex
,
GalaxySeriesNftInfoBo
seriesNftInfoBo
){
GalaxyNftPublishAndBuyReqDto
reqDto
=
dataUtils
.
getGoblinNumDetails
(
skuid
,
nftIndex
);
//设置绑定信息
GalaxyNftOrderBindBo
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
nftOrderBindBo
.
setNftOrderPayId
(
reqDto
.
getNftOrderPayId
());
nftOrderBindBo
.
setSeriesId
(
seriesNftInfoBo
.
getSeriesId
());
nftOrderBindBo
.
setSeriesCode
(
seriesNftInfoBo
.
getSeriesCode
());
nftOrderBindBo
.
setNftIdIndex
(
Integer
.
valueOf
(
nftIndex
));
nftOrderBindBo
.
setRouterType
(
reqDto
.
getRouterType
());
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
LocalDateTime
.
now
());
nftOrderBindBo
.
setCreatedAt
(
nowTimeStr
);
dataUtils
.
setGalaxyNftOrderBindBo
(
reqDto
.
getRouterType
(),
reqDto
.
getNftOrderPayId
(),
nftOrderBindBo
);
//执行nft购买订单切换
log
.
info
(
"开始执行nft购买订单切换===>>>>> reqParam:{}"
,
JsonUtils
.
toJson
(
reqDto
));
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
responseDto
=
zxinTradeCommonBiz
.
nftPublishAndBuy
(
reqDto
);
log
.
info
(
"执行nft购买订单切换结果===>>>>> response:{}"
,
JsonUtils
.
toJson
(
responseDto
));
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/router/zxin/biz/ZxinTradeCommonBiz.java
View file @
fa2d3042
...
@@ -9,6 +9,7 @@ import com.liquidnet.commons.lang.util.*;
...
@@ -9,6 +9,7 @@ import com.liquidnet.commons.lang.util.*;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyEnumBiz
;
import
com.liquidnet.service.galaxy.biz.GalaxyTradeBiz
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyErrorEnum
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
import
com.liquidnet.service.galaxy.dto.bo.GalaxyNftOrderBindBo
;
...
@@ -29,6 +30,8 @@ import org.springframework.stereotype.Component;
...
@@ -29,6 +30,8 @@ import org.springframework.stereotype.Component;
import
java.io.UnsupportedEncodingException
;
import
java.io.UnsupportedEncodingException
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
/**
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @author AnJiabin <anjiabin@zhengzai.tv>
...
@@ -57,6 +60,11 @@ public class ZxinTradeCommonBiz {
...
@@ -57,6 +60,11 @@ public class ZxinTradeCommonBiz {
@Autowired
@Autowired
private
GalaxyBeanTransferBiz
galaxyBeanTransferBiz
;
private
GalaxyBeanTransferBiz
galaxyBeanTransferBiz
;
@Autowired
private
GalaxyTradeBiz
galaxyTradeBiz
;
private
ExecutorService
executorService
=
Executors
.
newFixedThreadPool
(
10
);
public
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
nftPublishAndBuy
(
GalaxyNftPublishAndBuyReqDto
reqDto
)
{
public
ResponseDto
<
GalaxyNftPublishAndBuyRespDto
>
nftPublishAndBuy
(
GalaxyNftPublishAndBuyReqDto
reqDto
)
{
log
.
info
(
"开始执行nftPublishAndBuy 请求参数:{}"
,
reqDto
.
toString
());
log
.
info
(
"开始执行nftPublishAndBuy 请求参数:{}"
,
reqDto
.
toString
());
//获取用户信息
//获取用户信息
...
@@ -141,6 +149,17 @@ public class ZxinTradeCommonBiz {
...
@@ -141,6 +149,17 @@ public class ZxinTradeCommonBiz {
//发行失败
//发行失败
throw
new
GalaxyNftPublishException
(
GalaxyErrorEnum
.
NFT_PUBLISH_ERROR
.
getCode
(),
"该sku:"
+
reqDto
.
getSkuId
()+
" 总共"
+
seriesNftInfoBo
.
getNftTotalCount
()+
"个NFT已经发行完毕,没有剩余库存!"
);
throw
new
GalaxyNftPublishException
(
GalaxyErrorEnum
.
NFT_PUBLISH_ERROR
.
getCode
(),
"该sku:"
+
reqDto
.
getSkuId
()+
" 总共"
+
seriesNftInfoBo
.
getNftTotalCount
()+
"个NFT已经发行完毕,没有剩余库存!"
);
}
}
//判断是否切换订单
while
(
galaxyTradeBiz
.
isNeedSwitch
(
reqDto
.
getSkuId
(),
String
.
valueOf
(
nftIdNo
))){
long
finalNftIdNo
=
nftIdNo
;
//开启新线程去执行购买
executorService
.
submit
(()
->
{
galaxyTradeBiz
.
switchBuyRouterBySkuId
(
reqDto
.
getSkuId
(),
String
.
valueOf
(
finalNftIdNo
),
seriesNftInfoBo
);
});
nftIdNo
=
dataUtils
.
incrNftIdNo
(
reqDto
.
getRouterType
(),
reqDto
.
getSkuId
());
}
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
nftOrderBindBo
=
GalaxyNftOrderBindBo
.
getNew
();
nftOrderBindBo
.
setNftOrderPayId
(
reqDto
.
getNftOrderPayId
());
nftOrderBindBo
.
setNftOrderPayId
(
reqDto
.
getNftOrderPayId
());
nftOrderBindBo
.
setSeriesId
(
seriesNftInfoBo
.
getSeriesId
());
nftOrderBindBo
.
setSeriesId
(
seriesNftInfoBo
.
getSeriesId
());
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-common/src/main/java/com/liquidnet/service/galaxy/utils/AbstractDataUtils.java
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
package
com
.
liquidnet
.
service
.
galaxy
.
utils
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.common.cache.redis.util.RedisUtil
;
import
com.liquidnet.commons.lang.util.CollectionUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.commons.lang.util.StringUtil
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.SqlMapping
;
...
@@ -9,13 +10,16 @@ import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz;
...
@@ -9,13 +10,16 @@ import com.liquidnet.service.galaxy.biz.GalaxyBeanTransferBiz;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.constant.GalaxyConstant
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.constant.GalaxyEnum
;
import
com.liquidnet.service.galaxy.dto.bo.*
;
import
com.liquidnet.service.galaxy.dto.bo.*
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftOrderFailLogVo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftOrderFailLogVo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftTradeVo
;
import
com.liquidnet.service.galaxy.dto.vo.mongo.GalaxyNftTradeVo
;
import
com.liquidnet.service.goblin.constant.GoblinRedisConst
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
org.springframework.data.mongodb.core.MongoTemplate
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
/**
/**
* 该类为redis+mysql
* 该类为redis+mysql
...
@@ -506,4 +510,26 @@ public abstract class AbstractDataUtils {
...
@@ -506,4 +510,26 @@ public abstract class AbstractDataUtils {
return
null
;
return
null
;
}
}
}
}
//获取sku对应预留号码list
public
List
<
String
>
getGoblinNumList
(
String
skuId
){
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_LIST
.
concat
(
skuId
);
Object
obj
=
this
.
getRedisUtil
().
get
(
redisKey
);
if
(
obj
==
null
)
{
return
CollectionUtil
.
arrayListString
();
}
else
{
return
(
List
<
String
>)
obj
;
}
}
//$key+$num+$skuId 根据num+skuId获取DTO
public
GalaxyNftPublishAndBuyReqDto
getGoblinNumDetails
(
String
skuId
,
String
nftIndex
){
String
redisKey
=
GoblinRedisConst
.
GOBLIN_NUM_DETAILS
.
concat
(
nftIndex
).
concat
(
skuId
);
Object
obj
=
this
.
getRedisUtil
().
get
(
redisKey
);
if
(
obj
!=
null
){
return
(
GalaxyNftPublishAndBuyReqDto
)
obj
;
}
return
null
;
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/controller/GoblinCouponController.java
View file @
fa2d3042
...
@@ -140,15 +140,30 @@ public class GoblinCouponController {
...
@@ -140,15 +140,30 @@ public class GoblinCouponController {
if
(!
CollectionUtils
.
isEmpty
(
userCouponVos
))
{
if
(!
CollectionUtils
.
isEmpty
(
userCouponVos
))
{
List
<
GoblinUserCouponVo
>
userCouponVoList
=
userCouponVos
.
stream
().
filter
(
vo
->
vo
.
getStoreCouponId
().
equals
(
storeCouponId
)).
collect
(
Collectors
.
toList
());
List
<
GoblinUserCouponVo
>
userCouponVoList
=
userCouponVos
.
stream
().
filter
(
vo
->
vo
.
getStoreCouponId
().
equals
(
storeCouponId
)).
collect
(
Collectors
.
toList
());
if
(!
CollectionUtils
.
isEmpty
(
userCouponVoList
)
&&
userCouponVoList
.
size
()
>=
storeCouponVo
.
getReceiveLimit
())
{
if
(!
CollectionUtils
.
isEmpty
(
userCouponVoList
)
&&
userCouponVoList
.
size
()
>=
storeCouponVo
.
getReceiveLimit
())
{
// 用户已领取该券且领取数量已达上限时,根据已领取券的状态判断返回(如果已使用提示用,未使用则正常返回)
Optional
<
GoblinUserCouponVo
>
userCouponVoOptional
=
userCouponVoList
.
stream
().
filter
(
vo
->
vo
.
getState
().
equals
(
1
)).
findAny
();
Optional
<
GoblinUserCouponVo
>
userCouponVoOptional
=
userCouponVoList
.
stream
().
filter
(
vo
->
vo
.
getState
().
equals
(
1
)).
findAny
();
return
userCouponVoOptional
.
map
(
ResponseDto:
:
success
).
orElseGet
(()
->
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140054"
)));
// return userCouponVoOptional.map(ResponseDto::success).orElseGet(() -> ResponseDto.failure(ErrorMapping.get("140054")));
if
(
userCouponVoOptional
.
isPresent
())
{
GoblinUserCouponVo
userCouponVo
=
userCouponVoOptional
.
get
();
if
(
StringUtils
.
equals
(
"1"
,
userCouponVo
.
getUseScope
()))
{
userCouponVo
.
setSpuIds
(
goblinRedisUtils
.
getStoreCouponSpuIds
(
storeCouponId
));
}
return
ResponseDto
.
success
(
userCouponVo
);
}
else
{
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140054"
));
}
}
}
}
}
if
(
storeCouponVo
.
getStock
().
equals
(
0
)
||
goblinRedisUtils
.
getStoreCouponStock
(
storeCouponId
)
>
0
)
{
if
(
storeCouponVo
.
getStock
().
equals
(
0
)
||
goblinRedisUtils
.
getStoreCouponStock
(
storeCouponId
)
>
0
)
{
if
(
goblinCouponService
.
receiveCoupon
(
uid
,
userCouponVos
,
storeCouponVo
))
{
if
(
goblinCouponService
.
receiveCoupon
(
uid
,
userCouponVos
,
storeCouponVo
))
{
List
<
GoblinUserCouponVo
>
userCouponVoList
=
userCouponVos
.
stream
()
List
<
GoblinUserCouponVo
>
userCouponVoList
=
userCouponVos
.
stream
()
.
filter
(
vo
->
vo
.
getStoreCouponId
().
equals
(
storeCouponId
)
&&
vo
.
getState
().
equals
(
1
)).
collect
(
Collectors
.
toList
());
.
filter
(
vo
->
vo
.
getStoreCouponId
().
equals
(
storeCouponId
)
&&
vo
.
getState
().
equals
(
1
)).
collect
(
Collectors
.
toList
());
return
ResponseDto
.
success
(
userCouponVoList
.
get
(
0
));
// return ResponseDto.success(userCouponVoList.get(0));
GoblinUserCouponVo
userCouponVo
=
userCouponVoList
.
get
(
0
);
if
(
StringUtils
.
equals
(
"1"
,
userCouponVo
.
getUseScope
()))
{
userCouponVo
.
setSpuIds
(
goblinRedisUtils
.
getStoreCouponSpuIds
(
storeCouponId
));
}
return
ResponseDto
.
success
(
userCouponVo
);
}
}
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140053"
));
return
ResponseDto
.
failure
(
ErrorMapping
.
get
(
"140053"
));
}
}
...
...
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/main/java/com/liquidnet/service/goblin/service/impl/GoblinFrontServiceImpl.java
View file @
fa2d3042
...
@@ -469,7 +469,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
...
@@ -469,7 +469,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
List
<
String
>
listStore
=
mongoUtils
.
getStoreInfoVoRegexName
(
name
);
List
<
String
>
listStore
=
mongoUtils
.
getStoreInfoVoRegexName
(
name
);
Pattern
pattern
=
Pattern
.
compile
(
"^.*"
+
name
+
".*$"
,
Pattern
.
CASE_INSENSITIVE
);
Pattern
pattern
=
Pattern
.
compile
(
"^.*"
+
name
+
".*$"
,
Pattern
.
CASE_INSENSITIVE
);
Query
query
=
new
Query
();
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
"spuAppear"
).
is
(
"0"
).
and
(
"delFlg"
).
is
(
"0"
).
and
(
"shelvesStatus"
).
is
(
"3"
).
and
(
"marketId"
).
is
(
null
).
andOperator
(
query
.
addCriteria
(
Criteria
.
where
(
"spuAppear"
).
is
(
"0"
).
and
(
"delFlg"
).
is
(
"0"
).
and
(
"shelvesStatus"
).
is
(
"3"
).
and
(
"marketId"
).
is
(
null
).
and
(
"cateFid"
).
nin
(
"22196120924543"
,
"22196122839313"
).
and
Operator
(
new
Criteria
().
orOperator
(
new
Criteria
().
orOperator
(
Criteria
.
where
(
"name"
).
regex
(
pattern
),
Criteria
.
where
(
"name"
).
regex
(
pattern
),
Criteria
.
where
(
"storeId"
).
in
(
listStore
),
Criteria
.
where
(
"storeId"
).
in
(
listStore
),
...
@@ -530,7 +530,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
...
@@ -530,7 +530,7 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
}
}
//
//
Query
query
=
new
Query
();
Query
query
=
new
Query
();
query
.
addCriteria
(
Criteria
.
where
(
"storeId"
).
is
(
storeId
).
and
(
"spuAppear"
).
is
(
"0"
).
and
(
"delFlg"
).
is
(
"0"
).
and
(
"shelvesStatus"
).
is
(
"3"
).
and
(
"marketId"
).
is
(
null
));
query
.
addCriteria
(
Criteria
.
where
(
"storeId"
).
is
(
storeId
).
and
(
"spuAppear"
).
is
(
"0"
).
and
(
"delFlg"
).
is
(
"0"
).
and
(
"shelvesStatus"
).
is
(
"3"
).
and
(
"marketId"
).
is
(
null
)
.
and
(
"cateFid"
).
nin
(
"22196120924543"
,
"22196122839313"
)
);
if
(
StringUtil
.
isNotBlank
(
categoryId
))
{
if
(
StringUtil
.
isNotBlank
(
categoryId
))
{
query
.
addCriteria
(
new
Criteria
().
orOperator
(
query
.
addCriteria
(
new
Criteria
().
orOperator
(
Criteria
.
where
(
"storeCateFid"
).
is
(
categoryId
),
Criteria
.
where
(
"storeCateFid"
).
is
(
categoryId
),
...
@@ -857,6 +857,9 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
...
@@ -857,6 +857,9 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
for
(
String
id
:
spuids
)
{
for
(
String
id
:
spuids
)
{
GoblinGoodsInfoVo
goblinGoodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
id
);
GoblinGoodsInfoVo
goblinGoodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
id
);
if
(
null
!=
goblinGoodsInfoVo
)
{
if
(
null
!=
goblinGoodsInfoVo
)
{
if
(
isHidden
(
goblinGoodsInfoVo
.
getCateFid
())){
continue
;
}
goblinGoodsInfoVoArrayList
.
add
(
goblinGoodsInfoVo
);
goblinGoodsInfoVoArrayList
.
add
(
goblinGoodsInfoVo
);
}
}
}
}
...
@@ -909,6 +912,9 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
...
@@ -909,6 +912,9 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
for
(
int
i
=
0
;
i
<
end
;
i
++)
{
for
(
int
i
=
0
;
i
<
end
;
i
++)
{
if
(
i
>=
start
)
{
if
(
i
>=
start
)
{
GoblinGoodsInfoVo
goblinGoodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
spuidss
[
i
]);
GoblinGoodsInfoVo
goblinGoodsInfoVo
=
goblinRedisUtils
.
getGoodsInfoVo
(
spuidss
[
i
]);
if
(
isHidden
(
goblinGoodsInfoVo
.
getCateFid
())){
continue
;
}
goblinGoodsInfoVoArrayList
.
add
(
goblinGoodsInfoVo
);
goblinGoodsInfoVoArrayList
.
add
(
goblinGoodsInfoVo
);
}
}
}
}
...
@@ -1418,4 +1424,13 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
...
@@ -1418,4 +1424,13 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
}
}
private
boolean
isHidden
(
String
fcateId
){
ArrayList
<
String
>
hiddenIds
=
CollectionUtil
.
arrayListString
();
hiddenIds
.
add
(
"22196120924543"
);
hiddenIds
.
add
(
"22196122839313"
);
if
(
hiddenIds
.
contains
(
fcateId
)){
return
true
;
}
return
false
;
}
}
}
liquidnet-bus-service/liquidnet-service-goblin/liquidnet-service-goblin-impl/src/test/java/com/liquidnet/service/goblin/test/TestRedisUtil.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
goblin
.
test
;
import
com.liquidnet.commons.lang.util.JsonUtils
;
import
com.liquidnet.service.galaxy.dto.param.GalaxyNftPublishAndBuyReqDto
;
import
com.liquidnet.service.galaxy.utils.GalaxyDataUtils
;
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.test.context.junit4.SpringJUnit4ClassRunner
;
import
java.util.List
;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestRedisUtil
* @Package com.liquidnet.service.goblin.test
* @Copyright: LightNet @ Copyright (c) 2022
* @date 2022/7/12 12:02
*/
@Slf4j
@RunWith
(
SpringJUnit4ClassRunner
.
class
)
@SpringBootTest
public
class
TestRedisUtil
{
@Autowired
private
GalaxyDataUtils
dataUtils
;
@Test
public
void
test
()
{
String
skuId
=
"2212517482527828303"
;
List
rsList
=
dataUtils
.
getGoblinNumList
(
skuId
);
log
.
info
(
"rs:{}"
,
JsonUtils
.
toJson
(
rsList
));
GalaxyNftPublishAndBuyReqDto
reqDto
=
dataUtils
.
getGoblinNumDetails
(
skuId
,
String
.
valueOf
(
4
));
log
.
info
(
"reqDto:{}"
,
JsonUtils
.
toJson
(
reqDto
));
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/docu/db_kylin_structure.sql
View file @
fa2d3042
...
@@ -1000,3 +1000,48 @@ CREATE TABLE `admin_upush`
...
@@ -1000,3 +1000,48 @@ CREATE TABLE `admin_upush`
)
ENGINE
=
InnoDB
)
ENGINE
=
InnoDB
DEFAULT
CHARSET
utf8mb4
DEFAULT
CHARSET
utf8mb4
COLLATE
utf8mb4_unicode_ci
COMMENT
'友盟消息推送'
;
COLLATE
utf8mb4_unicode_ci
COMMENT
'友盟消息推送'
;
DROP
TABLE
IF
EXISTS
`kylin_acitve`
;
CREATE
TABLE
`kylin_acitve`
(
`mid`
bigint
NOT
NULL
AUTO_INCREMENT
,
`activeName`
varchar
(
255
)
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'活动名称'
,
`number`
int
DEFAULT
NULL
COMMENT
'券的数量'
,
`active_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'活动id'
,
`created_at`
datetime
DEFAULT
NULL
COMMENT
'创建时间'
,
`updated_at`
datetime
DEFAULT
NULL
COMMENT
'修改时间'
,
`del_tag`
int
DEFAULT
NULL
COMMENT
'0未删除1已删除'
,
`performance_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'演出id'
,
PRIMARY
KEY
(
`mid`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
12
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
COMMENT
=
'活动表'
;
SET
FOREIGN_KEY_CHECKS
=
1
;
DROP
TABLE
IF
EXISTS
`kylin_ticket_active`
;
CREATE
TABLE
`kylin_ticket_active`
(
`mid`
bigint
NOT
NULL
AUTO_INCREMENT
,
`ticket_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'票id'
,
`code`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'兑换码'
,
`state`
tinyint
DEFAULT
NULL
COMMENT
'兑换码状态 1未兑换 2已兑换 3已失效'
,
`redeem_uid`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'兑换用户id'
,
`redeem_at`
datetime
DEFAULT
NULL
COMMENT
'兑换时间'
,
`activity_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'活动id'
,
`created_at`
datetime
DEFAULT
NULL
COMMENT
'创建时间'
,
`updated_at`
datetime
DEFAULT
NULL
COMMENT
'更新时间'
,
`del_tag`
int
DEFAULT
NULL
COMMENT
'0未删除1已删除'
,
PRIMARY
KEY
(
`mid`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
1104
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
COMMENT
=
'跟活动绑定的券'
;
SET
FOREIGN_KEY_CHECKS
=
1
;
DROP
TABLE
IF
EXISTS
`kylin_acitve`
;
CREATE
TABLE
`kylin_acitve`
(
`mid`
bigint
NOT
NULL
AUTO_INCREMENT
,
`activeName`
varchar
(
255
)
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'活动名称'
,
`number`
int
DEFAULT
NULL
COMMENT
'券的数量'
,
`active_id`
varchar
(
64
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'活动id'
,
`created_at`
datetime
DEFAULT
NULL
COMMENT
'创建时间'
,
`updated_at`
datetime
DEFAULT
NULL
COMMENT
'修改时间'
,
`del_tag`
int
DEFAULT
NULL
COMMENT
'0未删除1已删除'
,
`performance_id`
varchar
(
255
)
CHARACTER
SET
utf8mb4
COLLATE
utf8mb4_unicode_ci
DEFAULT
NULL
COMMENT
'演出id'
,
PRIMARY
KEY
(
`mid`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
12
DEFAULT
CHARSET
=
utf8mb4
COLLATE
=
utf8mb4_unicode_ci
COMMENT
=
'活动表'
;
SET
FOREIGN_KEY_CHECKS
=
1
;
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/controller/KylinArActiveController.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
controller
;
import
com.liquidnet.commons.lang.util.CurrentUtil
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.kylin.service.impl.KylinArActiveServiceImpl
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
/**
* <p>
* ar活动
* </p>
*
*/
@Api
(
tags
=
"ar活动有关接口"
)
@RestController
@RequestMapping
(
"arActive"
)
@Slf4j
public
class
KylinArActiveController
{
@Autowired
private
KylinArActiveServiceImpl
kylinArActiveService
;
@Autowired
private
DataUtils
dataUtils
;
@PostMapping
(
"getUserStatus"
)
@ApiOperation
(
"查看用户是否绑定(0没有绑定、1绑定了、2失效[目前失效没有用]"
)
public
ResponseDto
<
String
>
getUserStatus
()
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
if
(
null
==
dataUtils
.
getUserStatus
(
uid
)){
return
ResponseDto
.
success
(
"0"
);
}
else
{
return
ResponseDto
.
success
(
dataUtils
.
getUserStatus
(
uid
));
}
}
@PostMapping
(
"exchangeCode"
)
@ApiOperation
(
"兑换码兑换"
)
public
ResponseDto
<
String
>
exchangeCode
(
@RequestParam
(
value
=
"code"
)
String
code
)
{
String
uid
=
CurrentUtil
.
getCurrentUid
();
return
kylinArActiveService
.
exchange
(
code
.
trim
(),
uid
);
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/service/impl/KylinArActiveServiceImpl.java
0 → 100644
View file @
fa2d3042
package
com
.
liquidnet
.
service
.
kylin
.
service
.
impl
;
import
com.liquidnet.service.base.ResponseDto
;
import
com.liquidnet.service.base.SqlMapping
;
import
com.liquidnet.service.base.constant.MQConst
;
import
com.liquidnet.service.kylin.dao.KylinTicketActive
;
import
com.liquidnet.service.kylin.service.IKylinArActiveService
;
import
com.liquidnet.service.kylin.utils.DataUtils
;
import
com.liquidnet.service.kylin.utils.QueueUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
/**
* <p>
* 人流量检测记录表 服务实现类
* </p>
*
* @author jiangxiulong
* @since 2022-01-10
*/
@Service
public
class
KylinArActiveServiceImpl
implements
IKylinArActiveService
{
@Autowired
private
DataUtils
dataUtils
;
@Autowired
private
QueueUtils
queueUtils
;
@Override
public
ResponseDto
exchange
(
String
code
,
String
uid
)
{
//1 查看是否有兑换码
KylinTicketActive
kylinTicketActive
=
dataUtils
.
getArTicket
(
code
);
if
(
null
==
kylinTicketActive
){
return
ResponseDto
.
failure
(
"请输入正确的激活码"
);
}
//2、查看该用户是否绑定
if
(
null
!=
dataUtils
.
getUserStatus
(
uid
)){
return
ResponseDto
.
failure
(
"该用户已激活"
);
}
//判断是否用过卷了
if
(
kylinTicketActive
.
getState
()==
2
){
return
ResponseDto
.
failure
(
"该激活码已经兑换"
);
}
//开始绑定
//修改redis缓存
dataUtils
.
setUser
(
uid
,
"1"
);
kylinTicketActive
.
setState
(
2
);
dataUtils
.
setArTicket
(
kylinTicketActive
);
//队列 修改券的状态。
queueUtils
.
sendMsgByRedis
(
MQConst
.
KylinQueue
.
SQL_PERFORMANCE_LACK
.
getKey
(),
SqlMapping
.
get
(
"kylin_ar_ticket.update"
,
new
Object
[]{
2
,
uid
,
LocalDateTime
.
now
(),
code
}
));
return
ResponseDto
.
success
();
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/java/com/liquidnet/service/kylin/utils/DataUtils.java
View file @
fa2d3042
...
@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
...
@@ -5,6 +5,7 @@ import com.liquidnet.commons.lang.util.CollectionUtil;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.commons.lang.util.DateUtil
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.constant.KylinRedisConst
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.constant.KylinTableStatusConst
;
import
com.liquidnet.service.kylin.dao.KylinTicketActive
;
import
com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo
;
import
com.liquidnet.service.kylin.dto.vo.KylinApiCameraDevicesVo
;
import
com.liquidnet.service.kylin.dto.vo.WqTempVo
;
import
com.liquidnet.service.kylin.dto.vo.WqTempVo
;
import
com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress
;
import
com.liquidnet.service.kylin.dto.vo.admin.OrderRefundAddress
;
...
@@ -946,4 +947,22 @@ public class DataUtils {
...
@@ -946,4 +947,22 @@ public class DataUtils {
}
}
}
}
// 获取用户状态
public
String
getUserStatus
(
String
userId
)
{
return
(
String
)
redisUtil
.
get
(
KylinRedisConst
.
ACTIVE_TICKET_AR_USER
+
userId
);
}
//获得 ar券
public
KylinTicketActive
getArTicket
(
String
code
){
return
(
KylinTicketActive
)
redisUtil
.
get
(
KylinRedisConst
.
ACTIVE_TICKET_AR_TICKET
+
code
);
}
//设置 tikcet
public
void
setArTicket
(
KylinTicketActive
kylinTicketActive
){
redisUtil
.
set
(
KylinRedisConst
.
ACTIVE_TICKET_AR_TICKET
+
kylinTicketActive
.
getCode
(),
kylinTicketActive
);
}
//设置用户状态。
public
void
setUser
(
String
userId
,
String
value
){
redisUtil
.
set
(
KylinRedisConst
.
ACTIVE_TICKET_AR_USER
+
userId
,
value
);
}
}
}
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/main/resources/sqlmap.properties
View file @
fa2d3042
...
@@ -35,4 +35,6 @@ kylin_order_refund_entities.supplementEnter=UPDATE kylin_order_ticket_entities S
...
@@ -35,4 +35,6 @@ kylin_order_refund_entities.supplementEnter=UPDATE kylin_order_ticket_entities S
kylin_perform_sub.insert
=
INSERT INTO kylin_perform_sub (perform_sub_id,performance_id,user_id,user_name,user_mobile,source_type) VALUES (?,?,?,?,?,?)
kylin_perform_sub.insert
=
INSERT INTO kylin_perform_sub (perform_sub_id,performance_id,user_id,user_name,user_mobile,source_type) VALUES (?,?,?,?,?,?)
# ------------------------ 万青弥补订单 ----------------------------
# ------------------------ 万青弥补订单 ----------------------------
kylin_order_express_ex.insert
=
INSERT INTO kylin_order_express_ex (`order_id`,`express_contacts`,`express_address`,`province`,`city`,`county`,`express_phone`,`created_at`) VALUES (?,?,?,?,?,?,?,?)
kylin_order_express_ex.insert
=
INSERT INTO kylin_order_express_ex (`order_id`,`express_contacts`,`express_address`,`province`,`city`,`county`,`express_phone`,`created_at`) VALUES (?,?,?,?,?,?,?,?)
kylin_order_express_ex.sendMail
=
UPDATE kylin_order_express_ex SET mail_no = ? , updated_at = ? where order_id = ?
kylin_order_express_ex.sendMail
=
UPDATE kylin_order_express_ex SET mail_no = ? , updated_at = ? where order_id = ?
\ No newline at end of file
# ------------------------ ar演出队列 ----------------------------
kylin_ar_ticket.update
=
update kylin_ticket_active set state=?,redeem_uid= ?,redeem_at= ? where `code`= ?
\ No newline at end of file
liquidnet-bus-service/liquidnet-service-kylin/liquidnet-service-kylin-impl/src/test/java/com/liquidnet/service/kylin/TestDataUtil.java
View file @
fa2d3042
...
@@ -28,7 +28,11 @@ import java.util.List;
...
@@ -28,7 +28,11 @@ import java.util.List;
public
class
TestDataUtil
{
public
class
TestDataUtil
{
@Autowired
@Autowired
private
DataUtils
dataUtils
;
private
DataUtils
dataUtils
;
@Test
public
void
test
(){
System
.
out
.
println
(
dataUtils
.
getUserStatus
(
"312"
));
}
@Test
@Test
public
void
myPerformancesList
(){
public
void
myPerformancesList
(){
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/GoblinNftOrderController.java
View file @
fa2d3042
...
@@ -82,7 +82,12 @@ public class GoblinNftOrderController {
...
@@ -82,7 +82,12 @@ public class GoblinNftOrderController {
@RequestParam
(
"code"
)
@NotBlank
(
message
=
"兑换码不能为空"
)
String
code
,
@RequestParam
(
"code"
)
@NotBlank
(
message
=
"兑换码不能为空"
)
String
code
,
@RequestParam
(
"deviceFrom"
)
@NotBlank
(
message
=
"支付终端不能为空"
)
@Pattern
(
regexp
=
LnsRegex
.
Valid
.
TRIPLE_PF_FOR_PAY_TERMINAL
,
message
=
"支付终端类型无效"
)
String
deviceFrom
@RequestParam
(
"deviceFrom"
)
@NotBlank
(
message
=
"支付终端不能为空"
)
@Pattern
(
regexp
=
LnsRegex
.
Valid
.
TRIPLE_PF_FOR_PAY_TERMINAL
,
message
=
"支付终端类型无效"
)
String
deviceFrom
)
{
)
{
return
iGoblinNftOrderService
.
exchange
(
code
,
null
,
deviceFrom
,
2
);
ResponseDto
<
String
>
dto
=
iGoblinNftOrderService
.
exchange
(
code
,
null
,
deviceFrom
,
2
);
if
(
dto
.
isSuccess
())
{
return
ResponseDto
.
success
();
}
else
{
return
ResponseDto
.
failure
(
dto
.
getMessage
());
}
}
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/controller/inner/GoblinInnerNftController.java
View file @
fa2d3042
...
@@ -35,7 +35,25 @@ public class GoblinInnerNftController {
...
@@ -35,7 +35,25 @@ public class GoblinInnerNftController {
@RequestParam
(
"userId"
)
@NotBlank
(
message
=
"用户ID不能为空"
)
String
userId
@RequestParam
(
"userId"
)
@NotBlank
(
message
=
"用户ID不能为空"
)
String
userId
)
{
)
{
return
iGoblinNftOrderService
.
exchange
(
code
,
userId
,
"systemAdmin"
,
4
);
ResponseDto
<
String
>
dto
=
iGoblinNftOrderService
.
exchange
(
code
,
userId
,
"systemAdmin"
,
4
);
if
(
dto
.
isSuccess
())
{
return
ResponseDto
.
success
();
}
else
{
return
ResponseDto
.
failure
(
dto
.
getMessage
());
}
}
}
@PostMapping
(
"airdropInner"
)
@ApiOperation
(
"空投内"
)
@ApiImplicitParams
({
@ApiImplicitParam
(
type
=
"from"
,
required
=
true
,
dataType
=
"String"
,
name
=
"skuId"
,
value
=
"skuId"
,
example
=
"0"
),
@ApiImplicitParam
(
type
=
"from"
,
required
=
true
,
dataType
=
"String"
,
name
=
"userId"
,
value
=
"用户ID"
,
example
=
"1"
),
})
public
ResponseDto
<
String
>
exchangeInner
(
@RequestParam
(
"skuId"
)
@NotBlank
(
message
=
"skuId不能为空"
)
String
skuId
,
@RequestParam
(
"userId"
)
@NotBlank
(
message
=
"用户ID不能为空"
)
String
userId
)
{
return
iGoblinNftOrderService
.
exchange
(
skuId
,
userId
,
"systemAdmin"
,
5
);
}
}
}
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/GoblinNftOrderServiceImpl.java
View file @
fa2d3042
...
@@ -12,6 +12,7 @@ import com.liquidnet.service.goblin.constant.GoblinStatusConst;
...
@@ -12,6 +12,7 @@ import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import
com.liquidnet.service.goblin.constant.NftAccStatusEnum
;
import
com.liquidnet.service.goblin.constant.NftAccStatusEnum
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.GoblinUserNftAccInfoVo
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.dto.vo.*
;
import
com.liquidnet.service.goblin.entity.GoblinGoodsSku
;
import
com.liquidnet.service.goblin.entity.GoblinNftOrder
;
import
com.liquidnet.service.goblin.entity.GoblinNftOrder
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayAgainParam
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayAgainParam
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayCallbackParam
;
import
com.liquidnet.service.goblin.param.GoblinNftOrderPayCallbackParam
;
...
@@ -504,7 +505,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -504,7 +505,7 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
orderVo
.
setCreatedAt
(
nftOrder
.
getCreatedAt
());
orderVo
.
setCreatedAt
(
nftOrder
.
getCreatedAt
());
// 待支付发送队列
// 待支付发送队列
queueUtils
.
sendMsgByRedisGoblinStock
(
orderVo
.
getOrderId
(),
nftOrder
.
getCreatedAt
(),
"NFT"
,
5
);
queueUtils
.
sendMsgByRedisGoblinStock
(
orderVo
.
getOrderId
(),
nftOrder
.
getCreatedAt
(),
"NFT"
,
5
);
// redis 订单详情
// redis 订单详情
nftOrderUtils
.
setNftOrder
(
orderVo
);
nftOrderUtils
.
setNftOrder
(
orderVo
);
...
@@ -813,8 +814,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -813,8 +814,10 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
return
"success"
;
return
"success"
;
}
}
@Override
@Override
public
ResponseDto
<
Boolean
>
exchange
(
String
code
,
String
uid
,
String
deviceFrom
,
int
orderType
)
{
public
ResponseDto
<
String
>
exchange
(
String
code
,
String
uid
,
String
deviceFrom
,
int
orderType
)
{
if
(
null
==
uid
)
{
if
(
null
==
uid
)
{
uid
=
CurrentUtil
.
getCurrentUid
();
uid
=
CurrentUtil
.
getCurrentUid
();
}
}
...
@@ -828,34 +831,48 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -828,34 +831,48 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
return
ResponseDto
.
failure
(
"处理未完成,请稍等~"
);
return
ResponseDto
.
failure
(
"处理未完成,请稍等~"
);
}
else
{
}
else
{
try
{
try
{
// 验证 1code是否存在 2是否未兑换的状态 3是否在生效日期内 4兑换限购
GoblinNftExCodeVo
goblinNftExCodeVo
=
nftOrderUtils
.
getGoblinNftExCodeVo
(
code
);
if
(
null
==
goblinNftExCodeVo
||
goblinNftExCodeVo
.
getState
()
!=
1
)
{
return
ResponseDto
.
failure
(
"兑换码不正确或已失效"
);
}
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
if
(
nowTime
.
isBefore
(
goblinNftExCodeVo
.
getExStartTime
())
||
nowTime
.
isAfter
(
goblinNftExCodeVo
.
getExStopTime
()))
{
GoblinNftExCodeVo
goblinNftExCodeVo
=
GoblinNftExCodeVo
.
getNew
();
return
ResponseDto
.
failure
(
"不在允许兑换时间内"
);
}
int
buyCount
=
nftOrderUtils
.
incrExCountByUid
(
uid
,
goblinNftExCodeVo
.
getSkuId
(),
goblinNftExCodeVo
.
getActivityId
(),
1
);
if
(
null
!=
goblinNftExCodeVo
.
getExLimit
()
&&
goblinNftExCodeVo
.
getExLimit
()
>
0
)
{
if
(
buyCount
>
goblinNftExCodeVo
.
getExLimit
())
{
nftOrderUtils
.
decrExCountByUid
(
uid
,
goblinNftExCodeVo
.
getSkuId
(),
goblinNftExCodeVo
.
getActivityId
(),
1
);
return
ResponseDto
.
failure
(
"您已超出兑换限制数量~"
);
}
}
// 使用
goblinNftExCodeVo
.
setState
(
2
);
goblinNftExCodeVo
.
setRedeemUid
(
uid
);
goblinNftExCodeVo
.
setRedeemAt
(
nowTime
);
goblinNftExCodeVo
.
setUpdatedAt
(
nowTime
);
nftOrderUtils
.
setGoblinNftExCodeVo
(
goblinNftExCodeVo
);
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
LinkedList
<
String
>
sqls
=
CollectionUtil
.
linkedListString
();
sqls
.
add
(
SqlMapping
.
get
(
"goblin_nft_ex_code.update"
));
sqls
.
add
(
SqlMapping
.
get
(
"goblin_nft_ex_code.update"
));
LinkedList
<
Object
[]>
sqlDataCode
=
CollectionUtil
.
linkedListObjectArr
();
LinkedList
<
Object
[]>
sqlDataCode
=
CollectionUtil
.
linkedListObjectArr
();
sqlDataCode
.
add
(
new
Object
[]{
if
(
5
==
orderType
)
{
2
,
uid
,
nowTime
,
nowTime
,
goblinNftExCodeVo
.
getCodeId
()
orderType
=
4
;
});
GoblinGoodsSkuInfoVo
skuInfoVo
=
goblinRedisUtils
.
getGoodsSkuInfoVo
(
code
);
goblinNftExCodeVo
.
setState
(
2
);
goblinNftExCodeVo
.
setRedeemUid
(
uid
);
goblinNftExCodeVo
.
setRedeemAt
(
nowTime
);
goblinNftExCodeVo
.
setUpdatedAt
(
nowTime
);
goblinNftExCodeVo
.
setSkuId
(
code
);
goblinNftExCodeVo
.
setBoxSkuId
(
""
);
goblinNftExCodeVo
.
setSpuId
(
skuInfoVo
.
getSpuId
());
goblinNftExCodeVo
.
setStoreId
(
skuInfoVo
.
getStoreId
());
}
else
{
// 验证 1code是否存在 2是否未兑换的状态 3是否在生效日期内 4兑换限购
goblinNftExCodeVo
=
nftOrderUtils
.
getGoblinNftExCodeVo
(
code
);
if
(
null
==
goblinNftExCodeVo
||
goblinNftExCodeVo
.
getState
()
!=
1
)
{
return
ResponseDto
.
failure
(
"兑换码不正确或已失效"
);
}
if
(
nowTime
.
isBefore
(
goblinNftExCodeVo
.
getExStartTime
())
||
nowTime
.
isAfter
(
goblinNftExCodeVo
.
getExStopTime
()))
{
return
ResponseDto
.
failure
(
"不在允许兑换时间内"
);
}
int
buyCount
=
nftOrderUtils
.
incrExCountByUid
(
uid
,
goblinNftExCodeVo
.
getSkuId
(),
goblinNftExCodeVo
.
getActivityId
(),
1
);
if
(
null
!=
goblinNftExCodeVo
.
getExLimit
()
&&
goblinNftExCodeVo
.
getExLimit
()
>
0
)
{
if
(
buyCount
>
goblinNftExCodeVo
.
getExLimit
())
{
nftOrderUtils
.
decrExCountByUid
(
uid
,
goblinNftExCodeVo
.
getSkuId
(),
goblinNftExCodeVo
.
getActivityId
(),
1
);
return
ResponseDto
.
failure
(
"您已超出兑换限制数量~"
);
}
}
// 使用
goblinNftExCodeVo
.
setState
(
2
);
goblinNftExCodeVo
.
setRedeemUid
(
uid
);
goblinNftExCodeVo
.
setRedeemAt
(
nowTime
);
goblinNftExCodeVo
.
setUpdatedAt
(
nowTime
);
nftOrderUtils
.
setGoblinNftExCodeVo
(
goblinNftExCodeVo
);
sqlDataCode
.
add
(
new
Object
[]{
2
,
uid
,
nowTime
,
nowTime
,
goblinNftExCodeVo
.
getCodeId
()
});
}
// 下单
// 下单
GoblinNftOrderPayParam
payParam
=
GoblinNftOrderPayParam
.
getNew
();
GoblinNftOrderPayParam
payParam
=
GoblinNftOrderPayParam
.
getNew
();
payParam
.
setPayType
(
""
);
payParam
.
setPayType
(
""
);
...
@@ -898,14 +915,18 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -898,14 +915,18 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
// 加积分
// 加积分
goblinOrderUtils
.
integral
(
uid
,
orderVo
.
getPriceActual
(),
"购买数字藏品"
,
1
);
goblinOrderUtils
.
integral
(
uid
,
orderVo
.
getPriceActual
(),
"购买数字藏品"
,
1
);
// 生产藏品列表
// 生产藏品列表
this
.
generateUserArtwork
(
orderVo
,
orderType
==
4
?
31
:
2
);
if
(
code
.
equals
(
orderVo
.
getSkuId
()))
{
this
.
generateUserArtwork
(
orderVo
,
5
);
}
else
{
this
.
generateUserArtwork
(
orderVo
,
orderType
==
4
?
31
:
2
);
}
// 增加销量
// 增加销量
goblinRedisUtils
.
incrSkuSaleCount
(
orderVo
.
getSpuId
(),
orderVo
.
getSkuId
(),
orderVo
.
getNum
());
goblinRedisUtils
.
incrSkuSaleCount
(
orderVo
.
getSpuId
(),
orderVo
.
getSkuId
(),
orderVo
.
getNum
());
// 写入用户订单列表 因取消的订单不展示 所以放在这里
// 写入用户订单列表 因取消的订单不展示 所以放在这里
nftOrderUtils
.
addNftOrderList
(
uid
,
orderVo
.
getOrderId
());
nftOrderUtils
.
addNftOrderList
(
uid
,
orderVo
.
getOrderId
());
// TODO: jxl 2022/4/24 判断技术部NFT记录Redis setBuyNftTec
// TODO: jxl 2022/4/24 判断技术部NFT记录Redis setBuyNftTec
return
ResponseDto
.
success
();
return
ResponseDto
.
success
(
orderVo
.
getOrderId
()
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
log
.
error
(
"NFT兑换异常"
,
e
);
log
.
error
(
"NFT兑换异常"
,
e
);
return
ResponseDto
.
failure
(
"兑换失败,请稍后重试!"
);
return
ResponseDto
.
failure
(
"兑换失败,请稍后重试!"
);
...
@@ -940,7 +961,11 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -940,7 +961,11 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
digitalArtworkVo
.
setUid
(
uid
);
digitalArtworkVo
.
setUid
(
uid
);
digitalArtworkVo
.
setOrderId
(
orderId
);
digitalArtworkVo
.
setOrderId
(
orderId
);
digitalArtworkVo
.
setSource
(
source
);
digitalArtworkVo
.
setSource
(
source
);
digitalArtworkVo
.
setState
(
source
==
31
?
5
:
0
);
if
(
source
==
5
)
{
digitalArtworkVo
.
setState
(
0
);
}
else
{
digitalArtworkVo
.
setState
(
source
==
31
?
5
:
0
);
}
digitalArtworkVo
.
setDelFlg
(
"0"
);
digitalArtworkVo
.
setDelFlg
(
"0"
);
digitalArtworkVo
.
setCreatedAt
(
now
);
digitalArtworkVo
.
setCreatedAt
(
now
);
digitalArtworkVo
.
setAuthor
(
goodsInfoVo
.
getAuthor
());
digitalArtworkVo
.
setAuthor
(
goodsInfoVo
.
getAuthor
());
...
@@ -963,7 +988,9 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
...
@@ -963,7 +988,9 @@ public class GoblinNftOrderServiceImpl implements IGoblinNftOrderService {
if
(
"0"
.
equals
(
goodsSkuInfoVo
.
getUnbox
()))
{
// 非盲盒,NFT发行购买
if
(
"0"
.
equals
(
goodsSkuInfoVo
.
getUnbox
()))
{
// 非盲盒,NFT发行购买
ObjectNode
bizNftBuyNode
=
JsonUtils
.
OM
().
createObjectNode
().
put
(
"nftOrderPayId"
,
orderId
).
put
(
"routerType"
,
goodsSkuInfoVo
.
getRouteType
())
ObjectNode
bizNftBuyNode
=
JsonUtils
.
OM
().
createObjectNode
().
put
(
"nftOrderPayId"
,
orderId
).
put
(
"routerType"
,
goodsSkuInfoVo
.
getRouteType
())
.
put
(
"skuId"
,
skuId
).
put
(
"userId"
,
uid
).
put
(
"buyTimestamp"
,
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
));
.
put
(
"skuId"
,
skuId
).
put
(
"userId"
,
uid
).
put
(
"buyTimestamp"
,
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
now
));
queueUtils
.
sendMsgByRedis
(
MQConst
.
GalaxyQueue
.
JSON_NFT_PUBLISH_AND_BUY
.
getKey
(),
bizNftBuyNode
.
toString
());
if
(
source
!=
5
)
{
queueUtils
.
sendMsgByRedis
(
MQConst
.
GalaxyQueue
.
JSON_NFT_PUBLISH_AND_BUY
.
getKey
(),
bizNftBuyNode
.
toString
());
}
}
}
}
}
...
...
liquidnet-bus-service/liquidnet-service-order/liquidnet-service-order-impl/src/main/java/com/liquidnet/service/order/service/impl/MixOrderServiceImpl.java
View file @
fa2d3042
...
@@ -447,6 +447,7 @@ public class MixOrderServiceImpl implements IMixOrderService {
...
@@ -447,6 +447,7 @@ public class MixOrderServiceImpl implements IMixOrderService {
for
(
GoblinNftOrder
nftItem
:
nftOrder
)
{
for
(
GoblinNftOrder
nftItem
:
nftOrder
)
{
orderMixStr
=
orderMixStr
.
concat
(
nftItem
.
getOrderId
()).
concat
(
","
);
orderMixStr
=
orderMixStr
.
concat
(
nftItem
.
getOrderId
()).
concat
(
","
);
nftItem
.
setPayCode
(
payCode
);
nftItem
.
setPayCode
(
payCode
);
nftItem
.
setPayType
(
payType
);
sqlDataOrder
.
add
(
new
Object
[]{
sqlDataOrder
.
add
(
new
Object
[]{
nftItem
.
getOrderId
(),
nftItem
.
getSpuId
(),
nftItem
.
getSkuId
(),
nftItem
.
getBoxSkuId
(),
nftItem
.
getOrderId
(),
nftItem
.
getSpuId
(),
nftItem
.
getSkuId
(),
nftItem
.
getBoxSkuId
(),
nftItem
.
getNum
(),
nftItem
.
getStoreId
(),
nftItem
.
getStoreName
(),
nftItem
.
getOrderCode
(),
nftItem
.
getUserId
(),
nftItem
.
getUserName
(),
nftItem
.
getUserMobile
(),
nftItem
.
getPriceTotal
(),
nftItem
.
getPriceCoupon
(),
nftItem
.
getNum
(),
nftItem
.
getStoreId
(),
nftItem
.
getStoreName
(),
nftItem
.
getOrderCode
(),
nftItem
.
getUserId
(),
nftItem
.
getUserName
(),
nftItem
.
getUserMobile
(),
nftItem
.
getPriceTotal
(),
nftItem
.
getPriceCoupon
(),
...
@@ -481,6 +482,7 @@ public class MixOrderServiceImpl implements IMixOrderService {
...
@@ -481,6 +482,7 @@ public class MixOrderServiceImpl implements IMixOrderService {
}
}
GoblinStoreOrder
storeOrder
=
preParam
.
getStoreOrder
();
GoblinStoreOrder
storeOrder
=
preParam
.
getStoreOrder
();
storeOrder
.
setPayCode
(
payCode
);
storeOrder
.
setPayCode
(
payCode
);
storeOrder
.
setPayType
(
payType
);
sqlDataGoblin
.
add
(
new
Object
[]{
sqlDataGoblin
.
add
(
new
Object
[]{
storeOrder
.
getMasterOrderCode
(),
storeOrder
.
getOrderId
(),
storeOrder
.
getStoreId
(),
storeOrder
.
getStoreName
(),
storeOrder
.
getOrderCode
(),
storeOrder
.
getUserId
(),
storeOrder
.
getUserName
(),
storeOrder
.
getUserMobile
(),
storeOrder
.
getPriceTotal
(),
storeOrder
.
getPayCode
(),
storeOrder
.
getMasterOrderCode
(),
storeOrder
.
getOrderId
(),
storeOrder
.
getStoreId
(),
storeOrder
.
getStoreName
(),
storeOrder
.
getOrderCode
(),
storeOrder
.
getUserId
(),
storeOrder
.
getUserName
(),
storeOrder
.
getUserMobile
(),
storeOrder
.
getPriceTotal
(),
storeOrder
.
getPayCode
(),
storeOrder
.
getPriceActual
(),
storeOrder
.
getPriceRefund
(),
storeOrder
.
getPriceExpress
(),
storeOrder
.
getPriceCoupon
(),
storeOrder
.
getStorePriceCoupon
(),
storeOrder
.
getPriceVoucher
(),
storeOrder
.
getStatus
(),
storeOrder
.
getUcouponId
(),
storeOrder
.
getStoreCouponId
(),
storeOrder
.
getPayType
(),
storeOrder
.
getDeviceFrom
(),
storeOrder
.
getPriceActual
(),
storeOrder
.
getPriceRefund
(),
storeOrder
.
getPriceExpress
(),
storeOrder
.
getPriceCoupon
(),
storeOrder
.
getStorePriceCoupon
(),
storeOrder
.
getPriceVoucher
(),
storeOrder
.
getStatus
(),
storeOrder
.
getUcouponId
(),
storeOrder
.
getStoreCouponId
(),
storeOrder
.
getPayType
(),
storeOrder
.
getDeviceFrom
(),
...
...
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