Explorar el Código

[A端][更改]:购买发券逻辑

release_toaliyun_real
hupeng hace 7 años
padre
commit
b75018eacc
Se han modificado 8 ficheros con 70 adiciones y 26 borrados
  1. +1
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java
  2. +1
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/WxCouponSendController.java
  3. +2
    -1
      mallinkService/src/main/java/com/iformall/enums/EnumCouponSendSendType.java
  4. +0
    -8
      mallinkService/src/main/java/com/iformall/service/WxCouponSendConfigService.java
  5. +2
    -2
      mallinkService/src/main/java/com/iformall/service/WxCouponSendService.java
  6. +2
    -2
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java
  7. +43
    -3
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java
  8. +19
    -7
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java

+ 1
- 1
mallinkAdmin/src/main/java/com/iformall/controller/WxCarCallBackController.java Ver fichero

@@ -109,7 +109,7 @@ public class WxCarCallBackController extends BaseController {
// TODO 可能多用户关联同一张车牌 // TODO 可能多用户关联同一张车牌
List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ); List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ);
for (WxCUserCar userCar : userCarList) { for (WxCUserCar userCar : userCarList) {
wxCouponSendService.sendCouponToUser(tenantId, userCar.getCUserId(), EnumCouponSendSendType.CAR_STOP);
wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar);
} }
} }




+ 1
- 2
mallinkAdmin/src/main/java/com/iformall/controller/WxCouponSendController.java Ver fichero

@@ -67,6 +67,7 @@ public class WxCouponSendController extends BaseController {
if (wxCouponSendList != null && wxCouponSendList.size() > 0) { if (wxCouponSendList != null && wxCouponSendList.size() > 0) {
return new ResultData(ErrorCode.COUPON_SEND_IS_EXISTED); return new ResultData(ErrorCode.COUPON_SEND_IS_EXISTED);
} }

WxCoupon wxCoupon = wxCouponService.getById(wxCouponSend.getCouponId()); WxCoupon wxCoupon = wxCouponService.getById(wxCouponSend.getCouponId());
if (!wxCoupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_THROW_IN.getCode()) ){ if (!wxCoupon.getStatus().equals(EnumCouponStatus.COUPON_STATUS_THROW_IN.getCode()) ){
return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF); return new ResultData(ErrorCode.COUPON_IS_TAKE_OFF);
@@ -99,8 +100,6 @@ public class WxCouponSendController extends BaseController {
@ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true) @ApiImplicitParam(name = "id", value = "id", dataType = "Long", paramType = "query", required = true)
public ResultData delete(Long id) { public ResultData delete(Long id) {
logger.debug("[" + getIpAddr() + "] WxCouponSendController::delete"); logger.debug("[" + getIpAddr() + "] WxCouponSendController::delete");
//wxCouponSendService.deleteById(id);
//return new ResultData(Result.SUCCESS, "删除成功", null);
WxCouponSend wxCouponSend = wxCouponSendService.getById(id); WxCouponSend wxCouponSend = wxCouponSendService.getById(id);
if (wxCouponSend == null) if (wxCouponSend == null)
return new ResultData(ErrorCode.COUPON_SEND_IS_INVALID); return new ResultData(ErrorCode.COUPON_SEND_IS_INVALID);


+ 2
- 1
mallinkService/src/main/java/com/iformall/enums/EnumCouponSendSendType.java Ver fichero

@@ -11,7 +11,8 @@ public enum EnumCouponSendSendType {
ACTIVE(1, "主动(保留)"), ACTIVE(1, "主动(保留)"),
CAR_STOP(2, "停车发券"), CAR_STOP(2, "停车发券"),
COUPON_VERIFY(3, "核销发券"), COUPON_VERIFY(3, "核销发券"),
B_MICROPAY(4, "B端刷卡发券")
B_MICROPAY(4, "B端刷卡发券"),
C_ORDER(5, "购买发券")
; ;


public static EnumCouponSendSendType getEnum(Integer code) { public static EnumCouponSendSendType getEnum(Integer code) {


+ 0
- 8
mallinkService/src/main/java/com/iformall/service/WxCouponSendConfigService.java Ver fichero

@@ -23,12 +23,4 @@ public interface WxCouponSendConfigService {
*/ */
void update(WxCouponSendConfig record); void update(WxCouponSendConfig record);




} }

+ 2
- 2
mallinkService/src/main/java/com/iformall/service/WxCouponSendService.java Ver fichero

@@ -44,9 +44,9 @@ public interface WxCouponSendService {
* @param cUserId * @param cUserId
* @param type 2:停车发券 3:核销发券 * @param type 2:停车发券 3:核销发券
*/ */
boolean sendCouponToUser(String tenantId, Long cUserId, EnumCouponSendSendType type);
boolean sendCouponToUser(EnumCouponSendSendType type, Object param);


void updateStatusByCouponId(Long couponId,String tenantId,int status);
void updateStatusByCouponId(Long couponId,String tenantId, int status);


+ 2
- 2
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderServiceImpl.java Ver fichero

@@ -396,7 +396,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(couponOrder.getOrderId()); WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(couponOrder.getOrderId());
if (wxOrder != null) { if (wxOrder != null) {
try { try {
return wxCouponSendService.sendCouponToUser(bUser.getTenantId(), wxOrder.getcUserId(), EnumCouponSendSendType.COUPON_VERIFY);
return wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.COUPON_VERIFY, wxOrder);
} catch (Exception e) { } catch (Exception e) {
logger.error("核销发券: " + e.getMessage()); logger.error("核销发券: " + e.getMessage());
} }
@@ -410,7 +410,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService {
WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(orderId); WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(orderId);
if (wxOrder != null) { if (wxOrder != null) {
try { try {
return wxCouponSendService.sendCouponToUser(tenantId, cUserId, EnumCouponSendSendType.B_MICROPAY);
return wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.B_MICROPAY, wxOrder);
} catch (Exception e) { } catch (Exception e) {
logger.error("B端刷卡支付发券: " + e.getMessage()); logger.error("B端刷卡支付发券: " + e.getMessage());
} }


+ 43
- 3
mallinkService/src/main/java/com/iformall/service/impl/WxCouponSendServiceImpl.java Ver fichero

@@ -68,12 +68,47 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
wxCouponSendMapper.deleteByPrimaryKey(id); wxCouponSendMapper.deleteByPrimaryKey(id);
} }


private boolean isConditionAllowed(WxCouponSend wxCouponSend, Object param) {

if (wxCouponSend.getSendType().equals(EnumCouponSendSendType.C_ORDER.getCode())){
WxOrder wxOrder = (WxOrder)param;
if (wxCouponSend.getCondition() == null)
return true;
if (wxOrder.getProductId().equals(Long.valueOf(wxCouponSend.getCondition())))
return true;
return false;
}
return true;
}

@Override @Override
@Transactional @Transactional
public boolean sendCouponToUser(String tenantId, Long cUserId, EnumCouponSendSendType type) {
//查询开关是否打开
public boolean sendCouponToUser(EnumCouponSendSendType type, Object param) {

String tenantId;
Long cUserId;
switch (type) {
case CAR_STOP:
if (!param.getClass().equals(WxCUserCar.class))
return false;
WxCUserCar wxCUserCar= (WxCUserCar)param;
cUserId = wxCUserCar.getCUserId();
tenantId = wxCUserCar.getTenantId();
break;
case COUPON_VERIFY:
case B_MICROPAY:
case C_ORDER:
if (!param.getClass().equals(WxOrder.class))
return false;
WxOrder order = (WxOrder)param;
cUserId = order.getcUserId();
tenantId = order.getTenantId();
break;
default:
return false;
}


//查询停车或者核销的券 stopCarCouponSwitch, verifyCouponSwitch, microPayCouponSwitch
//查询开关是否打开
WxCouponSendConfig wxCouponSendConfig = new WxCouponSendConfig(); WxCouponSendConfig wxCouponSendConfig = new WxCouponSendConfig();
wxCouponSendConfig.setSendType(type.getCode()); wxCouponSendConfig.setSendType(type.getCode());
wxCouponSendConfig.setTenantId(tenantId); wxCouponSendConfig.setTenantId(tenantId);
@@ -114,6 +149,11 @@ public class WxCouponSendServiceImpl implements WxCouponSendService {
if (!checkLimit) { if (!checkLimit) {
continue; continue;
} }

//检查条件
if (!isConditionAllowed(send,param))
continue;

// 发放免费券 // 发放免费券
WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId()); WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId());
if (couponOrder != null) { if (couponOrder != null) {


+ 19
- 7
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Ver fichero

@@ -92,6 +92,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Autowired @Autowired
WxCardInfoMapper wxCardInfoMapper; WxCardInfoMapper wxCardInfoMapper;


@Autowired
WxCouponSendService wxCouponSendService;

@Override @Override
public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) { public PageInfo<WxOrder> listAsPage(WxOrder record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record)); return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findList(record));
@@ -763,13 +766,22 @@ public class WxOrderServiceImpl implements WxOrderService {
logger.error("订单更新失败:" + e.getMessage()); logger.error("订单更新失败:" + e.getMessage());
throw new MallinkException(ErrorCode.ORDER_UPDATE_ERR); throw new MallinkException(ErrorCode.ORDER_UPDATE_ERR);
} }
// 创建couponOrder
try {
createCouponOrder(user, updateOrder, coupon);
} catch (Exception e) {
logger.error("保存订单:" + e.getMessage());
throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR);
}

// 创建couponOrder
try {
createCouponOrder(user, updateOrder, coupon);
} catch (Exception e) {
logger.error("保存订单:" + e.getMessage());
throw new MallinkException(ErrorCode.COUPON_ORDER_SAVE_ERR);
}

// 发券couponOrder
try {
wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.C_ORDER,updateOrder);
} catch (Exception e) {
logger.error("订单发券:" + e.getMessage());
}



// 成长值 计算 // 成长值 计算
try { try {


Cargando…
Cancelar
Guardar