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

fix order优化

release_toaliyun_real
winter 4 лет назад
Родитель
Сommit
6e5efa2250
9 измененных файлов: 136 добавлений и 10 удалений
  1. +3
    -1
      mallinkCApi/src/main/java/com/iformall/controller/WxOrderController.java
  2. +2
    -1
      mallinkService/src/main/java/com/iformall/domain/po/WxOrder.java
  3. +41
    -0
      mallinkService/src/main/java/com/iformall/domain/vo/WxOrderCouponVo.java
  4. +2
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxCouponMapper.java
  5. +1
    -1
      mallinkService/src/main/java/com/iformall/mapper/WxOrderMapper.java
  6. +1
    -1
      mallinkService/src/main/java/com/iformall/service/WxOrderService.java
  7. +73
    -4
      mallinkService/src/main/java/com/iformall/service/impl/WxOrderServiceImpl.java
  8. +1
    -1
      mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml
  9. +12
    -1
      mallinkService/src/main/resources/mapper/WxCouponMapper.xml

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

@@ -195,7 +195,8 @@ public class WxOrderController extends BaseController {
}
wxOrder.setCUserId(memberId);
wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize);
wxOrder.updateTenantInfo(getTenantInfo());
final PageInfo<WxOrderCouponVo> page = wxOrderService.listCUserVoAsPage(wxOrder, pageNum, pageSize,false);

Date now = new Date();
page.getList().stream().forEach(oc->{
@@ -532,6 +533,7 @@ public class WxOrderController extends BaseController {
}
wxOrder.setCUserId(memberId);
wxOrder.setSortColumns(BaseEntity.SortField.UpdateDate_DESC);
wxOrder.updateTenantInfo(getTenantInfo());
final PageInfo<WxOrderCouponVo> page = wxOrderService.listGoodsCAsPage(wxOrder, pageNum, pageSize);

return new ResultData(page);


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

@@ -115,7 +115,8 @@ public class WxOrder extends TenantEntity {
private Long parentOrderId;



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


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

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.iformall.common.SortColumn;
import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxOrder;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -156,5 +157,45 @@ public class WxOrderCouponVo extends TenantEntity {

@TableField(exist = false)
private List<WxCoupon> giftCouponList;
public void initByOrder(WxOrder o) {
this.id = o.getId();
this.orderNumber = o.getOrderNumber();
this.tenantId = o.getTenantId();
this.parentTenantId = o.getParentTenantId();
this.cUserId = o.getCUserId();
this.couponChannelId = o.getCouponChannelId();
this.productId = o.getProductId();
this.paymentType = o.getPaymentType();
this.payment = o.getPayment();
this.paymentTime = o.getPaymentTime();
this.orderStatus = o.getOrderStatus();
this.createDate = o.getCreateDate();
this.updateDate = o.getUpdateDate();
this.composeOrderType = o.getComposeOrderType();
this.composeOrderId = o.getComposeOrderId();
this.couponNumber = o.getCouponNumber();
this.freightPrice = o.getFreightPrice();
this.shippingType = o.getShippingType();
this.shippingAddress = o.getShippingAddress();
this.parentOrderId = o.getParentOrderId();
}
public void initByCoupon(WxCoupon c) {
this.setType(c.getType());
this.setCoverImg(c.getCoverImg());
this.setTitle(c.getTitle());
this.setSubTitle(c.getSubTitle());
this.setSalePrice(c.getSalePrice());
this.setUsePrice(c.getUsePrice());
this.setPrice(c.getPrice());
this.setTailPrice(c.getTailPrice());
this.setOrigPrice(c.getOrigPrice());
this.setUnit(c.getUnit());
this.setValidStartDate(c.getValidStartDate());
this.setValidEndDate(c.getValidEndDate());
this.setPickStartDate(c.getPickStartDate());
this.setPickEndDate(c.getPickEndDate());
}

}

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

@@ -113,4 +113,6 @@ public interface WxCouponMapper extends CommonMapper<WxCoupon, Long> {
* @return
*/
List<WxCoupon> newfindCList(WxCoupon couponQ);
List<Long> findIdsListHasConditons(WxCoupon couponQ);
}

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

@@ -29,7 +29,7 @@ public interface WxOrderMapper extends CommonMapper<WxOrder, Long> {

List<WxOrder> findListOfUnpaidGroupOrderByDate(Map dateMap);
List<WxOrderCouponVo> findListOfCUser(WxOrder wxOrder);
List<WxOrder> findListOfCUser(WxOrder wxOrder);
List<WxOrderCouponVo> selectDetailOfCUser(WxOrder wxOrder);

/** B端收银台(收款码支付) */


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

@@ -157,7 +157,7 @@ public interface WxOrderService {



PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize);
PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize,boolean hasMerchant);


WxOrderCouponVo detailCUserVo(WxOrder record);


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

@@ -470,6 +470,13 @@ public class WxOrderServiceImpl implements WxOrderService {
statusS.add(EnumOrderStatus.ORDER_STATUS_COOPERATING_COMPLETE_REFUND.getCode());

orderQ.setStatusS(statusS);
WxCoupon couponQ = new WxCoupon();
couponQ.setTenantId(subTenantId);
List<Long> couponIds = wxCouponMapper.findIdsListHasConditons(couponQ);
if (null == couponIds || couponIds.size() <= 0 ) {
return 0;
}
orderQ.setCouponIds(couponIds);
return wxOrderMapper.countCouponConditionType1(orderQ);
} catch (Exception e) {
logger.error("用户正在参加的新手活动, userId: " + cuserId + ", e:" + e.getMessage());
@@ -1830,8 +1837,67 @@ public class WxOrderServiceImpl implements WxOrderService {
}

@Override
public PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfCUser(record));
public PageInfo<WxOrderCouponVo> listCUserVoAsPage(WxOrder record, Integer pageIndex, Integer pageSize,boolean hasMerchant) {
PageInfo<WxOrder> pageInfo = PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> wxOrderMapper.findListOfCUser(record));
PageInfo<WxOrderCouponVo> retPageInfo = new PageInfo<WxOrderCouponVo>();
retPageInfo.setPageNum(pageInfo.getPageNum());
retPageInfo.setPageSize(pageInfo.getPageSize());
retPageInfo.setPages(pageInfo.getPages());
retPageInfo.setTotal(pageInfo.getTotal());
retPageInfo.setList(toOrderCouponVoList(record,pageInfo.getList(),hasMerchant));
return retPageInfo;
}
private List<WxOrderCouponVo> toOrderCouponVoList(TenantEntity tenantEntity,List<WxOrder> orderList,boolean hasMerchant) {
if (null == orderList || orderList.size() <=0 ) {
return null;
}
Map<Long,WxCoupon> couponMap = new HashMap<Long,WxCoupon>();
List<Long> couponIds = new ArrayList<Long>();
for (int i = 0 ; i < orderList.size() ; i ++) {
WxOrder o = orderList.get(i);
if (null != o && null != o.getProductId()) {
if (!couponIds.contains(o.getProductId())) {
couponIds.add(o.getProductId());
}
}
}
if (couponIds.size() > 0 ) {
WxCoupon wxCouponQ = new WxCoupon();
wxCouponQ.updateTenantInfo(tenantEntity);
wxCouponQ.setIds(couponIds);
List<WxCoupon> couponList = wxCouponMapper.findTenantSimpleList(wxCouponQ);
if (null != couponList) {
for (int i = 0 ; i < couponList.size() ; i ++) {
WxCoupon c = couponList.get(i);
if (null != c) {
couponMap.put(c.getId(), c);
}
}
}
}
List<WxOrderCouponVo> retList = new ArrayList<WxOrderCouponVo>();
for (int i = 0 ; i < orderList.size() ; i ++) {
WxOrder o = orderList.get(i);
if (null != o ) {
WxOrderCouponVo vo = new WxOrderCouponVo();
vo.initByOrder(o);
if (null != o.getProductId()) {
WxCoupon c = couponMap.get(o.getProductId());
if (null != c) {
vo.initByCoupon(c);
}
if (hasMerchant) {
vo.setMerchantVoList(wxMerchantService.findMerchantListByProduct(tenantEntity, o.getProductId(), false));
}
}
retList.add(vo);
}
}
if (retList.size() <=0 ) {
return null;
}
return retList;
}

@Override
@@ -2657,14 +2723,17 @@ public class WxOrderServiceImpl implements WxOrderService {
if(oc.getLevel().equals(1)){
record.setComposeOrderId(oc.getComposeOrderId());
record.setOrderStatus(oc.getOrderStatus());
List<WxOrderCouponVo> orderCouponVoList = wxOrderMapper.findListOfCUser(record);
PageInfo<WxOrderCouponVo> pageInfo = listCUserVoAsPage(record,1,10000,false);
List<WxOrderCouponVo> orderCouponVoList = pageInfo.getList();
//查询子订单
oc.setOrderCouponVoList(orderCouponVoList);
}
});

return page;
}
private WxCoupon singleOrderCheck(OrderSaveDto orderSaveDto,int productCount,WxCUserBasicInfo wxCUserBasicInfo,EnumPayWay payWay,TenantEntity tenantEntity,int curindex,boolean singleProduct) {
logger.info("OrderSave: " + orderSaveDto);
String premsg = "";


+ 1
- 1
mallinkService/src/main/resources/mapper/WxCouponChannelMapper.xml Просмотреть файл

@@ -179,7 +179,7 @@
</select>

<select id="countCouponChannel" parameterType="com.iformall.domain.po.WxCouponChannel" resultType="java.lang.Integer">
select count(*) from wx_coupon_channel cc
select count(1) from wx_coupon_channel cc
<include refid="dynamicWhereConditions" />
</select>



+ 12
- 1
mallinkService/src/main/resources/mapper/WxCouponMapper.xml Просмотреть файл

@@ -324,7 +324,8 @@
</select>
<select id="findTenantSimpleList" parameterType="com.iformall.domain.po.WxCoupon" resultMap="BaseResultMap">
select id,title,sale_price,use_price,price,auto_refund,business,subsidy_type,source_type,type,unit,cover_img,sub_title,valid_type,valid_start_date,valid_end_date
select id,title,sale_price,use_price,price,tail_price,orig_price,auto_refund,business,subsidy_type,source_type,type,unit,cover_img,
sub_title,valid_type,valid_start_date,valid_end_date,pick_start_date,pick_end_date
from wx_coupon c where c.`tenant_id` = #{tenantId}
<if test=" null != ids ">
and id in
@@ -1279,4 +1280,14 @@
</if>
</select>
<select id="findIdsListHasConditons" parameterType="com.iformall.domain.po.WxCoupon" resultType="Long">
select c.id
from wx_coupon c
where o.`tenant_id` = #{tenantId} and c.conditions is not null
/*and JSON_EXTRACT(c.conditions, '$.type') = 1*/
<if test=" null != parentTenantId and '' != parentTenantId">
and o.`parent_tenant_id` = #{parentTenantId}
</if>
</select>
</mapper>

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