|  |  |  | 
|---|
|  |  |  | private final MallMoneyFlowMapper mallMoneyFlowMapper; | 
|---|
|  |  |  | private final MallElectronicFenceMapper mallElectronicFenceMapper; | 
|---|
|  |  |  | private final IMallElectronicFenceService iMallElectronicFenceService; | 
|---|
|  |  |  | private final SpringContextHolder springContextHolder; | 
|---|
|  |  |  | private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public IPage<AdminMallTeamLeaderVo> getLeaderListInPage(MallTeamLeader mallTeamLeader, QueryRequest request) { | 
|---|
|  |  |  | 
|---|
|  |  |  | public FebsResponse leaderUpdate(MallTeamLeader mallTeamLeader) { | 
|---|
|  |  |  | Long id = mallTeamLeader.getId(); | 
|---|
|  |  |  | MallTeamLeader mallTeamLeaders = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if(1 == mallTeamLeaders.getOnlineState()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请先让团长离线"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallTeamLeaders)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("团长信息不存在,刷新重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //            return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Double bonusPercent = Double.parseDouble(mallTeamLeader.getBonusPercent()); | 
|---|
|  |  |  | if(1 <= bonusPercent || 0 > bonusPercent){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请输入合适的百分比小数"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        Double bonusPercent = Double.parseDouble(mallTeamLeader.getBonusPercent()); | 
|---|
|  |  |  | //        if(1 <= bonusPercent || 0 > bonusPercent){ | 
|---|
|  |  |  | //            return new FebsResponse().fail().message("请输入合适的百分比小数"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | int isOk = mallTeamLeader.getIsOk(); | 
|---|
|  |  |  | if(MallTeamLeader.STATE_YES == isOk){ | 
|---|
|  |  |  | mallTeamLeader.setState(MallTeamLeader.STATE_YES); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<AdminSelectListLeaderVo> selectList(MallTeamLeader mallTeamLeader) { | 
|---|
|  |  |  | List<AdminSelectListLeaderVo> list = new ArrayList<>(); | 
|---|
|  |  |  | List<MallTeamLeader> mallTeamLeaders = this.baseMapper.getMallTeamLeaderList(); | 
|---|
|  |  |  | List<MallTeamLeader> mallTeamLeaders = this.baseMapper.getAllMallTeamLeaderList(); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallTeamLeaders)){ | 
|---|
|  |  |  | for(MallTeamLeader teamLeader : mallTeamLeaders){ | 
|---|
|  |  |  | AdminSelectListLeaderVo adminSelectListLeaderVo = new AdminSelectListLeaderVo(); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse leaderCancel(Long id) { | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if(1 == mallTeamLeader.getOnlineState()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请先让团长离线"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallTeamLeader)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("团长信息不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Long memberId = adminLeaderAddDto.getMemberId(); | 
|---|
|  |  |  | MallMember mallMember = mallMemberMapper.selectById(memberId); | 
|---|
|  |  |  | MallTeamLeader mallTeamLeaderAdd = new MallTeamLeader(); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallMember)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("刷新页面重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallTeamLeaderCancel)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("当前用户无法申请"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Double bonusPercent = Double.parseDouble(adminLeaderAddDto.getBonusPercent()); | 
|---|
|  |  |  | if(1 <= bonusPercent || 0 > bonusPercent){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请输入合适的百分比小数"); | 
|---|
|  |  |  | List<MallTeamLeader> mallTeamLeaderNo = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_NO); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallTeamLeaderNo)){ | 
|---|
|  |  |  | mallTeamLeaderAdd = mallTeamLeaderNo.get(0); | 
|---|
|  |  |  | if(ObjectUtil.isNotEmpty(mallTeamLeaderAdd)){ | 
|---|
|  |  |  | mallTeamLeaderAdd.setName(adminLeaderAddDto.getName()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setPhone(adminLeaderAddDto.getPhone()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setAddressPic(adminLeaderAddDto.getAddressPic()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setAddressArea(adminLeaderAddDto.getAddressArea()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setDetailAddress(adminLeaderAddDto.getDetailAddress()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setLongitude(adminLeaderAddDto.getLongitude()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setLatitude(adminLeaderAddDto.getLatitude()); | 
|---|
|  |  |  | mallTeamLeaderAdd.setState(MallTeamLeader.STATE_YES); | 
|---|
|  |  |  | //申请团长默认关闭返利,返利比例为0 | 
|---|
|  |  |  | mallTeamLeaderAdd.setProfitSwitch(2); | 
|---|
|  |  |  | mallTeamLeaderAdd.setBonusPercent("0"); | 
|---|
|  |  |  | this.baseMapper.updateById(mallTeamLeaderAdd); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.adminDtoToEntity(adminLeaderAddDto); | 
|---|
|  |  |  | mallTeamLeader.setUniqueCode(mallMember.getInviteId()); | 
|---|
|  |  |  | mallTeamLeader.setMemberId(memberId); | 
|---|
|  |  |  | mallTeamLeader.setPhone(mallMember.getPhone()); | 
|---|
|  |  |  | mallTeamLeader.setName(mallMember.getName()); | 
|---|
|  |  |  | mallTeamLeader.setState(MallTeamLeader.STATE_YES); | 
|---|
|  |  |  | //申请团长默认关闭返利,返利比例为0 | 
|---|
|  |  |  | mallTeamLeader.setProfitSwitch(2); | 
|---|
|  |  |  | mallTeamLeader.setBonusPercent("0"); | 
|---|
|  |  |  | this.baseMapper.insert(mallTeamLeader); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = MallTeamLeaderConversion.INSTANCE.adminDtoToEntity(adminLeaderAddDto); | 
|---|
|  |  |  | mallTeamLeader.setUniqueCode(mallMember.getInviteId()); | 
|---|
|  |  |  | mallTeamLeader.setMemberId(memberId); | 
|---|
|  |  |  | mallTeamLeader.setPhone(mallMember.getPhone()); | 
|---|
|  |  |  | mallTeamLeader.setName(mallMember.getName()); | 
|---|
|  |  |  | mallTeamLeader.setState(MallTeamLeader.STATE_YES); | 
|---|
|  |  |  | this.baseMapper.insert(mallTeamLeader); | 
|---|
|  |  |  | //        Double bonusPercent = Double.parseDouble(adminLeaderAddDto.getBonusPercent()); | 
|---|
|  |  |  | //        if(1 <= bonusPercent || 0 > bonusPercent){ | 
|---|
|  |  |  | //            return new FebsResponse().fail().message("请输入合适的百分比小数"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //                System.out.print(sid); | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private final XcxProperties xcxProperties = SpringContextHolder.getBean(XcxProperties.class); | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | @Transactional | 
|---|
|  |  |  | public FebsResponse addFence(AdminLeaderAddFenceDto adminLeaderAddFenceDto) { | 
|---|
|  |  |  | Long id = adminLeaderAddFenceDto.getId(); | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if(1 == mallTeamLeader.getOnlineState()){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("请先让团长离线"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //如果电子围栏表为空, | 
|---|
|  |  |  | //先查询服务是否已经创建, | 
|---|
|  |  |  | //没有,再创建服务。 | 
|---|
|  |  |  | 
|---|
|  |  |  | if("fail".equals(resultStr)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("高德地图查询服务失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | JSONObject jsonObject = JSONUtil.parseObj(resultStr); | 
|---|
|  |  |  | String results = jsonObject.get("results").toString(); | 
|---|
|  |  |  | JSONArray jsonArray = JSONUtil.parseArray(results); | 
|---|
|  |  |  | for(Object jsonArray1 : jsonArray){ | 
|---|
|  |  |  | JSONObject jsonObject1 = JSONUtil.parseObj(jsonArray1); | 
|---|
|  |  |  | String name = jsonObject1.get("name").toString(); | 
|---|
|  |  |  | String sid = jsonObject1.get("sid").toString(); | 
|---|
|  |  |  | if(xcxProperties.getServiceName().equals(name)){ | 
|---|
|  |  |  | serviceId= sid; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StrUtil.isBlank(serviceId)){ | 
|---|
|  |  |  | log.info(resultStr); | 
|---|
|  |  |  | if("null".equals(resultStr) || StrUtil.isBlank(resultStr)){ | 
|---|
|  |  |  | serviceId = iMallElectronicFenceService.trackServiceAdd(xcxProperties.getGaodeKey(), xcxProperties.getServiceName()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | JSONObject jsonObject = JSONUtil.parseObj(resultStr); | 
|---|
|  |  |  | String results = jsonObject.get("results").toString(); | 
|---|
|  |  |  | JSONArray jsonArray = JSONUtil.parseArray(results); | 
|---|
|  |  |  | for(Object jsonArray1 : jsonArray){ | 
|---|
|  |  |  | JSONObject jsonObject1 = JSONUtil.parseObj(jsonArray1); | 
|---|
|  |  |  | String name = jsonObject1.get("name").toString(); | 
|---|
|  |  |  | String sid = jsonObject1.get("sid").toString(); | 
|---|
|  |  |  | if(xcxProperties.getServiceName().equals(name)){ | 
|---|
|  |  |  | serviceId= sid; | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | serviceId = mallElectronicFences.get(0).getServiceId(); | 
|---|
|  |  |  | 
|---|
|  |  |  | if("fail".equals(serviceId)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("高德地图创建服务失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Long id = adminLeaderAddFenceDto.getId(); | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); | 
|---|
|  |  |  | String uniqueCode = mallTeamLeader.getUniqueCode(); | 
|---|
|  |  |  | MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(uniqueCode); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallElectronicFence)){ | 
|---|
|  |  |  | 
|---|
|  |  |  | mallElectronicFenceAdd.setServiceId(serviceId); | 
|---|
|  |  |  | mallElectronicFenceMapper.insert(mallElectronicFenceAdd); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | String fenceUpdate = iMallElectronicFenceService.fenceUpdate(xcxProperties.getGaodeKey(), serviceId, | 
|---|
|  |  |  | mallElectronicFence.getGid(), mallElectronicFence.getFenceName(), | 
|---|
|  |  |  | adminLeaderAddFenceDto.getLonglatiarr()); | 
|---|
|  |  |  | if("fail".equals(fenceUpdate)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("高德地图更新多边形围栏失败"); | 
|---|
|  |  |  | //删除电子围栏 | 
|---|
|  |  |  | if(StrUtil.isEmpty(adminLeaderAddFenceDto.getLonglatiarr())){ | 
|---|
|  |  |  | iMallElectronicFenceService.fenceDelete(xcxProperties.getGaodeKey(),serviceId,mallElectronicFence.getGid()); | 
|---|
|  |  |  | mallElectronicFenceMapper.deleteById(mallElectronicFence.getId()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | String fenceUpdate = iMallElectronicFenceService.fenceUpdate(xcxProperties.getGaodeKey(), serviceId, | 
|---|
|  |  |  | mallElectronicFence.getGid(), mallElectronicFence.getFenceName(), | 
|---|
|  |  |  | adminLeaderAddFenceDto.getLonglatiarr()); | 
|---|
|  |  |  | if("fail".equals(fenceUpdate)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("高德地图更新多边形围栏失败"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallElectronicFence.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr()); | 
|---|
|  |  |  | mallElectronicFenceMapper.updateById(mallElectronicFence); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallElectronicFence.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr()); | 
|---|
|  |  |  | mallElectronicFenceMapper.updateById(mallElectronicFence); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse startOnline(Long id) { | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallTeamLeader)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("团长信息不存在,刷新重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Integer state = mallTeamLeader.getState(); | 
|---|
|  |  |  | if(1!=state){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("目前还不是团长,无法操作"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode()); | 
|---|
|  |  |  | //        if(ObjectUtil.isEmpty(mallElectronicFence)){ | 
|---|
|  |  |  | //            return new FebsResponse().fail().message("请先设置配送范围"); | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | mallTeamLeader.setOnlineState(1); | 
|---|
|  |  |  | this.baseMapper.updateById(mallTeamLeader); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public FebsResponse closeOnline(Long id) { | 
|---|
|  |  |  | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(mallTeamLeader)){ | 
|---|
|  |  |  | return new FebsResponse().fail().message("团长信息不存在,刷新重试"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | mallTeamLeader.setOnlineState(2); | 
|---|
|  |  |  | this.baseMapper.updateById(mallTeamLeader); | 
|---|
|  |  |  | return new FebsResponse().success(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|