935090232@qq.com
2021-03-10 0cf8009e4ae98e79c6ad4b49ff29620126f53f92
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java
@@ -1,6 +1,8 @@
package com.matrix.system.shopXcx.api.action;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.matrix.biz.bean.BizUser;
import com.matrix.biz.dao.BizUserDao;
import com.matrix.component.redis.RedisUserLoginUtils;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.tools.StringUtils;
@@ -18,6 +20,7 @@
import org.springframework.web.bind.annotation.*;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
@@ -38,42 +41,105 @@
    @Autowired
    private RedisUserLoginUtils redisUserLoginUtils;
    @Autowired
    private BizUserDao bizUserDao;
    @ApiOperation(value = "查询推广计划", notes = "")
    @GetMapping(value = "/getTgPlan")
    public AjaxResult getTgPlan() {
        BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_PLAN, HostInterceptor.getCompanyId());
        AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("");
        ajaxResult.putInMap("tgjh",busParameterSettings.getParamValue3());
        ajaxResult.putInMap("data",busParameterSettings.getParamValue3());
        return ajaxResult;
    }
    @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId 如: {invitationId:openId}")
    @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId ,非必填 例: {invitationId:openId}")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = Map.class)
    })
    @PostMapping(value = "/applyToBeAnSalesman")
    public AjaxResult applyToBeAnSalesman(@RequestBody Map<String,String> param) {
        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
        ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply();
        shopSalesmanApply.setUserId(loginUser.getUserId());
        shopSalesmanApply.setCreateBy(loginUser.getNickName());
        shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
        shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH);
        shopSalesmanApply.setCompanyId(loginUser.getCompanyId());
        shopSalesmanApply.setUpdateBy(loginUser.getNickName());
        Date date = new Date();
        shopSalesmanApply.setCreateTime(date);
        shopSalesmanApply.setUpdateTime(date);
        String invitationId = param.get("invitationId");
        if(StringUtils.isNotBlank(invitationId)){
            shopSalesmanApply.setParentUserId(invitationId);
        loginUser=bizUserDao.selectById(loginUser.getUserId());
        //校验审核状态,和是否重复发起
        QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_id",loginUser.getUserId());
        ShopSalesmanApply checkApply = salesmanApplyDao.selectOne(queryWrapper);
        if(checkApply==null||
            checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){
            ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply();
            shopSalesmanApply.setUserId(loginUser.getUserId());
            shopSalesmanApply.setCreateBy(loginUser.getNickName());
            shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF);
            shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH);
            shopSalesmanApply.setCompanyId(loginUser.getCompanyId());
            shopSalesmanApply.setUpdateBy(loginUser.getNickName());
            Date date = new Date();
            shopSalesmanApply.setCreateTime(date);
            shopSalesmanApply.setUpdateTime(date);
            String invitationId = param.get("invitationId");
            if(StringUtils.isNotBlank(invitationId)){
                shopSalesmanApply.setParentUserId(invitationId);
            }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){
                //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级
                shopSalesmanApply.setParentUserId(loginUser.getParentOpenId());
            }
            salesmanApplyDao.insert(shopSalesmanApply);
            return AjaxResult.buildSuccessInstance("申请成功");
        }else{
            return AjaxResult.buildFailInstance("不能重复申请");
        }
        salesmanApplyDao.insert(shopSalesmanApply);
        return AjaxResult.buildSuccessInstance("申请成功");
    }
    @ApiOperation(value = "查询推广员审核进度", notes = "")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = ShopSalesmanApply.class)
    })
    @GetMapping(value = "/queryApplyProgress")
    public AjaxResult queryApplyProgress() {
        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
        QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("user_id",loginUser.getUserId());
        ShopSalesmanApply shopSalesmanApply = salesmanApplyDao.selectOne(queryWrapper);
        return AjaxResult.buildSuccessInstance(shopSalesmanApply);
    }
    @ApiOperation(value = "绑定下级客户,当客户点击分销员分销的产品时调用", notes = "传入参数invitationId 必须 分销员openId 例: {invitationId:openId}")
    @ApiResponses({
            @ApiResponse(code = 200, message = "ok", response = Map.class)
    })
    @PostMapping(value = "/bindingParentSalesman")
    public AjaxResult bindingParentSalesman(@RequestBody Map<String,String> param) {
        String invitationId = param.get("invitationId");
        if (StringUtils.isBlank(invitationId)) {
            return AjaxResult.buildFailInstance("请求参数错误");
        }
        BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class);
        loginUser = bizUserDao.selectById(loginUser.getUserId());
        if (loginUser.getIsSales() == null || loginUser.getIsSales() == BizUser.NOT_SALES) {
            if (StringUtils.isBlank(loginUser.getParentOpenId())) {
                Map<String, Object> updateParam = new HashMap<>();
                updateParam.put("userId", loginUser.getUserId());
                updateParam.put("parentOpenId", invitationId);
                bizUserDao.updateByMap(updateParam);
                return AjaxResult.buildSuccessInstance("绑定成功");
            } else {
                return AjaxResult.buildSuccessInstance("已经存在上级");
            }
        } else {
            return AjaxResult.buildSuccessInstance("分销员不能被绑定");
        }
    }