| | |
| | | |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.entity.QueryRequest; |
| | | import cc.mrbird.febs.common.enumerates.FlowTypeEnum; |
| | | import cc.mrbird.febs.common.enumerates.MoneyFlowTypeEnum; |
| | | import cc.mrbird.febs.common.properties.XcxProperties; |
| | | import cc.mrbird.febs.common.utils.HttpCurlUtil; |
| | | import cc.mrbird.febs.common.utils.SpringContextHolder; |
| | | import cc.mrbird.febs.mall.conversion.MallElectronicFenceConversion; |
| | | import cc.mrbird.febs.mall.conversion.MallTeamLeaderConversion; |
| | | import cc.mrbird.febs.mall.dto.AdminLeaderAddDto; |
| | | import cc.mrbird.febs.mall.dto.AdminLeaderAddFenceDto; |
| | | import cc.mrbird.febs.mall.dto.AdminLeaderUpdateDto; |
| | | import cc.mrbird.febs.mall.entity.MallGoodsCategory; |
| | | import cc.mrbird.febs.mall.entity.MallLeaderStock; |
| | | import cc.mrbird.febs.mall.entity.MallTeamLeader; |
| | | import cc.mrbird.febs.mall.mapper.MallGoodsMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallLeaderStockMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallMemberMapper; |
| | | import cc.mrbird.febs.mall.mapper.MallTeamLeaderMapper; |
| | | import cc.mrbird.febs.mall.dto.ApiApplayLeaderDto; |
| | | import cc.mrbird.febs.mall.entity.*; |
| | | import cc.mrbird.febs.mall.mapper.*; |
| | | import cc.mrbird.febs.mall.service.IAdminMallTeamLeaderService; |
| | | import cc.mrbird.febs.mall.service.IMallElectronicFenceService; |
| | | import cc.mrbird.febs.mall.vo.AdminMallActSetVo; |
| | | import cc.mrbird.febs.mall.vo.AdminMallTeamLeaderVo; |
| | | import cc.mrbird.febs.mall.vo.AdminSelectListLeaderVo; |
| | | import cn.hutool.core.collection.CollUtil; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.google.common.collect.Lists; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.http.Consts; |
| | | import org.apache.http.NameValuePair; |
| | | import org.apache.http.client.entity.UrlEncodedFormEntity; |
| | | import org.apache.http.client.methods.HttpPost; |
| | | import org.apache.http.client.utils.HttpClientUtils; |
| | | import org.apache.http.entity.ContentType; |
| | | import org.apache.http.message.BasicNameValuePair; |
| | | import org.apache.poi.ss.formula.functions.T; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | import java.io.IOException; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | |
| | | @Slf4j |
| | | @Service |
| | |
| | | |
| | | private final MallLeaderStockMapper mallLeaderStockMapper; |
| | | private final MallGoodsMapper mallGoodsMapper; |
| | | private final MallMemberMapper mallMemberMapper; |
| | | 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) { |
| | | Page<AdminMallTeamLeaderVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | IPage<AdminMallTeamLeaderVo> adminMallActSetVos = this.baseMapper.selectLeaderListInPage(page, mallTeamLeader); |
| | | |
| | | List<AdminMallTeamLeaderVo> records = adminMallActSetVos.getRecords(); |
| | | if(CollUtil.isNotEmpty(adminMallActSetVos.getRecords())){ |
| | | for(AdminMallTeamLeaderVo adminMallTeamLeaderVo : records){ |
| | | BigDecimal totalProfit = mallMoneyFlowMapper.selectAmountByFlowtypeAndType(adminMallTeamLeaderVo.getMemberId(), |
| | | FlowTypeEnum.BALANCE.getValue(), MoneyFlowTypeEnum.LEADERACHIEVE.getValue(), |
| | | null,null,null).setScale(2,BigDecimal.ROUND_DOWN); |
| | | adminMallTeamLeaderVo.setTotalProfit(totalProfit); |
| | | } |
| | | } |
| | | |
| | | |
| | | return adminMallActSetVos; |
| | | } |
| | | |
| | |
| | | public AdminMallTeamLeaderVo getMallTeamLederInfoById(long id) { |
| | | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); |
| | | AdminMallTeamLeaderVo adminMallTeamLeaderVo = MallTeamLeaderConversion.INSTANCE.entityToVo(mallTeamLeader); |
| | | MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode()); |
| | | if(ObjectUtil.isNotEmpty(mallElectronicFence)){ |
| | | adminMallTeamLeaderVo.setLonglatiarr(mallElectronicFence.getLonglatiarr()); |
| | | } |
| | | return adminMallTeamLeaderVo; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse leaderUpdate(AdminLeaderUpdateDto adminLeaderUpdateDto) { |
| | | Long id = adminLeaderUpdateDto.getId(); |
| | | MallTeamLeader mallTeamLeader = this.baseMapper.selectById(id); |
| | | Integer state = mallTeamLeader.getState(); |
| | | if(MallTeamLeader.STATE_ING != state){ |
| | | return new FebsResponse().fail().message("只有【待审核】状态才能提交!"); |
| | | public FebsResponse leaderUpdate(MallTeamLeader mallTeamLeader) { |
| | | Long id = mallTeamLeader.getId(); |
| | | MallTeamLeader mallTeamLeaders = this.baseMapper.selectById(id); |
| | | if(1 == mallTeamLeaders.getOnlineState()){ |
| | | return new FebsResponse().fail().message("请先让团长离线"); |
| | | } |
| | | int isOk = adminLeaderUpdateDto.getIsOk(); |
| | | if(ObjectUtil.isEmpty(mallTeamLeaders)){ |
| | | return new FebsResponse().fail().message("团长信息不存在,刷新重试"); |
| | | } |
| | | // Integer state = mallTeamLeader.getState(); |
| | | // if(MallTeamLeader.STATE_ING != state){ |
| | | // 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); |
| | | mallTeamLeader.setProfitSwitch(2); |
| | | this.baseMapper.updateById(mallTeamLeader); |
| | | } |
| | | if(MallTeamLeader.STATE_NO == isOk){ |
| | | mallTeamLeader.setState(MallTeamLeader.STATE_NO); |
| | | mallTeamLeader.setProfitSwitch(2); |
| | | this.baseMapper.updateById(mallTeamLeader); |
| | | } |
| | | return new FebsResponse().success().message("审核成功"); |
| | |
| | | @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("团长信息不存在"); |
| | | } |
| | |
| | | IPage<MallLeaderStock> mallTeamLeaders = this.baseMapper.selectleaderGoodsStockListInPage(page, mallLeaderStock); |
| | | return mallTeamLeaders; |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse addLeader(AdminLeaderAddDto adminLeaderAddDto) { |
| | | |
| | | Long memberId = adminLeaderAddDto.getMemberId(); |
| | | MallMember mallMember = mallMemberMapper.selectById(memberId); |
| | | if(ObjectUtil.isEmpty(mallMember)){ |
| | | return new FebsResponse().fail().message("刷新页面重试"); |
| | | } |
| | | List<MallTeamLeader> mallTeamLeaders = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_ING); |
| | | if(CollUtil.isNotEmpty(mallTeamLeaders)){ |
| | | return new FebsResponse().fail().message("正在申请中"); |
| | | } |
| | | List<MallTeamLeader> mallTeamLeaderCancel = this.baseMapper.selectListByMemberIdAndState(memberId, MallTeamLeader.STATE_CANCEL); |
| | | 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("请输入合适的百分比小数"); |
| | | // } |
| | | 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); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse startProfit(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("目前还不是团长,无法操作"); |
| | | } |
| | | mallTeamLeader.setProfitSwitch(1); |
| | | this.baseMapper.updateById(mallTeamLeader); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse closeProfit(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("目前还不是团长,无法操作"); |
| | | } |
| | | mallTeamLeader.setProfitSwitch(2); |
| | | this.baseMapper.updateById(mallTeamLeader); |
| | | return new FebsResponse().success(); |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | |
| | | String ss = "{\"results\":[{\"name\":\"yiyuanshucai\",\"sid\":792477},{\"name\":\"yiyuanshucai1\",\"sid\":792477}]}"; |
| | | String serviceName = ""; |
| | | JSONObject jsonObject = JSONUtil.parseObj(ss); |
| | | String results = jsonObject.get("results").toString(); |
| | | JSONArray jsonArray = JSONUtil.parseArray(results); |
| | | System.out.print(jsonArray); |
| | | for(Object jsonArray1 : jsonArray){ |
| | | System.out.print(jsonArray1); |
| | | JSONObject jsonObject1 = JSONUtil.parseObj(jsonArray1); |
| | | String name = jsonObject1.get("name").toString(); |
| | | System.out.print(name); |
| | | if("yiyuanshucai".equals(name)){ |
| | | serviceName= name; |
| | | break; |
| | | } |
| | | } |
| | | // String name = jsonObjectStr.get("name").toString(); |
| | | // String sid = jsonObjectStr.get("sid").toString(); |
| | | // if("yiyuanshucai".equals(name)){ |
| | | // System.out.print(name); |
| | | // System.out.print(sid); |
| | | // } |
| | | } |
| | | @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("请先让团长离线"); |
| | | } |
| | | //如果电子围栏表为空, |
| | | //先查询服务是否已经创建, |
| | | //没有,再创建服务。 |
| | | List<MallElectronicFence> mallElectronicFences = mallElectronicFenceMapper.selectList(new QueryWrapper<>()); |
| | | String serviceId = ""; |
| | | if(CollUtil.isEmpty(mallElectronicFences)){ |
| | | String resultStr = iMallElectronicFenceService.trackServiceInfo(xcxProperties.getGaodeKey()); |
| | | if("fail".equals(resultStr)){ |
| | | return new FebsResponse().fail().message("高德地图查询服务失败"); |
| | | } |
| | | 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("高德地图创建服务失败"); |
| | | } |
| | | String uniqueCode = mallTeamLeader.getUniqueCode(); |
| | | MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(uniqueCode); |
| | | if(ObjectUtil.isEmpty(mallElectronicFence)){ |
| | | //新增 |
| | | //新增围栏 |
| | | String fenceId = iMallElectronicFenceService.fenceAdd(xcxProperties.getGaodeKey(), serviceId |
| | | , mallTeamLeader.getUniqueCode()+"_fence", adminLeaderAddFenceDto.getLonglatiarr()); |
| | | |
| | | if("fail".equals(fenceId)){ |
| | | return new FebsResponse().fail().message("高德地图创建多边形围栏失败"); |
| | | } |
| | | MallElectronicFence mallElectronicFenceAdd = new MallElectronicFence(); |
| | | mallElectronicFenceAdd.setFenceName(mallTeamLeader.getUniqueCode()+"_fence"); |
| | | mallElectronicFenceAdd.setFenceType(4); |
| | | mallElectronicFenceAdd.setGid(fenceId); |
| | | mallElectronicFenceAdd.setProhibit(1); |
| | | mallElectronicFenceAdd.setDelFlag(1); |
| | | mallElectronicFenceAdd.setGKey(xcxProperties.getGaodeKey()); |
| | | mallElectronicFenceAdd.setLonglatiarr(adminLeaderAddFenceDto.getLonglatiarr()); |
| | | mallElectronicFenceAdd.setTeamLeaderCode(uniqueCode); |
| | | mallElectronicFenceAdd.setServiceId(serviceId); |
| | | mallElectronicFenceMapper.insert(mallElectronicFenceAdd); |
| | | }else{ |
| | | //删除电子围栏 |
| | | if(StrUtil.isEmpty(adminLeaderAddFenceDto.getLonglatiarr())){ |
| | | iMallElectronicFenceService.fenceDelete(xcxProperties.getGaodeKey(),serviceId,mallElectronicFence.getGid()); |
| | | }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); |
| | | } |
| | | } |
| | | 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(); |
| | | } |
| | | |
| | | } |