4 files added
12 files modified
| | |
| | | import com.matrix.core.tools.WebUtil; |
| | | import com.matrix.system.common.bean.SysUsers; |
| | | import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao; |
| | | import com.matrix.system.fenxiao.dto.AddSaleManApplyDto; |
| | | import com.matrix.system.fenxiao.dto.ExamineSaleManApplyDto; |
| | | 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.dao.ShopSalesmanGradeDao; |
| | | import com.matrix.system.fenxiao.dto.*; |
| | | import com.matrix.system.fenxiao.entity.ShopSalesmanApply; |
| | | import com.matrix.system.fenxiao.service.ShopSalesmanApplyService; |
| | | import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopCustomDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo; |
| | | import com.matrix.system.fenxiao.vo.*; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | |
| | | private ShopSalesmanApplyDao shopSalesmanApplyDao; |
| | | @Autowired |
| | | private BizUserDao bizUserDao; |
| | | @Autowired |
| | | private ShopSalesmanGradeDao shopSalesmanGradeDao; |
| | | |
| | | /** |
| | | * 分销员详情页面信息 |
| | |
| | | IPage<ShopCustomDetailVo> customLowRows = shopSalesmanApplyService.findCustomLow(pageLow,shopSalesmanDetailDto); |
| | | result.putInMap("customLowRecords", customLowRows.getRecords()); |
| | | result.putInMap("customLowTotal", customLowRows.getTotal()); |
| | | //查询收益订单 |
| | | Page<ShopOrderDetailVo> pageOrder = new Page(shopSalesmanDetailDto.getPageNum(), shopSalesmanDetailDto.getPageSize()); |
| | | IPage<ShopOrderDetailVo> orderRows = shopSalesmanApplyService.findShopOrderDetail(pageOrder,shopSalesmanDetailDto); |
| | | result.putInMap("orderRecords", orderRows.getRecords()); |
| | | result.putInMap("orderTotal", orderRows.getTotal()); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | *修改等级 |
| | | */ |
| | | @ApiOperation(value = "修改等级") |
| | | @PostMapping(value = "/changeSaleManGrade") |
| | | public @ResponseBody |
| | | AjaxResult changeSaleManGrade(@RequestBody ChangeSaleManGradeDto changeSaleManGradeDto) { |
| | | return shopSalesmanApplyService.changeSaleManGrade(changeSaleManGradeDto); |
| | | } |
| | | |
| | | /** |
| | | *解绑 |
| | | */ |
| | | @ApiOperation(value = "解绑") |
| | | @PostMapping(value = "/unbundlingSaleMan") |
| | | public @ResponseBody |
| | | AjaxResult unbundlingSaleMan(@RequestBody UnbundlingSaleManDto unbundlingSaleManDto) { |
| | | return shopSalesmanApplyService.unbundlingSaleMan(unbundlingSaleManDto); |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | *获取分销员待审核记录 |
| | | */ |
| | | @ApiOperation(value = "查询分销员审核记录") |
| | | @ApiOperation(value = "获取分销员待审核记录") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "OK", response = ShopSalesmanAppliingVo.class) |
| | | }) |
| | |
| | | } |
| | | |
| | | /** |
| | | *获取对应的分销员等级 |
| | | */ |
| | | @RequestMapping(value = "/getShopSalesmanGrade") |
| | | private @ResponseBody AjaxResult getShopSalesmanGradeVo(){ |
| | | AjaxResult result= AjaxResult.buildSuccessInstance("查询成功"); |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | List<ShopSalesmanGradeVo> dataList = shopSalesmanApplyService.getShopSalesmanGradeVo(user.getCompanyId()); |
| | | result.putInMap("salesGrade", dataList); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | *新增分销员 |
| | | */ |
| | | @ApiOperation(value = "新增分销员") |
| | |
| | | shopSalesmanApplyService.addSaleManApply(addSaleManApplyDto.getUserId(),addSaleManApplyDto.getGradeId()); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | *删除---设置成不是分销员 |
| | | */ |
| | | @ApiOperation(value = "删除---设置成不是分销员") |
| | | @PostMapping(value = "/delSaleManGradeApply") |
| | | public @ResponseBody |
| | | AjaxResult delSaleManGradeApply(@RequestBody DelSaleManGradeApplyDto delSaleManGradeApplyDto) { |
| | | return shopSalesmanApplyService.delSaleManGradeApply(delSaleManGradeApplyDto); |
| | | } |
| | | |
| | | /** |
| | | *审核分销员 |
| | | */ |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | *获取对应的分销员等级 |
| | | */ |
| | | @RequestMapping(value = "/getShopSalesmanGrade") |
| | | private @ResponseBody AjaxResult getShopSalesmanGradeVo(){ |
| | | AjaxResult result= AjaxResult.buildSuccessInstance("查询成功"); |
| | | SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); |
| | | |
| | | List<ShopSalesmanGradeVo> dataList = shopSalesmanApplyService.getShopSalesmanGradeVo(user.getCompanyId()); |
| | | result.putInMap("salesGrade", dataList); |
| | | return result; |
| | | } |
| | | |
| | | } |
| | |
| | | import com.matrix.system.fenxiao.entity.ShopSalesmanApply; |
| | | import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopCustomDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopOrderDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo; |
| | | import com.matrix.system.shopXcx.vo.SalesmanCenterInfo; |
| | |
| | | |
| | | IPage<ShopCustomDetailVo> findCustomLow(Page<ShopCustomDetailVo> pageLow, |
| | | @Param("record")ShopSalesmanDetailDto shopSalesmanDetailDto); |
| | | |
| | | IPage<ShopOrderDetailVo> findShopOrderDetail(Page<ShopOrderDetailVo> pageOrder, |
| | | @Param("record")ShopSalesmanDetailDto shopSalesmanDetailDto); |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.fenxiao.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ChangeSaleManGradeDto", description = "查询参数") |
| | | public class ChangeSaleManGradeDto { |
| | | |
| | | @ApiModelProperty(value ="会员OPENID") |
| | | private String userId; |
| | | @ApiModelProperty(value ="等级ID") |
| | | private Long gradeId; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Long companyId; |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.fenxiao.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "DelSaleManGradeApplyDto", description = "查询参数") |
| | | public class DelSaleManGradeApplyDto { |
| | | |
| | | @ApiModelProperty(value ="会员OPENID") |
| | | private String userId; |
| | | |
| | | @ApiModelProperty(value ="申请记录ID") |
| | | private Long applyId; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Long companyId; |
| | | |
| | | } |
| | |
| | | |
| | | @ApiModelProperty(value ="会员OPENID") |
| | | private String userId; |
| | | |
| | | @ApiModelProperty(value = " 结算状态1,待结算,2,已结算,3已退款") |
| | | private Integer orderType; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Long companyId; |
New file |
| | |
| | | package com.matrix.system.fenxiao.dto; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | @ApiModel(value = "UnbundlingSaleManDto", description = "查询参数") |
| | | public class UnbundlingSaleManDto { |
| | | |
| | | @ApiModelProperty(value ="会员OPENID") |
| | | private String userId; |
| | | |
| | | @ApiModelProperty(hidden = true) |
| | | private Long companyId; |
| | | |
| | | } |
| | |
| | | * 审核状态-3未通过 |
| | | */ |
| | | public static final int APPLY_STATUS_WTG = 3; |
| | | /** |
| | | * 审核状态-4系统删除 |
| | | */ |
| | | public static final int APPLY_STATUS_XTQX = 4; |
| | | |
| | | |
| | | /** |
| | |
| | | import com.matrix.biz.dao.BizUserDao; |
| | | import com.matrix.biz.service.BizUserService; |
| | | import com.matrix.core.exception.GlobleException; |
| | | import com.matrix.core.pojo.AjaxResult; |
| | | 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.ShopSalesmanApplyDao; |
| | | import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao; |
| | | import com.matrix.system.fenxiao.dto.ChangeSaleManGradeDto; |
| | | import com.matrix.system.fenxiao.dto.DelSaleManGradeApplyDto; |
| | | 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.entity.ShopSalesmanApply; |
| | | import com.matrix.system.fenxiao.entity.ShopSalesmanGrade; |
| | | import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopCustomDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopOrderDetailVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo; |
| | | import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo; |
| | | import com.matrix.system.hive.action.util.QueryUtil; |
| | | |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | |
| | | String userId = shopSalesmanApply.getUserId(); |
| | | String parentUserId = shopSalesmanApply.getParentUserId(); |
| | | BizUser bizUser = bizUserDao.selectById(userId); |
| | | |
| | | //修改审核记录 |
| | | if(ShopSalesmanApply.APPLY_STATUS_TG == applyState) { |
| | | shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG); |
| | |
| | | return shopSalesmanApplyDao.findCustomLow(pageLow,shopSalesmanDetailDto); |
| | | } |
| | | |
| | | public IPage<ShopOrderDetailVo> findShopOrderDetail(Page<ShopOrderDetailVo> pageOrder, |
| | | ShopSalesmanDetailDto shopSalesmanDetailDto) { |
| | | return shopSalesmanApplyDao.findShopOrderDetail(pageOrder,shopSalesmanDetailDto); |
| | | } |
| | | |
| | | public AjaxResult changeSaleManGrade(ChangeSaleManGradeDto changeSaleManGradeDto) { |
| | | //设置用户公司ID |
| | | QueryUtil.setQueryLimitCom(changeSaleManGradeDto); |
| | | String userId = changeSaleManGradeDto.getUserId(); |
| | | Long companyId = changeSaleManGradeDto.getCompanyId(); |
| | | //获取对应的公司的等级 |
| | | QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>(); |
| | | queryWrapperOrepool.eq("is_default", 1); |
| | | queryWrapperOrepool.eq("company_id", companyId); |
| | | ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool); |
| | | //修改Biz_User的salesman_grade |
| | | BizUser findByOpenId = bizUserDao.findByOpenId(userId); |
| | | if(ObjectUtil.isEmpty(findByOpenId)) { |
| | | return AjaxResult.buildFailInstance("当前用户已不存在"); |
| | | } |
| | | //不是分销员不允许修改 |
| | | Integer isSales = findByOpenId.getIsSales(); |
| | | if(BizUser.IS_SALES != isSales) { |
| | | return AjaxResult.buildFailInstance("当前用户未通过审核,不允许修改"); |
| | | } |
| | | Long gradeId = changeSaleManGradeDto.getGradeId(); |
| | | if(ObjectUtil.isEmpty(gradeId)) { |
| | | findByOpenId.setSalesmanGrade(shopSalesmanGrade.getId()); |
| | | }else { |
| | | findByOpenId.setSalesmanGrade(gradeId); |
| | | } |
| | | bizUserDao.updateByModel(findByOpenId); |
| | | return AjaxResult.buildFailInstance("修改等级成功"); |
| | | } |
| | | |
| | | public AjaxResult unbundlingSaleMan(UnbundlingSaleManDto unbundlingSaleManDto) { |
| | | //设置用户公司ID |
| | | QueryUtil.setQueryLimitCom(unbundlingSaleManDto); |
| | | String userId = unbundlingSaleManDto.getUserId(); |
| | | //将Biz_User的parent_open_id置空 |
| | | BizUser findByOpenId = bizUserDao.findByOpenId(userId); |
| | | if(ObjectUtil.isEmpty(findByOpenId)) { |
| | | return AjaxResult.buildFailInstance("当前用户已不存在"); |
| | | } |
| | | findByOpenId.setParentOpenId(""); |
| | | bizUserDao.updateByModel(findByOpenId); |
| | | return AjaxResult.buildFailInstance("解绑成功"); |
| | | } |
| | | |
| | | public AjaxResult delSaleManGradeApply(DelSaleManGradeApplyDto delSaleManGradeApplyDto) { |
| | | //设置用户公司ID |
| | | QueryUtil.setQueryLimitCom(delSaleManGradeApplyDto); |
| | | String userId = delSaleManGradeApplyDto.getUserId(); |
| | | Long applyid = delSaleManGradeApplyDto.getApplyId(); |
| | | |
| | | //将biz_user的is_sale设置成否 |
| | | BizUser findByOpenId = bizUserDao.findByOpenId(userId); |
| | | if(ObjectUtil.isEmpty(findByOpenId)) { |
| | | return AjaxResult.buildFailInstance("当前用户已不存在"); |
| | | } |
| | | findByOpenId.setIsSales(BizUser.NOT_SALES); |
| | | bizUserDao.updateByModel(findByOpenId); |
| | | //将记录设置成系统取消 |
| | | ShopSalesmanApply selectById = shopSalesmanApplyDao.selectById(applyid); |
| | | selectById.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_XTQX); |
| | | shopSalesmanApplyDao.updateById(selectById); |
| | | return AjaxResult.buildFailInstance("操作成功"); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | |
| | | package com.matrix.system.fenxiao.vo; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ShopCustomDetailVo", description = "分销员客户基本信息的返参") |
| | |
| | | private String avatarUrl; |
| | | @ApiModelProperty(value = "分销员") |
| | | private String nickname; |
| | | @ApiModelProperty(value = "加入时间") |
| | | @ApiModelProperty(value = "绑定时间") |
| | | @JsonFormat(pattern="yyyy-MM-dd HH:mm",timezone="GMT+8") |
| | | private Date createTime; |
| | | @ApiModelProperty(value = "申请方式1、自主申请,2、自动添加,3上级邀请,4、手动添加(来源)") |
| | | private Integer applyWay; |
| | | @ApiModelProperty(value = "绑定方式1、自主申请,2、自动添加,3上级邀请,4、手动添加(来源)") |
| | | private Integer applyWay; |
| | | @ApiModelProperty(value = "待成交次数") |
| | | private Integer doneNum; |
| | | |
| | | } |
New file |
| | |
| | | package com.matrix.system.fenxiao.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ShopOrderDetailVo", description = "订单收益信息返回类") |
| | | public class ShopOrderDetailVo { |
| | | |
| | | @ApiModelProperty(value = "订单id") |
| | | private Long orderId ; |
| | | |
| | | @ApiModelProperty(value = "订单编号") |
| | | private String orderNo; |
| | | |
| | | @ApiModelProperty(value = "实付金额") |
| | | private Double orderMoney; |
| | | |
| | | @ApiModelProperty(value = "下单门店") |
| | | private String storeName; |
| | | |
| | | @ApiModelProperty(value = "创建时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") |
| | | private Date createTime; |
| | | |
| | | @ApiModelProperty(value = "头像") |
| | | private String avatarUrl; |
| | | |
| | | @ApiModelProperty(value = "昵称") |
| | | private String nickName; |
| | | |
| | | @ApiModelProperty(value = " 收益类型1,推广收益,2邀请收益") |
| | | private Integer revenueType; |
| | | |
| | | @ApiModelProperty(value = "收益金额") |
| | | private Double amount; |
| | | |
| | | @ApiModelProperty(value = " 结算状态1,待结算,2,已结算,3已退款") |
| | | private Integer orderStatus; |
| | | |
| | | } |
| | |
| | | package com.matrix.system.fenxiao.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel(value = "ShopSalesmanAppliingVo", description = "查询正在申请分销员的返参") |
| | | @ApiModel(value = "ShopSalesmanAppliingVo", description = "获取分销员待审核记录的返参") |
| | | public class ShopSalesmanAppliingVo { |
| | | |
| | | @ApiModelProperty(value = "申请用户id") |
| | |
| | | @ApiModelProperty(value = "分销员") |
| | | private String nickname; |
| | | |
| | | @ApiModelProperty(value = "创建时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") |
| | | private Date createTime; |
| | | |
| | | @ApiModelProperty(value = "头像") |
| | | private String avatarUrl; |
| | | |
| | | @ApiModelProperty(value = "手机号码") |
| | | private String phone; |
| | | |
| | | } |
| | |
| | | * 审核状态-3未通过 |
| | | */ |
| | | public static final int APPLY_STATUS_WTG = 3; |
| | | /** |
| | | * 审核状态-4系统删除 |
| | | */ |
| | | public static final int APPLY_STATUS_XTQX = 4; |
| | | |
| | | |
| | | /** |
| | |
| | | */ |
| | | public static final int APPLY_WAY_HAND_ADD=4; |
| | | |
| | | |
| | | @ApiModelProperty(value = "申请记录ID") |
| | | private Long id; |
| | | |
| | | @ApiModelProperty(value = "申请方式1、自主申请,2、自动添加,3上级邀请,4、手动添加(来源)") |
| | | private Integer applyWay; |
| | |
| | | |
| | | <select id="findShopSalesmanApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo"> |
| | | SELECT |
| | | a.id id, |
| | | a.user_id userId, |
| | | b.avatar_url avatarUrl, |
| | | b.nick_name nickname, |
| | |
| | | ( 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, |
| | | g.NAME grade, |
| | | a.create_time createTime, |
| | | b.binding_parent_time createTime, |
| | | a.apply_status applyStatus, |
| | | a.apply_way applyWay |
| | | FROM |
| | |
| | | <select id="selectBizUserApplyList" resultType="com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo"> |
| | | SELECT |
| | | a.open_id userId, |
| | | a.nick_name nickName |
| | | 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 != 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> |
| | |
| | | WHERE user_id = a.user_id AND 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, |
| | | a.create_time createTime, |
| | | b.binding_parent_time createTime, |
| | | a.apply_status applyStatus, |
| | | a.apply_way applyWay |
| | | FROM |
| | |
| | | a.user_id userId, |
| | | b.avatar_url avatarUrl, |
| | | b.nick_name nickname, |
| | | a.create_time createTime, |
| | | a.apply_way applyWay |
| | | b.binding_parent_time createTime, |
| | | a.apply_way applyWay, |
| | | (select COUNT(*) from shop_salesman_order c where c.order_status = 1 and c.sales_user_id = a.user_id) doneNum |
| | | FROM |
| | | shop_salesman_apply a |
| | | LEFT JOIN biz_user b ON b.parent_open_id = a.user_id |
| | | |
| | | <where> |
| | | a.company_id = #{record.companyId} |
| | | AND b.is_sales != 1 |
| | |
| | | a.user_id userId, |
| | | b.avatar_url avatarUrl, |
| | | b.nick_name nickname, |
| | | a.create_time createTime, |
| | | b.binding_parent_time createTime, |
| | | a.apply_way applyWay |
| | | FROM |
| | | shop_salesman_apply a |
| | | LEFT JOIN biz_user b ON b.parent_open_id = a.user_id |
| | | |
| | | <where> |
| | | a.company_id = #{record.companyId} |
| | | AND b.is_sales = 1 |
| | |
| | | </if> |
| | | </select> |
| | | |
| | | <select id="findShopOrderDetail" resultType="com.matrix.system.fenxiao.vo.ShopOrderDetailVo"> |
| | | select |
| | | a.order_id orderId, |
| | | a.create_time createTime, |
| | | a.amount amount, |
| | | a.revenue_type revenueType, |
| | | a.order_status orderStatus, |
| | | b.nick_name nickName, |
| | | b.avatar_url avatarUrl, |
| | | c.order_no orderNo, |
| | | c.order_money orderMoney, |
| | | (select s.store_name from shop_store s where s.store_id = c.store_id) storeName |
| | | from shop_salesman_order a |
| | | left join biz_user b on b.open_id=a.user_id |
| | | left join shop_order c on a.order_id=c.id |
| | | <where> |
| | | a.sales_user_id = #{record.userId} |
| | | <if test="record.orderType != null and record.orderType != ''"> |
| | | and a.order_status = #{record.orderType} |
| | | </if> |
| | | <if test="record.userName != null and record.userName != ''"> |
| | | and b.nick_name like concat('%',#{record.userName},'%') |
| | | </if> |
| | | </where> |
| | | <if test="record.sort !=null"> |
| | | order by |
| | | a.${record.sort} ${record.order} |
| | | </if> |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | </el-row> |
| | | |
| | | <el-row class="table-style" > |
| | | |
| | | <el-table id="proj" :data="table.rows" :height="height" stripe @sort-change="sortChange"> |
| | | <el-table-column |
| | | prop="userId" |
| | | label="" |
| | | width="300"> |
| | | label="会员"> |
| | | <template slot-scope="scope"> |
| | | <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/> |
| | | {{scope.row.nickname}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="nickname" |
| | | label="分销员昵称" |
| | | width="180"> |
| | | prop="phone" |
| | | label="手机号码"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | | label="注册时间"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="salesGrade" |
| | |
| | | <span style="font-size: 20px;">{{basicdetail.nickname}} </span> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-select v-model="basicdetail.grade" @focus="getDatalist()" placeholder="请选择" filterable allow-create> |
| | | |
| | | <el-select v-model="basicdetail.grade" @focus="getDatalist()" @change="changeSaleManGrade(basicdetail.grade)" placeholder="请选择" filterable allow-create> |
| | | <el-option v-for="item in salemanGradeList " :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | </el-col> |
| | |
| | | type="selection"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="头像" width="100"> |
| | | label="客户"> |
| | | <template slot-scope="scope"> |
| | | <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/> |
| | | {{scope.row.nickName}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="nickname" |
| | | label="分销员" width="100"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | |
| | | <el-table-column |
| | | label="客户状态"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.doneNum == 0">已成交</span> |
| | | <span v-if="scope.row.doneNum > 0">未成交</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="240"> |
| | | <template slot-scope="scope"> |
| | | <el-row style="display:flex;"> |
| | | <el-button type="primary" size="mini" @click="openExamineSsaleManApply(scope.row)">解绑</el-button> |
| | | <el-button type="primary" size="mini" @click="openExaminesaleMan(scope.row)">解绑</el-button> |
| | | </el-row> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | type="selection"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="头像" width="100"> |
| | | label="客户"> |
| | | <template slot-scope="scope"> |
| | | <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/> |
| | | {{scope.row.nickName}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="nickname" |
| | | label="分销员" width="100"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | |
| | | <span v-if="scope.row.applyWay == 4">手动添加</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="客户状态"> |
| | | <template slot-scope="scope"> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" width="240"> |
| | | <template slot-scope="scope"> |
| | | <el-row style="display:flex;"> |
| | | <el-button type="primary" size="mini" @click="openExamineSsaleManApply(scope.row)">解绑</el-button> |
| | | <el-button type="primary" size="mini" @click="openExaminesaleMan(scope.row)">解绑</el-button> |
| | | </el-row> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | :page-size="lowLevelList.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="lowLevelList.total"> |
| | | </el-pagination> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="收益订单" name="third"> |
| | | <el-row style="display:flex;align-items: center;"> |
| | | <el-form ref="formOrder" :model="formOrder" inline > |
| | | <el-form-item label="结算状态" prop="orderType"> |
| | | <el-select v-model="formOrder.orderType" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in orderTypeList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item prop="userName"> |
| | | <el-input v-model="formOrder.userName" placeholder="请输入会员姓名"></el-input> |
| | | </el-form-item> |
| | | <el-button type="primary" @click="searchFormOrder" >搜索</el-button> |
| | | <el-button @click="resetFormOrder('formOrder')">重置</el-button> |
| | | </el-form> |
| | | </el-row> |
| | | <el-row class="table-style" > |
| | | <el-table id="proj" :data="orderLevelList.rows" :height="height" stripe:true @sort-change="sortChange"> |
| | | <el-table-column |
| | | prop="orderNo" |
| | | label="订单编号"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="orderMoney" |
| | | label="实付金额"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="storeName" |
| | | label="下单门店"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="客户"> |
| | | <template slot-scope="scope"> |
| | | <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/> |
| | | {{scope.row.nickName}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createTime" |
| | | label="时间"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="收益类型"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.revenueType == 1">推广收益</span> |
| | | <span v-if="scope.row.revenueType == 2">邀请收益</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="amount" |
| | | label="收益金额"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="结算状态"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.orderStatus == 1">待结算</span> |
| | | <span v-if="scope.row.orderStatus == 2">已结算</span> |
| | | <span v-if="scope.row.orderStatus == 3">已退款</span> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <el-row class="paginationStyle" > |
| | | <el-pagination background |
| | | @size-change="changePageSizeOrder" |
| | | @current-change="changeCurrentPageOrder" |
| | | :current-page="orderLevelList.currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="orderLevelList.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="orderLevelList.total"> |
| | | </el-pagination> |
| | | </el-row> |
| | | </el-tab-pane> |
| | |
| | | el: '#app', |
| | | data: { |
| | | activeName: 'first', |
| | | shenheAgreeType : 2, |
| | | shenheDisagreeType : 3, |
| | | //条件查询审核状态 |
| | | shenheStateList:[ |
| | | {value:'',label:'全部'}, |
| | | {value:1,label:'未审核'}, |
| | | {value:2,label:'通过'}, |
| | | {value:3,label:'未通过'} |
| | | ], |
| | | basicdetail:{}, |
| | | //条件查询分销员等级 |
| | | //绑定客户 |
| | | form:{ |
| | | userName:'', |
| | | order:'', |
| | |
| | | pageSize:10, |
| | | currentPage:1, |
| | | }, |
| | | |
| | | //邀请下级 |
| | | formlow:{ |
| | | userName:'', |
| | | order:'', |
| | | sort:'' |
| | | }, |
| | | lowLevelList:{ |
| | | rows:[], |
| | | total:0, |
| | | pageSize:10, |
| | | currentPage:1, |
| | | }, |
| | | //收益订单 |
| | | formOrder:{ |
| | | userName:'', |
| | | orderType:'', |
| | | order:'', |
| | | sort:'' |
| | | }, |
| | | //条件查询结算状态 |
| | | orderTypeList:[ |
| | | {value:'',label:'全部'}, |
| | | {value:1,label:'待结算'}, |
| | | {value:2,label:'已结算'}, |
| | | {value:3,label:'已退款'} |
| | | ], |
| | | orderLevelList:{ |
| | | rows:[], |
| | | total:0, |
| | | pageSize:10, |
| | |
| | | let _this = this; |
| | | _this.loadParamSetting(); |
| | | _this.loadParamSettinglow(); |
| | | _this.loadParamSettingOrder(); |
| | | _this.getDatalist(); |
| | | }, |
| | | //修改等级 |
| | | changeSaleManGrade(id){ |
| | | let _this = this; |
| | | let obj = { |
| | | userId: userId, |
| | | gradeId: id, |
| | | } |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data:obj, |
| | | url: basePath + '/fenXiao/fenXiaoUser/changeSaleManGrade', |
| | | callback: function (data) { |
| | | _this.$message.success(data.info); |
| | | this.loadInfo(); |
| | | } |
| | | }); |
| | | }, |
| | | //绑定客户 |
| | | loadParamSetting() { |
| | |
| | | //查询 |
| | | search:function(){ |
| | | this.fxyList.currentPage=1; |
| | | this.loadInfo(); |
| | | this.loadParamSetting(); |
| | | }, |
| | | //重置 |
| | | resetForm(formName) { |
| | |
| | | }, |
| | | changePageSize(val) { |
| | | this.fxyList.pageSize = val; |
| | | this.loadInfo(); |
| | | this.loadParamSetting(); |
| | | }, |
| | | changeCurrentPage(val) { |
| | | this.fxyList.currentPage = val; |
| | | this.loadInfo(); |
| | | this.loadParamSetting(); |
| | | }, |
| | | //邀请下级 |
| | | loadParamSettinglow() { |
| | |
| | | //查询 |
| | | searchlow:function(){ |
| | | this.lowLevelList.currentPage=1; |
| | | this.loadInfo(); |
| | | this.loadParamSettinglow(); |
| | | }, |
| | | //重置 |
| | | resetFormlow(formName) { |
| | |
| | | }, |
| | | changePageSizelow(val) { |
| | | this.lowLevelList.pageSize = val; |
| | | this.loadInfo(); |
| | | this.loadParamSettinglow(); |
| | | }, |
| | | changeCurrentPagelow(val) { |
| | | this.lowLevelList.currentPage = val; |
| | | this.loadInfo(); |
| | | this.loadParamSettinglow(); |
| | | }, |
| | | |
| | | //收益订单 |
| | | loadParamSettingOrder() { |
| | | let _this = this; |
| | | let data=_this.getRequestParamOrder(); |
| | | data.pageSize=_this.orderLevelList.pageSize; |
| | | data.pageNum=_this.orderLevelList.currentPage; |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data:data, |
| | | url: basePath + '/fenXiao/fenXiaoUser/findShopSalesmanDetail', |
| | | callback: function (data) { |
| | | _this.orderLevelList.rows = data.mapInfo.orderRecords; |
| | | _this.orderLevelList.total = data.mapInfo.orderTotal; |
| | | } |
| | | }); |
| | | }, |
| | | //查询参数 |
| | | getRequestParamOrder(){ |
| | | let _this = this; |
| | | return { |
| | | userName:_this.formOrder.userName, |
| | | orderType:_this.formOrder.orderType, |
| | | order:_this.formOrder.order, |
| | | sort:_this.formOrder.sort, |
| | | userId:userId, |
| | | } |
| | | }, |
| | | //查询 |
| | | searchFormOrder:function(){ |
| | | this.orderLevelList.currentPage=1; |
| | | this.loadParamSettingOrder(); |
| | | }, |
| | | //重置 |
| | | resetFormOrder(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | changePageSizeOrder(val) { |
| | | this.orderLevelList.pageSize = val; |
| | | this.loadParamSettingOrder(); |
| | | }, |
| | | changeCurrentPageOrder(val) { |
| | | this.orderLevelList.currentPage = val; |
| | | this.loadParamSettingOrder(); |
| | | }, |
| | | |
| | | // select下拉框获取焦点的时候下拉框数据源---分销员等级 |
| | |
| | | this.loadInfo(); |
| | | } |
| | | }, |
| | | //新增分销员页面 |
| | | addSaleMan(){ |
| | | layer.full(layer.open({ |
| | | type: 2, |
| | | title: "选择会员", |
| | | maxmin: true, |
| | | area: [MUI.SIZE_L, '500px'], |
| | | content : [ basePath + '/admin/redirect/fenxiao/fenxiao-apply'] |
| | | })); |
| | | }, |
| | | //修改等级 |
| | | openUpdateSaleManGrade(){ |
| | | layer.full(layer.open({ |
| | | type: 2, |
| | | title: "修改等级", |
| | | maxmin: true, |
| | | area: [MUI.SIZE_L, '500px'], |
| | | content : [ basePath + '/admin/redirect/fenxiao/fenxiao-update'] |
| | | })); |
| | | }, |
| | | //审核 |
| | | openExamineSaleManApply(row) { |
| | | this.$confirm('是否通过?', '审核', { |
| | | //解绑 |
| | | openExamineSaleMan(row) { |
| | | this.$confirm('是否解绑?', '解绑', { |
| | | distinguishCancelAndClose: true,//设置关闭按钮和不通过按钮的区别 |
| | | confirmButtonText: '通过', |
| | | cancelButtonText: '不通过', |
| | | confirmButtonText: '同意', |
| | | cancelButtonText: '取消', |
| | | type: 'info' |
| | | }).then(() => { |
| | | //通过 |
| | | this.examineSaleManApply(row,this.shenheAgreeType); |
| | | console.log("conform"); |
| | | this.unbundlingSaleMan(row); |
| | | }).catch(action => { |
| | | //不通过 |
| | | if(action === 'cancel'){ |
| | | this.examineSaleManApply(row,this.shenheDisagreeType); |
| | | console.log("cancel"); |
| | | }else{ |
| | | //关闭按钮 |
| | | console.log("close"); |
| | | //this.$message({type: 'info',message: ''}) |
| | | } |
| | | }); |
| | | }, |
| | | examineSaleManApply(row,type){ |
| | | unbundlingSaleMan(row){ |
| | | let _this = this; |
| | | let userId = row.userId; |
| | | let obj = { |
| | | userId: userId, |
| | | applyState: type, |
| | | } |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data:obj, |
| | | url: basePath + '/fenXiao/fenXiaoUser/examineSaleManApply', |
| | | url: basePath + '/fenXiao/fenXiaoUser/unbundlingSaleMan', |
| | | callback: function (data) { |
| | | _this.$message.success(data.info); |
| | | this.loadData(); |
| | | this.loadInfo(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | submit() { |
| | | } |
| | | } |
| | | }) |
| | | </script> |
| | |
| | | type="selection"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="头像" width="100"> |
| | | label="分销员"> |
| | | <template slot-scope="scope"> |
| | | <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/> |
| | | {{scope.row.nickname}} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="nickname" |
| | | label="分销员" width="100"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="parentUser" |
| | |
| | | <span v-if="scope.row.applyStatus == 1">待审核</span> |
| | | <span v-if="scope.row.applyStatus == 2">通过</span> |
| | | <span v-if="scope.row.applyStatus == 3">未通过</span> |
| | | <span v-if="scope.row.applyStatus == 4">系统删除</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | |
| | | <el-table-column label="操作" width="240"> |
| | | <template slot-scope="scope"> |
| | | <el-row style="display:flex;"> |
| | | <el-button type="primary" size="mini" @click="openExamineSaleManApply(scope.row)">审核</el-button> |
| | | <el-button type="primary" size="mini" @click="openUpdateSaleManGrade(scope.row)">修改等级</el-button> |
| | | <el-button type="primary" v-if="scope.row.applyStatus == 1" size="mini" @click="openExamineSaleManApply(scope.row)">审核</el-button> |
| | | <el-button type="primary" v-if="scope.row.applyStatus == 2" size="mini" @click="openUpdateSaleManGrade(scope.row)">修改等级</el-button> |
| | | <el-button type="primary" size="mini" @click="openUpdateSaleManGrade(scope.row)">详情</el-button> |
| | | <el-button type="primary" v-if="scope.row.applyStatus == 2" size="mini" @click="delSaleManGradeApply(scope.row)">删除</el-button> |
| | | </el-row> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-pagination> |
| | | </el-row> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="分佣方案" name="second"> |
| | | <template> |
| | | <el-table |
| | |
| | | </el-table> |
| | | </template> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane label="推广文案" name="third"> |
| | | <el-row> |
| | | <script style="width: 100%; height: 500px" id="description" name="description" |
| | |
| | | }, |
| | | search:function(){ |
| | | this.fxyList.currentPage=1; |
| | | this.loadInfo(); |
| | | this.loadParamSetting(); |
| | | }, |
| | | keydown(evt){ |
| | | if(evt.keyCode==13) { |
| | |
| | | this.form.order="asc"; |
| | | } |
| | | this.form.sort=column.prop; |
| | | this.loadInfo(); |
| | | this.loadParamSetting(); |
| | | } |
| | | }, |
| | | changePageSize(val) { |
| | | this.table.pageSize = val; |
| | | this.loadData(); |
| | | this.loadParamSetting(); |
| | | }, |
| | | changeCurrentPage(val) { |
| | | this.table.currentPage = val; |
| | | this.loadData(); |
| | | this.loadParamSetting(); |
| | | }, |
| | | //时间格式化 |
| | | formatDate(row,column){ |
| | |
| | | content : [ basePath + '/admin/redirect/fenxiao/fenxiao-apply'] |
| | | })); |
| | | }, |
| | | //修改等级 |
| | | //删除 |
| | | delSaleManGradeApply(row){ |
| | | this.$confirm('是否删除?', '删除', { |
| | | distinguishCancelAndClose: true,//设置关闭按钮和不通过按钮的区别 |
| | | confirmButtonText: '确认', |
| | | cancelButtonText: '取消', |
| | | type: 'info' |
| | | }).then(() => { |
| | | //通过 |
| | | this.examineDelSaleManGradeApply(row); |
| | | }).catch(action => { |
| | | //不通过 |
| | | if(action === 'cancel'){ |
| | | console.log("cancel"); |
| | | }else{ |
| | | //关闭按钮 |
| | | console.log("close"); |
| | | //this.$message({type: 'info',message: ''}) |
| | | } |
| | | }); |
| | | }, |
| | | examineDelSaleManGradeApply(row){ |
| | | let _this = this; |
| | | let userId = row.userId; |
| | | let id = row.id; |
| | | let obj = { |
| | | userId: userId, |
| | | applyId: id, |
| | | } |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data:obj, |
| | | url: basePath + '/fenXiao/fenXiaoUser/delSaleManGradeApply', |
| | | callback: function (data) { |
| | | _this.$message.success(data.info); |
| | | this.loadParamSetting(); |
| | | } |
| | | }); |
| | | }, |
| | | //修改等级跳转 |
| | | openUpdateSaleManGrade(row){ |
| | | layer.full(layer.open({ |
| | | type: 2, |
| | |
| | | url: basePath + '/fenXiao/fenXiaoUser/examineSaleManApply', |
| | | callback: function (data) { |
| | | _this.$message.success(data.info); |
| | | this.loadData(); |
| | | this.loadParamSetting(); |
| | | } |
| | | }); |
| | | }, |