Helius
2021-03-29 fd563c2a20613325efcc37cbc8aa754eeeba5e45
Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop
1 files added
22 files modified
563 ■■■■ changed files
zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/common/service/impl/InitBusParameterSettingService.java 3 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java 6 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateFyfaDto.java 3 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanGrade.java 7 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java 16 ●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/fenxiao/vo/FyfaManageVo.java 3 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java 4 ●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopAdvertis.java 13 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopSku.java 13 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java 98 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/config/db/increment/推广员.sql 12 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml 4 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml 1 ●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopAdvertisDao.xml 16 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopSkuDao.xml 12 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html 33 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html 9 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html 2 ●●● patch | view | raw | blame | history
zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html 48 ●●●●● patch | view | raw | blame | history
zq-erp/src/test/java/com/matrix/SalesOrderTaskTest.java 247 ●●●●● patch | view | raw | blame | history
zq-erp/src/main/java/com/matrix/biz/service/BizUserService.java
@@ -78,5 +78,5 @@
     * 设置为推广员
     * @param invitationId
     */
    public int setToBeAnSalesman(String openId,String invitationId);
    public int setToBeAnSalesman(String openId,String invitationId,long gradeId);
}
zq-erp/src/main/java/com/matrix/biz/service/impl/BizUserServiceImpl.java
@@ -8,7 +8,6 @@
import com.matrix.core.exception.GlobleException;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.ModelUtils;
import com.matrix.core.tools.UUIDUtil;
import com.matrix.system.common.constance.AppConstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -158,11 +157,12 @@
     * @param invitationId
     */
    @Override
    public int setToBeAnSalesman(String openId,String invitationId) {
    public int setToBeAnSalesman(String openId,String invitationId,long gradeId) {
        BizUser bizUser=bizUserDao.findByOpenId(openId);
        bizUser.setIsSales(BizUser.IS_SALES);
        bizUser.setParentOpenId(invitationId);
        bizUser.setBindingParentTime(new Date());
        bizUser.setSalesmanGrade(gradeId);
        return bizUserDao.updateByModel(bizUser);
    }
}
zq-erp/src/main/java/com/matrix/system/common/service/impl/InitBusParameterSettingService.java
@@ -43,7 +43,7 @@
    }
    /**
     * 初始化默认积分规则设置
     * 初始化默认分销规则设置
     */
    public void initBusParameterFenxiaoSetting(SysCompany sysCompany) {
        long companyId = sysCompany.getComId();
@@ -55,6 +55,7 @@
        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_APPLY_CONDITION, companyId));
        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_TG_PLAN, companyId));
        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_TG_POSTER, companyId));
        ruleSettings.add(addScoreRuleSetting(FenxiaoSettingConstant.FX_ZGFY, companyId));
        busParameterSettingsDao.batchInsert(ruleSettings);
    }
zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java
@@ -60,6 +60,12 @@
       String[] FXKGName={"分销开关"};
       List<FenXiaoSettingVo> fxkgRuleSettingsVo = getRuleSettingsVo(FXKGCode,FXKGName,companyId);
       result.putInMap("fxkg", fxkgRuleSettingsVo);
       //自购返佣
       String[] ZGFYCode={FenxiaoSettingConstant.FX_ZGFY};
       String[] ZGFYName={"自购返佣"};
       List<FenXiaoSettingVo> zgfyRuleSettingsVo = getRuleSettingsVo(ZGFYCode,ZGFYName,companyId);
       result.putInMap("zgfy", zgfyRuleSettingsVo);
       //分销模式
       String[] FXMSCode={FenxiaoSettingConstant.FX_MODEL};
       String[] FXMSName={"分销模式"};
zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java
@@ -10,6 +10,13 @@
     */
    public final static String FX_MODEL = "FX_MODEL";
    /**
     * 自购返佣 1:是 2:否
     */
    public final static String FX_ZGFY = "FX_ZGFY";
    public final static String FX_ZGFY_YES = "1";
    public final static String FX_ZGFY_NO = "2";
    /**
     * 申请方式
     */
    public final static String FX_APPLY_WAY = "FX_APPLY_WAY";
zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateFyfaDto.java
@@ -14,6 +14,9 @@
    @ApiModelProperty(value = "方案名称")
    private String  name;
    @ApiModelProperty(value = "自购返佣%")
    private Double  selfCommission;
    @ApiModelProperty(value = "推广提成%")
    private Double  sealesCommission;
    
zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalesmanGrade.java
@@ -33,6 +33,13 @@
    private Double  sealesCommission;
    /**
     * 自购返佣比例%
     */
    private Double  selfCommission;
    
    /**
     * 邀请提成 %
zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
@@ -54,7 +54,7 @@
    ShopSalesmanGradeDao shopSalesmanGradeDao;
    @Autowired
    private BizUserDao bizUserDao;
    BizUserDao bizUserDao;
    @Autowired
    BizUserService bizUserService;
@@ -116,8 +116,13 @@
                if(busParameterSettings!=null
                        &&busParameterSettings.getParamValue().equals("1")){
                    //自动审核
                    //初始等级ID(公司id,是否为初始等级)
                    QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>();
                    queryWrapperOrepool.eq("company_id", loginUser.getCompanyId());
                    queryWrapperOrepool.eq("is_default", 1);
                    ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool);
                    shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG);
                    bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId);
                    bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId,shopSalesmanGrade.getId());
                }else{
                    shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH);
@@ -225,6 +230,7 @@
        //修改USER的状态
        bizUser.setParentOpenId(parentUserId);
        bizUser.setBindingParentTime(new Date());
        bizUser.setSalesmanGrade(shopSalesmanApply.getGradeId());
        bizUserDao.updateByModel(bizUser);
    }
@@ -371,6 +377,10 @@
        if(StrUtil.isEmpty(name)) {
            return AjaxResult.buildFailInstance("请输入方案名称");
        }
        Double selfCommission = updateFyfaDto.getSelfCommission();
        if(ObjectUtil.isEmpty(selfCommission)) {
            return AjaxResult.buildFailInstance("请输入正确的自购返佣");
        }
        Double sealesCommission = updateFyfaDto.getSealesCommission();
        if(ObjectUtil.isEmpty(sealesCommission)) {
            return AjaxResult.buildFailInstance("请输入正确的推广提成");
@@ -384,6 +394,7 @@
            ShopSalesmanGrade shopSalesmanGrade = new ShopSalesmanGrade();
            shopSalesmanGrade.setCompanyId(updateFyfaDto.getCompanyId());
            shopSalesmanGrade.setName(updateFyfaDto.getName());
            shopSalesmanGrade.setSelfCommission(selfCommission);
            shopSalesmanGrade.setSealesCommission(sealesCommission);
            shopSalesmanGrade.setInvitationCommission(invitationCommission);
            shopSalesmanGrade.setGradeCondition(updateFyfaDto.getGradeCondition());
@@ -398,6 +409,7 @@
        }
        selectById.setCompanyId(updateFyfaDto.getCompanyId());
        selectById.setName(updateFyfaDto.getName());
        selectById.setSelfCommission(selfCommission);
        selectById.setSealesCommission(sealesCommission);
        selectById.setInvitationCommission(invitationCommission);
        selectById.setGradeCondition(updateFyfaDto.getGradeCondition());
zq-erp/src/main/java/com/matrix/system/fenxiao/vo/FyfaManageVo.java
@@ -14,6 +14,9 @@
    @ApiModelProperty(value = "方案名称")
    private String  name;
    @ApiModelProperty(value = "自购返佣%")
    private Double  selfCommission;
    @ApiModelProperty(value = "推广提成%")
    private Double  sealesCommission;
    
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
@@ -168,6 +168,8 @@
        loginUser = bizUserDao.selectById(loginUser.getUserId());
        if(loginUser.getIsSales()==1){
            return AjaxResult.buildSuccessInstance("只有非分销员才能被绑定成客户");
        }if (StringUtils.isNotBlank(loginUser.getParentOpenId())){
            return AjaxResult.buildSuccessInstance("已经被绑定");
        }else{
            if (StringUtils.isBlank(loginUser.getParentOpenId())) {
                Map<String, Object> updateParam = new HashMap<>();
@@ -203,7 +205,7 @@
            String urlPath = baseSaveUrl + "/" + "wxacode" + "/" + targetImg;
            String qrcodeSavePath = WxacodeUtil.getWxacode(loginUser.getOpenId() + "", "pages/distributorCenter/applyFor/applyFor", MD5Util.strToMD5(loginUser.getOpenId())+"qrcode"
            String qrcodeSavePath = WxacodeUtil.getWxacode(loginUser.getUserId() + "", "pages/distributorCenter/applyFor/applyFor", MD5Util.strToMD5(loginUser.getOpenId())+"qrcode"
                    ,weChatApiTools.getAppid(loginUser.getCompanyId()),weChatApiTools.getSecret(loginUser.getCompanyId()));
            BufferedImage qrcordImgBuf = ImageIO.read(new File(qrcodeSavePath));
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopAdvertis.java
@@ -63,12 +63,25 @@
     */
    private String linkUrl;
    /**连接的页面id */
    private  Long  pageId;
    /**
     * 所属分类
     */
    @Extend
    private String adtName;
    private Long companyId;
    public Long getPageId() {
        return pageId;
    }
    public void setPageId(Long pageId) {
        this.pageId = pageId;
    }
    public Long getCompanyId() {
        return companyId;
    }
zq-erp/src/main/java/com/matrix/system/shopXcx/bean/ShopSku.java
@@ -49,6 +49,11 @@
     * 价格
     */
    private BigDecimal price;
    /**
     *自购提成
     */
    private BigDecimal selfPrice;
    /**
     *推广提成
     */
@@ -282,4 +287,12 @@
        return id.equals(((ShopSku) obj).getId());
    }
    public BigDecimal getSelfPrice() {
        return selfPrice;
    }
    public void setSelfPrice(BigDecimal selfPrice) {
        this.selfPrice = selfPrice;
    }
}
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java
@@ -1,13 +1,17 @@
package com.matrix.system.shopXcx.mqTask;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.matrix.biz.bean.BizUser;
import com.matrix.biz.service.BizUserService;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
@@ -20,6 +24,7 @@
import com.matrix.system.hive.service.SysOrderService;
import com.matrix.system.shopXcx.bean.ShopOrder;
import com.matrix.system.shopXcx.bean.ShopOrderDetails;
import com.matrix.system.shopXcx.bean.ShopProduct;
import com.matrix.system.shopXcx.dao.ShopOrderDao;
import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao;
import com.matrix.system.shopXcx.dao.ShopSkuDao;
@@ -109,8 +114,6 @@
    void handleExtensionOrder(ShopOrder order) {
        //判读客户是否存在上级,存在则产生上级的收益
        BizUser bizUser = bizUserService.findByOpenId(order.getUserId());
        if(StringUtils.isNotBlank(bizUser.getParentOpenId())){//存在上级
            LogUtil.debug("处理分销订单userOpid={}",bizUser.getOpenId());
            //判断是否重复生成
            QueryWrapper queryWrapper=new QueryWrapper();
@@ -125,19 +128,60 @@
                salesmanOrder.setUpdateTime(new Date());
                salesmanOrder.setOrderId(Long.parseLong(order.getId()+""));
                salesmanOrder.setUserId(order.getUserId());
                salesmanOrder.setSalesUserId(bizUser.getParentOpenId());
                salesmanOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_SALES);
                salesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_DJS);
            Double selfAmount=0D;
            Double zk=1D;
            //分销订单总额
            Double orderTotal=0D;
            for (ShopOrderDetails item:order.getDetails() ){
                if(item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){
                    orderTotal+=item.getTotalPrice().doubleValue();
                }
            }
            //自购返佣
            Integer isSales = bizUser.getIsSales();
            if(BizUser.IS_SALES == isSales){
                for (ShopOrderDetails item:order.getDetails() ){
                    if(item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){
                        //分销规则是否开启自购返佣
                        BusParameterSettings zgfy = parameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_ZGFY, bizUser.getCompanyId());
                        //按分销等级计算
                        ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(bizUser.getSalesmanGrade());
                        if(ObjectUtil.isNotEmpty(zgfy)) {
                            //获取商品的自购返佣价格,如果没有设置,在去获取当前推广人的等级的自购返佣比例
                            if(StrUtil.isNotEmpty(zgfy.getParamValue()) &&
                                    FenxiaoSettingConstant.FX_ZGFY_YES.equals(zgfy.getParamValue())) {
                                if(item.getShopSku().getSelfPrice() == null
                                        ||item.getShopSku().getSealesPrice().doubleValue() == 0){
                                    selfAmount+=item.getTotalPrice().doubleValue()*(shopSalesmanGrade.getSelfCommission()/100);
                                }else {
                                    //按产品设置的自购返佣金额计算
                                    selfAmount+=item.getShopSku().getSelfPrice().doubleValue()*item.getCount();
                                }
                            }
                        }
                    }
                }
                //自购返佣记录
                if(selfAmount > 0) {
                    //整体的优惠金额折算成折扣,* 佣金
                    zk=order.getOrderMoney().doubleValue()/orderTotal;
                    selfAmount=selfAmount*zk;
                    salesmanOrder.setAmount(selfAmount);
                    salesmanOrder.setSalesUserId(order.getUserId());
                    shopSalesmanOrderDao.insert(salesmanOrder);
                }
            }
            //存在上级
            if(StringUtils.isNotBlank(bizUser.getParentOpenId())) {
                BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId());
                Double salesAmount=0D;
                Double invitationAmount=0D;
                Double orderTotal=0D;
                Double zk=1D;
                BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId());
                BizUser invitationMan=null;
                ShopSalesmanOrder invitationOrder=null;
                boolean hasInvitationMan=StringUtils.isNotBlank(salesMan.getParentOpenId());
                //判断推广员是否还存在上级,存在则计算邀请收益
                if(hasInvitationMan){
                    invitationMan=bizUserService.findByOpenId(salesMan.getParentOpenId());
@@ -146,51 +190,53 @@
                    invitationOrder.setSalesUserId(invitationMan.getOpenId());
                    invitationOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_INVITATION);
                }
                //收益计算
                for (ShopOrderDetails item:order.getDetails() ){
                    if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues())
                            && item.getShopProduct().getAttrValues().contains("分销商城")){
                        if(item.getShopSku().getSealesPrice()==null
                                ||item.getShopSku().getSealesPrice().doubleValue()==0){
                    if(item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){
                            //按分销等级计算
                            ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade());
                        //推广提成,按分销等级计算或者按产品设置的推广金额计算
                        if(item.getShopSku().getSealesPrice()==null
                                ||item.getShopSku().getSealesPrice().doubleValue()==0){
                            salesAmount+=item.getTotalPrice().doubleValue()*(shopSalesmanGrade.getSealesCommission()/100);
                        }else{
                            salesAmount+=item.getShopSku().getSealesPrice().doubleValue()*item.getCount();
                        }
                        //邀请提成,获取商品的邀请提成价格和是否有上级推广人,如果没有设置,在去获取当前推广人的等级的自购返佣比例
                            if(hasInvitationMan){
                            if(item.getShopSku().getInvitationPrice() == null
                                    ||item.getShopSku().getInvitationPrice().doubleValue() == 0){
                                //获取上级的推广等级设置
                                ShopSalesmanGrade invitationManGrade = shopSalesmanGradeDao.selectById(invitationMan.getSalesmanGrade());
                                invitationAmount+=item.getTotalPrice().doubleValue()*(invitationManGrade.getInvitationCommission()/100);
                            }
                        }else{
                            //按产品设置的推广金额计算
                            salesAmount+=item.getShopSku().getSealesPrice().doubleValue()*item.getCount();
                            if(hasInvitationMan){
                                //按产品设置的邀请提成价格计算
                                invitationAmount+=item.getShopSku().getInvitationPrice().doubleValue()*item.getCount();
                            }
                        }
                        orderTotal+=item.getTotalPrice().doubleValue();
                    }
                }
                //推广提成记录
                if(salesAmount>0){
                    //整体的优惠金额折算成折扣,* 佣金
                    zk=order.getOrderMoney().doubleValue()/orderTotal;
                    salesAmount=salesAmount*zk;
                    salesmanOrder.setAmount(salesAmount);
                    salesmanOrder.setSalesUserId(bizUser.getParentOpenId());
                    shopSalesmanOrderDao.insert(salesmanOrder);
                    if(hasInvitationMan){
                }
                //邀请提成记录
                if(invitationAmount > 0) {
                    //整体的优惠金额折算成折扣,* 佣金
                        invitationAmount=invitationAmount*zk;
                        invitationOrder.setAmount(invitationAmount);
                        shopSalesmanOrderDao.insert(invitationOrder);
                    }
            }else{
                LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId());
                }
            }else{
                LogUtil.debug("重复订单id={}",order.getId());
            }
        }else{
            LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId());
        }
    }
}
zq-erp/src/main/resources/config/db/increment/推广员.sql
@@ -209,3 +209,15 @@
ALTER TABLE `shop_order`
DROP COLUMN `score_pay`,
ADD COLUMN `score_pay` int(20) NULL COMMENT '支付积分' AFTER `company_id`;
ALTER TABLE `shop_advertis`
    ADD COLUMN `page_id` bigint(0) NULL COMMENT '连接页面' AFTER `company_id`;
ALTER TABLE `shop_sku`
DROP COLUMN `self_price`,
ADD COLUMN `self_price`  decimal(20,2) NULL AFTER `score_count`;
ALTER TABLE `shop_salesman_grade`
DROP COLUMN `self_commission`,
ADD COLUMN `self_commission`  double(20,2) NULL COMMENT '自购返佣比例%' AFTER `company_id`;
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -72,9 +72,9 @@
        ( SELECT COUNT(*) FROM biz_user
        WHERE parent_open_id = a.user_id AND is_sales = 1 ) invitedNum,
        ( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
        WHERE user_id = a.user_id AND order_status = 2 AND sales_user_id = a.user_id ) totalRevenue,
        WHERE  order_status = 2 AND sales_user_id = a.user_id ) totalRevenue,
        ( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order
        WHERE user_id = a.user_id AND order_status = 1 AND sales_user_id = a.user_id ) balance,
        WHERE  order_status = 1 AND sales_user_id = a.user_id ) balance,
        g.NAME grade,
        a.create_time createTime,
        a.apply_status applyStatus,
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
@@ -49,6 +49,7 @@
        SELECT
            a.id id,
            a.name name,
            a.self_commission selfCommission,
            a.seales_commission sealesCommission,
            a.invitation_commission invitationCommission,
            a.grade_condition gradeCondition,
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopAdvertisDao.xml
@@ -20,6 +20,7 @@
        <result property="linkType" column="link_type"/>
        <result property="linkUrl" column="link_url"/>
        <result property="companyId" column="company_id" />
        <result property="pageId" column="page_id" />
    </resultMap>
    
    
@@ -38,6 +39,7 @@
            <result property="remarks" column="remarks" />
        <result property="linkType" column="link_type"/>
        <result property="linkUrl" column="link_url"/>
        <result property="pageId" column="page_id" />
        <result property="companyId" column="company_id" />
    </resultMap>
    
@@ -56,6 +58,7 @@
            remarks,
link_type,
link_url,
page_id,
            company_id
    </sql>
    
@@ -74,6 +77,7 @@
            #{item.remarks},
            #{item.linkType},
            #{item.linkUrl},
            #{item.pageId},
        #{item.companyId}
    </sql>
    
@@ -101,6 +105,9 @@
            </if>
            <if test="(record.remarks!=null and record.remarks!='') or  (record.remarks!='' and record.remarks==0)  ">
                and remarks  = #{record.remarks} 
            </if>
            <if test="(record.pageId!=null and record.pageId!='') or  (record.pageId!='' and record.pageId==0)  ">
                and page_id  = #{record.pageId}
            </if>
             <if test="record.companyId != null and record.companyId !='' ">
                 and company_id = #{record.companyId}
@@ -167,6 +174,10 @@
                link_type = #{linkType},
            </if>
            <if test="_parameter.containsKey('pageId')">
                page_id = #{pageId},
            </if>
        </set>
        WHERE id=#{id} 
@@ -204,6 +215,10 @@
            <if test="record.companyId != null and record.companyId !='' ">
                 company_id = #{record.companyId}
            </if>
            <if test="record.pageId != null and record.pageId !='' ">
                page_id = #{record.pageId}
            </if>
        </set>
@@ -249,6 +264,7 @@
        ad.type_id typeId,
        ad.sort,
        ad.remarks,
               ad.page_id,
        IFNULL(adType.adt_name ,'无分类') adtName
        from shop_advertis ad
        left join shop_advertis_type adType
zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopSkuDao.xml
@@ -22,6 +22,7 @@
        <result property="sealCount" column="seal_count"/>
        <result property="stockCode" column="stock_code"/>
        <result property="shopId" column="shop_id"/>
        <result property="selfPrice" column="self_price"/>
        <result property="sealesPrice" column="seales_price"/>
        <result property="invitationPrice" column="invitation_price"/>
        <result property="scorePrice" column="score_price"/>
@@ -50,6 +51,7 @@
        <result property="sealCount" column="seal_count"/>
        <result property="stockCode" column="stock_code"/>
        <result property="shopId" column="shop_id"/>
        <result property="selfPrice" column="self_price"/>
        <result property="sealesPrice" column="seales_price"/>
        <result property="invitationPrice" column="invitation_price"/>
        <result property="scorePrice" column="score_price"/>
@@ -75,6 +77,7 @@
            seal_count,
            stock_code,
            shop_id,
self_price,
seales_price,
invitation_price,
        score_price,
@@ -102,6 +105,7 @@
            #{item.sealCount},
            #{item.stockCode},
            #{item.shopId},
            #{item.selfPrice},
            #{item.sealesPrice},
            #{item.invitationPrice},
            #{item.scorePrice},
@@ -234,6 +238,10 @@
                score_count = #{scoreCount},
            </if>
            <if test="_parameter.containsKey('selfPrice')">
                self_price = #{selfPrice},
            </if>
        </set>
        WHERE id=#{id}
@@ -293,6 +301,10 @@
                score_count = #{record.scoreCount},
            </if>
            <if test="record.selfPrice != null ">
                self_price = #{record.selfPrice},
            </if>
        </set>
        WHERE id=#{record.id}
zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html
@@ -39,6 +39,22 @@
        <el-row style="margin-top: 20px;">
            <el-col>
                <template v-for="paramSettingzgfy in zgfy">
                    <el-form-item>
                        <span slot="label">{{paramSettingzgfy.paramName}}</span>
                        <el-col>
                            <el-radio-group v-model="paramSettingzgfy.paramValue">
                                <el-radio :label="'1'">是</el-radio>
                                <el-radio :label="'2'">否</el-radio>
                            </el-radio-group>
                        </el-col>
                    </el-form-item >
                </template>
            </el-col>
        </el-row>
        <el-row style="margin-top: 20px;">
            <el-col>
                <template v-for="paramSettingTwo in fxms">
                    <el-form-item>
                        <span slot="label">{{paramSettingTwo.paramName}}</span>
@@ -287,6 +303,7 @@
            sqfs:[],
            shfs:[],
            sqtj:[],
            zgfy:[],
        },
        created: function () {
            this.loadInfo();
@@ -315,6 +332,7 @@
                        _this.fxkg = data.mapInfo.fxkg;
                        _this.fxms = data.mapInfo.fxms;
                        _this.sqfs = data.mapInfo.sqfs;
                        _this.zgfy = data.mapInfo.zgfy;
                        if(_this.sqfs.length > 0){
                            let paramssqfs = _this.sqfs[0].paramValue;
                            if(paramssqfs == 2){
@@ -444,6 +462,21 @@
                    }
                    submitDate.push(obj);
                }
                for (let i = 0; i < _this.zgfy.length; i++) {
                    let paramSetting = _this.zgfy[i];
                    let paramCode = paramSetting.paramCode;
                    let paramValue = paramSetting.paramValue;
                    let paramValue1 = paramSetting.paramValue1;
                    let paramValue2 = paramSetting.paramValue2;
                    let obj = {
                        paramCode: paramCode,
                        paramValue: paramValue,
                        paramValue1: paramValue1,
                        paramValue2: paramValue2,
                    }
                    submitDate.push(obj);
                }
                for (let i = 0; i < _this.fxms.length; i++) {
                    let paramSetting = _this.fxms[i];
                    let paramCode = paramSetting.paramCode;
zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
@@ -199,6 +199,13 @@
                            </el-table-column>
                            <el-table-column
                                    prop="sealesCommission"
                                    label="自购返佣 %">
                                <template slot-scope="scope">
                                    <el-input class="edit-input" v-model="scope.row.selfCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="自购返佣"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column
                                    prop="sealesCommission"
                                    label="推广提成 %">
                                <template slot-scope="scope">
                                    <el-input class="edit-input" v-model="scope.row.sealesCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="推广提成"></el-input>
@@ -474,12 +481,14 @@
                let id = row.id;
                let name = row.name;
                let sealesCommission = row.sealesCommission;
                let selfCommission = row.selfCommission;
                let invitationCommission = row.invitationCommission;
                let gradeCondition = row.gradeCondition;
                let obj = {
                    id: id,
                    name: name,
                    sealesCommission: sealesCommission,
                    selfCommission: selfCommission,
                    invitationCommission: invitationCommission,
                    gradeCondition: gradeCondition,
                }
zq-erp/src/main/resources/templates/views/admin/shop/shopAdvertisType-list.html
@@ -244,7 +244,7 @@
                <el-table
                        :data="currentNode.ads"
                        :default-sort="{prop: '', order: 'descending'}"
                        style="width: 100%" max-height="250">
                        style="width: 100%" >
                    <el-table-column
                            label="排序"
zq-erp/src/main/resources/templates/views/admin/shop/shopProduct-form.html
@@ -221,6 +221,7 @@
                                    <th>消费可得积分</th>
                                    <th>关联ERP产品</th>
                                    <th>排序</th>
                                    <th>自购返佣</th>
                                    <th>推广提成</th>
                                    <th>邀请提成</th>
                                    <th>兑换所需金额</th>
@@ -352,6 +353,7 @@
        <p class="form-control-static erpGoodsName"></p>
        <input autocomplete="off"   type="hidden" class="form-control" name="erpGoodsCode">
    </div></td>
    <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
    <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
        <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
        <td><input autocomplete="off"   type="text" class="form-control" name=""></td>
@@ -528,7 +530,10 @@
            if (goodsName == null || typeof stockCode == 'undefined') {
                goodsName = "";
            }
            var selfPrice = shopSkus[c].selfPrice;
            if (selfPrice == null || typeof selfPrice == 'undefined') {
                selfPrice = "";
            }
            var sealesPrice = shopSkus[c].sealesPrice;
            if (sealesPrice == null || typeof sealesPrice == 'undefined') {
                sealesPrice = "";
@@ -559,6 +564,7 @@
                +'<td><div id="erpNoDiv"><button class="btn btn-info" onclick="selectProduct(\'shopIdValue\',\''+trId+'\')"><i class="fa fa-plus"></i></button>'
                +'<p class="form-control-static erpGoodsName">'+ goodsName +'</p><input autocomplete="off" class="form-control" type="hidden"  value="'+stockCode+'" name="erpGoodsCode"></div></td>'
                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+sort+'" name=""></td>'
                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+selfPrice+'" name=""></td>'
                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+sealesPrice+'" name=""></td>'
                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+invitationPrice+'" name=""></td>'
                +'<td><input autocomplete="off"   type="text" class="form-control"  value="'+scorePrice+'" name=""></td>'
@@ -745,61 +751,63 @@
            if (i != 0) {
                var tds = $(this).find("td");
                var length = tds.length - 1;
                var id = tds.eq(length - 12).find("input").val();
                var id = tds.eq(length - 13).find("input").val();
                if(id == null){
                    id ="";
                }
                sku.id = id;
                //规格名称
                var name = tds.eq(length - 11).find("input").val();
                var name = tds.eq(length - 12).find("input").val();
                if(name == null){
                    name = "";
                }
                sku.name = name;
                //图片地址
                var path = tds.eq(length - 10).find("img").attr("src");
                var path = tds.eq(length - 11).find("img").attr("src");
                if(path == null){
                    path = "";
                }
                sku.imgPath = path;
                //库存
                var stock = tds.eq(length - 9).find("input").val();
                var stock = tds.eq(length - 10).find("input").val();
                if(stock == ""){
                    stock = 0;
                }
                sku.stock = stock;
                //价格
                var price = tds.eq(length -8).find("input").val();
                var price = tds.eq(length -9).find("input").val();
                if(price == ""){
                    price =0;
                }
                sku.price = price;
                //积分
                var score = tds.eq(length - 7).find("input").val();
                var score = tds.eq(length - 8).find("input").val();
                if(score == ""){
                    score = 0;
                }
                sku.score = score;
                //品种编码
                var stockCode = tds.eq(length - 6).find("input").val();
                var stockCode = tds.eq(length - 7).find("input").val();
                if(stockCode == null || typeof stockCode == 'undefined'){
                    stockCode = '';
                }
                sku.stockCode = stockCode;
                //排序
                var sort = tds.eq(length - 5).find("input").val();
                var sort = tds.eq(length - 6).find("input").val();
                if(sort == ""){
                    sort = 0;
                }
                sku.sort = sort;
                //推广提成
                var selfPrice = tds.eq(length - 5).find("input").val();
                sku.selfPrice = selfPrice;
                //推广提成
                var sealesPrice = tds.eq(length - 4).find("input").val();
                sku.sealesPrice = sealesPrice;
@@ -838,20 +846,6 @@
                var tds = $(this).find("td");
                var length = tds.length - 1;
                if(ableSales==1){
                    //推广提成
                    var sealesPrice = tds.eq(length - 4).find("input").val();
                    //邀请提成
                    var invitationPrice = tds.eq(length - 3).find("input").val();
                    if(sealesPrice == ""||invitationPrice==""){
                        layer.msg("请填写推广提成和邀请提成",{
                            icon : 2,
                            time : 2000
                        });
                        flag = true;
                        return false;
                    }
                }
                if(ableScorePay==1){
                    //兑换所需金额
@@ -868,7 +862,7 @@
                    }
                }
                var name = tds.eq(length - 11).find("input").val();
                var name = tds.eq(length - 12).find("input").val();
                if(name == ""){
                    layer.msg("请填写规格名称",{
                        icon : 2,
@@ -886,7 +880,7 @@
                    return false;
                }
                var stock = tds.eq(length -9).find("input").val();
                var stock = tds.eq(length -10).find("input").val();
                if(stock == ""){
                    layer.msg("请填写库存",{
                        icon : 2,
@@ -895,7 +889,7 @@
                    flag = true;
                    return false;
                }
                var price = tds.eq(length - 8 ).find("input").val();
                var price = tds.eq(length - 9 ).find("input").val();
                if(price == ""){
                    layer.msg("请填写价格",{
                        icon : 2,
zq-erp/src/test/java/com/matrix/SalesOrderTaskTest.java
New file
@@ -0,0 +1,247 @@
package com.matrix;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.matrix.biz.bean.BizUser;
import com.matrix.biz.service.BizUserService;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.tools.LogUtil;
import com.matrix.core.tools.StringUtils;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao;
import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
import com.matrix.system.fenxiao.entity.ShopSalesmanOrder;
import com.matrix.system.hive.dao.SysOrderDao;
import com.matrix.system.hive.dao.SysOrderItemDao;
import com.matrix.system.hive.dao.SysVipInfoDao;
import com.matrix.system.hive.service.CodeService;
import com.matrix.system.hive.service.ShoppingGoodsService;
import com.matrix.system.hive.service.SysOrderService;
import com.matrix.system.shopXcx.bean.ShopOrder;
import com.matrix.system.shopXcx.bean.ShopOrderDetails;
import com.matrix.system.shopXcx.bean.ShopProduct;
import com.matrix.system.shopXcx.bean.ShopSku;
import com.matrix.system.shopXcx.dao.ShopOrderDao;
import com.matrix.system.shopXcx.dao.ShopOrderDetailsDao;
import com.matrix.system.shopXcx.dao.ShopSkuDao;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {ZqErpApplication.class},webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT)
public class SalesOrderTaskTest {
    @Autowired
    ShopOrderDao shopOrderDao;
    @Autowired
    ShopOrderDetailsDao shopOrderDetailsDao;
    @Autowired
    BizUserService bizUserService;
    @Autowired
    SysVipInfoDao vipDap;
    @Autowired
    SysVipInfoDao vipDao;
    @Autowired
    CodeService codeService;
    @Autowired
    SysOrderDao sysOrderDao;
    @Autowired
    ShoppingGoodsService shoppingGoodsService;
    @Autowired
    SysOrderItemDao orderItemDao;
    @Autowired
    SysOrderService orderService;
    @Autowired
    ShopSkuDao shopSkuDao;
    @Autowired
    BusParameterSettingsDao parameterSettingsDao;
    @Autowired
    private ShopSalesmanOrderDao shopSalesmanOrderDao;
    @Autowired
    private ShopSalesmanGradeDao shopSalesmanGradeDao;
    /**
     * 处理分销订单
     * @param order
     */
    @Test
    public void handleExtensionOrder() {
        ShopOrder order = new ShopOrder();
        order.setUserId("oJkRK4_pWN2kjp75B_G6oGSWawj0");
        order.setId(1190);
        order.setCompanyId(36L);
        List<ShopOrderDetails> details = new ArrayList<ShopOrderDetails>();
        ShopOrderDetails shopOrderDetails = new ShopOrderDetails();
        shopOrderDetails.setTotalPrice(new BigDecimal(0.01));
        ShopProduct shopProduct = new ShopProduct();
        shopProduct.setAttrValues("测试");
        shopProduct.setAbleSales(1);
        ShopSku shopSku = new ShopSku();
        shopOrderDetails.setShopSku(shopSku);
        shopOrderDetails.setShopProduct(shopProduct);
        shopOrderDetails.setCount(1);
        details.add(shopOrderDetails);
        order.setDetails(details);
        order.setOrderMoney(new BigDecimal(0.01));
        //判读客户是否存在上级,存在则产生上级的收益
        BizUser bizUser = bizUserService.findByOpenId(order.getUserId());
        LogUtil.debug("处理分销订单userOpid={}",bizUser.getOpenId());
        //判断是否重复生成
        QueryWrapper queryWrapper=new QueryWrapper();
        queryWrapper.eq("order_id",order.getId());
        Integer orderCount = shopSalesmanOrderDao.selectCount(queryWrapper);
        if(orderCount==0){
            ShopSalesmanOrder salesmanOrder=new ShopSalesmanOrder();
            salesmanOrder.setCompanyId(order.getCompanyId());
            salesmanOrder.setCreateBy(MatrixConstance.SYSTEM_USER);
            salesmanOrder.setUpdateBy(MatrixConstance.SYSTEM_USER);
            salesmanOrder.setCreateTime(new Date());
            salesmanOrder.setUpdateTime(new Date());
            salesmanOrder.setOrderId(Long.parseLong(order.getId()+""));
            salesmanOrder.setUserId(order.getUserId());
            salesmanOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_SALES);
            salesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_DJS);
            Double selfAmount=0D;
            Double zk=1D;
            //分销订单总额
            Double orderTotal=0D;
            for (ShopOrderDetails item:order.getDetails() ){
                if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues())
                        && item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){
                    orderTotal+=item.getTotalPrice().doubleValue();
                }
            }
            //自购返佣
            for (ShopOrderDetails item:order.getDetails() ){
                if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues())
                        && item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){
                    //分销规则是否开启自购返佣
                    BusParameterSettings zgfy = parameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_ZGFY, bizUser.getCompanyId());
                    //按分销等级计算
                    ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(bizUser.getSalesmanGrade());
                    if(ObjectUtil.isNotEmpty(zgfy)) {
                        //获取商品的自购返佣价格,如果没有设置,在去获取当前推广人的等级的自购返佣比例
                        if(StrUtil.isNotEmpty(zgfy.getParamValue()) &&
                                FenxiaoSettingConstant.FX_ZGFY_YES.equals(zgfy.getParamValue())) {
                            if(item.getShopSku().getSelfPrice() == null
                                    ||item.getShopSku().getSealesPrice().doubleValue() == 0){
                                selfAmount+=item.getTotalPrice().doubleValue()*(shopSalesmanGrade.getSelfCommission()/100);
                            }else {
                                //按产品设置的自购返佣金额计算
                                selfAmount+=item.getShopSku().getSelfPrice().doubleValue()*item.getCount();
                            }
                        }
                    }
                }
            }
            //自购返佣记录
            if(selfAmount > 0) {
                //整体的优惠金额折算成折扣,* 佣金
                zk=order.getOrderMoney().doubleValue()/orderTotal;
                selfAmount=selfAmount*zk;
                salesmanOrder.setAmount(selfAmount);
                salesmanOrder.setSalesUserId(order.getUserId());
                shopSalesmanOrderDao.insert(salesmanOrder);
            }
            //存在上级
            if(StringUtils.isNotBlank(bizUser.getParentOpenId())) {
                BizUser salesMan=bizUserService.findByOpenId(bizUser.getParentOpenId());
                Double salesAmount=0D;
                Double invitationAmount=0D;
                BizUser invitationMan=null;
                ShopSalesmanOrder invitationOrder=null;
                boolean hasInvitationMan=StringUtils.isNotBlank(salesMan.getParentOpenId());
                //判断推广员是否还存在上级,存在则计算邀请收益
                if(hasInvitationMan){
                    invitationMan=bizUserService.findByOpenId(salesMan.getParentOpenId());
                    invitationOrder=new ShopSalesmanOrder();
                    BeanUtils.copyProperties(salesmanOrder,invitationOrder);
                    invitationOrder.setSalesUserId(invitationMan.getOpenId());
                    invitationOrder.setRevenueType(ShopSalesmanOrder.REVENUE_TYPE_INVITATION);
                }
                //收益计算
                for (ShopOrderDetails item:order.getDetails() ){
                    if(StringUtils.isNotBlank(item.getShopProduct().getAttrValues())
                            && item.getShopProduct().getAbleSales()==ShopProduct.ABLE_SALES){
                        //按分销等级计算
                        ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectById(salesMan.getSalesmanGrade());
                        //推广提成,按分销等级计算或者按产品设置的推广金额计算
                        if(item.getShopSku().getSealesPrice()==null
                                ||item.getShopSku().getSealesPrice().doubleValue()==0){
                            salesAmount+=item.getTotalPrice().doubleValue()*(shopSalesmanGrade.getSealesCommission()/100);
                        }else{
                            salesAmount+=item.getShopSku().getSealesPrice().doubleValue()*item.getCount();
                        }
                        //邀请提成,获取商品的邀请提成价格和是否有上级推广人,如果没有设置,在去获取当前推广人的等级的自购返佣比例
                        if(hasInvitationMan) {
                            if(item.getShopSku().getInvitationPrice() == null
                                    ||item.getShopSku().getInvitationPrice().doubleValue() == 0){
                                //获取上级的推广等级设置
                                ShopSalesmanGrade invitationManGrade = shopSalesmanGradeDao.selectById(invitationMan.getSalesmanGrade());
                                invitationAmount+=item.getTotalPrice().doubleValue()*(invitationManGrade.getInvitationCommission()/100);
                            }else {
                                //按产品设置的邀请提成价格计算
                                invitationAmount+=item.getShopSku().getInvitationPrice().doubleValue()*item.getCount();
                            }
                        }
                    }
                }
                //推广提成记录
                if(salesAmount>0){
                    //整体的优惠金额折算成折扣,* 佣金
                    zk=order.getOrderMoney().doubleValue()/orderTotal;
                    salesAmount=salesAmount*zk;
                    salesmanOrder.setAmount(salesAmount);
                    salesmanOrder.setSalesUserId(bizUser.getParentOpenId());
                    shopSalesmanOrderDao.insert(salesmanOrder);
                }
                //邀请提成记录
                if(invitationAmount > 0) {
                    //整体的优惠金额折算成折扣,* 佣金
                    invitationAmount=invitationAmount*zk;
                    invitationOrder.setAmount(invitationAmount);
                    shopSalesmanOrderDao.insert(invitationOrder);
                }
            }else{
                LogUtil.debug("不存在父级userOpid={}",bizUser.getOpenId());
            }
        }else{
            LogUtil.debug("重复订单id={}",order.getId());
        }
    }
}