From 90ebe50085945f76743de252b7875e8f3f088eae Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Sun, 14 Mar 2021 19:53:38 +0800
Subject: [PATCH] 分销员后台0315

---
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/DelFyfaApplyDto.java              |   17 +
 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html           |    3 
 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-update.html          |    4 
 zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java         |   81 +++++++-
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java                |   16 +
 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java         |    8 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java           |    6 
 zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanAppliingVo.java        |    3 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateFyfaDto.java                |   29 +++
 zq-erp/src/main/java/com/matrix/system/fenxiao/vo/FyfaManageVo.java                  |   29 +++
 zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml            |   19 ++
 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html            |  192 +++++++++++++++++---
 zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java |   81 ++++++++
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ExamineSaleManApplyDto.java       |    3 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanDetailDto.java        |    3 
 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java         |    3 
 zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml            |   11 
 17 files changed, 450 insertions(+), 58 deletions(-)

diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java
index f462439..169a429 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java
@@ -1,7 +1,7 @@
 package com.matrix.system.fenxiao.action;
 
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.matrix.biz.bean.BizUser;
@@ -15,6 +15,7 @@
 import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
 import com.matrix.system.fenxiao.dto.*;
 import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
+import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
 import com.matrix.system.fenxiao.service.ShopSalesmanApplyService;
 import com.matrix.system.fenxiao.vo.*;
 import com.matrix.system.hive.action.util.QueryUtil;
@@ -54,7 +55,8 @@
     	AjaxResult result= AjaxResult.buildSuccessInstance("查询成功");
     	//根据OPENID查询基础信息
     	String userId = shopSalesmanDetailDto.getUserId();
-    	SalesmanBasicDetailVo salesmanBasicDetailVo = shopSalesmanApplyService.selectShopSalesmanDetailByOpenId(userId);
+    	String applyId = shopSalesmanDetailDto.getApplyId();
+    	SalesmanBasicDetailVo salesmanBasicDetailVo = shopSalesmanApplyService.selectShopSalesmanDetailByOpenId(userId,Long.parseLong(applyId));
     	result.putInMap("basicdetail", salesmanBasicDetailVo);
         //排序
         if(StringUtils.isBlank(shopSalesmanDetailDto.getSort())){
@@ -97,6 +99,60 @@
     public @ResponseBody
     AjaxResult unbundlingSaleMan(@RequestBody UnbundlingSaleManDto unbundlingSaleManDto) {
     	return shopSalesmanApplyService.unbundlingSaleMan(unbundlingSaleManDto);
+    }
+    
+    /**
+     * 分佣方案
+     */
+    @ApiOperation(value = "查询分佣方案")
+    @ApiResponses({
+            @ApiResponse(code = 200, message = "OK",  response = FyfaManageVo.class)
+    })
+    @PostMapping(value = "/findFyfaManageList")
+    public @ResponseBody
+    AjaxResult findFyfaManageList(@RequestBody FyfaManageDto fyfaManageDto) {
+    	//设置用户公司ID
+    	QueryUtil.setQueryLimitCom(fyfaManageDto);
+        //排序
+        if(StringUtils.isBlank(fyfaManageDto.getSort())){
+        	fyfaManageDto.setSort("create_time");
+        	fyfaManageDto.setOrder("asc");
+        }
+        Page<FyfaManageVo> page = new Page(fyfaManageDto.getPageNum(), fyfaManageDto.getPageSize());
+        IPage<FyfaManageVo> rows = shopSalesmanApplyService.findFyfaManageList(page,fyfaManageDto);
+        AjaxResult result = AjaxResult.buildSuccessInstance(rows.getRecords(),rows.getTotal());
+        return result;
+    }
+
+    /**
+     *新增分佣方案
+     */
+    @ApiOperation(value = "新增分佣方案")
+    @RequestMapping(value = "/addFyfa")
+    private @ResponseBody AjaxResult addFyfa(){
+        SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
+        shopSalesmanApplyService.addFyfa(user);
+        return AjaxResult.buildSuccessInstance("新增成功");
+    }
+    
+    /**
+     *修改分佣方案
+     */
+    @ApiOperation(value = "修改分佣方案")
+    @PostMapping(value = "/updateFyfa")
+    public @ResponseBody
+    AjaxResult updateFyfa(@RequestBody UpdateFyfaDto updateFyfaDto) {
+    	return shopSalesmanApplyService.updateFyfa(updateFyfaDto);
+    }
+    
+    /**
+     *删除分佣方案
+     */
+    @ApiOperation(value = "删除分佣方案")
+    @PostMapping(value = "/delFyfaApply")
+    public @ResponseBody
+    AjaxResult delFyfaApply(@RequestBody DelFyfaApplyDto delFyfaApplyDto) {
+    	return shopSalesmanApplyService.delFyfaApply(delFyfaApplyDto);
     }
 
 	/**
@@ -155,13 +211,21 @@
     @ApiOperation(value = "新增分销员")
     @PostMapping(value = "/addSaleManApply")
     public @ResponseBody
-    AjaxResult findShopSalesmanAppliingList(@RequestBody AddSaleManApplyDto addSaleManApplyDto) {
+    AjaxResult addSaleManApply(@RequestBody AddSaleManApplyDto addSaleManApplyDto) {
+    	String gradeId = addSaleManApplyDto.getGradeId();
+    	if(StrUtil.isBlankOrUndefined(gradeId)) {
+    		return AjaxResult.buildSuccessInstance("请选择分销等级");
+    	}
+    	ShopSalesmanGrade selectById = shopSalesmanGradeDao.selectById(Long.parseLong(gradeId));
+    	if(ObjectUtil.isEmpty(selectById)) {
+    		return AjaxResult.buildSuccessInstance("请选择分销等级");
+    	}
+        
         //设置用户公司ID
         QueryUtil.setQueryLimitCom(addSaleManApplyDto);
-        AjaxResult result= AjaxResult.buildSuccessInstance("设置成功");
 
-        shopSalesmanApplyService.addSaleManApply(addSaleManApplyDto.getUserId(),addSaleManApplyDto.getGradeId());
-		return result;
+        shopSalesmanApplyService.addSaleManApply(addSaleManApplyDto.getOpenId(),gradeId);
+		return AjaxResult.buildSuccessInstance("设置成功");
     }
     
     /**
@@ -185,10 +249,7 @@
         QueryUtil.setQueryLimitCom(examineSaleManApplyDto);
         String userId = examineSaleManApplyDto.getUserId();
         //待审核状态才允许提交
-        QueryWrapper<ShopSalesmanApply> queryWrapperOrepool = new QueryWrapper<>();
-        queryWrapperOrepool.eq("user_id", userId);
-        queryWrapperOrepool.eq("company_id", examineSaleManApplyDto.getCompanyId());
-		ShopSalesmanApply shopSalesmanApply = shopSalesmanApplyDao.selectOne(queryWrapperOrepool);
+        ShopSalesmanApply shopSalesmanApply = shopSalesmanApplyDao.selectById(examineSaleManApplyDto.getApplyId());
 		if(ObjectUtil.isEmpty(shopSalesmanApply)) {
 			return  AjaxResult.buildFailInstance("当前记录有误");
 		}
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
index f8a5e83..4b5aad7 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanApplyDao.java
@@ -38,7 +38,8 @@
 
     SalesmanCenterInfo selectSalesmanCenterInfo(String openId);
 
-	SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(@Param("userId")String userId, @Param("companyId")Long companyId);
+	SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(@Param("userId")String userId, 
+			@Param("companyId")Long companyId,@Param("applyId")long applyId);
 
 	IPage<ShopCustomDetailVo> findCustomDetail(Page<ShopCustomDetailVo> page,
 											   @Param("record")ShopSalesmanDetailDto shopSalesmanDetailDto);
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java
index d1326a1..e51ec22 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanGradeDao.java
@@ -1,9 +1,13 @@
 package com.matrix.system.fenxiao.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.matrix.system.fenxiao.dto.FyfaManageDto;
 import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
+import com.matrix.system.fenxiao.vo.FyfaManageVo;
 import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo;
-import io.lettuce.core.dynamic.annotation.Param;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -16,4 +20,6 @@
 
 	List<ShopSalesmanGradeVo> getShopSalesmanGradeVo(@Param("companyId")Long companyId);
 
+	IPage<FyfaManageVo> findFyfaManageList(Page<FyfaManageVo> page,@Param("record")FyfaManageDto fyfaManageDto);
+
 }
\ No newline at end of file
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java
index 99356a1..881a1d2 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/AddSaleManApplyDto.java
@@ -4,16 +4,16 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
-import javax.validation.constraints.NotNull;
-
 @Data
 @ApiModel(value = "AddSaleManApplyDto", description = "查询参数")
 public class AddSaleManApplyDto {
 
-    @NotNull
 	@ApiModelProperty(value ="会员ID")
     private String userId;
 	
+	@ApiModelProperty(value = "申请用户openId")
+	private String openId;
+	
 	@ApiModelProperty(value ="等级ID")
     private String gradeId;
 
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/DelFyfaApplyDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/DelFyfaApplyDto.java
new file mode 100644
index 0000000..4e32d24
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/DelFyfaApplyDto.java
@@ -0,0 +1,17 @@
+package com.matrix.system.fenxiao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "DelFyfaApplyDto", description = "参数")
+public class DelFyfaApplyDto {
+	
+	@ApiModelProperty(value ="申请记录ID")
+	 private Long gradeId;
+	
+	@ApiModelProperty(hidden = true)
+	private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ExamineSaleManApplyDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ExamineSaleManApplyDto.java
index 83e868e..fb5da49 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ExamineSaleManApplyDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ExamineSaleManApplyDto.java
@@ -13,6 +13,9 @@
     @NotNull
 	@ApiModelProperty(value ="会员ID")
     private String userId;
+    
+    @ApiModelProperty(value = "申请记录ID")
+	private Long applyId;
 
     @ApiModelProperty(value ="审核状态   2:同意 3:不同意")
     private Integer applyState;
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java
new file mode 100644
index 0000000..4966537
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java
@@ -0,0 +1,16 @@
+package com.matrix.system.fenxiao.dto;
+
+import com.matrix.core.pojo.BasePageQueryDto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "FyfaManageDto", description = "查询参数")
+public class FyfaManageDto extends BasePageQueryDto {
+	
+	@ApiModelProperty(hidden = true)
+	private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanDetailDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanDetailDto.java
index e9e771e..a16bfa5 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanDetailDto.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/ShopSalesmanDetailDto.java
@@ -16,6 +16,9 @@
 	@ApiModelProperty(value ="会员OPENID")
 	private String userId;
 
+	@ApiModelProperty(value ="申请记录ID")
+	private String applyId;
+
     @ApiModelProperty(value = " 结算状态1,待结算,2,已结算,3已退款")
     private Integer orderType;
 	
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateFyfaDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateFyfaDto.java
new file mode 100644
index 0000000..ea89977
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateFyfaDto.java
@@ -0,0 +1,29 @@
+package com.matrix.system.fenxiao.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "UpdateFyfaDto", description = "参数")
+public class UpdateFyfaDto {
+	
+	@ApiModelProperty(value = "id")
+	private Long id;
+	
+	@ApiModelProperty(value = "方案名称")
+	private String  name;
+
+	@ApiModelProperty(value = "推广提成%")
+	private Double  sealesCommission;
+	
+	@ApiModelProperty(value = "邀请提成 %")
+	private Double  invitationCommission;
+	
+	@ApiModelProperty(value = "等级条件(推广金额)")
+	private Double  gradeCondition;
+	
+	@ApiModelProperty(hidden = true)
+	private Long companyId;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
index 801eeb3..0530ac5 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java
@@ -12,18 +12,23 @@
 import com.matrix.core.pojo.AjaxResult;
 import com.matrix.core.tools.StringUtils;
 import com.matrix.system.common.bean.BusParameterSettings;
+import com.matrix.system.common.bean.SysUsers;
 import com.matrix.system.common.dao.BusParameterSettingsDao;
 import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
 import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao;
 import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao;
 import com.matrix.system.fenxiao.dto.ChangeSaleManGradeDto;
+import com.matrix.system.fenxiao.dto.DelFyfaApplyDto;
 import com.matrix.system.fenxiao.dto.DelSaleManGradeApplyDto;
+import com.matrix.system.fenxiao.dto.FyfaManageDto;
 import com.matrix.system.fenxiao.dto.ShopSalesmanAppliingDto;
 import com.matrix.system.fenxiao.dto.ShopSalesmanApplyDto;
 import com.matrix.system.fenxiao.dto.ShopSalesmanDetailDto;
 import com.matrix.system.fenxiao.dto.UnbundlingSaleManDto;
+import com.matrix.system.fenxiao.dto.UpdateFyfaDto;
 import com.matrix.system.fenxiao.entity.ShopSalesmanApply;
 import com.matrix.system.fenxiao.entity.ShopSalesmanGrade;
+import com.matrix.system.fenxiao.vo.FyfaManageVo;
 import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo;
 import com.matrix.system.fenxiao.vo.ShopCustomDetailVo;
 import com.matrix.system.fenxiao.vo.ShopOrderDetailVo;
@@ -33,11 +38,13 @@
 import com.matrix.system.hive.action.util.QueryUtil;
 
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -77,6 +84,7 @@
         //校验审核状态,和是否重复发起
         QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("user_id",loginUser.getOpenId());
+        queryWrapper.in("apply_status",Arrays.asList("1,2".split(",")));
         ShopSalesmanApply checkApply = shopSalesmanApplyDao.selectOne(queryWrapper);
         if(checkApply==null||
                 checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){
@@ -148,7 +156,7 @@
 	
 	@Transactional(rollbackFor = Exception.class)
 	public void addSaleManApply(String userId,String gradeId) {
-		BizUser user = bizUserDao.selectById(userId);
+		BizUser user = bizUserDao.findByOpenId(userId);
 		applyToBeAnSalesman(user.getOpenId(),gradeId, "",ShopSalesmanApply.APPLY_WAY_HAND_ADD);
 	}
 
@@ -156,7 +164,7 @@
 	public void examineSaleManApply(ShopSalesmanApply shopSalesmanApply, Integer applyState) {
 		String userId = shopSalesmanApply.getUserId();
 		String parentUserId = shopSalesmanApply.getParentUserId();
-		BizUser bizUser = bizUserDao.selectById(userId);
+		BizUser bizUser = bizUserDao.findByOpenId(userId);
 		//修改审核记录
 		if(ShopSalesmanApply.APPLY_STATUS_TG == applyState) {
 			shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG);
@@ -178,11 +186,11 @@
 		return null;
 	}
 
-	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(String userId) {
+	public SalesmanBasicDetailVo selectShopSalesmanDetailByOpenId(String userId, long applyId) {
 		//获取个人信息
 		BizUser bizUser = bizUserDao.findByOpenId(userId);
 		Long companyId = bizUser.getCompanyId();
-		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(userId,companyId);
+		return shopSalesmanApplyDao.selectShopSalesmanDetailByOpenId(userId,companyId,applyId);
 	}
 
 	public IPage<ShopCustomDetailVo> findCustomDetail(Page<ShopCustomDetailVo> page,
@@ -200,6 +208,7 @@
 		return shopSalesmanApplyDao.findShopOrderDetail(pageOrder,shopSalesmanDetailDto);
 	}
 
+    @Transactional(rollbackFor = Exception.class)
 	public AjaxResult changeSaleManGrade(ChangeSaleManGradeDto changeSaleManGradeDto) {
         //设置用户公司ID
         QueryUtil.setQueryLimitCom(changeSaleManGradeDto);
@@ -220,16 +229,28 @@
         if(BizUser.IS_SALES != isSales) {
         	return AjaxResult.buildFailInstance("当前用户未通过审核,不允许修改");
         }
+        
+        //修改申请记录的等级
+        QueryWrapper<ShopSalesmanApply> queryShopSalesmanApply = new QueryWrapper<>();
+        queryShopSalesmanApply.eq("apply_status", 2);
+        queryShopSalesmanApply.eq("user_id", userId);
+        queryShopSalesmanApply.eq("company_id", companyId);
+        ShopSalesmanApply shopSalesmanApply = shopSalesmanApplyDao.selectOne(queryShopSalesmanApply);
         Long gradeId = changeSaleManGradeDto.getGradeId();
         if(ObjectUtil.isEmpty(gradeId)) {
         	findByOpenId.setSalesmanGrade(shopSalesmanGrade.getId());
+        	shopSalesmanApply.setGradeId(shopSalesmanGrade.getId());
         }else {
         	findByOpenId.setSalesmanGrade(gradeId);
+        	shopSalesmanApply.setGradeId(gradeId);
         }
         bizUserDao.updateByModel(findByOpenId);
+        shopSalesmanApplyDao.updateById(shopSalesmanApply);
+        
         return AjaxResult.buildFailInstance("修改等级成功");
 	}
 
+    @Transactional(rollbackFor = Exception.class)
 	public AjaxResult unbundlingSaleMan(UnbundlingSaleManDto unbundlingSaleManDto) {
         //设置用户公司ID
         QueryUtil.setQueryLimitCom(unbundlingSaleManDto);
@@ -244,6 +265,7 @@
         return AjaxResult.buildFailInstance("解绑成功");
 	}
 
+    @Transactional(rollbackFor = Exception.class)
 	public AjaxResult delSaleManGradeApply(DelSaleManGradeApplyDto delSaleManGradeApplyDto) {
 		//设置用户公司ID
         QueryUtil.setQueryLimitCom(delSaleManGradeApplyDto);
@@ -264,6 +286,57 @@
 		return AjaxResult.buildFailInstance("操作成功");
 	}
 
+	public IPage<FyfaManageVo> findFyfaManageList(Page<FyfaManageVo> page, FyfaManageDto fyfaManageDto) {
+		return shopSalesmanGradeDao.findFyfaManageList(page,fyfaManageDto);
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public void addFyfa(SysUsers user) {
+		ShopSalesmanGrade shopSalesmanGrade = new ShopSalesmanGrade();
+		shopSalesmanGrade.setIsDefault(2);
+		shopSalesmanGrade.setCreateBy(user.getSuName());
+		shopSalesmanGrade.setUpdateBy(user.getSuName());
+		shopSalesmanGrade.setCreateTime(new Date());
+		shopSalesmanGrade.setUpdateTime(new Date());
+		shopSalesmanGrade.setCompanyId(user.getCompanyId());
+		shopSalesmanGradeDao.insert(shopSalesmanGrade);
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult delFyfaApply(DelFyfaApplyDto delFyfaApplyDto) {
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(delFyfaApplyDto);
+        Long gradeId = delFyfaApplyDto.getGradeId();
+        ShopSalesmanGrade selectById = shopSalesmanGradeDao.selectById(gradeId);
+        if(ObjectUtil.isEmpty(selectById)) {
+        	return AjaxResult.buildFailInstance("当前行数据不存在,请刷新页面");
+        }
+        shopSalesmanGradeDao.deleteById(gradeId);
+		return AjaxResult.buildFailInstance("操作成功");
+	}
+
+    @Transactional(rollbackFor = Exception.class)
+	public AjaxResult updateFyfa(UpdateFyfaDto updateFyfaDto) {
+		
+        ShopSalesmanGrade selectById = shopSalesmanGradeDao.selectById(updateFyfaDto.getId());
+        if(ObjectUtil.isEmpty(selectById)) {
+        	return AjaxResult.buildFailInstance("当前行数据不存在,请刷新页面");
+        }
+        String name = updateFyfaDto.getName();
+        if(StrUtil.isEmpty(name)) {
+        	return AjaxResult.buildFailInstance("请输入方案名称");
+        }
+		//设置用户公司ID
+        QueryUtil.setQueryLimitCom(updateFyfaDto);
+        selectById.setCompanyId(updateFyfaDto.getCompanyId());
+        selectById.setName(updateFyfaDto.getName());
+        selectById.setSealesCommission(updateFyfaDto.getSealesCommission());
+        selectById.setInvitationCommission(updateFyfaDto.getInvitationCommission());
+        selectById.setGradeCondition(updateFyfaDto.getGradeCondition());
+        shopSalesmanGradeDao.updateById(selectById);
+		return AjaxResult.buildFailInstance("操作成功");
+	}
+
     
     
     
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/FyfaManageVo.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/FyfaManageVo.java
new file mode 100644
index 0000000..97dc22d
--- /dev/null
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/FyfaManageVo.java
@@ -0,0 +1,29 @@
+package com.matrix.system.fenxiao.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "FyfaManageVo", description = "分佣方案信息返回类")
+public class FyfaManageVo {
+	
+	@ApiModelProperty(value = "id")
+	private Long id;
+	
+	@ApiModelProperty(value = "方案名称")
+	private String  name;
+
+	@ApiModelProperty(value = "推广提成%")
+	private Double  sealesCommission;
+	
+	@ApiModelProperty(value = "邀请提成 %")
+	private Double  invitationCommission;
+	
+	@ApiModelProperty(value = "等级条件(推广金额)")
+	private Double  gradeCondition;
+
+	@ApiModelProperty(value = "默认等级1是,2不是")
+	private Integer  isDefault;
+
+}
diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanAppliingVo.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanAppliingVo.java
index 20fe6e9..5f11a89 100644
--- a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanAppliingVo.java
+++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/ShopSalesmanAppliingVo.java
@@ -13,6 +13,9 @@
 	
 	@ApiModelProperty(value = "申请用户id")
 	private String  userId;
+
+	@ApiModelProperty(value = "申请用户openId")
+	private String  openId;
 	
 	@ApiModelProperty(value = "分销员")
 	private String nickname;
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
index b661f60..ae87aa8 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -118,18 +118,17 @@
 	</select>
 	<select id="selectBizUserApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo">
 		SELECT
-		a.open_id userId,
+		a.user_id userId,
+		a.open_id openId,
 		a.nick_name nickName,
 		a.avatar_url avatarUrl,
 		a.create_time createTime,
 		a.phone_number phone
 		FROM
 		biz_user a
-		LEFT JOIN shop_salesman_apply b ON a.open_id = b.user_id
 		<where>
 			a.company_id = #{record.companyId}
 			and a.is_sales != 1
-			and b.apply_status not in (1,2)
 			<if test="record.nickName != null and record.nickName != ''">
 				and a.nick_name like concat('%',#{record.nickName},'%')
 			</if>
@@ -220,9 +219,7 @@
 		shop_salesman_apply a
 		LEFT JOIN biz_user b ON a.user_id = b.open_id
 		LEFT JOIN shop_salesman_grade g ON a.grade_id = g.id
-		<where>
-			a.company_id=#{companyId} and a.user_id = #{userId}
-		</where>
+		    where a.id = #{applyId}
 	</select>
 
 	<select id="findCustomDetail" resultType="com.matrix.system.fenxiao.vo.ShopCustomDetailVo">
@@ -240,6 +237,7 @@
 			a.company_id = #{record.companyId}
 			AND b.is_sales != 1
 			and b.parent_open_id = #{record.userId}
+			and a.apply_status = 2
 			<if test="record.userName != null and record.userName != ''">
 				and b.nick_name like concat('%',#{record.userName},'%')
 			</if>
@@ -263,6 +261,7 @@
 			a.company_id = #{record.companyId}
 			AND b.is_sales = 1
 			and b.parent_open_id = #{record.userId}
+			and a.apply_status = 2
 			<if test="record.userName != null and record.userName != ''">
 				and b.nick_name like concat('%',#{record.userName},'%')
 			</if>
diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
index 311d174..00dd2d4 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanGradeDao.xml
@@ -45,4 +45,23 @@
 		a.company_id = #{companyId}
 	</select>
 
+	<select id="findFyfaManageList" resultType="com.matrix.system.fenxiao.vo.FyfaManageVo">
+		SELECT
+			a.id id,
+			a.name name,
+			a.seales_commission sealesCommission,
+			a.invitation_commission invitationCommission,
+			a.grade_condition gradeCondition,
+			a.is_default isDefault
+		FROM
+		shop_salesman_grade a
+		<where>
+			a.company_id = #{record.companyId}
+		</where>
+		<if test="record.sort !=null">
+			order by
+			a.${record.sort} ${record.order}
+		</if>
+	</select>
+
 </mapper>
\ No newline at end of file
diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html
index 8be97f9..5183b02 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-apply.html
@@ -124,10 +124,11 @@
             addSaleManApply(row){
                 let _this = this;
                 let userId = row.userId;
+                let openId = row.openId;
                 let gradeId = row.proJbruserValue;
-                alert(gradeId);
                 let obj = {
                     userId: userId,
+                    openId: openId,
                     gradeId: gradeId,
                 }
                 AjaxProxy.requst({
diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-update.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-update.html
index 39b2425..5dad6bc 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-update.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-update.html
@@ -332,6 +332,7 @@
 <script>
     //获取传输的USERID对象
     var userId = $.query.get("userId");
+    var applyId = $.query.get("applyId");
 
     var app = new Vue({
         el: '#app',
@@ -442,6 +443,7 @@
                     order:_this.form.order,
                     sort:_this.form.sort,
                     userId:userId,
+                    applyId:applyId,
                 }
             },
             //查询
@@ -486,6 +488,7 @@
                     order:_this.formlow.order,
                     sort:_this.formlow.sort,
                     userId:userId,
+                    applyId:applyId,
                 }
             },
             //查询
@@ -531,6 +534,7 @@
                     order:_this.formOrder.order,
                     sort:_this.formOrder.sort,
                     userId:userId,
+                    applyId:applyId,
                 }
             },
             //查询
diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
index 8d2fe90..17e7e78 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
@@ -149,42 +149,58 @@
                 </el-tab-pane>
 
                 <el-tab-pane label="分佣方案" name="second">
-                    <template>
-                        <el-table
-                                :data="tableData"
-                                style="width: 100%"
-                                height="250">
+                    <el-row class="table-style" >
+                        <el-table id="proj" :data="fyfaList.rows"  :height="height">
                             <el-table-column
                                     prop="name"
-                                    label="方案名称"
-                                    width="180">
+                                    label="方案名称">
+                                <template slot-scope="scope">
+                                    <el-input class="edit-input" v-model="scope.row.name" placeholder="方案名称"></el-input>
+                                </template>
                             </el-table-column>
                             <el-table-column
-                                    prop="name"
-                                    label="推广提成%"
-                                    width="180">
+                                    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>
+                                </template>
                             </el-table-column>
                             <el-table-column
-                                    prop="name"
-                                    label="邀请提成 %"
-                                    width="180">
+                                    prop="invitationCommission"
+                                    label="邀请提成 %">
+                                <template slot-scope="scope">
+                                    <el-input class="edit-input" v-model="scope.row.invitationCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="邀请提成 %"></el-input>
+                                </template>
                             </el-table-column>
                             <el-table-column
-                                    prop="name"
-                                    label="等级条件(推广金额额)"
-                                    width="180">
+                                    prop="gradeCondition"
+                                    label="等级条件(推广金额)">
+                                <template slot-scope="scope">
+                                    <el-input class="edit-input" v-model="scope.row.gradeCondition" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="等级条件(推广金额)"></el-input>
+                                </template>
                             </el-table-column>
-                            <el-table-column
-                                fixed="right"
-                                label="操作"
-                                width="100">
-                            <template slot-scope="scope">
-                                <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
-                                <el-button type="text" size="small">编辑</el-button>
-                            </template>
-                        </el-table-column>
+                            <el-table-column label="操作" width="240">
+                                <template slot-scope="scope">
+                                    <el-row style="display:flex;">
+                                        <el-button type="primary" v-if="scope.row.isDefault == 1" size="mini" @click="addFyfa()">新增</el-button>
+                                        <el-button type="primary" size="mini" @click="updateFyfa(scope.row)">保存</el-button>
+                                        <el-button type="primary" v-if="scope.row.isDefault == 2" size="mini" @click="delFyfa(scope.row)">删除</el-button>
+                                    </el-row>
+                                </template>
+                            </el-table-column>
                         </el-table>
-                    </template>
+                    </el-row>
+                    <el-row class="paginationStyle"  >
+                        <el-pagination background
+                                       @size-change="changePageSizelow"
+                                       @current-change="changeCurrentPagelow"
+                                       :current-page="fyfaList.currentPage"
+                                       :page-sizes="[10, 20, 30, 50]"
+                                       :page-size="fyfaList.pageSize"
+                                       layout="total, sizes, prev, pager, next, jumper"
+                                       :total="fyfaList.total">
+                        </el-pagination>
+                    </el-row>
                 </el-tab-pane>
 
                 <el-tab-pane label="推广文案" name="third">
@@ -196,6 +212,7 @@
                         <el-button type="primary" @click="submit()">保存</el-button>
                     </el-row>
                 </el-tab-pane>
+
                 <el-tab-pane label="分享图片上传" name="fourth">
                     <el-row>
                         <div class="ibox-content">
@@ -217,6 +234,7 @@
                         </div>
                     </el-row>
                 </el-tab-pane>
+
             </el-tabs>
         </el-row>
 </div>
@@ -238,17 +256,24 @@
     var app = new Vue({
         el: '#app',
         data: {
+            height:'calc(100vh - 240px)',
             fxy:[],
             fenxiaoGrade: "",
-            tableData:[],
             tgwa: "",
             activeName: 'first',
             multipleSelection: [],
-            jfyxq:[],
             fxtp:{},
-            jfdxj:[],
             mdjf:[],
             scjf:[],
+            //分佣方案
+            fyfaList:{
+                rows:[],
+                total:0,
+                pageSize:10,
+                currentPage:1,
+            },
+
+            //分销员管理
             shenheAgreeType : 2,
             shenheDisagreeType : 3,
             form:{
@@ -291,6 +316,7 @@
             loadInfo() {
                 let _this = this;
                 _this.loadParamSetting();
+                _this.loadFyfaSetting();
                 _this.getSalemanGradeList();
             },
             submittp(paramValue) {
@@ -311,6 +337,106 @@
             handleClick(row) {
                 console.log(row);
             },
+            //分佣方案
+            loadFyfaSetting() {
+                let _this = this;
+                let data=_this.getRequestParam();
+                data.pageSize=_this.fyfaList.pageSize;
+                data.pageNum=_this.fyfaList.currentPage;
+                AjaxProxy.requst({
+                    app: _this,
+                    data:data,
+                    url: basePath + '/fenXiao/fenXiaoUser/findFyfaManageList',
+                    callback: function (data) {
+                        _this.fyfaList.rows = data.rows;
+                        _this.fyfaList.total = data.total;
+                    }
+                });
+            },
+            changePageSizelow(val) {
+                this.fyfaList.pageSize = val;
+                this.loadFyfaSetting();
+            },
+            changeCurrentPagelow(val) {
+                this.fyfaList.currentPage = val;
+                this.loadFyfaSetting();
+            },
+            //新增
+            addFyfa(){
+                let _this = this;
+                AjaxProxy.requst({
+                    app: _this,
+                    data:[],
+                    url: basePath + '/fenXiao/fenXiaoUser/addFyfa',
+                    callback: function (data) {
+                        _this.$message.success(data.info);
+                    }
+                });
+                _this.loadFyfaSetting();
+            },
+            updateFyfa(row){
+                let _this = this;
+                let id = row.id;
+                let name = row.name;
+                let sealesCommission = row.sealesCommission;
+                let invitationCommission = row.invitationCommission;
+                let gradeCondition = row.gradeCondition;
+                let obj = {
+                    id: id,
+                    name: name,
+                    sealesCommission: sealesCommission,
+                    invitationCommission: invitationCommission,
+                    gradeCondition: gradeCondition,
+                }
+                AjaxProxy.requst({
+                    app: _this,
+                    data:obj,
+                    url: basePath + '/fenXiao/fenXiaoUser/updateFyfa',
+                    callback: function (data) {
+                        _this.$message.success(data.info);
+                        _this.loadFyfaSetting();
+                    }
+                });
+            },
+            //删除
+            delFyfa(row){
+                let _this = this;
+                _this.$confirm('是否删除?', '删除', {
+                    distinguishCancelAndClose: true,//设置关闭按钮和不通过按钮的区别
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消',
+                    type: 'info'
+                }).then(() => {
+                    //通过
+                    _this.delFyfaApply(row);
+                    _this.loadFyfaSetting();
+                }).catch(action => {
+                    //不通过
+                    if(action === 'cancel'){
+                        console.log("cancel");
+                    }else{
+                        //关闭按钮
+                        console.log("close");
+                        //this.$message({type: 'info',message: ''})
+                    }
+                });
+            },
+            delFyfaApply(row){
+                let _this = this;
+                let id = row.id;
+                let obj = {
+                    gradeId: id,
+                }
+                AjaxProxy.requst({
+                    app: _this,
+                    data:obj,
+                    url: basePath + '/fenXiao/fenXiaoUser/delFyfaApply',
+                    callback: function (data) {
+                        _this.$message.success(data.info);
+                    }
+                });
+            },
+            //分销员管理
             loadParamSetting() {
                 let _this = this;
                 let data=_this.getRequestParam();
@@ -433,7 +559,7 @@
                     url: basePath + '/fenXiao/fenXiaoUser/delSaleManGradeApply',
                     callback: function (data) {
                         _this.$message.success(data.info);
-                        this.loadParamSetting();
+                        _this.loadParamSetting();
                     }
                 });
             },
@@ -444,7 +570,7 @@
                     title: "修改等级",
                     maxmin: true,
                     area: [MUI.SIZE_L, '500px'],
-                    content : [ basePath + '/admin/redirect/fenxiao/fenxiao-update?userId=' + row.userId ]
+                    content : [ basePath + '/admin/redirect/fenxiao/fenxiao-update?userId=' + row.userId+'&applyId='+row.id ]
                 }));
             },
             //审核
@@ -471,8 +597,10 @@
             examineSaleManApply(row,type){
                 let _this = this;
                 let userId = row.userId;
+                let applyId = row.id;
                 let obj = {
                     userId: userId,
+                    applyId: applyId,
                     applyState: type,
                 }
                 AjaxProxy.requst({
@@ -481,7 +609,7 @@
                     url: basePath + '/fenXiao/fenXiaoUser/examineSaleManApply',
                     callback: function (data) {
                         _this.$message.success(data.info);
-                        this.loadParamSetting();
+                        _this.loadParamSetting();
                     }
                 });
             },

--
Gitblit v1.9.1