From d8d6661b4736e5de37d4a158b8286509b748d62b Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 22 一月 2026 18:16:54 +0800
Subject: [PATCH] 经销商管理
---
server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 385 +++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 304 insertions(+), 81 deletions(-)
diff --git a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
index f098231..7634794 100644
--- a/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
+++ b/server/dmmall_service/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -1,5 +1,6 @@
package com.doumee.service.business.impl;
+import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.doumee.biz.system.SystemDictDataBiz;
@@ -24,6 +25,7 @@
import com.doumee.dao.web.request.*;
import com.doumee.dao.web.request.goods.*;
import com.doumee.dao.web.response.HomeInfoResponse;
+import com.doumee.dao.web.response.MailConfigResponse;
import com.doumee.dao.web.response.MyPageResponse;
import com.doumee.dao.web.response.goods.*;
import com.doumee.service.business.AreasService;
@@ -37,9 +39,11 @@
import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
+import com.github.binarywang.wxpay.bean.result.WxPayRefundV3Result;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import io.swagger.models.auth.In;
import okhttp3.Address;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
@@ -74,6 +78,8 @@
@Autowired
private GoodsorderMapper goodsorderMapper;
@Autowired
+ private UserActionMapper userActionMapper;
+ @Autowired
private ActivitySignMapper activitySignMapper;
@Autowired
private AftersaleMapper aftersaleMapper;
@@ -81,6 +87,12 @@
private ShopGoodsRelationMapper shopGoodsRelationMapper;
@Autowired
private MemberMapper memberMapper;
+ @Autowired
+ private CouponMapper couponMapper;
+ @Autowired
+ private MemberCouponJoinMapper memberCouponJoinMapper;
+ @Autowired
+ private InviteRecordMapper inviteRecordMapper;
@Autowired
private GoodsorderDetailMapper goodsorderDetailMapper;
@@ -230,22 +242,47 @@
@Override
public void orderSendOutGoods(Goodsorder goodsorder) {
LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-
+ if(StringUtils.isBlank(goodsorder.getKdCode()) ||StringUtils.isBlank(goodsorder.getKdName())){
+ throw new BusinessException(ResponseStatus.BAD_REQUEST);
+ }
Goodsorder query=goodsorderMapper.selectById(goodsorder.getId());
if(query==null){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),ResponseStatus.DATA_EMPTY.getMessage());
}
- if(!Constants.equalsInteger(query.getStatus(),Constants.ONE)){
+ if(!Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.PAY_DONE.getKey())
+ && !Constants.equalsInteger(query.getStatus(),Constants.OrderStatus.WAIT_RECEIVE.getKey())){
throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆锛岃鍒锋柊椤甸潰锛�");
}
- goodsorder.setEditDate(new Date());
- goodsorder.setEditor(user.getId());
- goodsorder.setKdDate(new Date());
- goodsorder.setKdUser(user.getId());
- goodsorder.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey());
- goodsorderMapper.updateById(goodsorder);
+ if(!Constants.equalsInteger(query.getReceiveType(),Constants.ZERO)){
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ヨ鍗曟湁瀹㈡埛鍒板簵鑷彁锛屾棤闇�鍙戣揣鎿嶄綔锛�");
+ }
+ Goodsorder update = new Goodsorder();
+ update.setId(goodsorder.getId());
+ update.setKdName(goodsorder.getKdName());
+ update.setKdCode(goodsorder.getKdCode());
+ update.setKdInfo(goodsorder.getKdInfo());
+ update.setKdId(goodsorder.getKdId());
+ update.setEditDate(new Date());
+ update.setEditor(user.getId());
+ update.setKdDate(new Date());
+ update.setKdUser(user.getId());
+ update.setStatus(Constants.OrderStatus.WAIT_RECEIVE.getKey());
+ goodsorderMapper.updateById(update);
- // TODO 鍙戦�佸井淇℃ā鏉挎秷鎭�
+ if(Constants.equalsInteger(query.getStatus(), Constants.OrderStatus.WAIT_RECEIVE.getKey())){
+ //濡傛灉鏄揩閫掑彉鏇�
+ UserActionServiceImpl.saveUserActionBiz(user,query.getId(),
+ Constants.UserActionType.CHANGE_ORDER_KD,
+ userActionMapper,
+ update.getEditDate(),
+ new String[]{user.getUsername(), DateUtil.getPlusTime2(update.getEditDate()),"澶囨敞锛�"+goodsorder.getKdInfo()},
+ JSONObject.toJSONString(update) ,
+ query.getKdName()+"(鍗曞彿锛�"+query.getKdCode()+")",
+ goodsorder.getKdName()+"(鍗曞彿锛�"+goodsorder.getKdCode()+")");
+
+ }
+
+ /* // TODO 鍙戦�佸井淇℃ā鏉挎秷鎭�
Member member=memberMapper.selectById(query.getMemberId());
MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
@@ -253,7 +290,7 @@
queryWrapper.orderByDesc(GoodsorderDetail::getCreateDate);
queryWrapper.last("limit 1");
GoodsorderDetail goodsorderDetail=goodsorderDetailMapper.selectOne(queryWrapper);
- SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);
+ SendWxMessage.orderSendNotice(goodsorder,goodsorderDetail!=null?goodsorderDetail.getName():"",member);*/
}
@@ -371,12 +408,14 @@
if(Objects.nonNull(result)){
MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>();
queryWrapper.selectAll(GoodsorderDetail.class);
+ queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
queryWrapper.selectAs(Labels::getName,GoodsorderDetail::getLablesName);
queryWrapper.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
queryWrapper.eq(GoodsorderDetail::getOrderId,result.getId());
queryWrapper.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
queryWrapper.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
queryWrapper.leftJoin(Labels.class,Labels::getId,Goods::getCategoryId);
+ queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailMapper.selectList(queryWrapper);
String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();
@@ -416,82 +455,195 @@
IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
Utils.MP.blankToNull(pageWrap.getModel());
-
queryWrapper.selectAll(Goodsorder.class);
- queryWrapper.selectAs(Member::getNickname,Goodsorder::getNickName);
- queryWrapper.selectAs(Member::getPhone,Goodsorder::getPhone);
- queryWrapper.selectAs(Addr::getAddr,Goodsorder::getAddr);
- // queryWrapper.select("(select CREATE_DATE from order_urge where ORDER_ID=t.id and ISDELETED=0 ORDER BY CREATE_DATE desc limit 1) as urgeCreateDate ");
- queryWrapper.leftJoin(Member.class,Member::getId,Goodsorder::getMemberId);
- queryWrapper.leftJoin(Addr.class,Addr::getMemberId,Member::getId);
- queryWrapper.eq(Addr::getIsDefault,Constants.ONE);
-
- queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode());
- queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName())
- .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName())
- );
- queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime());
- queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
-
- queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
+ queryWrapper.selectAs(Shop::getName,Goodsorder::getShopName);
+ initPageQueryWrapper(queryWrapper,pageWrap);
queryWrapper.eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus());
- queryWrapper.eq(pageWrap.getModel().getIsdeleted()==null,Goodsorder::getIsdeleted,Constants.ZERO);
- queryWrapper.eq(pageWrap.getModel().getIsdeleted()!=null,Goodsorder::getIsdeleted,pageWrap.getModel().getIsdeleted());
queryWrapper.orderByDesc(Goodsorder::getCreateDate);
IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
- String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode();
-
+ List<Integer> idList = new ArrayList<>();
for(Goodsorder model:result.getRecords()){
- model.setResourcePath(path);
- //璁㈠崟鎬婚噾棰濈瓑浜庡疄浠橀噾棰濆姞浼樻儬閲戦锛屽啀鍑忓幓閫�娆鹃噾棰�
- BigDecimal sumMoney=new BigDecimal(0);
- if(model.getPrice()!=null){
- if(model.getIntegral()!=null){
- sumMoney=model.getPrice().add(model.getIntegral());
- if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
- sumMoney.subtract(model.getAftersaleMoney());
- model.setOrderMoneyCount(sumMoney);
- }else{
- model.setOrderMoneyCount(sumMoney);
- }
- }else{
- model.setOrderMoneyCount(model.getPrice());
- }
- }else if(model.getIntegral()!=null){
- sumMoney=model.getIntegral();
+ idList.add(model.getId());
+ }
+ if(idList.size()>0){
+ dealOrderDetailsBiz(idList,result);//鏌ヨ璁㈠崟鏄庣粏
+ }
+ PageData<Goodsorder> rr = PageData.from(result);
+ if(pageWrap.getPage() == 1){
+ //濡傛灉鏌ヨ绗竴椤碉紝鍋氭暟鎹粺璁�
+ rr.setCountData(dealCountOrderNum(pageWrap));
+ }
+ return rr;
+ }
+
+ private void initPageQueryWrapper(MPJLambdaWrapper<Goodsorder> queryWrapper, PageWrap<Goodsorder> pageWrap) {
+ queryWrapper.leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId);
+ queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO);
+ queryWrapper.eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode());
+ queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getShopName()),Shop::getName,pageWrap.getModel().getShopName());
+ queryWrapper.and(StringUtils.isNotBlank(pageWrap.getModel().getNickName()),ms->ms.like(Goodsorder::getLinkname,pageWrap.getModel().getNickName())
+ .or().like(Goodsorder::getLinkphone,pageWrap.getModel().getNickName())
+ );
+ queryWrapper.ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime());
+ queryWrapper.le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime());
+ queryWrapper.eq(pageWrap.getModel().getReceiveType()!=null,Goodsorder::getReceiveType,pageWrap.getModel().getReceiveType());
+ queryWrapper.eq(pageWrap.getModel().getPayOrderId()!=null,Goodsorder::getPayOrderId,pageWrap.getModel().getPayOrderId());
+ }
+
+
+ private Goodsorder dealCountOrderNum( PageWrap<Goodsorder> pageWrap) {
+ MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
+ initPageQueryWrapper(queryWrapper,pageWrap);
+ Goodsorder goodsorder = new Goodsorder();
+ queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_PAY.getKey());
+ goodsorder.setWaitPayNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呮敮浠�
+
+ queryWrapper = new MPJLambdaWrapper<>();
+ initPageQueryWrapper(queryWrapper,pageWrap);
+ queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.PAY_DONE.getKey());
+ goodsorder.setWaitKdNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呭彂璐э紝寰呰嚜鎻�
+
+ queryWrapper = new MPJLambdaWrapper<>();
+ initPageQueryWrapper(queryWrapper,pageWrap);
+ queryWrapper.eq( Goodsorder::getStatus,Constants.OrderStatus.WAIT_RECEIVE.getKey());
+ goodsorder.setWaitDoneNum(goodsorderJoinMapper.selectJoinCount(queryWrapper));//寰呮敹璐�
+ return goodsorder;
+
+ }
+
+ private void dealOrderDetailsBiz(List<Integer> idList, IPage<Goodsorder> result) {
+ MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
+ queryGoods.selectAll(GoodsorderDetail.class);
+ queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl);
+ queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName);
+ queryGoods.select("ls.name as parentName ");
+
+ queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
+ queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
+
+ queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId);
+ queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID");
+ queryGoods.in(GoodsorderDetail::getOrderId,idList);
+ queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
+ List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+ String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+ for(Goodsorder model :result.getRecords()){
+ initOrderPrice(model);
+ model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId()));
+ }
+ }
+
+ private void initOrderPrice(Goodsorder model) {
+ //璁㈠崟鎬婚噾棰濈瓑浜庡疄浠橀噾棰濆姞浼樻儬閲戦锛屽啀鍑忓幓閫�娆鹃噾棰�
+ BigDecimal sumMoney=new BigDecimal(0);
+ if(model.getPrice()!=null){
+ if(model.getIntegral()!=null){
+ sumMoney=model.getPrice().add(model.getIntegral());
if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
sumMoney.subtract(model.getAftersaleMoney());
model.setOrderMoneyCount(sumMoney);
}else{
model.setOrderMoneyCount(sumMoney);
}
+ }else{
+ model.setOrderMoneyCount(model.getPrice());
}
+ }else if(model.getIntegral()!=null){
+ sumMoney=model.getIntegral();
+ if(Constants.equalsInteger(model.getIsAftersale(),Constants.ONE)&&model.getAftersaleMoney()!=null){
+ sumMoney.subtract(model.getAftersaleMoney());
+ model.setOrderMoneyCount(sumMoney);
+ }else{
+ model.setOrderMoneyCount(sumMoney);
+ }
+ }
+ }
+ @Override
+ public PageData<Goodsorder> findPageShop(PageWrap<Goodsorder> pageWrap) {
+ IPage<Goodsorder> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+ MPJLambdaWrapper<Goodsorder> queryWrapper = new MPJLambdaWrapper<>();
+ Utils.MP.blankToNull(pageWrap.getModel());
+ queryWrapper.selectAll(Goodsorder.class)
+ .eq(pageWrap.getModel().getDistributionShopId()!=null,Goodsorder::getDistributionShopId,pageWrap.getModel().getDistributionShopId())
+ .eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus())
+ .eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode())
+ .ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime())
+ .le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime())
+ .eq(Goodsorder::getIsdeleted,Constants.ZERO)
+ .exists(StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),
+ "select d.id from goodsorder_detail d where d.isdeleted=0 and d.order_id=t.id and (d.goods_sku_id ='"+pageWrap.getModel().getGoodsName()+"' or d.name like '%"+pageWrap.getModel().getGoodsName()+"%')")
+ .orderByDesc(Goodsorder::getCreateDate);
+ IPage<Goodsorder> result = goodsorderJoinMapper.selectJoinPage(page, Goodsorder.class, queryWrapper);
+ PageData<Goodsorder> rr = PageData.from(result);
+ if(result!=null && result.getRecords().size()>0) {
+ List<Integer> idList = new ArrayList<>();
+ for(Goodsorder model:result.getRecords()){
+ idList.add(model.getId());
+ }
MPJLambdaWrapper<GoodsorderDetail> queryGoods = new MPJLambdaWrapper<>();
queryGoods.selectAll(GoodsorderDetail.class);
- queryGoods.selectAs(Goods::getImgurl,GoodsorderDetail::getGoodsImgurl);
- queryGoods.selectAs(Labels::getName, GoodsorderDetail::getCategoryName);
- queryGoods.select("ls.name as parentName ");
-
- queryGoods.leftJoin(GoodsSku.class,GoodsSku::getId,GoodsorderDetail::getGoodsSkuId);
- queryGoods.leftJoin(Goods.class,Goods::getId,GoodsSku::getGoodsId);
-
- queryGoods.leftJoin(Labels.class, Labels::getId, Goods::getCategoryId);
- queryGoods.leftJoin("labels ls on ls.id=t2.PARENT_CATEGORY_ID");
- queryGoods.eq(GoodsorderDetail::getOrderId,model.getId());
+ queryGoods.in(GoodsorderDetail::getOrderId,idList);
queryGoods.eq(GoodsorderDetail::getIsdeleted,Constants.ZERO);
- List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
- goodsorderDetailList.stream().forEach(s ->{
- if(StringUtils.isBlank(s.getImgurl())){
- s.setImgurl(s.getGoodsImgurl());
- }
- });
- model.setGoodsorderDetailList(goodsorderDetailList);
+ queryGoods.and( StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),w ->{
+ w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName());
+ } );
+ List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailJoinMapper.selectList(queryGoods);
+ String fullUrl = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+
+ systemDictDataBiz.queryByCode(Constants.OSS,Constants.GOODS_FILE).getCode();
+ for(Goodsorder model:result.getRecords()){
+ model.setGoodsorderDetailList(getDetailListById(fullUrl,goodsorderDetailList,model.getId()));
+ }
+ if(pageWrap.getPage() == 1 && pageWrap.getModel().getDistributionShopId()!=null){
+ //濡傛灉鏌ヨ绗竴椤碉紝鍋氱粡閿�鍟嗛攢鍞俊鎭粺璁′笟鍔℃煡璇�
+ Goodsorder count = new Goodsorder();
+ count.setOrderCount(rr.getTotal());
+ List<GoodsorderDetail> list = goodsorderDetailJoinMapper.selectJoinList(GoodsorderDetail.class,new MPJLambdaWrapper<GoodsorderDetail>()
+ .selectAll(GoodsorderDetail.class)
+ .leftJoin(Goodsorder.class,Goodsorder::getId,GoodsorderDetail::getOrderId)
+ .eq(pageWrap.getModel().getDistributionShopId()!=null,Goodsorder::getDistributionShopId,pageWrap.getModel().getDistributionShopId())
+ .eq(pageWrap.getModel().getStatus()!=null,Goodsorder::getStatus,pageWrap.getModel().getStatus())
+ .and( StringUtils.isNotBlank(pageWrap.getModel().getGoodsName()),w ->{
+ w.like(GoodsorderDetail::getName,pageWrap.getModel().getGoodsName() ).or().eq(GoodsorderDetail::getGoodsSkuId,pageWrap.getModel().getGoodsName());
+ } )
+ .eq(pageWrap.getModel().getCode()!=null,Goodsorder::getCode,pageWrap.getModel().getCode())
+ .ge(pageWrap.getModel().getStarttime()!=null,Goodsorder::getCreateDate,pageWrap.getModel().getStarttime())
+ .le(pageWrap.getModel().getEndtime()!=null,Goodsorder::getCreateDate, pageWrap.getModel().getEndtime())
+ .eq(Goodsorder::getIsdeleted,Constants.ZERO));
+ if(list!=null && list.size()>0){
+ //鍟嗗搧鎬婚噺
+ for (GoodsorderDetail d : list){
+ count.setGoodsNum(Constants.formatIntegerNum(count.getGoodsNum()) + Constants.formatIntegerNum(d.getGoodsNum()));
+ count.setOrderMoneyCount(Constants.formatBigdecimal(count.getOrderMoneyCount())
+ .add(Constants.formatBigdecimal(d.getPrice()).multiply(new BigDecimal(Constants.formatIntegerNum(d.getGoodsNum())))));
+ }
+ }
+ rr.setCountData(count);
+ }
}
- return PageData.from(result);
+
+
+
+ return rr;
+ }
+
+ private List<GoodsorderDetail> getDetailListById( String fullUrl ,List<GoodsorderDetail> goodsorderDetailList, Integer id) {
+ List<GoodsorderDetail> list = new ArrayList<>();
+ if(goodsorderDetailList!=null && goodsorderDetailList.size()>0){
+ for(GoodsorderDetail d : goodsorderDetailList){
+ if(Constants.equalsInteger(id,d.getOrderId())){
+ if(d.getImgurl()!=null){
+ d.setImgurl(fullUrl+d.getImgurl());
+ }
+ list.add(d);
+ }
+ }
+ }
+ return list;
}
@@ -814,6 +966,8 @@
.eq(MemberCoupon::getId,orderPayConfirmResponse.getMemberCoupon().getId())
);
}
+ goodsorder.setReturnCustomerIntegral(getBackIntegral(goodsorder.getPrice(),Constants.ONE));
+ goodsorder.setReturnMemberIntegral(getBackIntegral(goodsorder.getPrice(),Constants.ZERO));
goodsorderMapper.insert(goodsorder);
List<OrderGoodsCalculateResponse> goodsCalculateList = orderPayConfirmResponse.getGoodsCalculateList();
if(CollectionUtils.isEmpty(goodsCalculateList)){
@@ -1389,6 +1543,7 @@
//閭垂閲戦
if(Objects.nonNull(request.getReceiveType())){
if(Constants.equalsInteger(request.getReceiveType(),Constants.ZERO)){
+ MailConfigResponse mailConfigResponse = systemDictDataBiz.getMailConfig();
if(Objects.nonNull(request.getAddressId())){
Addr addr = addrMapper.selectById(request.getAddressId());
if(Objects.isNull(addr)){
@@ -1404,28 +1559,28 @@
Labels labels = labelsMapper.selectById(areas.getYunFeeId());
if(Objects.nonNull(labels)&&StringUtils.isNotBlank(labels.getParam())){
//{weight0:10,fee0:10,weight1:10,fee1:10},{棣栭噸:10,棣栭噸杩愯垂锛�10,缁噸锛�10,缁噸璐癸細10}
-
+ mailConfigResponse = JSONObject.parseObject(labels.getParam(),MailConfigResponse.class);
}
-
}
-
-
-
}
-
-
-
- //TODO 鏍规嵁鏀惰揣鍦板潃 鏌ヨ杩愯垂閰嶇疆
-
-
-
+ //鏍规嵁鏀惰揣鍦板潃 鏌ヨ杩愯垂閰嶇疆
//璁$畻鍟嗗搧淇℃伅鎬婚噸閲�
BigDecimal totalWeight = goodsCalculateList.stream().map(i->
i.getWeight().multiply(new BigDecimal(i.getGoodsNum().toString()))
).reduce(BigDecimal.ZERO,BigDecimal::add);
- //TODO 鏆傛椂鏃犺繍璐归噾棰�
- mailAmount = BigDecimal.ZERO;
-
+ if(totalWeight.compareTo(mailConfigResponse.getWeight0())>=Constants.ZERO){
+ mailAmount = mailConfigResponse.getFee0();
+ }else{
+ //瓒呴噸閲嶉噺
+ BigDecimal overWeight = totalWeight.subtract(mailConfigResponse.getWeight0());
+ if (overWeight.compareTo(mailConfigResponse.getWeight1()) >= Constants.ZERO) {
+ mailAmount = mailConfigResponse.getFee0().add(
+ mailConfigResponse.getFee1()
+ .multiply(overWeight.divide(mailConfigResponse.getWeight1(),2,RoundingMode.HALF_UP)));
+ }else{
+ mailAmount = mailConfigResponse.getFee0().add(mailConfigResponse.getFee1());
+ }
+ }
amount = amount.add(mailAmount);
}
}
@@ -1600,11 +1755,77 @@
//鏍规嵁璁㈠崟绫诲瀷杩涜绉垎璧犻��
//涓嬪崟纭鏀惰揣 锛岃禒閫佺粡閿�鍟嗙Н鍒�
this.orderAddShopIntegral(goodsorder);
+ //涓嬪崟瀹屾垚 鏍规嵁淇℃伅纭鏄惁闇�瑕佽禒閫侀個璇疯�呬紭鎯犲埜
+ this.orderDoneRewardInviteCoupon(goodsorder);
//娑堣垂鑰呯‘璁ゆ敹璐�
this.orderAddMemberIntegral(goodsorder);
//缁忛攢鍟� 缁撶畻閲戦
this.orderAddShopCash(goodsorder);
}
+
+
+ /**
+ * 璁㈠崟纭鏀惰揣锛岃禒閫侀個璇疯�呬紭鎯犲埜
+ * @param
+ */
+ public void orderDoneRewardInviteCoupon(Goodsorder goodsorder){
+ PlatformConfigDTO platformConfigDTO = systemDictDataService.getPlatformConfigDTO();
+ if (platformConfigDTO.getShareCouponRewardStatus().equals(Constants.ONE)) {
+ return;
+ }
+ Member member = memberMapper.selectById(goodsorder.getMemberId());
+ if(Objects.isNull(member)||member.getIsdeleted().equals(Constants.ONE)){
+ return;
+ }
+ InviteRecord inviteRecord = inviteRecordMapper.selectOne(new QueryWrapper<InviteRecord>().lambda()
+ .eq(InviteRecord::getMemberId,member.getId())
+ .eq(InviteRecord::getIsdeleted,Constants.ZERO)
+ .eq(InviteRecord::getFirstOrderStatus,Constants.ZERO)
+ .last("limit 1")
+ );
+ if(Objects.isNull(inviteRecord)){
+ return;
+ }
+ Member inviteMember = memberMapper.selectById(inviteRecord.getInviteId());
+ if(Objects.isNull(inviteMember)||inviteMember.getIsdeleted().equals(Constants.ONE)){
+ return;
+ }
+
+ List<JSONObject> shareCouponRewardList = platformConfigDTO.getShareCouponRewardList();
+ //[{"num":"2","couponId":6},{"num":"3","couponId":5}]
+ String couponIds = "";
+ String couponNames = "";
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(shareCouponRewardList)){
+ List<MemberCoupon> memberCouponList = new ArrayList<>();
+ for (JSONObject jsonObject:shareCouponRewardList) {
+ Integer couponId = jsonObject.getInteger("couponId");
+ Integer num = jsonObject.getInteger("num");
+ Coupon coupon = couponMapper.selectById(couponId);
+ if(Objects.isNull(coupon)||Constants.equalsInteger(coupon.getIsdeleted(),Constants.ONE)&&num>Constants.ZERO){
+ continue;
+ }
+ MemberCoupon memberCoupon = MemberCoupon.couponToBean(coupon,inviteMember,new Date(),Constants.ONE,null);
+ for (int i = 0; i < num; i++) {
+ memberCouponList.add(memberCoupon);
+ }
+ couponIds = couponIds + (StringUtils.isBlank(couponIds)? ",":"" )+ couponId ;
+ couponNames = couponNames + (StringUtils.isBlank(couponNames)? ",":"" )+ coupon.getName() ;
+ }
+ if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(memberCouponList)){
+ memberCouponJoinMapper.insert(memberCouponList);
+ }
+ }
+ inviteRecordMapper.update(new UpdateWrapper<InviteRecord>().lambda()
+ .set(InviteRecord::getFirstOrderStatus,Constants.ONE)
+ .set(InviteRecord::getFirstFinishDate,new Date())
+ .set(InviteRecord::getCouponIds,couponIds)
+ .set(InviteRecord::getCouponNames,couponNames)
+ .eq(InviteRecord::getId,inviteRecord.getId())
+ );
+ }
+
+
+
/**
* 璁㈠崟鏍搁攢
@@ -1639,6 +1860,8 @@
if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){
//璧犻�佹秷璐硅�呯Н鍒�
this.orderAddMemberIntegral(goodsorder);
+ //涓嬪崟瀹屾垚 鏍规嵁淇℃伅纭鏄惁闇�瑕佽禒閫侀個璇疯�呬紭鎯犲埜
+ this.orderDoneRewardInviteCoupon(goodsorder);
//缁忛攢鍟� 娣诲姞璧犻�佺Н鍒�
this.orderAddShopIntegral(goodsorder);
//缁忛攢鍟� 缁撶畻閲戦
--
Gitblit v1.9.3