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

Commit 09a6782e authored by 张国柄's avatar 张国柄

Merge remote-tracking branch 'origin/dev_stone' into dev_stone

parents 800eb38e a83917e8
...@@ -125,8 +125,8 @@ ...@@ -125,8 +125,8 @@
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + drawListFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.integralActivityId + '\')"><i class="fa fa-edit"></i>查看抽奖名单</a> '); actions.push('<a class="btn btn-success btn-xs ' + drawListFlag + '" href="javascript:void(0)" onclick="$.operate.detailTab(\'' + row.integralActivityId + '\')"><i class="fa fa-edit"></i>查看抽奖名单</a> ');
actions.push('<a class="btn btn-success btn-xs ' + updateFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.integralActivityId + '\')"></i>编辑</a> '); actions.push('<a class="btn btn-success btn-xs ' + updateFlag + '" href="javascript:void(0)" onclick="$.operate.editTab(\'' + row.integralActivityId + '\')"></i>编辑</a> ');
actions.push(`<a class="btn btn-danger btn-xs ${isOnlineFlag}" href="javascript:void(0)" onclick="openModal('${row.integralActivityId}','${row.isOnline}')"></i>上下线</a>`); actions.push(`<a class="btn btn-danger btn-xs ${isOnlineFlag}" href="javascript:void(0)" onclick="openModal('${row.integralActivityId}','${row.isOnline}')"></i>上下线</a> `);
actions.push('<a class="btn btn-warning btn-xs ' + exportExcelFlag + '" href="javascript:void(0)" onclick="exportExcel(\'' + row.integralActivityId + '\')"></i>导出奖信息</a> '); actions.push('<a class="btn btn-warning btn-xs ' + exportExcelFlag + '" href="javascript:void(0)" onclick="exportExcel(\'' + row.integralActivityId + '\')"></i>导出奖信息</a> ');
return actions.join(''); return actions.join('');
} }
}] }]
......
...@@ -16,7 +16,7 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable { ...@@ -16,7 +16,7 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable {
private String prizeTitle; private String prizeTitle;
@Excel(name = "奖品类型") @Excel(name = "奖品类型")
private Integer prizeType; private String prizeName;
@Excel(name = "数量") @Excel(name = "数量")
private Integer prizeTypeNum; private Integer prizeTypeNum;
...@@ -34,7 +34,7 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable { ...@@ -34,7 +34,7 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable {
private String receivingAddress; private String receivingAddress;
@Excel(name = "发放状态") @Excel(name = "发放状态")
private Integer receivingStatus; private String receivingStatusName;
private LocalDateTime createdAt; private LocalDateTime createdAt;
...@@ -51,13 +51,41 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable { ...@@ -51,13 +51,41 @@ public class SweetActivityDrawExcelListDao implements Serializable, Cloneable {
public SweetActivityDrawExcelListDao copy(SweetActivityDrawListDao source) { public SweetActivityDrawExcelListDao copy(SweetActivityDrawListDao source) {
if (null == source) return this; if (null == source) return this;
this.setPrizeTitle(source.getPrizeTitle()); this.setPrizeTitle(source.getPrizeTitle());
this.setPrizeType(source.getPrizeType()); String prizeName = "";
switch (source.getPrizeType()) {
case 1:
prizeName = "谢谢惠顾";
break;
case 2:
prizeName = "积分";
break;
case 3:
prizeName = "代金券";
break;
case 4:
prizeName = "满减券";
break;
case 5:
prizeName = "优先购买券";
break;
case 6:
prizeName = "实物";
break;
default:
prizeName = "-";
break;
}
this.setPrizeName(prizeName);
this.setPrizeTypeNum(source.getPrizeTypeNum()); this.setPrizeTypeNum(source.getPrizeTypeNum());
this.setNickname(source.getNickname()); this.setNickname(source.getNickname());
this.setReceivingName(source.getReceivingName()); this.setReceivingName(source.getReceivingName());
this.setReceivingPhone(source.getReceivingPhone()); this.setReceivingPhone(source.getReceivingPhone());
this.setReceivingAddress(source.getReceivingAddress()); this.setReceivingAddress(source.getReceivingAddress());
this.setReceivingStatus(source.getReceivingStatus()); if (source.getReceivingStatus() == 2) {
this.setReceivingStatusName("已发放");
} else {
this.setReceivingStatusName("未方法");
}
this.setCreatedAt(source.getCreatedAt()); this.setCreatedAt(source.getCreatedAt());
return this; return this;
} }
......
...@@ -64,6 +64,11 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA ...@@ -64,6 +64,11 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
List<SweetIntegralActivityPrizeFormParam> prizeList = param.getPrizeList(); List<SweetIntegralActivityPrizeFormParam> prizeList = param.getPrizeList();
if (!CollectionUtils.isEmpty(prizeList)) { if (!CollectionUtils.isEmpty(prizeList)) {
for (SweetIntegralActivityPrizeFormParam prize : prizeList) { for (SweetIntegralActivityPrizeFormParam prize : prizeList) {
if (prize.getPrizeType() == 1) {
prize.setPrizeTypeNum(10);
} else {
prize.setPrizeTypeNum(1);
}
SweetIntegralActivityPrize sweetIntegralActivityPrize = SweetIntegralActivityPrizeFormParam.getNew().copy(prize); SweetIntegralActivityPrize sweetIntegralActivityPrize = SweetIntegralActivityPrizeFormParam.getNew().copy(prize);
sweetIntegralActivityPrize.setPrizeId(IDGenerator.nextSnowId()); sweetIntegralActivityPrize.setPrizeId(IDGenerator.nextSnowId());
sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId); sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId);
...@@ -99,6 +104,11 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA ...@@ -99,6 +104,11 @@ public class SweetIntegralActivityServiceImpl extends ServiceImpl<SweetIntegralA
sweetIntegralActivityPrize.setUpdatedAt(LocalDateTime.now()); sweetIntegralActivityPrize.setUpdatedAt(LocalDateTime.now());
sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId); sweetIntegralActivityPrize.setIntegralActivityId(integralActivityId);
String prizeId = prize.getPrizeId(); String prizeId = prize.getPrizeId();
if (prize.getPrizeType() == 1) {
prize.setPrizeTypeNum(10);
} else {
prize.setPrizeTypeNum(1);
}
sweetIntegralActivityPrizeMapper.update( sweetIntegralActivityPrizeMapper.update(
sweetIntegralActivityPrize, sweetIntegralActivityPrize,
Wrappers.lambdaUpdate(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getPrizeId, prizeId) Wrappers.lambdaUpdate(SweetIntegralActivityPrize.class).eq(SweetIntegralActivityPrize::getPrizeId, prizeId)
......
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>liquidnet-bus-feign</artifactId>
<groupId>com.liquidnet</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>liquidnet-api-feign-stone</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-service-stone-do</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.liquidnet.service.feign.stone.api;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.stone.dto.StoneScoreListDto;
import feign.hystrix.FallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
/**
* <p>
* 积分接口
* </p>
*
* @author jiangxiulong
* @since 2021-11-02
*/
@Component
@FeignClient(
name = "liquidnet-service-stone",
contextId = "FeignStoneIntegralClient",
path = "",
url = "${liquidnet.service.stone.url}",
fallback = FallbackFactory.Default.class
)
public interface FeignStoneIntegralClient {
@GetMapping("user/info")
ResponseDto<StoneScoreListDto> stoneUserInfo();
}
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
<module>liquidnet-api-feign-platform</module> <module>liquidnet-api-feign-platform</module>
<module>liquidnet-api-feign-sweet</module> <module>liquidnet-api-feign-sweet</module>
<module>liquidnet-api-feign-chime</module> <module>liquidnet-api-feign-chime</module>
<module>liquidnet-api-feign-stone</module>
<!-- <module>liquidnet-api-feign-sequence</module>--> <!-- <module>liquidnet-api-feign-sequence</module>-->
<!-- <module>liquidnet-api-feign-example</module>--> <!-- <module>liquidnet-api-feign-example</module>-->
<!-- <module>liquidnet-api-feign-account</module>--> <!-- <module>liquidnet-api-feign-account</module>-->
......
...@@ -101,7 +101,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -101,7 +101,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
try { try {
if (payOrderParam.getVoucherType() != null && payOrderParam.getVoucherType().equals(3)) { if (payOrderParam.getVoucherType() != null && payOrderParam.getVoucherType().equals(3)) {
isPay = false; isPay = false;
if(payOrderParam.getNumber()>1){ if (payOrderParam.getNumber() > 1) {
return ResponseDto.failure("张数大于1不支持兑换");//参数错误 return ResponseDto.failure("张数大于1不支持兑换");//参数错误
} }
} }
...@@ -952,7 +952,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -952,7 +952,7 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
// log.info("下单消息模版错误",e); // log.info("下单消息模版错误",e);
// } // }
//加分 //加分
orderUtils.doTask(orderTickets.getUserId()); orderUtils.doTask(orderTickets.getUserId(), orderTicketData.getPerformanceTitle(), orderTicketData.getPriceActual());
//大麦回调 //大麦回调
sycDamaiOrder(orderTickets.getOrderTicketsId(), orderTicketData.getIsMember()); sycDamaiOrder(orderTickets.getOrderTicketsId(), orderTicketData.getIsMember());
} }
......
...@@ -148,14 +148,15 @@ public class OrderUtils { ...@@ -148,14 +148,15 @@ public class OrderUtils {
return surplusGeneral; return surplusGeneral;
} }
public void doTask(String uid) { public void doTask(String uid,String title,BigDecimal price) {
try { try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8"); header.add("Accept", "application/json;charset=UTF-8");
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString(); MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("taskId", "1"); params.add("score", price.intValue()+"");
params.add("content", "购买演出:"+title);
params.add("uid", uid); params.add("uid", uid);
String resultData = HttpUtil.post(stoneUrl + "/user/inner/doTask", params, header); String resultData = HttpUtil.post(stoneUrl + "/user/logs/in2111", params, header);
} catch (Exception e) { } catch (Exception e) {
log.error("添加积分失败,e:{}", e); log.error("添加积分失败,e:{}", e);
e.printStackTrace(); e.printStackTrace();
......
...@@ -85,6 +85,11 @@ ...@@ -85,6 +85,11 @@
<groupId>org.springframework.data</groupId> <groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId> <artifactId>spring-data-mongodb</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.liquidnet</groupId>
<artifactId>liquidnet-api-feign-stone</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
package com.liquidnet.service.sweet.config;
import feign.RequestInterceptor;
import feign.RequestTemplate;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: 解决feign调用传递header问题
* @class: SecuringRequestInterceptor
*/
@Component
public class SecuringRequestInterceptor implements RequestInterceptor {
@Override
public void apply(RequestTemplate requestTemplate) {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder
.getRequestAttributes();
HttpServletRequest request = attributes.getRequest();
Enumeration<String> headerNames = request.getHeaderNames();
if (headerNames != null) {
while (headerNames.hasMoreElements()) {
String name = headerNames.nextElement();
String values = request.getHeader(name);
requestTemplate.header(name, values);
}
}
}
}
\ No newline at end of file
...@@ -52,7 +52,7 @@ public class SweetIntegralActivityDrawController { ...@@ -52,7 +52,7 @@ public class SweetIntegralActivityDrawController {
@RequestParam("type") Integer type, @RequestParam("type") Integer type,
@RequestParam("integralActivityId") String integralActivityId, @RequestParam("integralActivityId") String integralActivityId,
@RequestParam("pageNum") Integer pageNum @RequestParam("pageNum") Integer pageNum
) { ) {
return activityDrawService.drawList(type, integralActivityId, pageNum); return activityDrawService.drawList(type, integralActivityId, pageNum);
} }
......
...@@ -9,6 +9,8 @@ import com.liquidnet.service.base.PagedResult; ...@@ -9,6 +9,8 @@ import com.liquidnet.service.base.PagedResult;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.feign.stone.api.FeignStoneIntegralClient;
import com.liquidnet.service.stone.dto.StoneScoreListDto;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo; import com.liquidnet.service.sweet.dto.vo.IntegralActivityDrawVo;
import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo; import com.liquidnet.service.sweet.dto.vo.IntegralActivityVo;
import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo; import com.liquidnet.service.sweet.dto.vo.admin.SweetIntegralActivityPrizeVo;
...@@ -55,6 +57,9 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -55,6 +57,9 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
@Autowired @Autowired
private QueueUtils queueUtils; private QueueUtils queueUtils;
@Autowired
private FeignStoneIntegralClient feignStoneIntegralClient;
@Override @Override
public ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId) { public ResponseDto<SweetIntegralActivityPrizeVo> create(String integralActivityId) {
// TODO: 2021/10/26 看情况是否加锁 一个用户整个逻辑单进程 // TODO: 2021/10/26 看情况是否加锁 一个用户整个逻辑单进程
...@@ -78,7 +83,21 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -78,7 +83,21 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
} }
} }
// TODO: 2021/10/27 判断用户积分是否>=integralActivity.setActivityNum(); // 判断用户积分是否>=integralActivity.setActivityNum();
ResponseDto<StoneScoreListDto> userInfoRes = feignStoneIntegralClient.stoneUserInfo();
if (!userInfoRes.getCode().equals(0)) {
return ResponseDto.failure("获取用户积分数据失败");
} else {
StoneScoreListDto userInfoData = userInfoRes.getData();
if (userInfoData.getStatus() == 2) {
return ResponseDto.failure("您的积分账户已被冻结!");
} else {
BigDecimal scoreRest = userInfoData.getScoreRest();
if (scoreRest.compareTo(BigDecimal.valueOf(integralActivity.getActivityNum())) == -1) {
return ResponseDto.failure("您的积分账户余额不足!");
}
}
}
// 如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了 // 如果库存没了 限制的中奖人数到了就从列表剔出 列表为空就都没有库存了
List<SweetIntegralActivityPrize> prizeList = integralActivity.getPrizeList(); List<SweetIntegralActivityPrize> prizeList = integralActivity.getPrizeList();
...@@ -101,7 +120,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg ...@@ -101,7 +120,7 @@ public class SweetIntegralActivityDrawServiceImpl extends ServiceImpl<SweetInteg
long activityPrizeNum = redisDataUtils.setIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1); long activityPrizeNum = redisDataUtils.setIntegralActivityPrizeNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1);
long activityPrizeWinnersNum = redisDataUtils.setIntegralActivityPrizeWinnersNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1); long activityPrizeWinnersNum = redisDataUtils.setIntegralActivityPrizeWinnersNum(integralActivityId, sweetIntegralActivityPrizeVo.getPrizeId(), 1);
if (activityPrizeNum < 0 || activityPrizeWinnersNum < 0) {// 库存不够了 if (activityPrizeNum < 0 || activityPrizeWinnersNum < 0) {// 库存不够了
return ResponseDto.failure("活动太火爆了,请稍后再试"); return ResponseDto.failure("活动太火爆了,奖品已经没有库存啦!");
} }
String drawId = IDGenerator.nextSnowId(); String drawId = IDGenerator.nextSnowId();
IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew(); IntegralActivityDrawVo integralActivityDrawVo = IntegralActivityDrawVo.getNew();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment