Просмотр исходного кода

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

release_toaliyun_real
lrh 2 лет назад
Родитель
Сommit
a09565abc3
15 измененных файлов: 353 добавлений и 165 удалений
  1. +34
    -4
      mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java
  2. +32
    -3
      mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java
  3. +3
    -0
      mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java
  4. +2
    -2
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  5. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/OrderComposeSaveDto.java
  6. +2
    -0
      mallinkService/src/main/java/com/iformall/domain/dto/OrderSaveDto.java
  7. +6
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java
  8. +9
    -4
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  9. +22
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java
  10. +2
    -1
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  11. +1
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java
  12. +16
    -5
      mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java
  13. +32
    -9
      mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java
  14. +88
    -32
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  15. +102
    -104
      mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v2/miniApp/TtMiniAppPayAdapterService.java

+ 34
- 4
mallinkAdmin/src/main/java/com/iformall/controller/market/WxCouponOrderReservationController.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.controller.market;

import com.github.pagehelper.PageInfo;
import com.iformall.annotation.TenantIgnore;
import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData;
import com.iformall.controller.base.BaseController;
@@ -52,6 +53,34 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(reservation);
}

@ApiOperation(value = "")
@PostMapping("update")
@ApiImplicitParams({
})
public ResultData update(@RequestBody WxCouponOrderReservation reservation) {
if(reservation.getId() == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
reservation.updateTenantInfo(getTenantInfo());
WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortById(reservation.getId(), reservation.getTenantId());
if(sortReservation == null){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error");
}
// if(EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单进行中");
// }
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成");
}
if(EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
if(reservation.getStartDate() != null ){
reservation.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
}
reservation.setRemark("A用户"+getUser().getUsername()+"修改信息");
return wxCouponOrderReservationService.saveOrUpdate(reservation);
}

@ApiOperation(value = "修改状态")
@PostMapping("updateStatus")
@ApiImplicitParams({
@@ -66,13 +95,13 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error");
}
if(EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持派单");
if(!EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持确认");
}
}
if(EnumCouponOrderReservationStatus.reservation.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消");
if(!EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消确认");
}
}

@@ -81,6 +110,7 @@ public class WxCouponOrderReservationController extends BaseController {
updReservation.setId(reservation.getId());
updReservation.setStatus(reservation.getStatus());
updReservation.setRemark(reservation.getRemark());
updReservation.setRemark("A用户"+getUser().getUsername()+"修改状态");
wxCouponOrderReservationService.saveOrUpdate(updReservation);
return new ResultData();
}


+ 32
- 3
mallinkBApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java Просмотреть файл

@@ -52,6 +52,34 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(reservation);
}

@ApiOperation(value = "")
@PostMapping("update")
@ApiImplicitParams({
})
public ResultData update(@RequestBody WxCouponOrderReservation reservation) {
if(reservation.getId() == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL);
}
reservation.updateTenantInfo(getTenantInfo());
WxCouponOrderReservation sortReservation = wxCouponOrderReservationService.getSortById(reservation.getId(), reservation.getTenantId());
if(sortReservation == null){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"id is error");
}
// if(EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
// return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单进行中");
// }
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成");
}
if(EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
if(reservation.getStartDate() != null ){
reservation.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
}
reservation.setRemark("B用户"+getLoginBUser().getPhone()+"修改信息");
return wxCouponOrderReservationService.saveOrUpdate(reservation);
}

@ApiOperation(value = "修改状态")
@PostMapping("updateStatus")
@ApiImplicitParams({
@@ -69,13 +97,13 @@ public class WxCouponOrderReservationController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"查询数据门店不匹配");
}
if(EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(sortReservation.getStatus())){
if(!EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持确认");
}
}
if(EnumCouponOrderReservationStatus.reservation.getCode().equals(reservation.getStatus())){
if(!EnumCouponOrderReservationStatus.reservation_dispatch.getCode().equals(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消");
if(!EnumCouponOrderReservationStatus.getReservationIng().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单状态不支持取消确认");
}
}

@@ -84,6 +112,7 @@ public class WxCouponOrderReservationController extends BaseController {
updReservation.setId(reservation.getId());
updReservation.setStatus(reservation.getStatus());
updReservation.setRemark(reservation.getRemark());
reservation.setRemark("B用户"+getLoginBUser().getPhone()+"修改状态");
wxCouponOrderReservationService.saveOrUpdate(updReservation);
return new ResultData();
}


+ 3
- 0
mallinkCApi/src/main/java/com/iformall/controller/WxCouponOrderReservationController.java Просмотреть файл

@@ -84,6 +84,9 @@ public class WxCouponOrderReservationController extends BaseController {
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(sortReservation.getStatus())){
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"预约单已完成");
}
if(EnumCouponOrderReservationStatus.getReservationInit().contains(sortReservation.getStatus())){
sortReservation.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
}
if(reservation.getCouponOrderId() == null){
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"couponOrderId is null");


+ 2
- 2
mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java Просмотреть файл

@@ -200,8 +200,8 @@ public class WxOrderController extends BaseController {
return map;
}
Map<String,String> couponMap = JSONObject.parseObject(cp_extra, Map.class);
String idstr = couponMap.get("composeOrderId");
composeOrderId = Long.parseLong(idstr);
String composeOrderIdStr = couponMap.get("composeOrderId");
composeOrderId = Long.parseLong(composeOrderIdStr);
tenantId = couponMap.get("tenantId");
}catch(Exception e){
}


+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/dto/OrderComposeSaveDto.java Просмотреть файл

@@ -25,4 +25,6 @@ public class OrderComposeSaveDto implements Serializable {
WxCouponChannel wxCouponChannel;

String extParam;

}

+ 2
- 0
mallinkService/src/main/java/com/iformall/domain/dto/OrderSaveDto.java Просмотреть файл

@@ -19,6 +19,8 @@ public class OrderSaveDto implements Serializable {

private String formId;

private Long fixMerchantId;

//被操作人的ID 供A端使用
private Long userId;


+ 6
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxMerchant.java Просмотреть файл

@@ -166,11 +166,17 @@ public class WxMerchant extends TenantEntity {
@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "联系方式", name = "phone")
private String phone;

@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "券名ID", name = "couponId")
private Long couponId;
@TableField(exist = false)
@io.swagger.annotations.ApiModelProperty(value = "券名称", name = "couponName")
private String couponName;



public String getShopsStr() {
if (shopVos != null && shopVos.size() > 0) {
return String.join("\n",


+ 9
- 4
mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java Просмотреть файл

@@ -138,16 +138,21 @@ public class WxOrder extends TenantEntity {
private String fromId;
public Object getExpParamValue(String key) {
if (StringUtils.isBlank(extParam)) {
JSONObject extParamJson = getExtParamJson();
if (extParamJson == null) {
return null;
}
JSONObject o = JSON.parseObject(extParam);
if (null == o ) {
return extParamJson.get(key);
}

public JSONObject getExtParamJson() {
if (StringUtils.isBlank(extParam)) {
return null;
}
return o.get(key);
return JSON.parseObject(extParam);
}


@TableField(exist = false)
protected List<Long> couponIds;


+ 22
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCouponOrderReservationStatus.java Просмотреть файл

@@ -9,6 +9,7 @@ import java.util.List;
public enum EnumCouponOrderReservationStatus {

//
reservation_create_order(-1, "下单"),
reservation(0, "预约"),
reservation_user_cancellation(1, "用户取消"),
reservation_expire_cancellation(2, "过期取消"),
@@ -46,6 +47,26 @@ public enum EnumCouponOrderReservationStatus {
return message;
}

//预约单预约状态
public static List<Integer> getReservationInit(){
List<Integer> list = new ArrayList<>();
list.add(reservation_create_order.code);
list.add(reservation.code);
list.add(reservation_refuse_dispatch.code);
return list;
}

//预约单取消状态
public static List<Integer> getReservationCancel(){
List<Integer> list = new ArrayList<>();
list.add(reservation_user_cancellation.code);
list.add(reservation_expire_cancellation.code);
list.add(reservation_refund_cancellation.code);
list.add(reservation_refuse_cancellation.code);
return list;
}

//预约单处理中
public static List<Integer> getReservationIng(){
List<Integer> list = new ArrayList<>();
list.add(reservation_dispatch.code);
@@ -53,6 +74,7 @@ public enum EnumCouponOrderReservationStatus {
return list;
}

//预约单已完成
public static List<Integer> getReservationFinish(){
List<Integer> list = new ArrayList<>();
list.add(reservation_finish.code);


+ 2
- 1
mallinkService/src/main/java/com/iformall/service/WxOrderService.java Просмотреть файл

@@ -269,6 +269,7 @@ public interface WxOrderService {

int updateCpsStatus(WxOrder order);

ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods);
ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam,
List<CreateOrderCallback.Good> goods);

}

+ 1
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java Просмотреть файл

@@ -784,7 +784,7 @@ public class WxChartServiceImpl implements WxChartDataService {
floor = Long.parseLong(floorId);
}
List<Long> merchantIds = wxMerchantService.getFloorBuildMerchantIds(tenantEntity, null, building, floor, 0, 0);
if (null != merchantIds) {
if (merchantIds != null) {
query.put("ids", merchantIds);
}
List<Map<String,Object>> mapList = wxMerchantMapper.findBusByFloorId(query);


+ 16
- 5
mallinkService/src/main/java/com/iformall/service/impl/WxCouponOrderReservationServiceImpl.java Просмотреть файл

@@ -80,10 +80,10 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
}
if(record.getStartDate() != null && wxCoupon.getValidStartDate() != null
&& record.getStartDate().before(wxCoupon.getValidStartDate())){
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"当前时间无法预约");
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"预约时间不在有效期内");
}
if(record.getEndDate() != null && record.getEndDate().after(couponOrder.getExpiredTime())){
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"当前时间无法预约");
return new ResultData(ErrorCode.COUPON_CHANNEL_IS_NOT_STARTED.getCode(),"预约时间不在有效期内");
}
record.setCouponTitle(wxCoupon.getTitle());
}
@@ -125,8 +125,11 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
Long id = wxCouponOrderReservationMapper.getIdByCouponOrder(record.getCouponOrderId(),record.getTenantId());
record.setId(id);
}

if (record.getId() == null) {
record.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
if(record.getStatus() == null){
record.setStatus(EnumCouponOrderReservationStatus.reservation.getCode());
}
//record.setId(UUID.randomUUID().toString().replaceAll("-", ""));
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
@@ -134,6 +137,9 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
record.setUpdateDate(now);
wxCouponOrderReservationMapper.insert(record);
} else {
if(record.getRemark() == null){
record.setRemark("");
}
record.setUpdateDate(now);
wxCouponOrderReservationMapper.updateById(record);
}
@@ -177,10 +183,15 @@ public class WxCouponOrderReservationServiceImpl implements WxCouponOrderReserva
if(reservation == null){
return;
}
//预约状态下取消
if(!EnumCouponOrderReservationStatus.reservation.getCode().equals(reservation.getStatus())){
//取消状态 return
if(EnumCouponOrderReservationStatus.getReservationCancel().contains(reservation.getStatus())){
return;
}
//完成状态 return
if(EnumCouponOrderReservationStatus.getReservationFinish().contains(reservation.getStatus())){
return;
}

WxCouponOrderReservation updReservation = new WxCouponOrderReservation();
updReservation.setId(reservation.getId());
updReservation.updateTenantInfo(couponOrder);


+ 32
- 9
mallinkService/src/main/java/com/iformall/service/impl/WxMerchantServiceImpl.java Просмотреть файл

@@ -1140,6 +1140,7 @@ public class WxMerchantServiceImpl implements WxMerchantService {
}

private void initQueryParam(WxMerchant record,boolean hasRentContractInfo,Map<Long,WxRentContract> merchantRentMap) {

if (hasRentContractInfo) {
WxRentContract wxRentContractQ = new WxRentContract();
wxRentContractQ.updateTenantInfo(record);
@@ -1171,31 +1172,53 @@ public class WxMerchantServiceImpl implements WxMerchantService {
// }

List<Long> merchantIds = new ArrayList<Long>();

if (record.getCouponId() != null){
List<Long> couponMerchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(record.getCouponId(), record.getTenantId());
if (null == couponMerchantIds || couponMerchantIds.size() <=0 ) {
record.setId(-999L);
return;
}
merchantIds.addAll(couponMerchantIds);
}

String phone = StringUtils.trimToNull(record.getPhone());
if (null != phone) {
WxMerchantBUser buserQ = new WxMerchantBUser();
buserQ.setPhoneLike(phone);
buserQ.setStatus(0);
List<Long> userMerchantIds = wxMerchantBUserMapper.findMerchantIdList(buserQ);
if (null == userMerchantIds || userMerchantIds.size() <=0 ) {
record.setId(-999L);
return;
}else {
merchantIds.addAll(userMerchantIds);
}
if (null == userMerchantIds || userMerchantIds.size() <=0 ) {
record.setId(-999L);
return;
}
if(merchantIds.size() > 0){
merchantIds.retainAll(userMerchantIds);
if (merchantIds.size() <= 0) {
record.setId(-999L);
return;
}
}else{
merchantIds.addAll(userMerchantIds);
}
}
String floorRule = StringUtils.trimToNull(record.getFloorForRule());
Long building = record.getBuilding();
Long floor = record.getFloor();
List<Long> floorMerchantIds = getFloorBuildMerchantIds(record, floorRule, building, floor, 0, 0);
if (null != floorMerchantIds) {
if(merchantIds.size() > 0){
if(floorMerchantIds != null){
if(merchantIds.size() > 0){
merchantIds.retainAll(floorMerchantIds);
if (merchantIds.size() <= 0) {
record.setId(-999L);
return;
}
}else{
merchantIds.addAll(floorMerchantIds);
}
}
}


// if(EnumProfitSharingUse.YES.getCode().equals(record.getIsUse())){
// if(merchantIds.size() > 0){


+ 88
- 32
mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java Просмотреть файл

@@ -245,6 +245,9 @@ public class WxOrderServiceImpl implements WxOrderService {
@Lazy
@Autowired
private WxOrderServiceHelper wxOrderServiceHelper;

@Autowired
private WxCouponOrderReservationMapper wxCouponOrderReservationMapper;
@Override
@@ -1495,6 +1498,34 @@ public class WxOrderServiceImpl implements WxOrderService {
wxCouponOrderMapper.insert(couponOrder);
}

//
try{
if(EnumCouponType.COUPON_DOUYIN_GO_HOME.getCode().equals(coupon.getType())){
Long fixMerchantId = (Long) order.getExpParamValue("fixMerchantId");
String fixMerchantName = (String) order.getExpParamValue("fixMerchantName");
if(fixMerchantId != null){
WxCouponOrderReservation record = new WxCouponOrderReservation();
record.setId(couponOrder.getId());
record.updateTenantInfo(couponOrder);
record.setCouponOrderId(couponOrder.getId());
record.setCouponId(coupon.getId());
record.setCouponTitle(coupon.getTitle());
record.setReservationMerchantId(fixMerchantId);
record.setReservationMerchantName(fixMerchantName);
record.setcUserId(user.getId());
record.setUserName(user.getName());
record.setUserPhone(user.getPhone());
record.setStatus(EnumCouponOrderReservationStatus.reservation_create_order.getCode());
record.setCreateDate(curr);
record.setUpdateDate(curr);
wxCouponOrderReservationMapper.insert(record);
}
}
}catch(Exception e){
logger.info("添加预约信息error"+e.getMessage());
}


/// 储值卡信息添加
if (isCard) {
Integer fee = 0;
@@ -3007,19 +3038,19 @@ public class WxOrderServiceImpl implements WxOrderService {
WxOrder lastOrder = null;
for (int i = 0 ; i < orderSave.size(); i ++) {
OrderComposeSaveDto orderdto = orderSave.get(i);
//券一个数量创建一个订单
//券一个数量创建一个订单
boolean isOneNumberOneOrder = orderAdapterService.isOneNumberOneOrder();
if (isOneNumberOneOrder) {
for (int j = 0; j < orderdto.getCount(); j++) {
lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), 1,
orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(),
orderdto.getShippingType(),orderdto.getAddress(),null,orderdto.getWxCouponChannel(), payWay,payVersion);
orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion);
}
}else {
lastOrder = proxy.handleSaveOrderForCouponSingle(orderDate,allowUnPayOrder,composeOrder, user, orderdto.getWxCoupon(), orderdto.getCount(),
orderdto.getSignleOrder().isPressOrder(),orderdto.getSignleOrder().getOrderGroupId(),orderdto.getSignleOrder().getFormId(),
orderdto.getShippingType(),orderdto.getAddress(),null,orderdto.getWxCouponChannel(), payWay,payVersion);
orderdto.getShippingType(),orderdto.getAddress(),orderdto.getExtParam(),orderdto.getWxCouponChannel(), payWay,payVersion);
}
}
//如果没有orderId,则用lastOrder的信息
@@ -3233,7 +3264,7 @@ public class WxOrderServiceImpl implements WxOrderService {
//}
record.setCouponNumber(couponNumber);
record.setExtParam(extParam);;
record.setExtParam(extParam);
try {
orderNumber = proxy.saveNoFreeOrder(orderDate,record, user, coupon, isPressOrder);
} catch (Exception e) {
@@ -3731,7 +3762,8 @@ public class WxOrderServiceImpl implements WxOrderService {
}

@Override
public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam, List<CreateOrderCallback.Good> goods) {
public ResultData handlerPushOrder(TenantEntity tenantEntity, Long composeOrderId, String batchExtParam,
List<CreateOrderCallback.Good> goods) {
WxBatchOrder wxBatchOrder = this.getWxBatchOrder(tenantEntity, composeOrderId);
if (wxBatchOrder == null) {
return new ResultData(ErrorCode.ORDER_IS_NOT_FIND);
@@ -3751,34 +3783,41 @@ public class WxOrderServiceImpl implements WxOrderService {
WxComposeOrder composeOrder = orderAdapterService.getComposeOrder(wxBatchOrder.getId(), tenantEntity.getTenantId());

List<Map<String, String>> order_goods_info = new ArrayList<>();
if (goods.size() == 1) {
WxOrder singleOrder = composeOrder.getSingleOrder();
CreateOrderCallback.Good good = goods.get(0);

WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(tenantEntity);
updOrder.setId(singleOrder.getId());
updOrder.setFromId(good.getPoiId());
if (good.getItemOrderInfoList().size() == 1) {
updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList().get(0)));
} else {
updOrder.setExtParam(JSON.toJSONString(good.getItemOrderInfoList()));
}
wxOrderMapper.updateById(updOrder);

if (EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())) {
Map<String, String> map_info = new HashMap<>();
map_info.put("goods_id", good.getGoodsId());
WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(singleOrder.getId());
map_info.put("merchant_uid", childOrderShare.getMerchantUid());
order_goods_info.add(map_info);
composeOrder.setExtParam(order_goods_info);
}
return new ResultData(composeOrder);
} else {
if(goods.size() > 1){
//todo 暂无多订单模式
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "商品数据异常");
}
CreateOrderCallback.Good good = goods.get(0);
if(good.getQuantity() > 1){
//todo 暂无多订单模式
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "数据异常");
return new ResultData(ErrorCode.SYS_PARAMETER_ERROR.getCode(), "商品数据异常");
}
CreateOrderCallback.ItemOrderInfo itemOrderInfo = good.getItemOrderInfoList().get(0);

WxOrder singleOrder = composeOrder.getSingleOrder();
JSONObject extParamJson = singleOrder.getExtParamJson();
if(extParamJson == null){
extParamJson = new JSONObject();
}
extParamJson.put("itemOrderId",itemOrderInfo.getItemOrderId());
extParamJson.put("price",itemOrderInfo.getPrice());

WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(tenantEntity);
updOrder.setId(singleOrder.getId());
updOrder.setFromId(good.getPoiId());
updOrder.setExtParam(extParamJson.toJSONString());
wxOrderMapper.updateById(updOrder);

if (EnumPayMchType.DIRECT.getCode().equals(payOrder.getMchType())) {
Map<String, String> map_info = new HashMap<>();
map_info.put("goods_id", good.getGoodsId());
WxComposeChildOrderShare childOrderShare = payOrder.getChildOrderShare(singleOrder.getId());
map_info.put("merchant_uid", childOrderShare.getMerchantUid());
order_goods_info.add(map_info);
composeOrder.setExtParam(order_goods_info);
}
return new ResultData(composeOrder);

// List<WxOrder> childOrders = orderAdapterService.getChildOrders(composeOrder, tenantEntity.getTenantId());
// Map<Long, List<WxOrder>> collect = childOrders.stream().collect(groupingBy(WxOrder::getCouponChannelId));
@@ -3875,6 +3914,23 @@ public class WxOrderServiceImpl implements WxOrderService {
}
orderComposeSaveDto.getSignleOrder().setCouponId(coupon.getId());
orderComposeSaveDto.setWxCoupon(coupon);

//判断预约商户
Long fixMerchantId = orderComposeSaveDto.getSignleOrder().getFixMerchantId();
if(fixMerchantId != null){
List<Long> couponMerchantIds = wxCouponMerchantMapper.findMerchantIdListByProduct(coupon.getId(), coupon.getTenantId());
if(!couponMerchantIds.contains(fixMerchantId)){
throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_EQUAL.getCode(),premsg+"预约商户不匹配");
}
WxMerchant merchant = wxMerchantMapper.selectById(fixMerchantId);
if(merchant == null){
throw new MallinkException(ErrorCode.MERCHANT_INFO_NOT_FOUND.getCode(),premsg+"预约商户未找到");
}
JSONObject extJson = new JSONObject();
extJson.put("fixMerchantId",fixMerchantId);
extJson.put("fixMerchantName",merchant.getName());
orderComposeSaveDto.setExtParam(extJson.toJSONString());
}
//判断是否是拼团订单,如果是拼团订单,判断现在进行中的,和已完成的数量是否超出券的限制
if (coupon.getType().equals(EnumCouponType.COUPON_GROUP.getCode())) {


+ 102
- 104
mallinkService/src/main/java/com/iformall/service/pay/service/pay/douyin/v2/miniApp/TtMiniAppPayAdapterService.java Просмотреть файл

@@ -71,111 +71,109 @@ public class TtMiniAppPayAdapterService extends BaseTtPayAdapterService implemen
public PayAdapterResult pay(WxPayAccount payAccount,WxPayOrder record,WxComposeOrder composeOrder,List<WxOrder> childOrders,
String productName,WxAppinfo appInfo,Date currentDate, PayExtraParam params,boolean isFreezen) throws Exception {
//抖音支付1.0,已经不再支持
if(true){
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
}

//todo 去掉抖音低版本兼容
if(!record.isCreatPay()){
if(StringUtils.isBlank(record.getPayParam())){
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
}
record.setUpdateTime(new Date());
PayAdapterResult par = new PayAdapterResult();
par.setSuccess(true);
par.setTransactionId(record.getTransactionId());
par.setData(JSONObject.parseObject(record.getPayParam()));
return par;
}
if (null == params ) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
}
String openId = (String) params.getValue("openId");
if (StringUtils.isBlank(openId) ) {
throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
}

// throw new Exception("请升级抖音版本");

// 新下单接口
TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount);
TtPayUnifiedOrderV2Request request = new TtPayUnifiedOrderV2Request();
List<TtPayUnifiedOrderV2Request.Good> goods = new ArrayList<>();

OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder());
List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId());

if(orderList.size() > 1){
//todo 暂无多订单
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
}
throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");

WxOrder order = orderList.get(0);

TtPayUnifiedOrderV2Request.Good good = new TtPayUnifiedOrderV2Request.Good();
good.setQuantity(order.getCouponNumber());
WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId(), order.getTenantId());
good.setGoodsId(couponChannel.getTtSpuId());
good.setGoodsIdType(1);//poi商品固定传1
if (EnumPayMchType.DIRECT.getCode().equals(record.getMchType())) {
WxComposeChildOrderShare childOrderShare = record.getChildOrderShare(order.getId());
good.setMerchantUid(childOrderShare.getMerchantUid());
}
goods.add(good);

request.setGoodsList(goods);
request.setTotalAmount(composeOrder.getPayment());
request.setOpenId(openId);
request.setOutOrderNo(record.getPayOrderNo());
request.setPayExpireSeconds(14*60);
TtPayUnifiedOrderV2Request.PageEntry pageEntry = new TtPayUnifiedOrderV2Request.PageEntry();
pageEntry.setPath(Constant.mainPageUrl);
Map<String,String> paramMap = new HashMap<>();
paramMap.put("type","dt");
paramMap.put("tenantId",composeOrder.getTenantId());
paramMap.put("orderId",composeOrder.getMainOrderId().toString());
pageEntry.setParams(JSON.toJSONString(paramMap));
request.setOrderEntrySchema(pageEntry);

request.setCpExtra(getCallbackData(record));

TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request);

if(orderV2.getItemOrderInfoList().size() > 1){
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
}
TtPayUnifiedOrderV2Result.ItemOrderInfo itemOrderInfo = orderV2.getItemOrderInfoList().get(0);
if(itemOrderInfo.getItemOrderDetail().size() > 1){
throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
}

JSONObject allExtParam = new JSONObject();
allExtParam.put("order_id",orderV2.getOrderId());
allExtParam.put("total_amount",composeOrder.getPayment());
allExtParam.put("open_id",openId);
WxBatchOrder batchOrder = new WxBatchOrder();
batchOrder.updateTenantInfo(appInfo);
batchOrder.setId(composeOrder.getMainOrderId());
batchOrder.setExtParam(JSON.toJSONString(allExtParam));
wxBatchOrderMapper.updateById(batchOrder);

WxOrder updOrder = new WxOrder();
updOrder.updateTenantInfo(order);
updOrder.setId(order.getId());
updOrder.setExtParam(JSON.toJSONString(itemOrderInfo.getItemOrderDetail().get(0)));
wxOrderMapper.updateById(updOrder);

orderV2.setItemOrderInfoList(null);
// record.setPrepayId(orderV2.getPayOrderId());
record.setPayParam(JSON.toJSONString(orderV2));
record.setTransactionId(orderV2.getOrderId());
record.setUpdateTime(new Date());

PayAdapterResult par = new PayAdapterResult();
par.setSuccess(true);
par.setTransactionId(orderV2.getOrderId());
par.setData(orderV2);
return par;
// //todo 去掉抖音低版本兼容
// if(!record.isCreatPay()){
// if(StringUtils.isBlank(record.getPayParam())){
// throw new MallinkException(ErrorCode.SYS_AUTH_ERROR.getCode(),"请升级抖音版本");
// }
// record.setUpdateTime(new Date());
// PayAdapterResult par = new PayAdapterResult();
// par.setSuccess(true);
// par.setTransactionId(record.getTransactionId());
// par.setData(JSONObject.parseObject(record.getPayParam()));
// return par;
// }
// if (null == params ) {
// throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
// }
// String openId = (String) params.getValue("openId");
// if (StringUtils.isBlank(openId) ) {
// throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(),"openId为空");
// }
//
//// throw new Exception("请升级抖音版本");
//
// // 新下单接口
// TtPayService ttPayService = maUtil.getTtPayService(appInfo, payAccount);
// TtPayUnifiedOrderV2Request request = new TtPayUnifiedOrderV2Request();
// List<TtPayUnifiedOrderV2Request.Good> goods = new ArrayList<>();
//
// OrderAdapterService orderAdapterService = orderFactory.getOrderAdapterService(record.getComposeOrder());
// List<WxOrder> orderList = orderAdapterService.getChildOrders(composeOrder, appInfo.getTenantId());
//
// if(orderList.size() > 1){
// //todo 暂无多订单
// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
// }
//
// WxOrder order = orderList.get(0);
//
// TtPayUnifiedOrderV2Request.Good good = new TtPayUnifiedOrderV2Request.Good();
// good.setQuantity(order.getCouponNumber());
// WxCouponChannel couponChannel = wxCouponChannelMapper.selectById(order.getCouponChannelId(), order.getTenantId());
// good.setGoodsId(couponChannel.getTtSpuId());
// good.setGoodsIdType(1);//poi商品固定传1
// if (EnumPayMchType.DIRECT.getCode().equals(record.getMchType())) {
// WxComposeChildOrderShare childOrderShare = record.getChildOrderShare(order.getId());
// good.setMerchantUid(childOrderShare.getMerchantUid());
// }
// goods.add(good);
//
// request.setGoodsList(goods);
// request.setTotalAmount(composeOrder.getPayment());
// request.setOpenId(openId);
// request.setOutOrderNo(record.getPayOrderNo());
// request.setPayExpireSeconds(14*60);
// TtPayUnifiedOrderV2Request.PageEntry pageEntry = new TtPayUnifiedOrderV2Request.PageEntry();
// pageEntry.setPath(Constant.mainPageUrl);
// Map<String,String> paramMap = new HashMap<>();
// paramMap.put("type","dt");
// paramMap.put("tenantId",composeOrder.getTenantId());
// paramMap.put("orderId",composeOrder.getMainOrderId().toString());
// pageEntry.setParams(JSON.toJSONString(paramMap));
// request.setOrderEntrySchema(pageEntry);
//
// request.setCpExtra(getCallbackData(record));
//
// TtPayUnifiedOrderV2Result orderV2 = ttPayService.createOrderV2(request);
//
// if(orderV2.getItemOrderInfoList().size() > 1){
// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
// }
// TtPayUnifiedOrderV2Result.ItemOrderInfo itemOrderInfo = orderV2.getItemOrderInfoList().get(0);
// if(itemOrderInfo.getItemOrderDetail().size() > 1){
// throw new MallinkException(ErrorCode.SYS_PARAMETER_ERROR.getCode(),"数据异常");
// }
//
// JSONObject allExtParam = new JSONObject();
// allExtParam.put("order_id",orderV2.getOrderId());
// allExtParam.put("total_amount",composeOrder.getPayment());
// allExtParam.put("open_id",openId);
// WxBatchOrder batchOrder = new WxBatchOrder();
// batchOrder.updateTenantInfo(appInfo);
// batchOrder.setId(composeOrder.getMainOrderId());
// batchOrder.setExtParam(JSON.toJSONString(allExtParam));
// wxBatchOrderMapper.updateById(batchOrder);
//
// WxOrder updOrder = new WxOrder();
// updOrder.updateTenantInfo(order);
// updOrder.setId(order.getId());
// updOrder.setExtParam(JSON.toJSONString(itemOrderInfo.getItemOrderDetail().get(0)));
// wxOrderMapper.updateById(updOrder);
//
// orderV2.setItemOrderInfoList(null);
//// record.setPrepayId(orderV2.getPayOrderId());
// record.setPayParam(JSON.toJSONString(orderV2));
// record.setTransactionId(orderV2.getOrderId());
// record.setUpdateTime(new Date());
//
// PayAdapterResult par = new PayAdapterResult();
// par.setSuccess(true);
// par.setTransactionId(orderV2.getOrderId());
// par.setData(orderV2);
// return par;

//
//


Загрузка…
Отмена
Сохранить