JiangYouYao
2022-03-11 7e6a42fdddef2cc7981d736a138c719aba53563c
重构:充值卡
1 files renamed
13 files modified
3 files added
494 ■■■■ changed files
zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java 3 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/enums/BooleanEnum.java 63 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardChangeDto.java 65 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/dto/SysOrderItemDto.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java 16 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java 69 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java 17 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java 73 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java 138 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html 10 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java
@@ -8,12 +8,16 @@
@Data
public class VerificationResult {
    /**
     * 审核结果
     */
    private boolean judgeResult;
    private String  msg;
    private Object  info;
    private VerificationResult(){
    }
zq-erp/src/main/java/com/matrix/core/tools/ParamCheckUtil.java
@@ -1,8 +1,5 @@
package com.matrix.core.tools;
import com.matrix.system.hive.dto.OrderItemDto;
import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;
zq-erp/src/main/java/com/matrix/system/enums/BooleanEnum.java
New file
@@ -0,0 +1,63 @@
package com.matrix.system.enums;
import com.google.common.collect.Lists;
import com.matrix.core.enums.EnumApiShowAble;
import com.matrix.core.enums.EnumsShowVo;
import com.matrix.core.exception.GlobleException;
import java.util.List;
import java.util.stream.Collectors;
/**
 * 是否枚举
 * @author jyy
 */
public enum BooleanEnum implements EnumApiShowAble {
    TRUE(1, "是"),
    FALSE(2, "否"),
    DEFAULT(3, ""),
    ;
    private Integer value;
    private String displayName;
    BooleanEnum(Integer value, String displayName) {
        this.value = value;
        this.displayName = displayName;
    }
    public static String getByValue(Integer value) {
        for (int i = 0; i < values().length; i++) {
            if (value.equals(values()[i].getValue())) {
                return values()[i].displayName;
            }
        }
        throw new GlobleException("无效枚举值");
    }
    @Override
    public String getEnumCode() {
        return "booleanEnum";
    }
    @Override
    public List<EnumsShowVo> getEnumsShowVos() {
        return Lists.newArrayList(values()).stream().map(item ->
                EnumsShowVo.builder()
                        .displayName(item.getDisplayName())
                        .value(item.value)
                        .build()
        ).collect(Collectors.toList());
    }
    public Integer getValue() {
        return value;
    }
    public String getDisplayName() {
        return displayName;
    }
}
zq-erp/src/main/java/com/matrix/system/hive/action/ShoppingGoodsController.java
@@ -190,7 +190,6 @@
            }
        }
        shoppingGoods.setIsDel(ShoppingGoods.NORMAL);
        shoppingGoods.setStaus(Dictionary.BUSINESS_STATE_UP);
        List<ShoppingGoods> dataList = shoppingGoodsService.findInPage(shoppingGoods, pageVo);
        AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList, shoppingGoodsService.findTotal(shoppingGoods));
        return result;
zq-erp/src/main/java/com/matrix/system/hive/dto/GoodsSealLimitDto.java
@@ -20,6 +20,6 @@
    /**
     * 销售明细
     */
    private List<OrderItemDto> orderItemDtoList;
    private List<SysOrderItemDto> sysOrderItemDtoList;
}
zq-erp/src/main/java/com/matrix/system/hive/dto/MoneyCardChangeDto.java
New file
@@ -0,0 +1,65 @@
/**
 * projectName: zq-erp
 * fileName: MoneyCardChangeDto.java
 * packageName: com.matrix.system.hive.dto
 * date: 2022-03-11 10:24
 * copyright(c) 2022 http://www.hydee.cn/ Inc. All rights reserved.
 */
package com.matrix.system.hive.dto;
import lombok.Data;
import java.util.List;
/**
 * @version: V1.0
 * @author: JiangYouYao
 * @className: MoneyCardChangeDto
 * @packageName: com.matrix.system.hive.dto
 * @description: 储值卡余额变更DTO
 * @data: 2022-03-11 10:24
 **/
@Data
public class MoneyCardChangeDto {
    /**
     * 储值卡id
     */
    private Long carUseId;
    /**
     * 订单id
     */
    private Long  orderId;
    /**
     * 订单编号
     */
    private String orderNo;
    /**
     * 操作类型
     */
    private String type;
    /**
     * 赠送金额扣减
     */
    private Double giftMoney;
    /**
     * 本金扣减
     */
    private Double realMoney;
    /**
     * 扣减次数
     */
    private Double count;
    /**
     * 操作人
     */
    private Long updateUser;
    /**
     * 支付的商品id
     */
    private List<Long> goodsIds;
}
zq-erp/src/main/java/com/matrix/system/hive/dto/SysOrderItemDto.java
File was renamed from zq-erp/src/main/java/com/matrix/system/hive/dto/OrderItemDto.java
@@ -1,16 +1,15 @@
package com.matrix.system.hive.dto;
import lombok.Builder;
import lombok.Data;
import lombok.ToString;
/**
 * 订单明细DTO
 * @author jyy
 */
@Data
@ToString
@Builder
public class OrderItemDto {
@Data
public class SysOrderItemDto {
    /**
     * 商城 商品id
     */
zq-erp/src/main/java/com/matrix/system/hive/service/MoneyCardUseService.java
@@ -1,17 +1,27 @@
package com.matrix.system.hive.service;
import java.util.List;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.dto.MoneyCardChangeDto;
import com.matrix.system.hive.plugin.util.BaseServices;
import java.util.List;
/**
 * @date 2016-09-17 10:17
 */
public interface MoneyCardUseService extends BaseServices<MoneyCardUse> {
    /**
     * 修改储值卡余额
     */
    void changeMoneyCard(List<MoneyCardChangeDto> moneyCardChangeDtoList);
    /**
     * 新增MoneyCardUse
     */
zq-erp/src/main/java/com/matrix/system/hive/service/SysVipInfoService.java
@@ -22,6 +22,13 @@
 */
public interface SysVipInfoService  extends BaseServices<SysVipInfo>{
    /**
     * 更新用户成交状态
     * @param vipId
     * @param isDeal
     */
    void updateDealStatus(Long vipId, int isDeal);
    public MoneyCardUse addVipDefaultCard(Long vipId);
    /**
     * 新增SysVipInfo
zq-erp/src/main/java/com/matrix/system/hive/service/imp/MoneyCardUseServiceImpl.java
@@ -3,13 +3,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.pojo.VerificationResult;
import com.matrix.core.tools.DateUtil;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.hive.bean.MoneyCardUse;
import com.matrix.system.hive.bean.MoneyCardUseFreeze;
import com.matrix.system.hive.bean.SysOrderItem;
import com.matrix.system.hive.bean.SysVipInfo;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.dto.MoneyCardChangeDto;
import com.matrix.system.hive.service.MoneyCardUseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -41,9 +40,71 @@
    @Autowired
    private SysVipLevelDao viplevelDao;
    @Autowired
    ShoppingGoodsDao shoppingGoodsDao;
    @Autowired
    MoneyCardAssembleDao moneyCardAssembleDao;
    @Override
    public void changeMoneyCard(List<MoneyCardChangeDto> moneyCardChangeDtoList) {
        // 判断商品是否在充值卡的限制购买,判断分类
        moneyCardChangeDtoList.forEach(cardUse->{
            VerificationResult verificationResult = checkIsBangding(cardUse, cardUse.getGoodsIds());
            if (!verificationResult.isJudgeResult()) {
                throw new GlobleException(verificationResult.getMsg());
            }
        });
        moneyCardChangeDtoList.get().forEach(item -> {
            if (!isInBangding(moneyCardUse, item.getGoodsId())) {
                throw new GlobleException(shoppingGoodsDao.selectById(item.getGoodsId()).getName() + "不在" + moneyCardUse.getCardName() + "优惠中");
            }
        });
    }
    private VerificationResult checkIsBangding(MoneyCardChangeDto moneyCardUse, List<Long> goodsIds) {
        // 如果是一卡通则肯定在绑定范围内
        if (moneyCardUse.getIsVipCar().equals(Dictionary.FLAG_YES_Y)) {
            return true;
        } else {
            // 不是一卡通,
            // 判断卡是否可应用于所有产品
            ShoppingGoods cardGoods = shoppingGoodsDao.selectById(moneyCardUse.getGoodsId());
            if (cardGoods != null) {
                if (Dictionary.FLAG_YES.equals(cardGoods.getCarIsAll())) {
                    return true;
                }
            }
            // 比较分类
            MoneyCardAssemble moneyCardAssemble = new MoneyCardAssemble();
            moneyCardAssemble.setCardId(moneyCardUse.getGoodsId());
            List<MoneyCardAssemble> cardAssembleList = moneyCardAssembleDao.selectByModel(moneyCardAssemble);
            ShoppingGoods yhGoods = shoppingGoodsDao.selectById(goodsId);
            boolean flag = false;
            for (MoneyCardAssemble cardAssemble : cardAssembleList) {
                // 比较类型
                if (cardAssemble.getType().equals(Dictionary.CZK_ASSEMBLE_FL)) {
                    if (yhGoods.getCateId().equals(cardAssemble.getCateId())) {
                        flag = true;
                        break;
                    }
                } else {
                    // 比较绑定
                    if (yhGoods.getId().equals(cardAssemble.getGoodsId())) {
                        flag = true;
                        break;
                    }
                }
            }
            return flag;
        }
    }
    @Override
    public int add(MoneyCardUse moneyCardUse) {
zq-erp/src/main/java/com/matrix/system/hive/service/imp/ShoppingGoodsServiceImpl.java
@@ -18,7 +18,7 @@
import com.matrix.system.hive.bean.SysShopInfo;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.dto.GoodsSealLimitDto;
import com.matrix.system.hive.dto.OrderItemDto;
import com.matrix.system.hive.dto.SysOrderItemDto;
import com.matrix.system.hive.service.ShoppingGoodsService;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -64,17 +64,17 @@
        //校验参数不能为空
        checkGoodsSelLimtParam(goodsSealLimitDto);
        goodsSealLimitDto.getOrderItemDtoList().forEach(item -> {
        goodsSealLimitDto.getSysOrderItemDtoList().forEach(item -> {
            ShoppingGoods shopGoods = shoppingGoodsDao.selectById(item.getGoodsId());
            //最大销售次数检测
            Integer maxNum = shopGoods.getCarMaxSaleCount();
            if (maxNum != null && maxNum != 0) {
                Integer buyNum = orderItemDao.selectByGoodsId(shopGoods.getId(), null);
                if ((buyNum + item.getCount()) == maxNum) {
                if (buyNum.equals(maxNum)) {
                    if (!shopGoods.getStaus().equals(Dictionary.BUSINESS_STATE_DOWN)) {
                        shopGoods.setStaus(Dictionary.BUSINESS_STATE_DOWN);
                        shoppingGoodsDao.update(shopGoods);
                        LogUtil.info("{}商品达到最大销售数量自动下架",shopGoods.getName());
                        LogUtil.info("商品达到最大销售数量自动下架:{}", shopGoods.getName());
                    }
                } else if ((buyNum + item.getCount()) > maxNum) {
                    throw new GlobleException(shopGoods.getName() + "已超过最大销售数量");
@@ -92,17 +92,14 @@
    }
    private void checkGoodsSelLimtParam(GoodsSealLimitDto goodsSealLimitDto) {
        ParamCheckUtil.requireNonNulls(goodsSealLimitDto,
                goodsSealLimitDto.getVipId(),
                goodsSealLimitDto.getOrderItemDtoList());
                goodsSealLimitDto.getSysOrderItemDtoList());
        ParamCheckUtil.requireListElementNonNull(goodsSealLimitDto.getOrderItemDtoList(),
                Arrays.asList(OrderItemDto::getCount, OrderItemDto::getGoodsId));
        ParamCheckUtil.requireListElementNonNull(goodsSealLimitDto.getSysOrderItemDtoList(),
                Arrays.asList(SysOrderItemDto::getCount, SysOrderItemDto::getGoodsId));
    }
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceHelper.java
New file
@@ -0,0 +1,73 @@
/**
 * projectName: zq-erp
 * fileName: SysOrderServiceHelper.java
 * packageName: com.matrix.system.hive.service.imp
 * date: 2022-03-11 9:33
 * copyright(c) 2022 http://www.hydee.cn/ Inc. All rights reserved.
 */
package com.matrix.system.hive.service.imp;
import com.matrix.system.hive.bean.ShoppingGoods;
import com.matrix.system.hive.bean.SysOrder;
import com.matrix.system.hive.bean.SysOrderFlow;
import com.matrix.system.hive.dao.ShoppingGoodsDao;
import com.matrix.system.hive.dao.SysOrderFlowDao;
import com.matrix.system.hive.service.CodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
 * @version: V1.0
 * @author: JiangYouYao
 * @className: SysOrderServiceHelper
 * @packageName: com.matrix.system.hive.service.imp
 * @description: 订单服务助手
 * @data: 2022-03-11 9:33
 **/
@Component
public class SysOrderServiceHelper {
    @Autowired
    private CodeService codeService;
    @Autowired
    ShoppingGoodsDao shoppingGoodsDao;
    @Autowired
    private SysOrderFlowDao sysOrderFlowDao;
    /**
     * 创建支付流水
     *
     * @author:姜友瑶
     */
    public void addOrderFlow(SysOrder sourceOrder) {
        //处理支付流水
        int flowCount = 1;
        for (SysOrderFlow flow : sourceOrder.getFlows()) {
            flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount);
            flow.setVipId(sourceOrder.getVipId());
            flow.setShopId(sourceOrder.getShopId());
            flow.setCompanyId(sourceOrder.getCompanyId());
            //支付内容摘要设置
            Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
            ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
            flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
            // 若是退款,则取负数
            if (SysOrder.ORDER_TYPE_REFUND == sourceOrder.getOrderType()) {
                flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND);
                flow.setAmount(flow.getAmount().negate());
                flow.setOrderId(sourceOrder.getOldOrderId());
            } else {
                flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY);
                flow.setOrderId(sourceOrder.getId());
            }
            sysOrderFlowDao.insert(flow);
            flowCount++;
        }
    }
}
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysOrderServiceImpl.java
@@ -24,12 +24,13 @@
import com.matrix.system.common.dao.SysUsersDao;
import com.matrix.system.common.service.OperationLogService;
import com.matrix.system.constance.Dictionary;
import com.matrix.system.enums.BooleanEnum;
import com.matrix.system.enums.OperationButtonEnum;
import com.matrix.system.enums.OperationFunctionEnum;
import com.matrix.system.hive.bean.*;
import com.matrix.system.hive.dao.*;
import com.matrix.system.hive.dto.GoodsSealLimitDto;
import com.matrix.system.hive.dto.OrderItemDto;
import com.matrix.system.hive.dto.SysOrderItemDto;
import com.matrix.system.hive.plugin.util.CollectionUtils;
import com.matrix.system.hive.plugin.util.MoneyUtil;
import com.matrix.system.hive.pojo.CzXkVo;
@@ -135,6 +136,14 @@
    @Autowired
    private OperationLogService operationLogService;
    @Autowired
    private SysVipInfoService sysVipInfoService;
    @Autowired
    private SysOrderServiceHelper sysOrderServiceHelper;
    @Override
@@ -517,27 +526,17 @@
    @Transactional(rollbackFor = Exception.class)
    public void updateReceiptMoney(SysOrder pageOrder) throws GlobleException {
        if (!Dictionary.ORDER_STATU_DFK.equals(pageOrder.getStatu())) {
            throw new GlobleException("该订单已经收过款,请刷新页面再试!");
        }
        //校验订单是否满足收款条件
        checkOrder(pageOrder);
        // 更新收款时间
        // 更新订单主表信息
        updateOrderInfo(pageOrder);
        // 获取用户信息
        SysVipInfo vipInfo = sysVipInfoDao.selectById(pageOrder.getVipId());
        if (SysVipInfo.UNDEAL_VIP == vipInfo.getIsDeal()) {
            //非成交客户下单更新客户为成交客户
            vipInfo.setIsDeal(SysVipInfo.DEAL_VIP);
            sysVipInfoDao.update(vipInfo);
        }
        // 设置用户为成交客户
        sysVipInfoService.updateDealStatus(pageOrder.getVipId(), BooleanEnum.TRUE.getValue());
        //添加支付流水
        addOrderFlow(pageOrder);
        sysOrderServiceHelper.addOrderFlow(pageOrder);
        // 设置会员充值卡使用情况
        addMoneyCardUse(pageOrder);
@@ -556,10 +555,26 @@
        //设置会员积分
        addVipScore(pageOrder);
        //保存订单收款日志
        saveOrderSkLog(pageOrder);
    }
    /**
     * 保存订单收款日志
     * @param pageOrder
     */
    private void saveOrderSkLog(SysOrder pageOrder) {
        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
        operationLogService.saveOperation(pageOrder.getCompanyId(), pageOrder.getShopId(), user.getSuId(),
                OperationFunctionEnum.ORDER,
                OperationButtonEnum.ORDER_SK,
                pageOrder.getId(),
                pageOrder.getOrderNo(),
                pageOrder.getVipId());
    }
    /**
     * 付款后更新订单信息
@@ -586,7 +601,14 @@
        pageOrder.setCardPay(cardPayAmount.doubleValue());
        pageOrder.setCashPay(cashPayAmount.doubleValue());
        //欠款金额在流水处理中处理了
        for (SysOrderFlow flow : pageOrder.getFlows()) {
            //欠款处理
            if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) {
                pageOrder.setStatu(Dictionary.ORDER_STATU_QK);
                pageOrder.setArrears(flow.getAmount().doubleValue());
            }
        }
        double sum = flows.stream().mapToDouble(item -> item.getAmount().doubleValue()).sum();
@@ -597,22 +619,24 @@
        sysOrderDao.update(pageOrder);
        //保存单据日志
        operationLogService.saveOperation(pageOrder.getCompanyId(), pageOrder.getShopId(), user.getSuId(),
                OperationFunctionEnum.ORDER,
                OperationButtonEnum.ORDER_SK,
                pageOrder.getId(),
                pageOrder.getOrderNo(),
                pageOrder.getVipId());
    }
    private void checkOrder(SysOrder pageOrder) {
        //检查交易限制调整 jyytodo 测试一下
        SysOrder checkOrder = sysOrderDao.selectById(pageOrder.getId());
        //状态校验
        if (!Dictionary.ORDER_STATU_DFK.equals(checkOrder.getStatu())) {
            throw new GlobleException("该订单已经收过款,请刷新页面再试!");
        }
        //检查交易限制调整
        GoodsSealLimitDto goodsSealLimitDto = new GoodsSealLimitDto();
        goodsSealLimitDto.setVipId(pageOrder.getVipId());
        goodsSealLimitDto.setOrderItemDtoList(Lists.newArrayList());
        goodsSealLimitDto.setSysOrderItemDtoList(Lists.newArrayList());
        pageOrder.getItems().forEach(e->{
            goodsSealLimitDto.getOrderItemDtoList().add(BeanUtil.copyProperties(e, OrderItemDto.class));
            goodsSealLimitDto.getSysOrderItemDtoList().add(BeanUtil.copyProperties(e, SysOrderItemDto.class));
        });
        shoppingGoodsService.checkGoodsSealLimit(goodsSealLimitDto);
@@ -811,59 +835,7 @@
        }
    }
    /**
     * 创建支付流水
     *
     * @author:姜友瑶
     */
    private void addOrderFlow(SysOrder sourceOrder) {
        //处理支付流水
        int flowCount = 1;
        for (SysOrderFlow flow : sourceOrder.getFlows()) {
            //支付内容摘要设置
            Long goodsId = sourceOrder.getItems().get(0).getGoodsId();
            ShoppingGoods goods = shoppingGoodsDao.selectById(goodsId);
            flow.setFlowContent(goods.getName() + "等" + sourceOrder.getItems().size() + "件产品");
            // 若是退款,则取负数
            if (SysOrder.ORDER_TYPE_REFUND == sourceOrder.getOrderType()) {
                flow.setFlowType(SysOrderFlow.FLOW_TYPE_REFUND);
                flow.setAmount(flow.getAmount().negate());
                flow.setOrderId(sourceOrder.getOldOrderId());
            } else {
                flow.setFlowType(SysOrderFlow.FLOW_TYPE_BUY);
                flow.setOrderId(sourceOrder.getId());
            }
            //欠款处理
            if (SysOrderFlow.PAY_METHOD_ARREARS.equals(flow.getPayMethod())) {
                sourceOrder.setStatu(Dictionary.ORDER_STATU_QK);
                sourceOrder.setArrears(flow.getAmount().doubleValue());
                sysOrderDao.update(sourceOrder);
            }
            //统计储值卡支付
            if (SysOrderFlow.PAY_METHOD_CARD.equals(flow.getPayMethod())) {
                if (flow.getCardId() != null) {
                    MoneyCardUse moneyCardUse = moneyCardUseDao.selectById(flow.getCardId());
                    //修改储值卡余额
                    cardPaySk(moneyCardUse, sourceOrder, flow);
                } else {
                    throw new GlobleException("无效的储值卡支付方式");
                }
            }
            flow.setFlowNo(codeService.getFlowCode() + "-" + flowCount);
            flow.setVipId(sourceOrder.getVipId());
            flow.setShopId(sourceOrder.getShopId());
            flow.setCompanyId(sourceOrder.getCompanyId());
            sysOrderFlowDao.insert(flow);
            flowCount++;
        }
    }
    /**
@@ -1572,7 +1544,7 @@
        order.setFlows(czVo.getFlows());
        addOrderFlow(order);
        sysOrderServiceHelper.addOrderFlow(order);
        // 添加员工业绩
        achieveNewService.addAchaeveByOrder(order);
@@ -1666,7 +1638,7 @@
        // 添加订单收款流水
        addOrderFlow(sysOrder);
        sysOrderServiceHelper.addOrderFlow(sysOrder);
        //退款退套餐退项目
        refundProjUse(sysOrder);
        //删除积分
zq-erp/src/main/java/com/matrix/system/hive/service/imp/SysVipInfoServiceImpl.java
@@ -82,6 +82,13 @@
    @Autowired
    private SysOrderDao sysOrderDao;
    @Override
    public void updateDealStatus(Long vipId, int isDeal) {
        SysVipInfo vipInfo = new SysVipInfo();
        vipInfo.setIsDeal(isDeal);
        vipInfo.setIsDeal(SysVipInfo.DEAL_VIP);
        sysVipInfoDao.update(vipInfo);
    }
    /**
     * 新增会员储值卡
zq-erp/src/main/resources/mybatis/mapper/hive/ShoppingGoodsDao.xml
@@ -3,7 +3,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.matrix.system.hive.dao.ShoppingGoodsDao">
     <cache readOnly="true"></cache>
    <resultMap type="ShoppingGoods" id="ShoppingGoodsMap">
    
        <id property="id" column="id" />
zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-md-list.html
@@ -54,12 +54,10 @@
            </div>
            <div class="form-group mr-20">
                <label for="staus">状态</label>
                <select class="form-control autoFull" name="staus" nullmsg="状态不能为空" dataType="*" id="staus"
                        data-filed="name"
                        data-value="name"
                        th:data-url="@{/admin/dataDictionary/showDataDictionary}"
                        data-param="{type:'项目状态'}">
                    <option value=''>请选择项目状态</option>
                <select class="form-control " name="staus" nullmsg="状态不能为空" dataType="*" id="staus">
                    <option value=''>全部</option>
                    <option value='上架' selected ="selected ">上架</option>
                    <option value=''>下架</option>
                </select>
            </div>
            <div class="form-group mr-20">
zq-erp/src/main/resources/templates/views/admin/hive/products/shoppinggoods-zb-list.html
@@ -55,12 +55,10 @@
            </div>
            <div class="form-group mr-20">
                <label for="staus">状态</label>
                <select class="form-control autoFull" name="staus" nullmsg="状态不能为空" dataType="*" id="staus"
                        data-filed="name"
                        data-value="name"
                        th:data-url="@{/admin/dataDictionary/showDataDictionary}"
                        data-param="{type:'项目状态'}">
                    <option value=''>请选择项目状态</option>
                <select class="form-control " name="staus" nullmsg="状态不能为空" dataType="*" id="staus">
                    <option value=''>全部</option>
                    <option value='上架' selected ="selected ">上架</option>
                    <option value=''>下架</option>
                </select>
            </div>
            <div class="form-group mr-20">