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

Commit c15885c1 authored by 胡佳晨's avatar 胡佳晨

新建controller

parent 51f293eb
package com.liquidnet.service.candy.service;
import com.liquidnet.service.base.ResponseDto;
import java.util.ArrayList;
/**
* <p>
* 券消费 服务类
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
public interface ICandyConsumerService {
ResponseDto<Boolean> couponOrderBackRedis(String uid,ArrayList<String> uCouponIdList);
}
package com.liquidnet.service.goblin.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode
public class PhoneDto {
private String uid;
private String mobile;
}
package com.liquidnet.service.goblin.service.manage;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.ArDataVo;
import com.liquidnet.service.goblin.dto.vo.TempCouponVo;
import org.springframework.web.multipart.MultipartFile;
public interface IGoblinConsumerService {
ResponseDto<Boolean> consumerType12(String finalSkuId, Integer finalType, String xlsPath);
ResponseDto<Boolean> consumerType34(String finalSkuId,Integer finalType,String xlsPath,String oXlsPath,String listId);
}
package com.liquidnet.service.candy.controller;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.commons.lang.util.CurrentUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.service.ICandyConsumerService;
import com.liquidnet.service.candy.service.ICandyCouponService;
import com.liquidnet.service.candy.vo.CandyCouponPreVo;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/**
* <p>
* 券消费 前端控制器
* </p>
*
* @author liquidnet
* @since 2021-08-18
*/
@RestController
@RequestMapping("/candy-consumer")
public class CandyConsumerController {
@Autowired
private ICandyConsumerService candyConsumerService;
@PostMapping("couponOrderBackRedis")
@ApiOperation("AbstractCouponOrderBackRedisReceiver")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "uid", value = "用户id", required = true),
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponId", value = "券code", required = true),
})
public ResponseDto<Boolean> myCouponPre(String uid, String uCouponId) {
ArrayList<String> uCouponIdList = CollectionUtil.arrayListString();
uCouponIdList.add(uCouponId);
return candyConsumerService.couponOrderBackRedis(uid, uCouponIdList);
}
}
package com.liquidnet.service.candy.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.candy.constant.CandyRedisConst;
import com.liquidnet.service.candy.dto.CandyUserCouponBasicDto;
import com.liquidnet.service.candy.service.ICandyConsumerService;
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 2021-08-18
*/
@Service
public class CandyConsumerServiceImpl implements ICandyConsumerService {
@Autowired
RedisUtil redisUtil;
@Override
public ResponseDto<Boolean> couponOrderBackRedis(String uid, ArrayList<String> uCouponIdList) {
try {
List<CandyUserCouponBasicDto> dtoList = backCoupon(getCouponByUid(uid), uCouponIdList);
setCouponByUid(uid, dtoList);
}catch (Exception e){
return ResponseDto.failure();
}
return ResponseDto.success();
}
private List<CandyUserCouponBasicDto> getCouponByUid(String uid) {
String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid);
Object obj = redisUtil.get(redisKey);
if (obj == null) {
//降级
return new ArrayList();
} else {
return (List<CandyUserCouponBasicDto>) obj;
}
}
// 覆盖 CandyUserCouponBasicDto数组 根据用户id
private void setCouponByUid(String uid, List<CandyUserCouponBasicDto> dtoList) {
String redisKey = CandyRedisConst.BASIC_USER_COUPON.concat(uid);
redisUtil.set(redisKey, dtoList);
}
/**
* 回退券
*
* @param dtoList CouponBaseDtoList
* @param uCouponIdList 券唯一id list
* @return List<CandyUserCouponBasicDto>
*/
private List<CandyUserCouponBasicDto> backCoupon(List<CandyUserCouponBasicDto> dtoList, ArrayList<String> uCouponIdList) {
boolean isHas = false;
for (CandyUserCouponBasicDto dtoItem : dtoList) {
if (uCouponIdList.contains(dtoItem.getUcouponId())) {
if (dtoItem.getState().equals(5)) {
dtoItem.setState(1);
isHas = true;//券存在
} else {
}
}
}
if (!isHas) {
return null;//券不存在
}
return dtoList;
}
}
package com.liquidnet.service.goblin.controller.Inner;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.service.impl.inner.GoblinNftJobServiceImpl;
import com.liquidnet.service.goblin.service.manage.IGoblinConsumerService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@Api(tags = "@API:RSC:消费")
@RestController
@Validated
@RequestMapping("/rsc/consumer")
public class GoblinConsumerController {
@Autowired
IGoblinConsumerService goblinConsumerService;
@PostMapping("consumerType12")
@ApiOperation("xls 类型1/2")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "finalSkuId", value = "skuId"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "finalType", value = "类型"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "xlsPath", value = "文件地址"),
})
public ResponseDto<Boolean> consumerType12(String finalSkuId, Integer finalType, String xlsPath) {
return goblinConsumerService.consumerType12(finalSkuId, finalType, xlsPath);
}
@PostMapping("consumerType34")
@ApiOperation("xls 类型3/4")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "finalSkuId", value = "skuId"),
@ApiImplicitParam(type = "form", required = true, dataType = "Integer", name = "finalType", value = "类型"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "xlsPath", value = "文件地址"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "oXlsPath", value = "文件地址2"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "listId", value = "分批购活动id"),
})
public ResponseDto<Boolean> consumerType34(String finalSkuId, Integer finalType, String xlsPath, String oXlsPath, String listId) {
return goblinConsumerService.consumerType34(finalSkuId, finalType, xlsPath, oXlsPath, listId);
}
}
package com.liquidnet.service.goblin.service.impl.inner;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.fastjson.JSON;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.PhoneDto;
import com.liquidnet.service.goblin.service.manage.IGoblinConsumerService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.net.URL;
import java.util.HashMap;
@Slf4j
@Service
public class GoblinConsumerServiceImpl implements IGoblinConsumerService {
@Autowired
private RedisUtil redisUtil;
@Override
public ResponseDto<Boolean> consumerType12(String finalSkuId, Integer finalType, String xlsPath) {
try {
EasyExcel.read(new URL(xlsPath).openStream(), PhoneDto.class, new PageReadListener<PhoneDto>(dataList -> {
for (PhoneDto data : dataList) {
if (data.getMobile() == null) {
continue;
}
String redisKey = GoblinRedisConst.REDIS_CAN_BUY.concat(finalSkuId + ":").concat(data.getMobile());
if (finalType.equals(1)) {//添加
if (log.isDebugEnabled()) {
log.debug("添加 读取到一条数据{}", JSON.toJSONString(data));
}
redisUtil.set(redisKey, 0);
} else {
if (log.isDebugEnabled()) {
log.debug("删除 读取到一条数据{}", JSON.toJSONString(data));
}
redisUtil.del(redisKey);
}
}
})).sheet().doRead();
} catch (Exception e) {
return ResponseDto.failure();
}
return ResponseDto.success();
}
@Override
public ResponseDto<Boolean> consumerType34(String finalSkuId, Integer finalType, String xlsPath, String oXlsPath, String listId) {
try {
if (oXlsPath != null && !oXlsPath.equals("")) {//删除旧的黑白名单
EasyExcel.read(new URL(oXlsPath).openStream(), new PageReadListener<HashMap<String, String>>(dataList -> {
for (HashMap<String, String> data : dataList) {
if (data.get(0) == null) {
continue;
}
if (finalType.equals(3)) {
log.debug("删除 白名单 读取到一条数据{}", JSON.toJSONString(data));
redisUtil.del(GoblinRedisConst.REDIS_WHITE.concat(listId + ":").concat(finalSkuId + ":").concat(data.get(0)));
} else {
log.debug("删除 黑名单 读取到一条数据{}", JSON.toJSONString(data));
redisUtil.del(GoblinRedisConst.REDIS_BLACK.concat(listId + ":").concat(finalSkuId + ":").concat(data.get(0)));
}
}
})).sheet().doRead();
}
if (xlsPath != null && !xlsPath.equals("")) {//添加
EasyExcel.read(new URL(xlsPath).openStream(), new PageReadListener<HashMap<String, String>>(dataList -> {
for (HashMap<String, String> data : dataList) {
if (data.get(0) == null) {
continue;
}
if (finalType.equals(3)) {
log.debug("添加 白名单 读取到一条数据{}", JSON.toJSONString(data));
redisUtil.set(GoblinRedisConst.REDIS_WHITE.concat(listId + ":").concat(finalSkuId + ":").concat(data.get(0)), 1);
} else {
log.debug("添加 黑名单 读取到一条数据{}", JSON.toJSONString(data));
redisUtil.set(GoblinRedisConst.REDIS_BLACK.concat(listId + ":").concat(finalSkuId + ":").concat(data.get(0)), 1);
}
}
})).sheet().doRead();
}
} catch (Exception e) {
return ResponseDto.failure();
}
return ResponseDto.success();
}
}
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