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

Commit 401111aa authored by Administrator's avatar Administrator 🎨

Merge branch 'pre' into 'master'

Pre

See merge request !194
parents 736e916a 4358b898
......@@ -48,5 +48,5 @@ public interface ICandyCouponService {
ResponseDto<CandyCouponVo> receiveCouponDetails(String ccode);
ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds);
ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds,String uid);
}
......@@ -17,6 +17,10 @@ public class CandyUseResultVo implements Serializable, Cloneable {
private BigDecimal value;
@ApiModelProperty(value = "券类型[-1-不可用 | 1-代金券|2-满减券|3-兑换券|4-折扣券|101-优先券]",example = "1")
private Integer couType;
@ApiModelProperty(value = "目标数组")
private List<String> targetIds;
@ApiModelProperty(value = "满减金额[满多少]")
private BigDecimal fullValue;
private static final CandyUseResultVo obj = new CandyUseResultVo();
......
......@@ -6,6 +6,7 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
@ApiModel
......@@ -16,6 +17,8 @@ public class GoblinUseResultVo implements Serializable, Cloneable {
private BigDecimal value;
@ApiModelProperty(value = "券类型[1-代金券|2-折扣券|3-满减券]", example = "1")
private String couType;
@ApiModelProperty(value = "适用spu范围")
private List<String> spuIds;
private static final GoblinUseResultVo obj = new GoblinUseResultVo();
......
......@@ -9,6 +9,7 @@ import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
/**
* 商城:用户优惠券展示信息(缓存)
......@@ -61,6 +62,8 @@ public class GoblinUserCouponVo implements Serializable, Cloneable {
@ApiModelProperty(position = 35, value = "店铺ID")
private String storeId;
@ApiModelProperty(position = 36, value = "spuIds")
private List<String> spuIds;
/* -------------------------------------------------------------------- */
......
package com.liquidnet.service.goblin.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@Api
@Data
public class CouponCanUse2Param implements Serializable, Cloneable {
@ApiModelProperty(dataType = "String", name = "spuId", value = "spuId",example = "1",required = true)
@NotNull @NotBlank
private String spuId;
@ApiModelProperty(dataType = "Number", name = "price", value = "当前spu总价",example = "10",required = true)
@NotNull @NotBlank
private BigDecimal price;
private static final CouponCanUse2Param obj = new CouponCanUse2Param();
public static CouponCanUse2Param getNew() {
try {
return (CouponCanUse2Param) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CouponCanUse2Param();
}
}
package com.liquidnet.service.goblin.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@Api
@Data
public class CouponCanUseAllParam implements Serializable, Cloneable {
@ApiModelProperty(name = "spuIds", value = "spuId集合",required = true)
@NotNull @NotBlank
private List<String> spuIds;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id",example = "10",required = true)
private String uid;
private static final CouponCanUseAllParam obj = new CouponCanUseAllParam();
public static CouponCanUseAllParam getNew() {
try {
return (CouponCanUseAllParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CouponCanUseAllParam();
}
}
package com.liquidnet.service.goblin.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@Api
@Data
public class CouponCanUseParam implements Serializable, Cloneable {
@ApiModelProperty(name = "param", value = "对象", required = true)
@NotNull
@NotBlank
private List<CouponCanUse2Param> param;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id", example = "10", required = false)
private String uid;
@ApiModelProperty(dataType = "String", name = "storeId", value = "店铺id", example = "10", required = false)
private String storeId;
private static final CouponCanUseParam obj = new CouponCanUseParam();
public static CouponCanUseParam getNew() {
try {
return (CouponCanUseParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CouponCanUseParam();
}
}
package com.liquidnet.service.goblin.param;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;
@Api
@Data
public class CouponHelpUseParam implements Serializable, Cloneable {
@ApiModelProperty(name = "param", value = "对象", required = true)
@NotNull
@NotBlank
private List<CouponCanUse2Param> param;
@ApiModelProperty(dataType = "String", name = "uid", value = "用户id", example = "10", required = false)
private String uid;
@ApiModelProperty(dataType = "String", name = "ucouponId", value = "店铺券id", required = false)
private String ucouponId;
@ApiModelProperty(dataType = "String", name = "platformUcouponId", value = "平台券id", required = false)
private String platformUcouponId;
private static final CouponHelpUseParam obj = new CouponHelpUseParam();
public static CouponHelpUseParam getNew() {
try {
return (CouponHelpUseParam) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CouponHelpUseParam();
}
}
package com.liquidnet.service.goblin.param;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Api
@Data
public class CouponHelpUseVo implements Serializable, Cloneable {
// @ApiModelProperty(name = "param", value = "对象")
// private List<CouponCanUse2Param> param;
// @ApiModelProperty(name = "couponVo", value = "券vo")
// private GoblinUserCouponVo couponVo;
@ApiModelProperty(dataType = "String", name = "ucouponId", value = "券id", required = true)
private String ucouponId;
@ApiModelProperty(dataType = "String", name = "platformUcouponId", value = "平台券id", required = true)
private String platformUcouponId;
@ApiModelProperty(dataType = "number", name = "price", value = "优惠金额", required = true)
private BigDecimal price;
private static final CouponHelpUseVo obj = new CouponHelpUseVo();
public static CouponHelpUseVo getNew() {
try {
return (CouponHelpUseVo) obj.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
return new CouponHelpUseVo();
}
}
......@@ -43,6 +43,9 @@ public class GoblinOrderPreParam implements Cloneable{
private GoblinStoreOrder storeOrder;
private GoblinOrderAttr orderAttr;
private List<GoblinOrderSku> orderSkuList;
private List<String> storeSpuIds;
private List<String> platformSpuIds;
private static final GoblinOrderPreParam obj = new GoblinOrderPreParam();
......
......@@ -3,7 +3,7 @@ package com.liquidnet.service.goblin.service;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.*;
import java.math.BigDecimal;
import java.util.ArrayList;
......@@ -28,9 +28,21 @@ public interface GoblinCouponService {
//可用券列表 [价格] [spuId逗号隔开] [uid]
List<GoblinUserCouponVo> useList(BigDecimal totalPrice, String spuId, String uid);
//可用券列表[可用券列表[返回商品下所有券]]
List<GoblinUserCouponVo> useList3(CouponCanUseAllParam param);
List<GoblinUserCouponVo> useList2(CouponCanUseParam param);
//使用券 [券id] [消费内容] [价格] [spuId逗号隔开]
GoblinUseResultVo useCoupon(String ucouponId,String content, BigDecimal totalPrice, String spuId, String uid);
//回退券 [list<Data>] [券id , 用户id]
Boolean backCoupon(List<BackCouponParam> params);
/**
* 帮前端写选择券逻辑
* @param params
* @return
*/
CouponHelpUseVo helpUseCoupon(CouponHelpUseParam params);
}
......@@ -134,4 +134,9 @@ public enum BusinessType
* 会员订单退款
*/
MORDER_REFUND,
/**
* 修改
*/
PERFORMANCE_SAVE,
}
......@@ -84,7 +84,7 @@ public class KylinPerformancesController extends BaseController {
return prefix + "/details";
}
@Log(title = "演出列表", businessType = BusinessType.AUDIT)
@Log(title = "演出审核", businessType = BusinessType.AUDIT)
@PostMapping(value = "/audit")
//@RequiresPermissions("kylin:performances:view")
@ResponseBody
......@@ -96,11 +96,12 @@ public class KylinPerformancesController extends BaseController {
//@RequiresPermissions("kylin:performances:view")
@PostMapping(value = "/isShow")
@ResponseBody
@Log(title = "演出管理:是否显示", businessType = BusinessType.PERFORMANCE_SAVE)
public AjaxResult setIsShow(String performancesId, Integer isShow) {
return toAjax(kylinPerformancesService.setIsShow(performancesId, isShow));
}
@Log(title = "演出列表", businessType = BusinessType.DETAIL)
// @Log(title = "演出列表", businessType = BusinessType.DETAIL)
//@RequiresPermissions("kylin:performances:view")
@GetMapping(value = "/memberInfo/{performancesId}")
public String memberInfo(@PathVariable("performancesId") String performancesId, ModelMap mmap) {
......@@ -109,7 +110,7 @@ public class KylinPerformancesController extends BaseController {
return prefix + "/memberInfo";
}
@Log(title = "演出列表", businessType = BusinessType.UPDATE)
@Log(title = "演出管理:提交会员信息", businessType = BusinessType.PERFORMANCE_SAVE)
//@RequiresPermissions("kylin:performances:view")
@PostMapping(value = "/memberInfo/submit")
@ResponseBody
......@@ -118,7 +119,7 @@ public class KylinPerformancesController extends BaseController {
return toAjax(result);
}
@Log(title = "演出列表-演出数据", businessType = BusinessType.LIST)
// @Log(title = "演出列表-演出数据", businessType = BusinessType.LIST)
//@RequiresPermissions("kylin:performances:view")
@GetMapping(value = "/performanceStatic/{performancesId}")
public String performanceStatic(@PathVariable("performancesId") String performancesId, ModelMap mmap) {
......@@ -172,6 +173,7 @@ public class KylinPerformancesController extends BaseController {
//@RequiresPermissions("kylin:performances:view")
@PostMapping(value = "/agent/change")
@ResponseBody
@Log(title = "演出管理:票种代理", businessType = BusinessType.PERFORMANCE_SAVE)
public AjaxResult changeTicketAgent(@RequestParam("performancesId") String performancesId, @RequestParam("ticketsId") String ticketsId, @RequestParam("status") Integer status) {
boolean result = kylinPerformancesService.changeTicketAgent(performancesId, ticketsId, status);
return toAjax(result);
......@@ -179,6 +181,7 @@ public class KylinPerformancesController extends BaseController {
@PostMapping(value = "/payTxt/change")
@ResponseBody
@Log(title = "演出管理:支付文案", businessType = BusinessType.PERFORMANCE_SAVE)
public AjaxResult changeTicketPayTxt(@RequestParam("performancesId") String performancesId, @RequestParam("ticketsId") String ticketsId, @RequestParam("payTxt") String payTxt) {
boolean result = kylinPerformancesService.changeTicketPayTxt(performancesId, ticketsId, payTxt);
return toAjax(result);
......@@ -213,6 +216,7 @@ public class KylinPerformancesController extends BaseController {
//@RequiresPermissions("kylin:performances:view")
@PostMapping(value = "/refundConfig/change")
@ResponseBody
@Log(title = "演出管理:退款配置", businessType = BusinessType.PERFORMANCE_SAVE)
public AjaxResult changeRefundConfig(@RequestParam("performancesId") String performancesId,
@RequestParam("isCanRefund") Integer isCanRefund,
@RequestParam("refundOpenTime") String refundOpenTime,
......@@ -249,6 +253,7 @@ public class KylinPerformancesController extends BaseController {
@PostMapping(value = "/transferConfig/change")
@ResponseBody
@Log(title = "演出管理:转赠配置", businessType = BusinessType.PERFORMANCE_SAVE)
public AjaxResult changeTransferConfig(@RequestParam("performancesId") String performancesId,
@RequestParam("isCanTransfer") Integer isCanTransfer,
@RequestParam("transferStartTime") String transferStartTime,
......
......@@ -71,6 +71,15 @@ public class GoblinFrontCubeServiceImpl extends ServiceImpl<GoblinFrontCubeMappe
} else {
goblinFrontCube.setUpdateTime(LocalDateTime.now());
//数据库修改
String spuIds="";
for(String spuId:goblinFrontCube.getSpuId().split(",")){
if(spuId.equals("")||spuId.equals("undefined")){
}else{
spuIds=spuIds.concat(spuId).concat(",");
}
}
goblinFrontCube.setSpuId(spuIds);
goblinFrontCubeMapper.updateById(goblinFrontCube);
}
}
......
......@@ -346,8 +346,11 @@ public class CandyCouponController {
@ApiImplicitParams({
@ApiImplicitParam(type = "form", dataType = "String", name = "uCouponIds", value = "券id(逗号隔开的字符串)", required = true),
})
public ResponseDto<List<CandyCouponVo>> couponListById(@RequestParam("uCouponIds") @NotNull @NotBlank String uCouponIds) {
return candyCouponService.couponListById(uCouponIds);
public ResponseDto<List<CandyCouponVo>> couponListById(@RequestParam("uCouponIds") @NotNull @NotBlank String uCouponIds, @RequestParam(value = "uid", required = false) String uid) {
if (uid == null || uid.equals("")) {
uid = CurrentUtil.getCurrentUid();
}
return candyCouponService.couponListById(uCouponIds, uid);
// if (result != null) {
// return ResponseDto.success(result);
// } else {
......
......@@ -206,7 +206,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public CandyMyCouponListVo preUseGoodCoupon(BigDecimal priceTotal, String goodId, Integer type,String uid) {
public CandyMyCouponListVo preUseGoodCoupon(BigDecimal priceTotal, String goodId, Integer type, String uid) {
LocalDateTime userCreateTime;
try {
userCreateTime = DateUtil.Formatter.yyyyMMddHHmmssTrim.parse(CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_UCREATED).toString());
......@@ -248,7 +248,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public Integer preCanUseGoodCoupon(BigDecimal priceTotal, String goodId,String uid) {
public Integer preCanUseGoodCoupon(BigDecimal priceTotal, String goodId, String uid) {
LocalDateTime userCreateTime;
try {
userCreateTime = DateUtil.Formatter.yyyyMMddHHmmssTrim.parse(CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_UCREATED).toString());
......@@ -315,7 +315,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice, String performanceId, String timesId, String ticketId, String goodId,String uid) {
public CandyUseResultVo useCoupon(String uCouponId, String content, String totalPrice, String performanceId, String timesId, String ticketId, String goodId, String uid) {
LocalDateTime userCreateTime;
try {
userCreateTime = DateUtil.Formatter.yyyyMMddHHmmssTrim.parse(CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_UCREATED).toString());
......@@ -323,6 +323,8 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
userCreateTime = null;
}
CandyUseResultVo vo = CandyUseResultVo.getNew();
List<String> targetIds = CollectionUtil.linkedListString();
BigDecimal fullValue = BigDecimal.ZERO;
List<CandyUserCouponBasicDto> dtoList = CouponBaseUtil.useCoupon(redisDataUtils.getCouponByUid(uid, userCreateTime), uCouponId, content);
if (dtoList == null) {
vo.setCouType(-1);
......@@ -342,6 +344,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
case 2:
if (dto.getValOver().compareTo(new BigDecimal(totalPrice)) <= 0) {
vo.setValue(dto.getValMinus());
fullValue = dto.getValOver();
} else {
vo.setCouType(-1);
vo.setValue(BigDecimal.ZERO);
......@@ -383,6 +386,10 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
if (dto.getUseRules().size() > 1 && dto.getCouType().equals(4)) {
isTarget = false;
}
if (isTarget && !ruleItem.getBusiId().equals("")) {
targetIds.add(ruleItem.getBusiId());
}
}
if (dto.getBusiType().equals(0)) {
......@@ -415,6 +422,8 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
}
}
vo.setFullValue(fullValue);
vo.setTargetIds(targetIds);
return vo;
}
......@@ -526,8 +535,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
}
@Override
public ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds) {
String uid = CurrentUtil.getCurrentUid();
public ResponseDto<List<CandyCouponVo>> couponListById(String uCouponIds,String uid) {
LocalDateTime userCreateTime;
try {
userCreateTime = DateUtil.Formatter.yyyyMMddHHmmssTrim.parse(CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_UCREATED).toString());
......
......@@ -252,15 +252,29 @@ public class CouponBaseUtil {
BigDecimal valOver) {
boolean isTarget = false;
ArrayList<String> targetIdList = new ArrayList(Arrays.asList(targetId.split(",")));
if (targetIdList.contains(busiId)) {//判断id 对应
if (couType.equals(2)) {
if (priceTotal.compareTo(valOver) >= 0) {
for (String item : targetIdList) {
if (item.contains("ZZ")) {
item = item.split("ZZ")[0];
}
if (item.equals(busiId)) {//判断id 对应
if (couType.equals(2)) {
if (priceTotal.compareTo(valOver) >= 0) {
isTarget = true;
}
} else {
isTarget = true;
}
} else {
isTarget = true;
}
}
// if (targetIdList.contains(busiId)) {//判断id 对应
// if (couType.equals(2)) {
// if (priceTotal.compareTo(valOver) >= 0) {
// isTarget = true;
// }
// } else {
// isTarget = true;
// }
// }
return isTarget;
}
......
#eurekaServer配置
eureka:
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://${liquidnet.security.username}:${liquidnet.security.password}@${liquidnet.eureka.host}/eureka-server/eureka
#configServer配置
spring:
cloud:
config:
# uri: http://39.107.71.112:7002/support-config
profile: ${liquidnet.cloudConfig.profile}
name: ${spring.application.name} #默认为spring.application.name
discovery:
enabled: true
service-id: liquidnet-support-config
......@@ -416,6 +416,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
parameters.put("appid", PayWepayUtils.getInstance().getAPPLET_APP_ID());
} else if (paymentType.equalsIgnoreCase(DragonConstant.PayTypeEnum.PAYMENT_TYPE_WAP_WEPAY.getCode())) {
parameters.put("appid", PayWepayUtils.getInstance().getWAP_APP_ID());
}else if(paymentType.equalsIgnoreCase(DragonConstant.PayTypeEnum.PAYMENT_TYPE_MICROPAY_WEPAY.getCode())){
parameters.put("appid", PayWepayUtils.getInstance().getAPP_ID());
}
parameters.put("nonce_str", nonceStr);
parameters.put("out_refund_no", refundCode);
......
......@@ -6,7 +6,7 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.dto.vo.GoblinStoreCouponVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUseResultVo;
import com.liquidnet.service.goblin.dto.vo.GoblinUserCouponVo;
import com.liquidnet.service.goblin.param.BackCouponParam;
import com.liquidnet.service.goblin.param.*;
import com.liquidnet.service.goblin.service.GoblinCouponService;
import com.liquidnet.service.goblin.util.GoblinRedisUtils;
import com.liquidnet.service.goblin.util.ObjectUtil;
......@@ -181,11 +181,11 @@ public class GoblinCouponController {
if (uid == null) {
uid = CurrentUtil.getCurrentUid();
}
return ResponseDto.success(goblinCouponService.canUse(totalPrice, spuId, uid,storeId));
return ResponseDto.success(goblinCouponService.canUse(totalPrice, spuId, uid, storeId));
}
@PostMapping("useList")
@ApiOperation("可用券列表")
@ApiOperation("可用券列表[不判断部分商品]")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "Number", name = "totalPrice", value = "应付价格"),
......@@ -201,24 +201,44 @@ public class GoblinCouponController {
return ResponseDto.success(goblinCouponService.useList(totalPrice, spuId, uid));
}
@PostMapping("useCoupon")
@ApiOperation("用券")
@PostMapping("useList2")
@ApiOperation("可用券列表[判断部分商品]")
@ApiResponse(code = 200, message = "接口返回对象参数")
@ApiImplicitParams({
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "ucouponId", value = "券id"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "content", value = "消费内容"),
@ApiImplicitParam(type = "form", required = true, dataType = "Number", name = "totalPrice", value = "总价格"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "spuId", value = "spuId逗号隔开"),
@ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "uid"),
})
public ResponseDto<GoblinUseResultVo> checkOrderResult(@RequestParam("ucouponId") @Valid String ucouponId,
@RequestParam("content") @Valid String content,
@RequestParam("totalPrice") @Valid BigDecimal totalPrice,
@RequestParam("spuId") @Valid String spuId,
@RequestParam("uid") @Valid String uid) {
return ResponseDto.success(goblinCouponService.useCoupon(ucouponId, content, totalPrice, spuId, uid));
public ResponseDto<List<GoblinUserCouponVo>> useList2(@RequestBody CouponCanUseParam param) {
if (param.getUid() == null) {
param.setUid(CurrentUtil.getCurrentUid());
}
return ResponseDto.success(goblinCouponService.useList2(param));
}
@PostMapping("useList3")
@ApiOperation("可用券列表[返回商品下所有券]")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<List<GoblinUserCouponVo>> useList3(@RequestBody CouponCanUseAllParam param) {
if (param.getUid() == null) {
param.setUid(CurrentUtil.getCurrentUid());
}
return ResponseDto.success(goblinCouponService.useList3(param));
}
// @PostMapping("useCoupon")
// @ApiOperation("用券")
// @ApiResponse(code = 200, message = "接口返回对象参数")
// @ApiImplicitParams({
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "ucouponId", value = "券id"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "content", value = "消费内容"),
// @ApiImplicitParam(type = "form", required = true, dataType = "Number", name = "totalPrice", value = "总价格"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "spuId", value = "spuId逗号隔开"),
// @ApiImplicitParam(type = "form", required = true, dataType = "String", name = "uid", value = "uid"),
// })
// public ResponseDto<GoblinUseResultVo> checkOrderResult(@RequestParam("ucouponId") @Valid String ucouponId,
// @RequestParam("content") @Valid String content,
// @RequestParam("totalPrice") @Valid BigDecimal totalPrice,
// @RequestParam("spuId") @Valid String spuId,
// @RequestParam("uid") @Valid String uid) {
// return ResponseDto.success(goblinCouponService.useCoupon(ucouponId, content, totalPrice, spuId, uid));
// }
@PostMapping("backCoupon")
@ApiOperation("退券")
@ApiResponse(code = 200, message = "接口返回对象参数")
......@@ -228,4 +248,18 @@ public class GoblinCouponController {
}
return ResponseDto.success(goblinCouponService.backCoupon(backCouponParam));
}
@PostMapping("helpUseCoupon")
@ApiOperation("帮助用券")
@ApiResponse(code = 200, message = "接口返回对象参数")
public ResponseDto<CouponHelpUseVo> helpUseCoupon(@RequestBody CouponHelpUseParam param) {
if (param.getUid() == null || param.getUid().equals("")) {
param.setUid(CurrentUtil.getCurrentUid());
}
CouponHelpUseVo vo = goblinCouponService.helpUseCoupon(param);
if(vo==null){
return ResponseDto.failure("券不存在");
}
return ResponseDto.success(vo);
}
}
......@@ -29,10 +29,6 @@ import java.util.List;
@RestController
@RequestMapping("/front")
public class GoblinFrontController {
@Autowired
private RedisUtil redisUtil;
@Autowired
private GoblinRedisUtils goblinRedisUtils;
@Autowired
private GoblinFrontServiceImpl goblinFrontService;
......
......@@ -853,14 +853,25 @@ public class GoblinFrontServiceImpl implements GoblinFrontService {
}
}
}else{
//查看是否有 配置的 spuid的顺序
/* //查看是否有 配置的 spuid的顺序
String selectGoodsSpuids= getRedisKey(GoblinRedisConst.SELECT_GOODS_PAGE1);
if(StringUtil.isBlank(selectGoodsSpuids)){
List<GoblinFrontSelectGoods> list= (List<GoblinFrontSelectGoods>) redisUtil.get(GoblinRedisConst.SELECT_GOODS);
setPage1AndSpu(list,pageSize);
this.getSelectGoods(page,pageSize);
}
String[] spuidss=selectGoodsSpuids.split(",");
String[] spuidss=selectGoodsSpuids.split(",");*/
//查看是否有 配置的 spuid的顺序
/* String selectGoodsSpuids= getRedisKey(GoblinRedisConst.SELECT_GOODS_PAGE1);*/
if(!redisUtil.hasKey(GoblinRedisConst.SELECT_GOODS_SPUIDS)){
List<GoblinFrontSelectGoods> list= (List<GoblinFrontSelectGoods>) redisUtil.get(GoblinRedisConst.SELECT_GOODS);
setPage1AndSpu(list,pageSize);
this.getSelectGoods(page,pageSize);
}
String[] spuidss=redisUtil.get(GoblinRedisConst.SELECT_GOODS_SPUIDS).toString().split(",");
//String[] spuidss=selectGoodsSpuids.split(",");
//找到对应的spuid
int start =page*pageSize;
int end=(page+1)*pageSize;
......
......@@ -557,7 +557,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode());
logVo.setStoreId(orderVo.getStoreId());
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue()) > 0) {
logVo.setOrderType("zhengzai");
} else {
logVo.setOrderType("order");
......@@ -627,7 +627,7 @@ public class GoblinOrderAppServiceImpl implements IGoblinOrderAppService {
logVo.setOrderId(orderVo.getOrderId());
logVo.setOrderCode(orderVo.getOrderCode());
logVo.setPayCode(orderVo.getPayCode());
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_PURCHASE.getValue()) > 0) {
if (orderSkuVo.getSkuId().indexOf(GoblinStatusConst.MarketPreStatus.MARKET_PRE_ZHENGZAI.getValue()) > 0) {
logVo.setOrderType("zhengzai");
} else {
logVo.setOrderType("order");
......
......@@ -138,7 +138,7 @@ public class GoblinStoreOrderServiceImpl implements IGoblinStoreOrderService {
vo.setPayTime(orderVo.getPayTime());
vo.setPriceExpress(orderVo.getPriceExpress());
if (!(orderVo.getUcouponId() == null || orderVo.getUcouponId().equals(""))) {
CandyCouponVo candyCouponVo = orderUtils.getCouponDetails(orderVo.getUcouponId());
CandyCouponVo candyCouponVo = orderUtils.getCouponDetails(orderVo.getUcouponId(),orderVo.getUserId());
vo.setPlatformUcouponId(candyCouponVo.getUcouponId());
vo.setPlatformUcouponName(candyCouponVo.getTitle());
vo.setPlatformUcouponPrice(orderVo.getPriceCoupon());
......
......@@ -948,7 +948,7 @@ public class GoblinMongoUtils {
);
}
Query query = Query.query(criteria);
query.skip(skipCount).limit(size);
query.skip(skipCount).limit(size).with(Sort.by(Sort.Order.desc("createdAt")));
List<GoblinOrderLogVo> dataList = mongoTemplate.find(query, GoblinOrderLogVo.class, GoblinOrderLogVo.class.getSimpleName());
//查询总数量
Query countQuery = Query.query(criteria);
......
......@@ -21,6 +21,7 @@ import org.springframework.util.MultiValueMap;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@Component
@Slf4j
......@@ -35,119 +36,6 @@ public class GoblinOrderUtils {
@Autowired
GoblinRedisUtils redisUtils;
public AdamRscPolymer01Vo adamAddressEnterMember(String uid, String enterIds, String addressId) {
try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("addressId", addressId);
params.add("entersIds", enterIds);
params.add("uid", uid);
String resultData = HttpUtil.post(adamUrl + "/adam/rsc/inquire/of_buy_ticket", params, header);
ResponseDto<AdamRscPolymer01Vo> vo = JsonUtils.fromJson(resultData, new TypeReference<ResponseDto<AdamRscPolymer01Vo>>() {
});
if (null != vo.getData()) {
return vo.getData();
} else {
return null;
}
} catch (Exception e) {
log.error("获取用户信息,e:{}", e);
e.printStackTrace();
return null;
}
}
//判断 数量限购
public String judgeOrderLimit(String uid, String skuId, int number, int limitCount) {
int buyCount = redisUtils.getSkuCountByUid(uid, skuId);
if (buyCount + number > limitCount) {
return "已超出限购数量";
} else {
int a = redisUtils.incrSkuCountByUid(uid, skuId, number);
return "";
}
}
//判断指定人群购买
public Boolean judgeOrderRose(Boolean isMember, String skuId, String mobile, int buyFactor) {
Boolean result = false;
switch (buyFactor) {
case 0:
result = true;
break;
case 1:
result = isMember;
break;
case 2:
result = redisUtils.getSkuCanBuyByUid(mobile, skuId);
break;
}
return result;
}
/**
* 使用优惠券
*
* @param uCouponId 券id
* @param content 消费内容
* @param totalPrice 订单总价
* @return
*/
public HashMap<String, Object> useCoupon(String uCouponId, String content, BigDecimal totalPrice, String spuId, String uid) {
HashMap<String, Object> hashMap = CollectionUtil.mapStringObject();
try {
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("uCouponId", uCouponId);
params.add("content", content);
params.add("totalPrice", totalPrice.toString());
params.add("goodId", spuId);
params.add("performanceId", "null");
params.add("timeId", "null");
params.add("ticketId", "null");
params.add("uid", uid);
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken());
header.add("Accept", "application/json;charset=UTF-8");
log.debug("url=" + candyUrl + "/candy-coupon/use");
String returnData = HttpUtil.post(candyUrl + "/candy-coupon/use", params, header);
ResponseDto<CandyUseResultVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<CandyUseResultVo>>() {
});
CandyUseResultVo candyUseResultVo = innerReturnVo.getData();
Integer type = candyUseResultVo.getCouType();
BigDecimal value = candyUseResultVo.getValue();
BigDecimal voucher = BigDecimal.ZERO;
switch (type) {
case -1:
voucher = BigDecimal.valueOf(-1);
break;
case 1:
voucher = voucher.add(value);
break;
case 2:
voucher = voucher.add(value);
break;
case 3:
voucher = voucher.add(totalPrice);
break;
case 4:
voucher = totalPrice.subtract(totalPrice.multiply(value));
break;
default:
voucher = BigDecimal.ZERO;
break;
}
hashMap.put("type", type);
hashMap.put("voucher", voucher.setScale(2, BigDecimal.ROUND_HALF_UP));
return hashMap;
} catch (Exception e) {
log.error("用券ERROR:{}", e);
hashMap.put("type", -1);
hashMap.put("voucher", 0);
return hashMap;
}
}
public void backCoupon(String uCouponId, String uid) {
try {
BackCouponParam param = BackCouponParam.getNew();
......@@ -166,7 +54,7 @@ public class GoblinOrderUtils {
}
}
public CandyCouponVo getCouponDetails(String uCouponId) {
public CandyCouponVo getCouponDetails(String uCouponId,String uid) {
try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken());
......@@ -174,10 +62,15 @@ public class GoblinOrderUtils {
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("uCouponIds", uCouponId);
params.add("uid", uid);
String returnData = HttpUtil.post(candyUrl + " /candy-coupon/receive/ListById", params, header);
ResponseDto<CandyCouponVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<CandyCouponVo>>() {
ResponseDto<List<CandyCouponVo>> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<List<CandyCouponVo>>>() {
});
return innerReturnVo.getData();
if(innerReturnVo.getData().size()>0){
return innerReturnVo.getData().get(0);
}else{
return null;
}
} catch (Exception e) {
log.error("回退券ERROR:{}", e);
CandyCouponVo vo = CandyCouponVo.getNew();
......@@ -201,19 +94,4 @@ public class GoblinOrderUtils {
e.printStackTrace();
}
}
public void desTask(String uid, BigDecimal price) {
try {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Accept", "application/json;charset=UTF-8");
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("score", price.intValue() + "");
params.add("content", "购买商品:");
params.add("uid", uid);
String resultData = HttpUtil.post(stoneUrl + "/user/logs/de2111", params, header);
} catch (Exception e) {
log.error("添加积分失败,e:{}", e);
e.printStackTrace();
}
}
}
......@@ -22,6 +22,7 @@ import org.springframework.util.StringUtils;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static com.liquidnet.service.goblin.constant.GoblinRedisConst.REDIS_GOBLIN_TEMP_COUPON_MARKET;
......@@ -104,7 +105,7 @@ public class GoblinRedisUtils {
if (obj == null) {
return CollectionUtil.arrayListString();
} else {
return (List<String>) obj;
return ((List<String>) obj).stream().distinct().collect(Collectors.toList());
}
}
......
package com.liquidnet.service.dragon.config;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RedisStreamConfig {
// @Autowired
// private RedisPayNotifyReceiver redisPayNotifyReceiver;
// @Bean
// public Subscription subscriptionAlipayNotify0(RedisConnectionFactory factory) {
// var options = StreamMessageListenerContainer
// .StreamMessageListenerContainerOptions
// .builder()
// .pollTimeout(Duration.ofMillis(1))
// .build();
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from(DragonConstant.ChannelRedisQueueEnum.ALIPAY_PAY_GROUP.getCode(), "alipay-pay-notify-0"),
// StreamOffset.create(DragonConstant.ChannelRedisQueueEnum.ALIPAY_PAY_KEY.getCode(), ReadOffset.lastConsumed()), redisPayNotifyReceiver);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionAlipayNotify1(RedisConnectionFactory factory) {
// var options = StreamMessageListenerContainer
// .StreamMessageListenerContainerOptions
// .builder()
// .pollTimeout(Duration.ofMillis(1))
// .build();
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from(DragonConstant.ChannelRedisQueueEnum.ALIPAY_PAY_GROUP.getCode(), "alipay-pay-notify-1"),
// StreamOffset.create(DragonConstant.ChannelRedisQueueEnum.ALIPAY_PAY_KEY.getCode(), ReadOffset.lastConsumed()), redisPayNotifyReceiver);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionWepayNotify0(RedisConnectionFactory factory) {
// var options = StreamMessageListenerContainer
// .StreamMessageListenerContainerOptions
// .builder()
// .pollTimeout(Duration.ofMillis(1))
// .build();
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from(DragonConstant.ChannelRedisQueueEnum.WECHAT_PAY_GROUP.getCode(), "wepay-pay-notify-0"),
// StreamOffset.create(DragonConstant.ChannelRedisQueueEnum.WECHAT_PAY_KEY.getCode(), ReadOffset.lastConsumed()), redisPayNotifyReceiver);
// listenerContainer.start();
// return subscription;
// }
//
// @Bean
// public Subscription subscriptionWepayNotify1(RedisConnectionFactory factory) {
// var options = StreamMessageListenerContainer
// .StreamMessageListenerContainerOptions
// .builder()
// .pollTimeout(Duration.ofMillis(1))
// .build();
// var listenerContainer = StreamMessageListenerContainer.create(factory, options);
// var subscription = listenerContainer.receiveAutoAck(Consumer.from(DragonConstant.ChannelRedisQueueEnum.WECHAT_PAY_GROUP.getCode(), "wepay-pay-notify-1"),
// StreamOffset.create(DragonConstant.ChannelRedisQueueEnum.WECHAT_PAY_KEY.getCode(), ReadOffset.lastConsumed()), redisPayNotifyReceiver);
// listenerContainer.start();
// return subscription;
// }
}
......@@ -413,6 +413,8 @@ public class DragonOrderRefundsServiceImpl implements IDragonOrderRefundsService
parameters.put("appid", PayWepayUtils.getInstance().getAPPLET_APP_ID());
} else if (paymentType.equalsIgnoreCase(DragonConstant.PayTypeEnum.PAYMENT_TYPE_WAP_WEPAY.getCode())) {
parameters.put("appid", PayWepayUtils.getInstance().getWAP_APP_ID());
} else if(paymentType.equalsIgnoreCase(DragonConstant.PayTypeEnum.PAYMENT_TYPE_MICROPAY_WEPAY.getCode())){
parameters.put("appid", PayWepayUtils.getInstance().getAPP_ID());
}
parameters.put("nonce_str", nonceStr);
parameters.put("out_refund_no", refundCode);
......
......@@ -322,11 +322,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
//限购判断 如果实名 则身份证维度限购 如果不实名则数量限购
if (entersVoList.size() > 0) {
for (int i = 0; i < entersVoList.size(); i++) {
//todo 修改限购
dataUtils.changeBuyInfo(uid, entersVoList.get(i).getIdCard(), performanceData.getPerformancesId(), ticketData.getTicketsId(), 1);
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, entersVoList.get(i).getIdCard(), payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, 1, 1, memberType, isTrueName);
if (!res1.equals("")) {
//todo 修改限购
dataUtils.changeBuyInfo(uid, entersVoList.get(i).getIdCard(), performanceData.getPerformancesId(), ticketData.getTicketsId(), -1);
orderUtils.changeSurplus(isPay, payOrderParam.getTicketId(), payOrderParam.getNumber());
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
......@@ -334,11 +332,9 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
}
}
} else {
//todo 修改限购
dataUtils.changeBuyInfo(uid, "", performanceData.getPerformancesId(), ticketData.getTicketsId(), payOrderParam.getNumber());
String res1 = orderUtils.judgeOrderLimit(performanceData.getType(), uid, "", payOrderParam.getPerformanceId(), payOrderParam.getTicketId(), performanceLimit, performanceMemberLimit, ticketLimit, ticketMemberLimit, payOrderParam.getNumber(), payOrderParam.getNumber(), memberType, isTrueName);
if (!res1.equals("")) {
//todo 修改限购
dataUtils.changeBuyInfo(uid, "", performanceData.getPerformancesId(), ticketData.getTicketsId(), -payOrderParam.getNumber());
orderUtils.changeSurplus(isPay, payOrderParam.getTicketId(), payOrderParam.getNumber());
orderUtils.backAdvanceCoupon(payOrderParam.getAdvanceCode(), uid);
......
......@@ -62,6 +62,8 @@ public class OrderUtils {
} else {
integers = roadShowOrderLimit(userId, idCard, performanceId, ticketId, performanceBuyCount, ticketBuyCount, isTrueName);
}
log.debug("演出购买数量="+integers[0]);
log.debug("票种购买数量="+integers[1]);
return judgeMemberType(performanceLimitCount, performanceMemberLimitCount, ticketLimitCount, ticketMemberLimitCount, memberType, integers[0], integers[1], isTrueName);
}
......@@ -111,6 +113,10 @@ public class OrderUtils {
}
public String judgeMemberType(int performanceLimitCount, int performanceMemberLimitCount, int ticketLimitCount, int ticketMemberLimitCount, int memberType, int performanceBuyCount, int ticketBuyCount, int isTrueName) {
log.debug("会员限购演出="+performanceMemberLimitCount);
log.debug("限购演出="+performanceLimitCount);
log.debug("会员限购票种="+ticketMemberLimitCount);
log.debug("限购票种="+ticketLimitCount);
if (memberType == 1 || memberType == 2) {
if (performanceBuyCount > performanceMemberLimitCount && performanceMemberLimitCount != 0) {
return (1 == isTrueName ? "实名制" : "本场") + "演出限购" + performanceMemberLimitCount + "张,已超出";//超过演出维度购买量
......
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