package com.ibeetl.admin.console.api; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.IdUtil; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; import com.ibeetl.admin.console.model.*; import com.ibeetl.admin.console.service.*; import com.ibeetl.admin.console.util.DateUtil; import com.ibeetl.admin.core.entity.*; import com.ibeetl.admin.core.service.CorePlatformService; import com.ibeetl.admin.core.web.JsonResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.util.*; /** * 售后服务类 */ @RestController @Api(value = "合伙人接口") public class CityPartnerApi { private static final String MODEL = "/admin/front/cityPartner"; private final Logger log = LoggerFactory.getLogger(this.getClass()); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); @Autowired XzxCityPartnerService service; @Autowired XzxPartnerFenceService pfService; @Autowired CorePlatformService platformService; @Autowired XzxPartnerBankService bankService; @Autowired XzxPayRequestInfoService payRequestInfoService; @Autowired CuserConsoleService userService; Snowflake snowflake = IdUtil.getSnowflake(0, 3); @PostMapping(MODEL + "/getCityPartnerName.json") @ResponseBody @ApiOperation(value="生成合伙人账号", notes="test: 仅0有正确返回") public JsonResult getCityPartnerName(){ String id="ZH"+snowflake.nextIdStr(); return JsonResult.success(id); } private String checkSamePartnerName(XzxCityPartnerModel model,List areaModelList,String mobile){ String key = model.getPartnerKeys(); if(model.getPartnerType().equals("1")){ if(null==key&&"".equals(model.getPartnerKeys())){ return " 添加失败,合伙人key不能为空!"; } } if(model.getPartnerType().equals("1")) { if(null==areaModelList&&areaModelList.size()==0){ return " 添加失败,合伙人地区不能为空!"; } } //判断是否有该合伙人手机号 if(null!=mobile&&!"".equals(mobile)){ List list = service.queryPartnerByMobile(model); if(null!=list&&list.size()>0){ return " 添加失败,手机号码、合伙人或打包站名称不能重复!"; } } return null; } @PostMapping(MODEL + "/addCityPartner.json") @ResponseBody @ApiOperation(value="添加合伙人", notes="test: 仅0有正确返回") public JsonResult addCityPartner(@RequestBody XzxCityPartnerModel model){ //判断是否有分配key List partnerIds1 = service.queryPartnerByCurrent(); if(null!=partnerIds1&&partnerIds1.size()>0){ if(model.getPartnerType().equals("1")){ return JsonResult.failMessage("不允许新建下级合伙人!"); } } //不能添加重复区域的合伙人 if(model.getPartnerType().equals("1")){ int num = service.queryPartnerGaode(model.getAreaList()); if(num>0){ return JsonResult.failMessage("该区域已经存在合伙人!"); } } List areaModelList = model.getAreaList(); String mobile = model.getMobilePhone(); String res = checkSamePartnerName(model,areaModelList,mobile); if(null!=res){ return JsonResult.failMessage(res); } model.setDelFlag(0); model.setCreateTime(sdf.format(new Date())); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxCityPartner info = objectMapper.convertValue(model, XzxCityPartner.class); info.setDelFlag(0); Snowflake snowflake1 = IdUtil.getSnowflake(1, 3); String userId = "USER"+snowflake1.nextIdStr(); info.setUserId(userId); if(model.getPartnerType().equals("1")){ if(null==info.getOrgId()){ info.setOrgId(Long.parseLong("9")); } info.setState("S1"); }else{ if(null==info.getOrgId()){ info.setOrgId(Long.parseLong("16")); } info.setState("S1"); //判断是否合伙人登陆 List partnerIds = service.queryPartnerByCurrent(); if(null!=partnerIds&&partnerIds.size()>0){ info.setPackingStation(partnerIds.get(0)); }else{ //根据区域查询合伙人Id String townName = model.getTownName(); String townIdPackage = service.queryAreaTownList(townName); String packingStation = service.queryGaodeByTownId(townIdPackage); info.setPackingStation(packingStation); } } if(service.save(info)){ //创建服务 if(model.getPartnerType().equals("1")){ String result = service.createServiceByKey(info); String partnerId = service.queryCityPartnerByPhone(mobile); insertGaodeTown(areaModelList,partnerId,model.getPartnerKeys()); info.setId(Long.parseLong(partnerId)); insertUserOther(info,userId); pfService.addAccountInfo(info.getMobilePhone(),userId,model.getAccountNo(),info.getId(),model.getRoleId(),info.getOrgId()); }else{ areaModelList = new ArrayList<>(); String cityPackage = model.getCityName(); String cityIdPackage = service.queryAreaCityList(cityPackage); AreaModel areaModel = new AreaModel(); areaModel.setCityId(Long.parseLong(cityIdPackage)); areaModel.setCityName(cityPackage); areaModel.setProvinceName(model.getProvinceName()); areaModel.setTownName(model.getTownName()); areaModelList.add(areaModel); insertGaodeTown(areaModelList,info.getId()+"",info.getId()+""); insertUserOtherPackage(info,userId,cityPackage,cityIdPackage); pfService.addAccountByPackage(info.getMobilePhone(),userId,model.getAccountNo(),info.getId(),model.getRoleId()); } return JsonResult.success("添加成功!"); }else{ return JsonResult.failMessage("添加合伙人失败!"); } } private void insertGaodeTown(List areaModelList,String partnerId,String key){ List townCodeList = new ArrayList<>(); for (AreaModel area:areaModelList) { String city = area.getCityName(); String cityId = service.queryAreaCityList(city); String cityPackage = area.getCityName(); String cityIdPackage = service.queryAreaCityList(cityPackage); String provinceName = area.getProvinceName(); String townName = area.getTownName(); String townIdPackage = service.queryAreaTownList(townName); PartnerGaodeModel gaodeModel = new PartnerGaodeModel(); gaodeModel.setCityId(cityIdPackage); if(null!=townName&&!"".equals(townName)){ gaodeModel.setAddressArea(provinceName+","+cityPackage+","+townName); }else{ gaodeModel.setAddressArea(provinceName+","+cityPackage); } gaodeModel.setTownId(townIdPackage); gaodeModel.setCityId(cityId); gaodeModel.setCreateTime(sdf.format(new Date())); gaodeModel.setPartnerId(partnerId); gaodeModel.setPartnerKey(key); gaodeModel.setDelFlag("0"); townCodeList.add(gaodeModel); } service.insertGaodeInfo(townCodeList); } private void insertUserOtherPackage(XzxCityPartner info,String userId,String city,String cityId){ UserModel otherInfo = new UserModel(); otherInfo.setName(info.getPartnerName()); otherInfo.setDelFlag("0"); otherInfo.setMobilePhone(info.getMobilePhone()); otherInfo.setLoginAccount(userId); otherInfo.setRoleIds("6"); otherInfo.setUserType("7"); otherInfo.setCityId(cityId); otherInfo.setUserId(userId); String salt = DateUtil.getRandomNickname(16); otherInfo.setSalt(salt); String pass = DateUtil.encrypt(salt,"888888"); otherInfo.setPassword(pass); otherInfo.setRegistTime(sdf.format(new Date())); otherInfo.setIsProhibit("0"); /* if(null!=info.getPackingStation()&&!"".equals(info.getPackingStation())){ otherInfo.setPartnerId(info.getPackingStation()); }else{*/ otherInfo.setPartnerId(info.getId()+""); //} otherInfo.setAvatar("https://res.cnxzx.com/resource/static/img/icon-loadlogo.png"); userService.insertUserOtherInfo(otherInfo); } private void insertUserOther(XzxCityPartner info,String userId){ UserModel otherInfo = new UserModel(); otherInfo.setName(info.getPartnerName()); otherInfo.setDelFlag("0"); otherInfo.setMobilePhone(info.getMobilePhone()); otherInfo.setLoginAccount(userId); otherInfo.setRoleIds("3"); otherInfo.setUserType("5"); otherInfo.setUserId(userId); String salt = DateUtil.getRandomNickname(16); otherInfo.setSalt(salt); String pass = DateUtil.encrypt(salt,info.getPassword()); otherInfo.setPassword(pass); otherInfo.setRegistTime(sdf.format(new Date())); otherInfo.setIsProhibit("0"); otherInfo.setPartnerId(info.getId()+""); userService.insertUserOtherInfo(otherInfo); } @PostMapping(MODEL + "/queryCityPartnerForOtherUser.json") @ResponseBody @ApiOperation(value="查询合伙人所有回收员和推广员接口", notes="test: 仅0有正确返回") public JsonResult> queryCityPartnerForOtherUser(){ Map map = service.queryCityPartnerForOtherUser(); return JsonResult.success(map); } @PostMapping(MODEL + "/queryCityPartner.do") @ResponseBody @ApiOperation(value="查询合伙人列表(打包站列表 参数看partnerType)", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "姓名、手机号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "prohibit", value = "是否禁用(1:禁用,0:启用)", required = true, dataType = "Integer"), @ApiImplicitParam(paramType="query", name = "partnerType", value = "合伙类型(1:合伙人。2:打包站)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "packingStation", value = "打包站名称", required = true, dataType = "String") }) public JsonResult> queryCityPartner(@RequestBody XzxCityPartnerModel model){ Map map = service.queryCityPartner(model); return JsonResult.success(map); } @PostMapping(MODEL + "/queryPartnerAccount.json") @ResponseBody @ApiOperation(value="查询合伙人账户余额", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "id", value = "合伙人ID(如果不传,需要合伙人登陆)", required = true, dataType = "String"), }) public JsonResult> queryPartnerAccount(@RequestBody XzxCityPartnerModel model){ Map map = new HashMap<>(); if(null!=model){ if(null!=model.getId()&&!"".equals(model.getId())){ map=service.queryPartnerAccount(model.getId()); }else{ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ return JsonResult.success(map); }else{ CoreUser user1 = service.queryPartnerAdmin(user.getId()); if(user1!=null){ return JsonResult.success(map); } } XzxCityPartner partner = service.queryById(user.getId()); if(null!=partner){ map=service.queryPartnerAccount(partner.getUserId()); }else{ return JsonResult.success(map); } } }else{ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ return JsonResult.success(map); }else{ user = service.queryPartnerAdmin(user.getId()); if(user!=null){ return JsonResult.success(map); } } map=service.queryPartnerAccount(user.getId().toString()); } return JsonResult.success(map); } @PostMapping(MODEL + "/updateCityPartner.json") @ResponseBody @ApiOperation(value="修改合伙人", notes="test: 仅0有正确返回") public JsonResult updateCityPartner(@RequestBody XzxCityPartnerModel model){ //判断是否有分配key String key = model.getPartnerKeys(); if(model.getPartnerType().equals("1")){ if(null==key&&"".equals(model.getPartnerKeys())){ return JsonResult.failMessage(" 修改失败,合伙人key不能为空!"); } } List areaModelList = model.getAreaList(); if(model.getPartnerType().equals("1")) { if(null==areaModelList&&areaModelList.size()==0){ return JsonResult.failMessage(" 添加失败,合伙人地区不能为空!"); } } model.setDelFlag(0); model.setCreateTime(sdf.format(new Date())); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxCityPartner info = objectMapper.convertValue(model, XzxCityPartner.class); info.setPartnerKey(key); if(model.getPartnerType().equals("1")){ if(null==info.getOrgId()){ info.setOrgId(Long.parseLong("9")); } info.setState("S1"); }else{ if(null==info.getOrgId()){ info.setOrgId(Long.parseLong("16")); } info.setState("S1"); } if(service.update(info)){ //删除合伙人原有区域 service.deletePartnerTownCode(info.getId()+""); if(info.getPartnerType().equals("1")){ String result = service.createServiceByKey(info); } insertGaodeTown(areaModelList,info.getId()+"",model.getPartnerKeys()); return JsonResult.success("修改成功!"); }else{ return JsonResult.failMessage("修改合伙人失败!"); } } @PostMapping(MODEL + "/queryAllPartnerList.do") @ResponseBody @ApiOperation(value="查询合伙人和打包站列表", notes="test: 仅0有正确返回") public JsonResult> queryAllPartnerList(){ CoreUser user = platformService.getCurrentUser(); List cityPartners = new ArrayList<>(); if(user.getId()==1){ cityPartners = service.queryAllCityPartnerList(null); }else{ CoreUser user1 = service.queryPartnerAdmin(user.getId()); if(user1!=null){ cityPartners = service.queryAllCityPartnerList(null); }else{ cityPartners = service.queryAllCityPartnerList(user.getId()+""); /*XzxCityPartner partner = service.queryById(user.getId()); cityPartners.add(partner);*/ } } return JsonResult.success(cityPartners); } @PostMapping(MODEL + "/queryDetailsPresentation.do") @ResponseBody @ApiOperation(value="查询合伙人提现审核列表", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "每页条数", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "name", value = "姓名、手机号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "payType", value = "费用类型(1:充值,2:环保金支出,3环保金收入,4提现5现金收入 6现金支出 10分享返利 11阶梯返利 12红包)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "payStatus", value = "状态(1为待支付,2为已支付,3为已审核,4为已提现)", required = true, dataType = "Integer") }) public JsonResult> queryDetailsPresentation(@RequestBody PartnerPayMsgModel model){ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ //return JsonResult.success(new HashMap<>()); }else{ CoreUser user1 = service.queryPartnerAdmin(user.getId()); if(user1!=null){ }else{ XzxCityPartner partner = service.queryById(user.getId()); if(null!=partner){ model.setUserId(partner.getUserId()); } } } Map map = service.queryDetailsPresentation(model); return JsonResult.success(map); } @PostMapping(MODEL + "/queryAreaLongiLati.json") @ResponseBody @ApiOperation(value="根据地区名称查询经纬度", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="name", value = "地区名称", required = true, dataType = "String") }) public JsonResult queryAreaLongiLati(@RequestBody AreaModel model){ AreaModel map = service.queryAreaLongiLati(model); return JsonResult.success(map); } @PostMapping(MODEL + "/addPayInfoImg.json") @ResponseBody @ApiOperation(value="添加合伙人充值汇款凭证接口", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="payImg", value = "凭证图片路径", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "money", value = "汇款金额", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "payType", value = "汇款用途(1)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "payTime", value = "充值时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "rechargeName", value = "汇款人姓名", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "rechargePhone", value = "汇款人手机号码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "company", value = "收款单位", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "companyAccount", value = "收款账号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "bankName", value = "收款单位开户行", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "partnerType", value = "角色类型(1:合伙人。2:打包站)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "status", value = "0:保存,5:上传审核", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "partnerId", value = "合伙人,打包站Id", required = true, dataType = "String") }) public JsonResult addPayInfoImg(@RequestBody PayInfoModel model){ CoreUser user = platformService.getCurrentUser(); String result = service.addPayInfoImg(model); if(result.equals("0")){ return JsonResult.failMessage("添加汇款记录失败!"); }else{ return JsonResult.success(result); } } @PostMapping(MODEL + "/updatePayInfoPass.json") @ResponseBody @ApiOperation(value="后台合伙人充值审核接口", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="payOrderId", value = "充值Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "createUserId", value = "充值用户Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "status", value = "支付状态(1为待支付,2为已支付,3为已审核,4为已提现,5待审核,6为审核不通过)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "unpassReason", value = "审核不通过原因", required = true, dataType = "String") }) public JsonResult updatePayInfoPass(@RequestBody PayInfoModel model){ String result = service.updatePayInfoPass(model); return JsonResult.success(result); } private String checkPackageProhibit(XzxCityPartnerModel model){ //判断是否合伙人身份 CoreUser user = platformService.getCurrentUser(); XzxCityPartner partner = service.queryById(user.getId()); if(null!=partner){ //查询打包站账户余额是否为0 String hbb = service.queryAccountByPartnerId(partner.getUserId()); BigDecimal m = new BigDecimal(hbb); if(m.compareTo(BigDecimal.ZERO)==1){ return "打包站账户余额不为零,无法关闭打包站!"; } } return null; } @PostMapping(MODEL + "/updatePartnerProhibit.json") @ResponseBody @ApiOperation(value="后台合伙人是否启用接口", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="id", value = "合伙人Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "prohibit", value = "是否启用", required = true, dataType = "String") }) public JsonResult updatePartnerProhibit(@RequestBody XzxCityPartnerModel model){ XzxCityPartner info=service.queryById(model.getId()); String msg = checkPackageProhibit(model); if(null!=msg){ return JsonResult.failMessage(msg); } info.setProhibit(model.getProhibit()); info.setUpdateTime(sdf.format(new Date())); service.update(info); userService.updateOtherUserById(info.getId()+""); return JsonResult.success("修改成功"); } @PostMapping(MODEL + "/queryPartnerFenceList.do") @ResponseBody @ApiOperation(value="新增合伙人-查询所有未绑定的电子围栏", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="id", value = "合伙人Id", required = true, dataType = "String") }) public JsonResult> queryPartnerFenceList(@RequestBody XzxCityPartnerModel model){ List list = service.queryPartnerFenceList(model); return JsonResult.success(list); } @PostMapping(MODEL + "/queryPartnerFenceListByUser.do") @ResponseBody @ApiOperation(value="回收员绑定的电子围栏", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="id", value = "合伙人Id", required = true, dataType = "String") }) public JsonResult> queryPartnerFenceListByUser(@RequestBody XzxCityPartnerModel model){ List list = service.queryPartnerFenceListByUser(model); return JsonResult.success(list); } @PostMapping(MODEL + "/deleteBankCard.json") @ResponseBody @ApiOperation(value="删除合伙人银行账户信息", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="id", value = "银行卡Id主键", required = true, dataType = "int") }) public JsonResult deleteBankCard(@RequestBody XzxPartnerBankModel model){ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ return JsonResult.failMessage("超管不能删除合伙人银行账户信息!"); } ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxPartnerBank bank = objectMapper.convertValue(model, XzxPartnerBank.class); bank = bankService.queryById(bank.getId()); bank.setDelFlag("1"); bank.setUpdateTime(sdf.format(new Date())); if(!bankService.update(bank)){ return JsonResult.failMessage("删除失败"); }else{ return JsonResult.success("删除成功"); } } @PostMapping(MODEL + "/updateBankCard.json") @ResponseBody @ApiOperation(value="修改合伙人银行账户信息", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="id", value = "银行卡Id主键", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name ="bankNo", value = "银行账号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "bankName", value = "银行名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "openName", value = "开户人名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "idCard", value = "证件号码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "mobilePhone", value = "预留手机号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "partnerId", value = "合伙人Id", required = true, dataType = "String") }) public JsonResult updateBankCard(@RequestBody XzxPartnerBankModel model){ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ return JsonResult.failMessage("超管不能修改合伙人银行账户信息!"); } ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxPartnerBank bank = objectMapper.convertValue(model, XzxPartnerBank.class); bank.setDelFlag("0"); bank.setUpdateTime(sdf.format(new Date())); //CoreUser user = platformService.getCurrentUser(); bank.setPartnerId(user.getId()+""); //银行账号相同,直接返回失败 String oldBankNo =bankService.queryByBankNo(bank.getBankNo(),model.getId()+""); if(null!=oldBankNo&&!"".equals(oldBankNo)){ return JsonResult.failMessage("银行账号不能相同!"); }else{ if(!bankService.update(bank)){ return JsonResult.failMessage("修改失败"); }else{ return JsonResult.success("修改成功"); } } } @PostMapping(MODEL + "/addBankCard.json") @ResponseBody @ApiOperation(value="添加合伙人银行账户信息", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="bankNo", value = "银行账号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "bankName", value = "银行名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "openName", value = "开户人名称", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "idCard", value = "证件号码", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "mobilePhone", value = "预留手机号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "partnerId", value = "合伙人Id", required = true, dataType = "String") }) public JsonResult addBankCard(@RequestBody XzxPartnerBankModel model){ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ return JsonResult.failMessage("超管不能添加合伙人银行账户信息!"); } ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxPartnerBank bank = objectMapper.convertValue(model, XzxPartnerBank.class); bank.setDelFlag("0"); bank.setCreateTime(sdf.format(new Date())); //CoreUser user = platformService.getCurrentUser(); bank.setPartnerId(user.getId()+""); //银行账号相同,直接返回失败 String oldBankNo =bankService.queryByBankNo(bank.getBankNo(),null); if(null!=oldBankNo&&!"".equals(oldBankNo)){ return JsonResult.failMessage("银行账号不能相同!"); }else{ if(!bankService.save(bank)){ return JsonResult.failMessage("保存失败"); }else{ return JsonResult.success("保存成功"); } } } @PostMapping(MODEL + "/addPayRequestInfo.json") @ResponseBody @ApiOperation(value="添加合伙人提现申请", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="money", value = "提现金额", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name ="bankAccountId", value = "银行账号Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name ="accountMoney", value = "账户余额", required = true, dataType = "String") }) public JsonResult addPayRequestInfo(@RequestBody PayRequestInfoModel model){ CoreUser user = platformService.getCurrentUser(); if(user.getId()==1){ return JsonResult.failMessage("超管不能添加合伙人提现申请!"); } BigDecimal decimal = new BigDecimal("0"); decimal = new BigDecimal(model.getMoney()).subtract(new BigDecimal(model.getAccountMoney())); if(decimal.compareTo(BigDecimal.ZERO)==1){ return JsonResult.failMessage("账号余额不能小于提现金额"); }else{ //单笔限额小于1万元 BigDecimal flagAmount = new BigDecimal(model.getMoney()).subtract(new BigDecimal("10000")); if(flagAmount.compareTo(BigDecimal.ZERO)==1){ return JsonResult.failMessage("单笔提现额度必须小于1万元"); } //CoreUser user = platformService.getCurrentUser(); XzxCityPartner partner = service.queryById(user.getId()); ObjectMapper objectMapper = new ObjectMapper(); objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); XzxPayRequestInfo info = objectMapper.convertValue(model, XzxPayRequestInfo.class); //UserAccountModel accountModel=service.queryPartnerAccountByUserId(partner.getUserId()); info.setAccountId(model.getBankAccountId()); info.setAccountBindId(Long.parseLong(model.getBankAccountId())); info.setCreateTime(sdf.format(new Date())); info.setCreateUserId(partner.getUserId()); info.setPayType("4"); info.setStatus("1"); info.setPayFlag(1); Snowflake snowflake = IdUtil.getSnowflake(0, 3); String payOrderId = "ZF"+snowflake.nextIdStr(); info.setPayOrderId(payOrderId); if(payRequestInfoService.insertPayRequestInfo(info)>0){ return JsonResult.success("保存成功"); }else{ return JsonResult.failMessage("保存失败"); } } } @PostMapping(MODEL + "/queryBankCard.json") @ResponseBody @ApiOperation(value="查询银行账户信息", notes="test: 仅0有正确返回") public JsonResult> queryBankCard(@RequestBody XzxPartnerBankModel model){ List list = bankService.queryByBankList(); return JsonResult.success(list); } @PostMapping(MODEL + "/queryBankCardById.json") @ResponseBody @ApiOperation(value="查询审批信息", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="payOrderId", value = "提现申请id", required = true, dataType = "String") }) public JsonResult queryBankCardById(@RequestBody XzxPartnerBankModel model){ XzxPartnerBankModel obj = bankService.queryBankCardById(model); return JsonResult.success(obj); } @PostMapping(MODEL + "/queryGaodeByUserId.json") @ResponseBody @ApiOperation(value="查询轨迹接口", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="userId", value = "用户Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name ="orderId", value = "订单Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name ="dayTime", value = "日期", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name ="dateTime", value = "时间段", required = true, dataType = "String") }) public JsonResult>> queryGaodeByUserId(@RequestBody XzxCityPartnerModel model){ List> list = service.queryGaodeByUserId(model); return JsonResult.success(list); } @PostMapping(MODEL + "/queryOrderByHsy.json") @ResponseBody @ApiOperation(value="查询回收员所有订单", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="userId", value = "用户Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name ="dayTime", value = "日期", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String") }) public JsonResult>> queryOrderByHsy(@RequestBody XzxCityPartnerModel model){ List> list = service.queryOrderByHsy(model); return JsonResult.success(list); } @PostMapping(MODEL + "/queryPartnerAccountLog.json") @ResponseBody @ApiOperation(value="后台账户资金流转接口", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="approverStatus", value = "审核状态(1为待审核,2为已审核,3为审核不通过)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "数量", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "type", value = "类型", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String") }) public JsonResult> queryPartnerAccountLog(@RequestBody PartnerAccountLogModel model){ Map map = service.queryPartnerAccountLog(model); return JsonResult.success(map); } @PostMapping(MODEL + "/queryUserAccountLog.json") @ResponseBody @ApiOperation(value="账户管理优化", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="szType", value = "收支类型(空为全部,1:收2:支出)", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "数量", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "channelType", value = "操作渠道1:充值 2:提现 3:回收 4入库 5红包 6分享返利 7重量达标返利8额度申请 9 额度恢复 10 推广返利 11垫付合伙人", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "startTime", value = "开始时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "endTime", value = "结束时间", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "userName", value = "姓名手机号", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "roleType", value = "角色类型", required = true, dataType = "int") }) public JsonResult> queryUserAccountLog(@RequestBody AccountLogModel model){ Map map = service.queryUserAccountLog(model); return JsonResult.success(map); } @PostMapping(MODEL + "/queryPartnerCityById.json") @ResponseBody @ApiOperation(value="账户管理优化(查询回收人所属城市)", notes="test: 仅0有正确返回") public JsonResult> queryPartnerCityById(){ CoreUser currentUser = platformService.getCurrentUser(); XzxCityPartner partner = service.queryById(currentUser.getId()); List> list = service.queryPartnerCityById(partner); Map map = new HashMap<>(); map.put("data",list); map.put("code",0); return JsonResult.success(map); } @PostMapping(MODEL + "/queryAreaObj.json") @ResponseBody @ApiOperation(value="账户管理优化(查询回收人所属城市)", notes="test: 仅0有正确返回") public JsonResult> queryAreaObj(){ CoreUser currentUser = platformService.getCurrentUser(); XzxCityPartner partner = service.queryById(currentUser.getId()); List> list = service.queryAreaObj(partner); Map map = new HashMap<>(); map.put("data",list); map.put("code",0); return JsonResult.success(map); } @PostMapping(MODEL + "/queryPartnerName.json") @ResponseBody @ApiOperation(value="查询合伙人姓名", notes="test: 仅0有正确返回") public JsonResult> queryPartnerName(){ List partnerIds = service.queryPartnerByCurrent(); List list = service.queryPartnerName(partnerIds); Map map = new HashMap<>(); map.put("data",list); map.put("code",0); return JsonResult.success(map); } @PostMapping(MODEL + "/queryAccountMoney.json") @ResponseBody @ApiOperation(value="账户余额", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name = "page", value = "页码", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "limit", value = "数量", required = true, dataType = "int"), @ApiImplicitParam(paramType="query", name = "isProhibit", value = "冻结状态", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "roleType", value = "角色Type", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "partnerId", value = "合伙人ID", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "userName", value = "姓名手机号", required = true, dataType = "String") }) public JsonResult> queryAccountMoney(@RequestBody AccountMoneyModel model){ List partnerIds = service.queryPartnerByCurrent(); if(null!=model.getPartnerId()&&!"".equals(model.getPartnerId())){ if(null==partnerIds){ partnerIds= new ArrayList<>(); } partnerIds.add(model.getPartnerId()); } List userIds = new ArrayList<>(); List allUserIds = new ArrayList<>(); if(null!=partnerIds&&!"".equals(partnerIds)){ //查询合伙人所有打包站的Id if(null!=model.getRoleType()&&!"".equals(model.getRoleType())){ if(model.getRoleType().equals("1")){ List townIds = service.queryTownIdsByPartnerId(partnerIds.get(0)); model.setTownIds(townIds); userIds = service.queryUserNormal(model); }else{ List packageStationList = service.queryPackageIdList(partnerIds.get(0)); userIds = service.queryOtherUserByPid(partnerIds.get(0),model,packageStationList); } }else{ List packageStationList = service.queryPackageIdList(partnerIds.get(0)); userIds = service.queryOtherUserByPid(partnerIds.get(0),model,packageStationList); //查询合伙人区域列表 List townIds = service.queryTownIdsByPartnerId(partnerIds.get(0)); model.setTownIds(townIds); List nomalUserIds = service.queryUserNormal(model); userIds.addAll(nomalUserIds); } }else{ if(null!=model.getRoleType()&&!"".equals(model.getRoleType())){ if(model.getRoleType().equals("1")){ userIds = service.queryUserNormal(model); }else{ userIds = service.queryOtherUserByPid(null,model,null); } }else{ if(null!=model.getUserName()&&!"".equals(model.getUserName())){ userIds = service.queryUserNormal(model); } } } List uid = new ArrayList<>(); if(null!=userIds&&userIds.size()>0){ for (UserModel mm:userIds) { uid.add(mm.getUserId()); } }else{ if(model.getRoleType().equals("8")){ uid.add("0"); }else{ uid = null; } } model.setUserIds(uid); List list = service.queryAccountByUserIds(model); Map map = new HashMap<>(); map.put("data",list); map.put("count",service.queryAccountByUserIdsCount(model)); map.put("code",0); return JsonResult.success(map); } @PostMapping(MODEL + "/updateAccountLimit.json") @ResponseBody @ApiOperation(value="调整额度", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="accountId", value = "账户Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "fixedLimit", value = "固定额度", required = true, dataType = "int") }) public JsonResult updateAccountLimit(@RequestBody AccountMoneyModel model){ int num = service.updateAccountLimit(model); if(num>0){ return JsonResult.success("修改成功!"); }else if(num==-1) { return JsonResult.failMessage("可用额度不足,调额失败!"); }else{ return JsonResult.failMessage("额度必须由合伙人修改,所以修改失败!"); } } @PostMapping(MODEL + "/queryPackageByPartner.json") @ResponseBody @ApiOperation(value="查询打包站", notes="test: 仅0有正确返回") public JsonResult> queryPackageByPartner(){ List partnerIds = service.queryPartnerByCurrent(); List list = service.queryPackageByPartner(partnerIds); Map map = new HashMap<>(); map.put("data",list); map.put("code",0); return JsonResult.success(map); } @PostMapping(MODEL + "/updateAccountType.json") @ResponseBody @ApiOperation(value="修改账户冻结状态", notes="test: 仅0有正确返回") @ApiImplicitParams({ @ApiImplicitParam(paramType="query", name ="accountId", value = "账户Id", required = true, dataType = "String"), @ApiImplicitParam(paramType="query", name = "isProhibit", value = "冻结状态 0:未冻结,1:冻结", required = true, dataType = "int") }) public JsonResult updateAccountType(@RequestBody AccountMoneyModel model){ int num = service.updateAccountType(model); if(num>0){ return JsonResult.success("修改成功"); }else{ return JsonResult.success("修改失败"); } } }