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

Commit 8acb0757 authored by liuran's avatar liuran

Merge remote-tracking branch 'origin/dev_member_voucher_refund_09151' into...

Merge remote-tracking branch 'origin/dev_member_voucher_refund_09151' into dev_member_voucher_refund_09151
parents df472bf6 94185669
...@@ -20,16 +20,16 @@ public class AdamMemberPriceBuildParam implements Serializable { ...@@ -20,16 +20,16 @@ public class AdamMemberPriceBuildParam implements Serializable {
@ApiModelProperty(required = false, value = "会员价格ID") @ApiModelProperty(required = false, value = "会员价格ID")
private String memberPriceId; private String memberPriceId;
@ApiModelProperty(required = true, value = "原价") @ApiModelProperty(required = true, value = "原价")
@DecimalMin("0.01") @DecimalMin(value = "0.01", message = "原价不能小于0.01")
private BigDecimal price; private BigDecimal price;
@ApiModelProperty(required = true, value = "折扣价") @ApiModelProperty(required = true, value = "折扣价")
@DecimalMin("0.01") @DecimalMin(value = "0.01", message = "折扣价不能小于0.01")
private BigDecimal priceFixed; private BigDecimal priceFixed;
@ApiModelProperty(required = true, value = "特价:首次、首年优惠价") @ApiModelProperty(required = true, value = "特价:首次、首年优惠价")
@DecimalMin("0.01") @DecimalMin(value = "0.01", message = "首年优惠价不能小于0.01")
private BigDecimal priceSpecial; private BigDecimal priceSpecial;
@ApiModelProperty(required = true, value = "有效天数") @ApiModelProperty(required = true, value = "有效天数")
@Min(1) @Min(value = 1, message = "有效天数不得小于1")
private Integer days; private Integer days;
@ApiModelProperty(required = false, value = "双倍积分[1-关闭,2-开启]") @ApiModelProperty(required = false, value = "双倍积分[1-关闭,2-开启]")
......
...@@ -22,15 +22,18 @@ public class AdamMemberRightsBuildParam implements Serializable { ...@@ -22,15 +22,18 @@ public class AdamMemberRightsBuildParam implements Serializable {
private Integer state; private Integer state;
@ApiModelProperty(required = true, value = "权益标题[50]") @ApiModelProperty(required = true, value = "权益标题[50]")
@NotBlank(message = "会员权益标题不能为空")
private String title; private String title;
@ApiModelProperty(required = true, value = "权益副标题[200]") @ApiModelProperty(required = true, value = "权益副标题[200]")
@NotNull(message = "会员权益副标题不能为空")
private String subTitle; private String subTitle;
@ApiModelProperty(required = false, value = "标注[50]") @ApiModelProperty(required = false, value = "标注[50]")
private String label; private String label;
@ApiModelProperty(required = true, value = "权益封面图片[255]") @ApiModelProperty(required = true, value = "权益封面图片[255]")
@NotNull(message = "会员权益封面图片不能为空")
private String cover; private String cover;
@ApiModelProperty(required = false, value = "详情内容") @ApiModelProperty(required = false, value = "详情内容")
private String detail; private String detail;
@ApiModelProperty(required = true, value = "展示顺序") @ApiModelProperty(required = false, value = "展示顺序")
private Integer seqNo; private Integer seqNo;
} }
...@@ -32,7 +32,7 @@ public class AdamMemberSimpleVo implements Serializable, Cloneable { ...@@ -32,7 +32,7 @@ public class AdamMemberSimpleVo implements Serializable, Cloneable {
} }
public AdamMemberSimpleVo copy(AdamMemberVo source) { public AdamMemberSimpleVo copy(AdamMemberVo source) {
if (null == this) return this; if (null == source) return this;
this.setMemberId(source.getMemberId()); this.setMemberId(source.getMemberId());
this.setName(source.getName()); this.setName(source.getName());
this.setTitle(source.getTitle()); this.setTitle(source.getTitle());
......
...@@ -85,6 +85,8 @@ public class KylinOrderTicketPreVo implements Serializable, Cloneable { ...@@ -85,6 +85,8 @@ public class KylinOrderTicketPreVo implements Serializable, Cloneable {
private Integer isRefundPoundage; private Integer isRefundPoundage;
@ApiModelProperty(value = "是否开启是否退优惠券 0关闭 1开启") @ApiModelProperty(value = "是否开启是否退优惠券 0关闭 1开启")
private Integer isRefundVoucher; private Integer isRefundVoucher;
@ApiModelProperty(value = "isRefundExpress 1用户承担 0无")
private Integer isRefundExpress;
@ApiModelProperty(value = "手续费规则列表") @ApiModelProperty(value = "手续费规则列表")
private ArrayList<OrderRefundPoundage> refundPoundageList; private ArrayList<OrderRefundPoundage> refundPoundageList;
......
...@@ -188,6 +188,9 @@ public class AdamMemberAdminController extends BaseController { ...@@ -188,6 +188,9 @@ public class AdamMemberAdminController extends BaseController {
} else if (StringUtils.isBlank(parameter.getMrightsId())) { } else if (StringUtils.isBlank(parameter.getMrightsId())) {
return AjaxResult.warn("请指定要删除的权益ID"); return AjaxResult.warn("请指定要删除的权益ID");
} }
if (null == parameter.getSeqNo()) {
parameter.setSeqNo(0);
}
return this.toAjax(adamMemberRightsAdminService.edit(parameter)); return this.toAjax(adamMemberRightsAdminService.edit(parameter));
} }
......
...@@ -241,7 +241,7 @@ ...@@ -241,7 +241,7 @@
<input type="text" class="form-control" name="days" placeholder="请输入有效时间" th:value="${memberPrice.days}"/> <input type="text" class="form-control" name="days" placeholder="请输入有效时间" th:value="${memberPrice.days}"/>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group" disabled="none">
<label class="col-sm-2 control-label">双倍积分:</label> <label class="col-sm-2 control-label">双倍积分:</label>
<div class="col-sm-10"> <div class="col-sm-10">
<div class="radio-box"> <div class="radio-box">
......
...@@ -72,23 +72,27 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh ...@@ -72,23 +72,27 @@ public class AdamMemberRightsAdminServiceImpl extends ServiceImpl<AdamMemberRigh
if (isAddFlag) { if (isAddFlag) {
vos.add(AdamMemberRightsVo.getNew().copy(saveOrUpdateInfo)); vos.add(AdamMemberRightsVo.getNew().copy(saveOrUpdateInfo));
} else { } else {
List<AdamMemberRightsVo> finalVos = vos; if (param.getState() == 2) {// 移除
int idx = IntStream.range(0, finalVos.size()) vos.removeIf(r -> r.getMrightsId().equals(param.getMrightsId()));
.filter(i -> finalVos.get(i).getMrightsId().equals(mrightsId))
.findFirst().orElse(-1);
if (-1 == idx) {
vos.add(AdamMemberRightsVo.getNew().copy(saveOrUpdateInfo));
} else { } else {
AdamMemberRightsVo existVo = vos.get(idx); List<AdamMemberRightsVo> finalVos = vos;
int idx = IntStream.range(0, finalVos.size())
.filter(i -> finalVos.get(i).getMrightsId().equals(mrightsId))
.findFirst().orElse(-1);
if (-1 == idx) {
vos.add(AdamMemberRightsVo.getNew().copy(saveOrUpdateInfo));
} else {
AdamMemberRightsVo existVo = vos.get(idx);
existVo.setSeqNo(saveOrUpdateInfo.getSeqNo()); existVo.setSeqNo(saveOrUpdateInfo.getSeqNo());
existVo.setTitle(saveOrUpdateInfo.getTitle()); existVo.setTitle(saveOrUpdateInfo.getTitle());
existVo.setSubTitle(saveOrUpdateInfo.getSubTitle()); existVo.setSubTitle(saveOrUpdateInfo.getSubTitle());
existVo.setLabel(saveOrUpdateInfo.getLabel()); existVo.setLabel(saveOrUpdateInfo.getLabel());
existVo.setCover(saveOrUpdateInfo.getCover()); existVo.setCover(saveOrUpdateInfo.getCover());
existVo.setDetail(saveOrUpdateInfo.getDetail()); existVo.setDetail(saveOrUpdateInfo.getDetail());
vos.set(idx, existVo); vos.set(idx, existVo);
}
} }
} }
redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(param.getMemberId()), vos); redisUtil.set(AdamRedisConst.INFO_MEMBER_RIGHTS.concat(param.getMemberId()), vos);
......
...@@ -62,6 +62,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad ...@@ -62,6 +62,7 @@ public class AdamMemberServiceAdminImpl extends ServiceImpl<AdamMemberMapper, Ad
LambdaQueryWrapper<AdamMember> updateMemberWrapper = Wrappers.lambdaQuery(AdamMember.class).eq(AdamMember::getMemberId, parameter.getMemberId()); LambdaQueryWrapper<AdamMember> updateMemberWrapper = Wrappers.lambdaQuery(AdamMember.class).eq(AdamMember::getMemberId, parameter.getMemberId());
if (adamMemberMapper.update(adamMember, updateMemberWrapper) > 0) { if (adamMemberMapper.update(adamMember, updateMemberWrapper) > 0) {
redisUtil.set(AdamRedisConst.INFO_MEMBER_CATEGORY.concat(vo.getMemberId()), vo); redisUtil.set(AdamRedisConst.INFO_MEMBER_CATEGORY.concat(vo.getMemberId()), vo);
redisUtil.del(AdamRedisConst.INFO_MEMBER_SIMPLE);
return true; return true;
} }
return false; return false;
......
...@@ -451,18 +451,11 @@ public class AdamRdmService { ...@@ -451,18 +451,11 @@ public class AdamRdmService {
public AdamMemberSimpleVo getMemberSimpleVo() { public AdamMemberSimpleVo getMemberSimpleVo() {
long s = System.currentTimeMillis(); long s = System.currentTimeMillis();
AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE); AdamMemberSimpleVo vo = (AdamMemberSimpleVo) redisUtil.get(AdamRedisConst.INFO_MEMBER_SIMPLE);
// if (null == vo) { if (null == vo) {
// long s = System.currentTimeMillis(); vo = AdamMemberSimpleVo.getNew().copy(this.getMemberVoByMemberId("1"));
// List<AdamMemberSimpleVo> vos = mongoTemplate.find(
// Query.query(Criteria.where("state").is(1)).with(Sort.by(Sort.Direction.ASC, "memberId")), if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
// AdamMemberSimpleVo.class, AdamMemberVo.class.getSimpleName() }
// );
// log.debug("#MDB耗时:{}ms", System.currentTimeMillis() - s);
//
// vo = CollectionUtils.isEmpty(vos) ? null : vos.get(0);
//
// if (null != vo) redisUtil.set(AdamRedisConst.INFO_MEMBER_SIMPLE, vo);
// }
log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s); log.debug("#RDM耗时:{}ms", System.currentTimeMillis() - s);
return vo; return vo;
} }
......
...@@ -183,7 +183,7 @@ public class CandyCouponController { ...@@ -183,7 +183,7 @@ public class CandyCouponController {
@RequestParam("timeId") @NotNull @NotBlank String timeId, @RequestParam("timeId") @NotNull @NotBlank String timeId,
@RequestParam("ticketId") @NotNull @NotBlank String ticketId @RequestParam("ticketId") @NotNull @NotBlank String ticketId
) { ) {
CandyUseResultVo result = candyCouponService.useCoupon(uCouponId, content, totalPrice, performanceId, ticketId, timeId, goodId); CandyUseResultVo result = candyCouponService.useCoupon(uCouponId, content, totalPrice, performanceId, timeId,ticketId, goodId);
if (result == null) { if (result == null) {
return ResponseDto.failure(); return ResponseDto.failure();
} }
......
...@@ -277,7 +277,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -277,7 +277,7 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
vo.setValue(dto.getValFace()); vo.setValue(dto.getValFace());
break; break;
case 2: case 2:
if (dto.getValOver().compareTo(new BigDecimal(totalPrice)) >= 0) { if (dto.getValOver().compareTo(new BigDecimal(totalPrice)) <= 0) {
vo.setValue(dto.getValMinus()); vo.setValue(dto.getValMinus());
} else { } else {
vo.setCouType(-1); vo.setCouType(-1);
...@@ -386,6 +386,8 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -386,6 +386,8 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
@Override @Override
public ResponseDto<String> receiveCoupon(String ccode) { public ResponseDto<String> receiveCoupon(String ccode) {
String uid = CurrentUtil.getCurrentUid(); String uid = CurrentUtil.getCurrentUid();
String mobile = (String) CurrentUtil.getTokenClaims().get(CurrentUtil.TOKEN_MOBILE);
CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode); CandyCouponCodeDto dto = redisDataUtils.getCouponByCode(ccode);
LocalDateTime now = LocalDateTime.now(); LocalDateTime now = LocalDateTime.now();
...@@ -404,13 +406,20 @@ public class CandyCouponServiceImpl implements ICandyCouponService { ...@@ -404,13 +406,20 @@ public class CandyCouponServiceImpl implements ICandyCouponService {
//添加baseDto -> baseDtoList //添加baseDto -> baseDtoList
redisDataUtils.addCouponByUid(uid, baseDto); redisDataUtils.addCouponByUid(uid, baseDto);
//入库 //入库
LinkedList<String> toMqSqls = CollectionUtil.linkedListString();
LinkedList<Object[]> objsUserCoupon = CollectionUtil.linkedListObjectArr(),
objsCouponCode = CollectionUtil.linkedListObjectArr();
toMqSqls.add(SqlMapping.get("candy_coupon.receive"));
objsUserCoupon.add(new Object[]{uCouponId, uid, 1, infoDto.getCouponId(), ccode, now, now, infoDto.getExpireAt()});
toMqSqls.add(SqlMapping.get("candy_coupon_code.receive"));
objsCouponCode.add(new Object[]{uid, mobile, now, now, dto.getCouponId(), ccode});
queueUtils.sendMsgByRedis( queueUtils.sendMsgByRedis(
MQConst.CandyQueue.COUPON_RECEIVE.getKey(), MQConst.CandyQueue.COUPON_RECEIVE.getKey(),
SqlMapping.get("candy_coupon.receive", SqlMapping.gets(toMqSqls, objsUserCoupon, objsCouponCode)
uCouponId, uid, 1, infoDto.getCouponId(), ccode, now, now, infoDto.getExpireAt()
)
); );
return ResponseDto.success(uCouponId); return ResponseDto.success(uCouponId);
}else if(dto.getState().equals(1)){
return ResponseDto.failure("兑换已使用");
} else { } else {
return ResponseDto.failure("兑换失败,请稍后再试"); return ResponseDto.failure("兑换失败,请稍后再试");
} }
......
...@@ -6,3 +6,4 @@ candy_coupon.use_insert=INSERT INTO candy_user_coupon (ucoupon_id , uid , state ...@@ -6,3 +6,4 @@ candy_coupon.use_insert=INSERT INTO candy_user_coupon (ucoupon_id , uid , state
candy_coupon.back=UPDATE candy_user_coupon SET state = 1 WHERE uid = ? AND ucoupon_id = ? candy_coupon.back=UPDATE candy_user_coupon SET state = 1 WHERE uid = ? AND ucoupon_id = ?
# -- 领取券 -- # -- 领取券 --
candy_coupon.receive=INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , ccode , bind_at , bind_at, dued_at) VALUE ( ? , ? , ? , ? , ? , ? , ? , ?) candy_coupon.receive=INSERT INTO candy_user_coupon (ucoupon_id , uid , state , coupon_id , ccode , bind_at , bind_at, dued_at) VALUE ( ? , ? , ? , ? , ? , ? , ? , ?)
candy_coupon_code.receive=UPDATE candy_coupon_code SET redeem_uid=?,redeem_mobile=?,redeem_at=?,updated_at=? WHERE coupon_id=? AND ccode=?
...@@ -130,6 +130,7 @@ public class KylinOrderTicketsRefundServiceImpl { ...@@ -130,6 +130,7 @@ public class KylinOrderTicketsRefundServiceImpl {
vo.setOrderCouponList(orderCoupon); vo.setOrderCouponList(orderCoupon);
vo.setRefundAddress(refundAddress); vo.setRefundAddress(refundAddress);
vo.setIsTrueName(performanceVo.getIsTrueName()); vo.setIsTrueName(performanceVo.getIsTrueName());
vo.setIsRefundExpress(performanceVo.getIsRefundExpress());
vo.setEntitiesPreRefundVos(kylinOrderTicketEntitiesPreRefundVos); vo.setEntitiesPreRefundVos(kylinOrderTicketEntitiesPreRefundVos);
return ResponseDto.success(vo); return ResponseDto.success(vo);
} catch (Exception e) { } catch (Exception e) {
......
...@@ -19,6 +19,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo; ...@@ -19,6 +19,7 @@ import com.liquidnet.service.kylin.dto.vo.mongo.KylinOrderTicketVo;
import com.liquidnet.service.kylin.dto.vo.returns.InnerReturnVo; import com.liquidnet.service.kylin.dto.vo.returns.InnerReturnVo;
import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo; import com.liquidnet.service.kylin.dto.vo.returns.KylinOrderListVo;
import com.liquidnet.service.kylin.dto.vo.returns.PayResultVo; import com.liquidnet.service.kylin.dto.vo.returns.PayResultVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.client.methods.HttpRequestBase;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -33,6 +34,7 @@ import java.util.HashMap; ...@@ -33,6 +34,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
@Component @Component
@Slf4j
public class OrderUtils { public class OrderUtils {
@Autowired @Autowired
...@@ -197,10 +199,12 @@ public class OrderUtils { ...@@ -197,10 +199,12 @@ public class OrderUtils {
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString();
header.add("Authorization", "Bearer " + CurrentUtil.getToken()); header.add("Authorization", "Bearer " + CurrentUtil.getToken());
log.info("url="+candyUrl + "/candy-coupon/use");
log.info("params="+JSON.toJSONString(params));
String returnData = HttpUtil.post(candyUrl + "/candy-coupon/use", params, header); String returnData = HttpUtil.post(candyUrl + "/candy-coupon/use", params, header);
InnerReturnVo<CandyUseResultVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<InnerReturnVo<CandyUseResultVo>>() { InnerReturnVo<CandyUseResultVo> innerReturnVo = JsonUtils.fromJson(returnData, new TypeReference<InnerReturnVo<CandyUseResultVo>>() {
}); });
log.info("returnData="+returnData);
CandyUseResultVo candyUseResultVo = innerReturnVo.getData(); CandyUseResultVo candyUseResultVo = innerReturnVo.getData();
Integer type = candyUseResultVo.getCouType(); Integer type = candyUseResultVo.getCouType();
BigDecimal value = candyUseResultVo.getValue(); BigDecimal value = candyUseResultVo.getValue();
......
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