Преглед изворни кода

1 .用户提现逻辑调整

wuhp пре 2 година
родитељ
комит
0b775dba67

+ 9 - 0
src/main/java/com/ydtech/modules/admin/controller/SysUserAccountController.java

@@ -12,6 +12,7 @@ import com.ydtech.modules.esm.model.vo.EsmInsAttributionTemplateSaveVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 import com.ydtech.modules.protocol.utils.AssertionUtils;
 import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -47,6 +48,14 @@ public class SysUserAccountController extends BaseController {
         return HttpResult.ok(sysUserAccountService.getSysUserAmount(userid));
     }
 
+    @GetMapping(value = "/getSysAllAmount")
+    @ApiModelProperty("用户余额new")
+    public HttpResult<SysUserAccountVo>  getSysAllAmount (){
+        String userId = BaseController.getUser().getId();
+        SysUserAccountVo result = sysUserAccountService.getSysAllAmount(userId);
+        return  HttpResult.ok("success", result);
+    }
+
 
 
 

+ 3 - 0
src/main/java/com/ydtech/modules/admin/dao/SysAmountAuditingMapper.java

@@ -17,4 +17,7 @@ public interface SysAmountAuditingMapper extends BaseMapper<SysAmountAuditingEnt
     Page<SysAmountAuditingEntity> queryPageOrder(@Param("sysAmountAuditingVo") SysAmountAuditingVo sysAmountAuditingVo, Page<SysAmountAuditingEntity> page);
 
     List<SysAmountAuditingEntity> queryPageOrderNew(HashMap<String, Object> params);
+
+    List<SysAmountAuditingEntity> getProgressIng(HashMap<String, Object> params);
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserAccountMapper.java

@@ -4,8 +4,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.admin.model.po.SysUserAccount;
 import com.ydtech.modules.admin.model.vo.SysUserAccountVo;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
 * @author Administrator
 * @description 针对表【sys_user_account(用户账户表)】的数据库操作Mapper
@@ -17,6 +21,7 @@ public interface SysUserAccountMapper extends BaseMapper<SysUserAccount> {
     Page<SysUserAccount> queryPageOrder(SysUserAccountVo sysUserAccountVo,@Param("page") Page page);
 
     SysUserAccount getById(String userId);
+
 }
 
 

+ 23 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserAccountVo.java

@@ -100,4 +100,27 @@ public class SysUserAccountVo {
 
     @ApiModelProperty(value = "银行卡Id")
     private Long fromBankCardId;
+
+
+    @ApiModelProperty(value = "预收手续费佣金")
+    private BigDecimal willHalding;
+    @ApiModelProperty(value = "预收非跟单佣金")
+    private BigDecimal willDocumentary;
+    @ApiModelProperty(value = "预收推广费")
+    private BigDecimal willPromotion;
+
+
+    @ApiModelProperty(value = "提现中手续费佣金")
+    private BigDecimal withdrawalHalding;
+    @ApiModelProperty(value = "提现中非跟单佣金")
+    private BigDecimal withdrawalDocumentary;
+    @ApiModelProperty(value = "提现中推广费")
+    private BigDecimal withdrawalPromotion;
+
+    @ApiModelProperty(value = "提现中手续费佣金")
+    private BigDecimal approvedHalding;
+    @ApiModelProperty(value = "提现中非跟单佣金")
+    private BigDecimal approvedDocumentary;
+    @ApiModelProperty(value = "提现中推广费")
+    private BigDecimal approvedPromotion;
 }

+ 5 - 0
src/main/java/com/ydtech/modules/admin/service/SysAmountAuditingService.java

@@ -6,6 +6,9 @@ import com.ydtech.modules.admin.model.po.SysAmountAuditingEntity;
 import com.ydtech.modules.admin.model.vo.SysAmountAuditingVo;
 import com.ydtech.modules.order.entity.BasePageResult;
 
+import java.util.HashMap;
+import java.util.List;
+
 public interface SysAmountAuditingService extends IService<SysAmountAuditingEntity> {
     void AmountReview(SysAmountAuditingVo sysUserAccountVo);
 
@@ -15,4 +18,6 @@ public interface SysAmountAuditingService extends IService<SysAmountAuditingEnti
 
     BasePageResult<SysAmountAuditingEntity> queryAppPage(SysAmountAuditingVo sysAmountAuditingVo);
 
+    List<SysAmountAuditingEntity> getProgressIng(HashMap<String, Object> params);
+
 }

+ 1 - 0
src/main/java/com/ydtech/modules/admin/service/SysUserAccountService.java

@@ -22,4 +22,5 @@ public interface SysUserAccountService extends IService<SysUserAccount> {
 
     SysUserAccount getSysUserAmount(String userid);
 
+    SysUserAccountVo getSysAllAmount(String userId);
 }

+ 6 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysAmountAuditingServiceImpl.java

@@ -126,4 +126,10 @@ public class SysAmountAuditingServiceImpl extends ServiceImpl<SysAmountAuditingM
         return new BasePageResult<>(sysAmountAuditingVo.getPageNum(), page.getSize(), sysUserAccountHistoryPage.getTotal(), page.getPages(),
                 sysUserAccountHistoryPage.getRecords());
     }
+
+    @Override
+    public  List<SysAmountAuditingEntity> getProgressIng(HashMap<String, Object> params) {
+        return  baseMapper.getProgressIng(params);
+
+    }
 }

+ 171 - 0
src/main/java/com/ydtech/modules/admin/service/impl/SysUserAccountServiceImpl.java

@@ -18,15 +18,24 @@ import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.modules.order.entity.BasePageResult;
+import com.ydtech.modules.order.entity.InsOrders;
+import com.ydtech.modules.order.service.InsAreaCompanyService;
+import com.ydtech.modules.order.service.InsOrdersService;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
+import com.ydtech.modules.protocols.service.InsFeeOrderNewService;
 import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
 
 /**
  * @author Administrator
@@ -45,6 +54,10 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
 
     @Autowired
     private SysUserBankCardService sysUserBankCardService;
+    @Autowired
+    private InsAreaCompanyService insAreaCompanyService;
+    @Autowired
+    private InsFeeOrderNewService  insFeeOrderNewService;
 
     @Override
     @Transactional
@@ -228,6 +241,164 @@ public class SysUserAccountServiceImpl extends ServiceImpl<SysUserAccountMapper,
         return sysUserAccount;
     }
 
+    @Override
+    public SysUserAccountVo getSysAllAmount(String userId) {
+        SysUserAccountVo sysUserAccountVo = new SysUserAccountVo();
+        SysUserAccount sysUserAccount = baseMapper.getById(userId);
+        BeanUtils.copyProperties(sysUserAccount, sysUserAccountVo);
+
+        BigDecimal  willHalding=BigDecimal.ZERO;        //预收手续费佣金
+        BigDecimal  willDocumentary =BigDecimal.ZERO;   //预收 非跟单佣金
+        BigDecimal  willPromotion =BigDecimal.ZERO;   //预收 推广
+
+        this.willPromotion(willPromotion,userId);  // 佣金
+        List<InsOrders> willList = insAreaCompanyService.getByUserId(userId);
+        if(!CollectionUtils.isEmpty(willList)){
+           for (InsOrders item : willList){
+               String quoteno = item.getQuoteno();
+               if(StringUtils.isNotEmpty(quoteno)){
+                  this.willAmount(quoteno,willHalding,willDocumentary);  // 推广 非跟单
+               }
+           }
+
+        }
+//        体现中
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("auditingStatus","2");  // 待审核
+        params.put("userId",userId);
+        List<SysAmountAuditingEntity>  sysAmountAuditingProgressIng=  sysAmountAuditingService.getProgressIng(params);
+        this.judge(sysAmountAuditingProgressIng,sysUserAccountVo);
+        params.clear();
+        params.put("auditingStatus","3");  // 已审核审核
+        params.put("userId",userId);
+        List<SysAmountAuditingEntity>  sysAmountAuditingApproved=  sysAmountAuditingService.getProgressIng(params);
+        this.judgeSysAmountAuditing(sysAmountAuditingApproved,sysUserAccountVo);
+        sysUserAccountVo.setWillHalding(willHalding);
+        sysUserAccountVo.setWillDocumentary(willDocumentary);
+        sysUserAccountVo.setWillPromotion(willPromotion);
+        return sysUserAccountVo;
+    }
+
+    private void judgeSysAmountAuditing(List<SysAmountAuditingEntity> sysAmountAuditingApproved, SysUserAccountVo sysUserAccountVo) {
+        if(!CollectionUtils.isEmpty(sysAmountAuditingApproved)){
+            for (SysAmountAuditingEntity  item:   sysAmountAuditingApproved){
+                if("1".equals(item.getAmountStatus())){  //手续费
+                    BigDecimal amount = item.getAmount();
+                    sysUserAccountVo.setApprovedHalding(amount);
+                }
+                if("2".equals(item.getAmountStatus())){  //非跟单
+                    BigDecimal amount = item.getAmount();
+                    sysUserAccountVo.setApprovedDocumentary(amount);
+                }
+                if("3".equals(item.getAmountStatus())){  //推广费
+                    BigDecimal amount = item.getAmount();
+                    sysUserAccountVo.setApprovedPromotion(amount);
+                }
+
+            }
+        }
+    }
+
+    private void judge(List<SysAmountAuditingEntity> sysAmountAuditingProgressIng,SysUserAccountVo sysUserAccountVo) {
+        if(!CollectionUtils.isEmpty(sysAmountAuditingProgressIng)){
+            for (SysAmountAuditingEntity  item:   sysAmountAuditingProgressIng){
+                if("1".equals(item.getAmountStatus())){  //手续费
+                    BigDecimal amount = item.getAmount();
+                    sysUserAccountVo.setWithdrawalHalding(amount);
+                }
+                if("2".equals(item.getAmountStatus())){  //非跟单
+                    BigDecimal amount = item.getAmount();
+                    sysUserAccountVo.setWithdrawalDocumentary(amount);
+                }
+                if("3".equals(item.getAmountStatus())){  //推广费
+                    BigDecimal amount = item.getAmount();
+                    sysUserAccountVo.setWithdrawalDocumentary(amount);
+                }
+
+            }
+        }
+
+    }
+
+    private void willPromotion(BigDecimal willPromotion, String userId) {
+        InsOrders   InsOrders = insAreaCompanyService.selectPromotionBy(userId);
+        if(ObjectUtils.isNotEmpty(InsOrders)){
+            BigDecimal willFirstPremiums = InsOrders.getWillFirstPremiums();
+            BigDecimal willSecondPremiums = InsOrders.getWillSecondPremiums();
+            BigDecimal willThreePremiums = InsOrders.getWillThreePremiums();
+            willPromotion.add(willFirstPremiums).add(willThreePremiums).add(willSecondPremiums);
+
+
+        }
+
+    }
+
+    private void willAmount(String quoteno, BigDecimal willHalding, BigDecimal willDocumentary) {
+        InsFeeOrderNew insFeeOrderNew = insFeeOrderNewService.getInsFeeOrderNewByCompanyId(quoteno);
+        //交强手续费出口比例
+        BigDecimal jqExportProceduresFee = insFeeOrderNew.getJqPremium().multiply(insFeeOrderNew.getJqSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //商业手续费出口比例
+        BigDecimal syExportProceduresFee = insFeeOrderNew.getSyPremium().multiply(insFeeOrderNew.getSySuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //非车手续费出口比例
+        BigDecimal noExportProceduresFee = insFeeOrderNew.getNoPremium().multiply(insFeeOrderNew.getNoSuperviseCostsProportion().divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //用户出口手续费
+        willHalding = willHalding.add(jqExportProceduresFee).add(syExportProceduresFee).add(noExportProceduresFee);
+
+        //非车出口比例
+        //总机构 交强管理比例
+        BigDecimal sumJqDeptProportion = insFeeOrderNew.getJqDeptProportionLevel1()
+                .add(insFeeOrderNew.getJqDeptProportionLevel2())
+                .add(insFeeOrderNew.getJqDeptProportionLevel3())
+                .add(insFeeOrderNew.getJqDeptProportionLevel4())
+                .add(insFeeOrderNew.getJqDeptProportionLevel5());
+
+        //总机构 商业管理比例
+        BigDecimal sumSyDeptProportion = insFeeOrderNew.getSyDeptProportionLevel1()
+                .add(insFeeOrderNew.getSyDeptProportionLevel2())
+                .add(insFeeOrderNew.getSyDeptProportionLevel3())
+                .add(insFeeOrderNew.getSyDeptProportionLevel4())
+                .add(insFeeOrderNew.getSyDeptProportionLevel5());
+
+        //总机构 非车管理比例
+        BigDecimal sumNoDeptProportion = insFeeOrderNew.getNoDeptProportionLevel1()
+                .add(insFeeOrderNew.getNoDeptProportionLevel2())
+                .add(insFeeOrderNew.getNoDeptProportionLevel3())
+                .add(insFeeOrderNew.getNoDeptProportionLevel4())
+                .add(insFeeOrderNew.getNoDeptProportionLevel5());
+        BigDecimal noExportProceduresProportion = new BigDecimal(0);
+        //总分销比例
+        BigDecimal sumRetail = insFeeOrderNew.getFirstDetailProportion().add(insFeeOrderNew.getSecondDetailProportion()).add(insFeeOrderNew.getThirdDetailProportion());
+        if(insFeeOrderNew.getNoCostsProportion().compareTo(sumNoDeptProportion.add(sumRetail))>0){
+            noExportProceduresProportion = insFeeOrderNew.getNoCostsProportion().subtract(sumNoDeptProportion).subtract(sumRetail);
+        }
+        //商业出口比例
+        BigDecimal syExportProceduresProportion = new BigDecimal(0);
+        if(insFeeOrderNew.getSyCostsProportion().compareTo(sumSyDeptProportion.add(sumRetail))>0){
+            syExportProceduresProportion = insFeeOrderNew.getSyCostsProportion().subtract(sumSyDeptProportion).subtract(sumRetail);
+        }
+        //交强出口比例
+        BigDecimal jqExportProceduresProportion = new BigDecimal(0);
+        if(insFeeOrderNew.getJqCostsProportion().compareTo(sumJqDeptProportion.add(sumRetail))>0){
+            jqExportProceduresProportion = insFeeOrderNew.getJqCostsProportion().subtract(sumJqDeptProportion).subtract(sumRetail);
+        }
+        //交强跟单出口费用
+        BigDecimal jqExportOtherFee = insFeeOrderNew.getJqPremium()
+                .multiply(jqExportProceduresProportion
+                        .subtract(insFeeOrderNew.getJqSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+
+        //商业跟单出口比例
+        BigDecimal syExportOtherFee = insFeeOrderNew.getSyPremium()
+                .multiply(syExportProceduresProportion
+                        .subtract(insFeeOrderNew.getSySuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //非车跟单出口比例
+        BigDecimal noExportOtherFee = insFeeOrderNew.getNoPremium()
+                .multiply(noExportProceduresProportion
+                        .subtract(insFeeOrderNew.getNoSuperviseCostsProportion()).divide(new BigDecimal(100))).setScale(2,BigDecimal.ROUND_DOWN);
+        //用户出口跟单费
+        willDocumentary = willDocumentary.add(jqExportOtherFee).add(syExportOtherFee).add(noExportOtherFee);
+
+    }
+
 
 }
 

+ 0 - 1
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -640,7 +640,6 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
                 }
             }else {
 //                    一级分销
-
                 if(StringUtils.isNotEmpty(insFeeOrderNew.getFirstLevelUserId())){
                     String firstLevelUserId = insFeeOrderNew.getFirstLevelUserId();
                     BigDecimal firstDetailPremiums = insFeeOrderNew.getFirstDetailPremiums();

+ 5 - 0
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -8,6 +8,7 @@ import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.OrderQueryVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -52,6 +53,10 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
     Page<InsOrders> getPendingAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 
     Page<InsOrders> getAlreadyAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
+
+    List<InsOrders> getByUserId(HashMap<String, Object> params);
+
+    InsOrders selectPromotionBy(HashMap<String, Object> params);
 }
 
 

+ 7 - 0
src/main/java/com/ydtech/modules/order/entity/InsOrders.java

@@ -21,6 +21,7 @@ import com.ydtech.modules.order.entity.vo.BaseQuoteInfoVo;
 import lombok.*;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
 
@@ -215,6 +216,12 @@ public class InsOrders implements Serializable {
 
     @TableField(exist = false)
     private String subOrderId; //子订单id
+    @TableField(exist = false)
+    private BigDecimal willFirstPremiums; //一级预收金额
+    @TableField(exist = false)
+    private BigDecimal willSecondPremiums; //二级预收金额
+    @TableField(exist = false)
+    private BigDecimal willThreePremiums; //三级预收金额
 
 
     public InsOrders(SysUser user, SysDept dept, BaseQuoteInfoVo quoteInfoVo) {

+ 4 - 0
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.order.entity.InsAreaCompany;
 import com.ydtech.modules.order.entity.InsOrders;
 import com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto;
 import com.ydtech.modules.order.entity.vo.OrderQueryVo;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 
 import java.util.List;
 
@@ -86,4 +87,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      */
     Page<InsOrders> getAlreadyAuditOrders(Page page, OrderQueryVo orderQueryVo);
 
+    List<InsOrders> getByUserId(String userId);
+
+    InsOrders selectPromotionBy(String userId);
 }

+ 18 - 0
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -12,11 +12,13 @@ import com.ydtech.modules.order.entity.vo.OrderQueryVo;
 import com.ydtech.modules.order.service.InsAreaCompanyService;
 import com.ydtech.modules.order.service.InsOrdersService;
 import com.ydtech.modules.order.service.InsOrdersTrackService;
+import com.ydtech.modules.protocols.entity.po.InsFeeOrderNew;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 
+import java.util.HashMap;
 import java.util.List;
 
 /**
@@ -120,6 +122,22 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
         return baseMapper.getAlreadyAuditOrders(page,orderQueryVo);
     }
 
+    @Override
+    public List<InsOrders> getByUserId(String userId) {
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("orderStatus","3");
+        params.put("userId",userId);
+        return baseMapper.getByUserId(params);
+    }
+
+    @Override
+    public InsOrders selectPromotionBy(String userId) {
+        HashMap<String, Object> params = new HashMap<>();
+        params.put("userId",userId);
+        return baseMapper.selectPromotionBy(params);
+    }
+
+
 }
 
 

+ 34 - 0
src/main/resources/mapper/modules/admin/SysAmountAuditingMapper.xml

@@ -131,5 +131,39 @@
 
     </select>
 
+    <select id="getProgressIng" resultType="com.ydtech.modules.admin.model.po.SysAmountAuditingEntity">
+        SELECT
+        a.user_id as "userId",
+        sum( a.amount ) as "amount",
+        a.amount_status as "amountStatus"
+        FROM
+        sys_amount_auditing a
+
+        <where>
+            <if test="auditingStatus !=null  and auditingStatus != ''">
+                a.auditing_status=#{auditingStatus}
+            </if>
+            <if test="amountStatus !=null  and amountStatus != ''">
+                and a.amount_status=#{amountStatus}
+            </if>
+
+            <if test="id !=null  and id != ''">
+                and a.id=#{id}
+            </if>
+
+
+            <if test="userId !=null  and userId != ''">
+                and a.user_id=#{userId}
+            </if>
+
+            <if test="startDate !=null and startDate != ''  and  endDate !=null  and  endDate!= '' ">
+                and DATE_FORMAT( a.auditing_time, '%Y-%m-%d')  between DATE_FORMAT(#{startDate}, '%Y-%m-%d') and DATE_FORMAT(#{endDate}, '%Y-%m-%d')
+            </if>
+        </where>
+        GROUP BY
+        user_id,
+        amount_status
+    </select>
+
 
 </mapper>

+ 5 - 0
src/main/resources/mapper/modules/admin/SysUserAccountMapper.xml

@@ -80,5 +80,10 @@
         </where>
     </select>
 
+    <select id="selectPromotionBy" resultType="com.ydtech.modules.protocols.entity.po.InsFeeOrderNew">
+        select 
+
+    </select>
+
 
 </mapper>

+ 62 - 0
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -166,6 +166,68 @@
         </if>
     </select>
 
+    <select id="getByUserId" resultType="com.ydtech.modules.order.entity.InsOrders">
+        SELECT
+        *
+        FROM
+        ins_orders
+        WHERE
+        orderno IN (
+        SELECT
+        orderno
+        FROM
+        ins_area_company
+        WHERE
+        id IN ( SELECT ins_order_no FROM ins_fee_order_new WHERE id NOT IN ( SELECT ins_order_no FROM ins_fee_audit ) )
+        AND orderstatus = 3
+        )
+        AND
+        orderstatus= 3
+        <if test="orderNo != null and orderNo != ''">
+            AND orderno = #{orderNo}
+        </if>
+        <if test="licenseNo != null and licenseNo != ''">
+            AND licenseno = #{licenseNo}
+        </if>
+        <if test="frameNo != null and frameNo != ''">
+            AND frameno = #{frameNo}
+        </if>
+
+        <if test="userId != null and userId != ''">
+            AND userid = #{userId}
+        </if>
+
+        <if test="insuredname != null and insuredname != ''">
+            AND insuredname = #{insuredname}
+        </if>
+        <if test="startDateStr != null and startDateStr != ''">
+            AND createtime BETWEEN #{startDateStr} and #{endDateStr}
+        </if>
+    </select>
+
+
+    <select id="selectPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
+        SELECT
+        sum(a.first_detail_premiums) as  "willFirstPremiums",
+        sum(a.second_detail_premiums) as  "willSecondPremiums",
+        sum(a.third_detail_premiums) as  "willThreePremiums"
+        FROM
+        ins_fee_order_new  a
+        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        WHERE
+        a.id NOT IN (
+        SELECT
+        ins_order_no
+        FROM
+        ins_fee_audit
+        )
+        AND   iac.orderstatus =3
+        <if test="userId != null and userId != ''">
+             AND  (a.first_level_user_id = #{userId}  or a.two_level_user_id =#{userId}   or   a.three_level_user_id=#{userId})
+        </if>
+
+    </select>
+
 
     <select id="getAlreadyAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT