| | |
| | | import com.doumee.dao.business.join.PlanorderDetailJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.dao.system.dto.PlatformConfigDTO; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.dao.web.dto.CouponDTO; |
| | | import com.doumee.dao.web.request.*; |
| | | import com.doumee.dao.web.request.goods.*; |
| | |
| | | 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; |
| | |
| | | @Autowired |
| | | private GoodsorderMapper goodsorderMapper; |
| | | @Autowired |
| | | private UserActionMapper userActionMapper; |
| | | @Autowired |
| | | private ActivitySignMapper activitySignMapper; |
| | | @Autowired |
| | | private AftersaleMapper aftersaleMapper; |
| | |
| | | private ShopGoodsRelationMapper shopGoodsRelationMapper; |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | @Autowired |
| | | private CouponMapper couponMapper; |
| | | @Autowired |
| | | private MemberCouponJoinMapper memberCouponJoinMapper; |
| | | @Autowired |
| | | private InviteRecordMapper inviteRecordMapper; |
| | | |
| | | @Autowired |
| | | private GoodsorderDetailMapper goodsorderDetailMapper; |
| | |
| | | @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[]{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); |
| | |
| | | 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);*/ |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | @Override |
| | | public Goodsorder findById(Integer id) { |
| | | Goodsorder result=goodsorderJoinMapper.selectById(id); |
| | | MPJLambdaWrapper<Goodsorder> q = new MPJLambdaWrapper<Goodsorder>() |
| | | .selectAll(Goodsorder.class) |
| | | .selectAs(Shop::getName,Goodsorder::getShopName) |
| | | .selectAs(Member::getNickname,Goodsorder::getNickName) |
| | | .selectAs(Member::getPhone,Goodsorder::getPhone) |
| | | .selectAs(Member::getName,Goodsorder::getMemberName) |
| | | .selectAs(SystemUser::getRealname,Goodsorder::getKdUserName) |
| | | .selectAs(Shop::getName,Goodsorder::getShopName) |
| | | .leftJoin(Shop.class,Shop::getId,Goodsorder::getDistributionShopId) |
| | | .leftJoin(Member.class,Member::getId,Goodsorder::getMemberId) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,Goodsorder::getKdUser) |
| | | .eq(Goodsorder::getId,id); |
| | | Goodsorder result=goodsorderJoinMapper.selectJoinOne(Goodsorder.class,q); |
| | | if(Objects.nonNull(result)){ |
| | | MPJLambdaWrapper<GoodsorderDetail> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(GoodsorderDetail.class); |
| | | 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.selectAll(GoodsorderDetail.class) |
| | | .eq(GoodsorderDetail::getIsdeleted,Constants.ZERO) |
| | | .eq(GoodsorderDetail::getOrderId,result.getId()) ; |
| | | List<GoodsorderDetail> goodsorderDetailList=goodsorderDetailMapper.selectList(queryWrapper); |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode(); |
| | | |
| | | String path = systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.OSS, Constants.GOODS_FILE).getCode(); |
| | | for(GoodsorderDetail model:goodsorderDetailList){ |
| | | if(StringUtils.isNotBlank(model.getImgurl())){ |
| | | model.setImgurl(path+ model.getImgurl()); |
| | | } |
| | | } |
| | | result.setGoodsorderDetailList(goodsorderDetailList); |
| | | |
| | | //查询咖啡计划订阅周期 |
| | | if(Constants.equalsInteger(result.getType(),Constants.TWO)){ |
| | | MPJLambdaWrapper<PlanorderDetail> queryplan = new MPJLambdaWrapper<>(); |
| | | queryplan.eq(PlanorderDetail::getOrderId,result.getId()); |
| | | queryplan.last("limit 1"); |
| | | PlanorderDetail planorderDetail= planorderDetailJoinMapper.selectOne( queryplan); |
| | | result.setPlanorderDetail(planorderDetail); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | |
| | | 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; |
| | | } |
| | | |
| | | |
| | |
| | | //根据订单类型进行积分赠送 |
| | | //下单确认收货 ,赠送经销商积分 |
| | | 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()) |
| | | ); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | /** |
| | | * 订单核销 |
| | |
| | | if(Constants.equalsInteger(goodsorder.getPayMethod(),Constants.ZERO)){ |
| | | //赠送消费者积分 |
| | | this.orderAddMemberIntegral(goodsorder); |
| | | //下单完成 根据信息确认是否需要赠送邀请者优惠券 |
| | | this.orderDoneRewardInviteCoupon(goodsorder); |
| | | //经销商 添加赠送积分 |
| | | this.orderAddShopIntegral(goodsorder); |
| | | //经销商 结算金额 |