package com.ibeetl.admin.console.service;
|
|
|
import cn.hutool.core.lang.Snowflake;
|
import cn.hutool.core.util.IdUtil;
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.ibeetl.admin.console.dao.FundManagementApiDao;
|
import com.ibeetl.admin.console.dao.PayConsoleDao;
|
import com.ibeetl.admin.console.dao.XzxCityPartnerDao;
|
import com.ibeetl.admin.console.dao.XzxSysAddressLevelInfoDao;
|
import com.ibeetl.admin.console.model.*;
|
import com.ibeetl.admin.console.util.DateUtil;
|
import com.ibeetl.admin.console.util.DoubleUtil;
|
import com.ibeetl.admin.console.util.HttpClientUtils;
|
import com.ibeetl.admin.core.entity.CoreUser;
|
import com.ibeetl.admin.core.entity.XzxAccountInfo;
|
import com.ibeetl.admin.core.entity.XzxCityPartner;
|
import com.ibeetl.admin.core.entity.XzxElectronicFence;
|
import com.ibeetl.admin.core.service.CoreBaseService;
|
import com.ibeetl.admin.core.service.CorePlatformService;
|
import com.ibeetl.admin.core.util.PlatformException;
|
import com.ibeetl.admin.core.web.JsonResult;
|
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.entity.ContentType;
|
import org.apache.poi.sl.usermodel.Placeholder;
|
import org.beetl.sql.core.engine.PageQuery;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import java.io.UnsupportedEncodingException;
|
import java.math.BigDecimal;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
|
/**
|
* XzxCityPartner Service
|
*/
|
|
@Service
|
@Transactional
|
public class XzxCityPartnerService extends CoreBaseService<XzxCityPartner> {
|
|
@Autowired
|
private XzxCityPartnerDao xzxCityPartnerDao;
|
@Autowired
|
private FundManagementApiDao fundManagementApiDao;
|
@Autowired
|
PayConsoleDao payConsoleDao;
|
@Autowired
|
private XzxSysAddressLevelInfoDao xzxSysAddressLevelInfoDao;
|
@Autowired
|
private XzxUserShareInfoService shareInfoService;
|
@Autowired
|
CuserConsoleService cuserConsoleService;
|
@Autowired
|
XzxCityPartnerService cityPartnerService;
|
@Autowired
|
PayConsoleService payLogService;
|
@Autowired
|
CorePlatformService platformService;
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
final org.apache.commons.codec.binary.Base64 base64 = new Base64();
|
|
public PageQuery<XzxCityPartner> queryByCondition(PageQuery query) {
|
PageQuery ret = xzxCityPartnerDao.queryByCondition(query);
|
queryListAfter(ret.getList());
|
return ret;
|
}
|
|
public int queryElectronicFenceByPartner(String partnerId) {
|
return xzxCityPartnerDao.queryElectronicFenceByPartner(partnerId);
|
}
|
|
public XzxCityPartner queryEntityByUserIds(String userId) {
|
return xzxCityPartnerDao.queryEntityByUserIds(userId);
|
}
|
|
public void batchDelXzxCityPartner(List<Long> ids) {
|
try {
|
xzxCityPartnerDao.batchDelXzxCityPartnerByIds(ids);
|
} catch (Exception e) {
|
throw new PlatformException("批量删除XzxCityPartner失败", e);
|
}
|
}
|
|
public void insertGaodeInfo(List<PartnerGaodeModel> gaodeModels) {
|
xzxCityPartnerDao.insertGaodeInfo(gaodeModels);
|
}
|
|
public void deletePartnerTownCode(String partnerId) {
|
xzxCityPartnerDao.deletePartnerTownCode(partnerId);
|
}
|
|
public AreaModel queryAreaLongiLati(AreaModel model) {
|
return xzxCityPartnerDao.queryAreaLongiLati(model);
|
}
|
|
public List<String> queryAreaLongiLatiList(String city) {
|
return xzxCityPartnerDao.queryAreaLongiLatiList(city);
|
}
|
|
public void deletePartnerAccount(XzxCityPartner partner) {
|
PartnerAccountModel model = new PartnerAccountModel();
|
model.setDelFlag(1);
|
model.setUserId(partner.getUserId());
|
xzxCityPartnerDao.deletePartnerAccount(model);
|
xzxCityPartnerDao.deleteAccountByUserId(model);
|
}
|
|
public String deleteServiceByKey(XzxCityPartner partner) {
|
String key = partner.getPartnerKey();
|
String url = "https://tsapi.amap.com/v1/track/service/delete";
|
List<String> sidList = xzxCityPartnerDao.querySidListByPartnerId(partner.getId() + "");
|
/*List<String> sidList= new ArrayList<>();
|
sidList.add("117858");
|
sidList.add("117878");*/
|
for (String sid : sidList) {
|
Map<String, String> map = new HashMap<>();
|
map.put("key", key);
|
map.put("sid", sid);
|
String result1 = HttpClientUtils.doPost(url, map);
|
System.out.println("删除服务返回:" + result1);
|
}
|
int num = xzxCityPartnerDao.deleteGaodeService(partner.getId() + "");
|
return num + "";
|
}
|
|
public String createServiceByKey(XzxCityPartner partner) {
|
String name1 = "回收员轨迹_" + partner.getId();
|
String name2 = "推广员轨迹_" + partner.getId();
|
String url = "https://tsapi.amap.com/v1/track/service/add";
|
|
String key = partner.getPartnerKey();
|
Map<String, String> map1 = new HashMap<>();
|
Map<String, String> map2 = new HashMap<>();
|
String result1 = "";
|
String result2 = "";
|
if (null != key && !"".equals(key)) {
|
map1.put("key", key);
|
map1.put("name", name1);
|
map2.put("key", key);
|
map2.put("name", name2);
|
result1 = HttpClientUtils.doPost(url, map1);
|
result2 = HttpClientUtils.doPost(url, map2);
|
} else {
|
return null;
|
}
|
|
Map maps1 = (Map) JSON.parse(result1);
|
Map maps2 = (Map) JSON.parse(result2);
|
if (null != maps1.get("data")) {
|
String str1 = maps1.get("data").toString();
|
String str2 = maps2.get("data").toString();
|
Map mapsHsy = (Map) JSON.parse(str1);
|
Map mapsTgy = (Map) JSON.parse(str2);
|
String sid1 = mapsHsy.get("sid").toString();
|
String sid2 = mapsTgy.get("sid").toString();
|
String r1 = createGaodeAddress(key, sid1, "string");
|
String r2 = createGaodeAddress(key, sid2, "string");
|
PartnerTraceModel model1 = new PartnerTraceModel();
|
model1.setDelFlag(0);
|
model1.setCreateTime(sdf.format(new Date()));
|
model1.setPartnerId(partner.getId() + "");
|
model1.setPartnerKey(key);
|
model1.setPartnerServiceId(sid1);
|
model1.setPartnerServiceType("1");
|
int num1 = insertGaodeSid(model1);
|
if (num1 > 0) {
|
model1.setPartnerServiceId(sid2);
|
model1.setPartnerServiceType("2");
|
int num2 = insertGaodeSid(model1);
|
return num2 + "";
|
} else {
|
return null;
|
}
|
}
|
return null;
|
|
}
|
|
private String createGaodeAddress(String key, String sid, String type) {
|
String url = "https://tsapi.amap.com/v1/track/point/column/add";
|
Map<String, String> map1 = new HashMap<>();
|
map1.put("key", key);
|
map1.put("sid", sid);
|
map1.put("column", "address");
|
map1.put("type", type);
|
String result = HttpClientUtils.doPost(url, map1);
|
System.out.println("=============高德返回" + result);
|
return result;
|
}
|
|
private int insertGaodeSid(PartnerTraceModel model) {
|
return xzxCityPartnerDao.insertGaodeSid(model);
|
}
|
|
public String queryAreaCityList(String city) {
|
return xzxCityPartnerDao.queryAreaCityList(city);
|
}
|
|
public String queryAreaProvinceList(String city) {
|
return xzxCityPartnerDao.queryAreaProvinceList(city);
|
}
|
|
public String queryAreaTownList(String city) {
|
return xzxCityPartnerDao.queryAreaTownList(city);
|
}
|
|
public String queryGaodeByTownId(String townId) {
|
return xzxCityPartnerDao.queryGaodeByTownId(townId);
|
}
|
|
public XzxCityPartner queryCityPartnerByCityId(String city) {
|
String partnerId = xzxCityPartnerDao.queryPartnerByCity(city);
|
if (null != partnerId && !"".equals(partnerId)) {
|
return xzxCityPartnerDao.queryPartnerById(Long.parseLong(partnerId));
|
|
} else {
|
return null;
|
}
|
}
|
|
public String queryAccountByPartnerId(String userId) {
|
return xzxCityPartnerDao.queryAccountByPartnerId(userId);
|
}
|
|
public Map<String, Object> queryPartnerAccount(String userId) {
|
String accountInfoMoney = xzxCityPartnerDao.queryAccountByPartnerId(userId);
|
if (null != accountInfoMoney && !"".equals(accountInfoMoney)) {
|
accountInfoMoney = DoubleUtil.roundTwo(accountInfoMoney);
|
} else {
|
accountInfoMoney = "0.00";
|
}
|
Map<String, Object> map = new HashMap<>();
|
map.put("money", accountInfoMoney);
|
map.put("code", 0);
|
map.put("userId", userId);
|
return map;
|
}
|
|
public CoreUser queryPartnerAdmin(Long id) {
|
return xzxCityPartnerDao.queryPartnerAdmin(id);
|
}
|
|
public List<XzxCityPartner> queryAllCityPartnerList(String partnerId) {
|
return xzxCityPartnerDao.queryAllCityPartnerList(partnerId);
|
}
|
|
public List<XzxCityPartner> queryPartnerName(List<String> partnerIds) {
|
return xzxCityPartnerDao.queryPartnerName(partnerIds);
|
}
|
|
public List<XzxCityPartner> queryPackageByPartner(List<String> partnerIds) {
|
return xzxCityPartnerDao.queryPackageByPartner(partnerIds);
|
}
|
|
public List<String> queryPackageIdList(String partnerId) {
|
return xzxCityPartnerDao.queryPackageIdList(partnerId);
|
}
|
|
public List<UserModel> queryOtherUserByPid(String pid, AccountMoneyModel model, List<String> packageStationList) {
|
return xzxCityPartnerDao.queryOtherUserByPid(pid, model.getUserName(), model.getRoleType(), packageStationList);
|
}
|
|
public List<String> queryAllUserIds() {
|
return xzxCityPartnerDao.queryAllUserIds();
|
}
|
|
public List<UserModel> queryUserNormal(AccountMoneyModel model) {
|
return xzxCityPartnerDao.queryAllUserByPid(model.getUserName(), model.getRoleType(),model.getTownIds());
|
}
|
|
public int queryAccountByUserIdsCount(AccountMoneyModel model) {
|
|
return xzxCityPartnerDao.queryAccountByUserIdsCount(model);
|
}
|
public void updateAccountLimitByPid(PartnerAccountModel pa){
|
xzxCityPartnerDao.updateAccountLimitByPid(pa);
|
}
|
public List<String> queryUserIdsByPid(String partnerId){
|
return xzxCityPartnerDao.queryUserIdsByPid(partnerId);
|
}
|
public int updateAccountLimit(AccountMoneyModel model) {
|
AccountMoneyModel oldModel = xzxCityPartnerDao.queryAccountByAccountId(model);
|
String message ="";
|
String packageUserId="";
|
UserModel userModel = cuserConsoleService.queryUserOtherById(oldModel.getUserId());
|
BigDecimal newOl = new BigDecimal("0");
|
if (null != userModel) {
|
if (null != userModel.getPartnerId()) {
|
if (userModel.getUserType().equals("7")) {
|
PartnerAccountModel pa = xzxCityPartnerDao.queryAccountIdByUserId(userModel.getUserId());
|
|
if (null != pa.getFixedLimit()) {
|
if (null != pa.getOverdraftLimit()) {
|
} else {
|
pa.setOverdraftLimit("0");
|
}
|
BigDecimal pao = new BigDecimal(pa.getOverdraftLimit());
|
newOl = new BigDecimal(model.getFixedLimit()).subtract(new BigDecimal(pa.getFixedLimit()));
|
BigDecimal overFlag = pao.add(newOl);
|
if (overFlag.compareTo(BigDecimal.ZERO) == -1) {
|
return -1;
|
}
|
pao=overFlag;
|
pa.setOverdraftLimit(pao.toString());
|
} else {
|
pa.setOverdraftLimit(model.getFixedLimit());
|
}
|
pa.setFixedLimit(model.getFixedLimit());
|
//调整打包站额度
|
cityPartnerService.updatePackageAccount(pa);
|
|
String partnerId = userModel.getPartnerId();
|
XzxCityPartner partner = cityPartnerService.queryById(Long.parseLong(partnerId));
|
Snowflake snowflake = IdUtil.getSnowflake(0, 3);
|
String payOrderId = "ZF" + snowflake.nextIdStr();
|
pa.setType("7");
|
insertPackageAccountLog(pa,payOrderId,DoubleUtil.roundTwo(newOl.toString()));
|
if (partner.getPartnerType().equals("2")) {
|
partner = cityPartnerService.queryById(partner.getPackingStation());
|
}
|
String type = "8";
|
//调整额度时需要扣除合伙人额度
|
UserAccountModel partnerAccount = queryPartnerAccountByUserId(partner.getUserId());
|
PartnerAccountModel partnerAccountModel = getPartnerAccountByUserId(partner.getUserId());
|
|
|
if (newOl.compareTo(BigDecimal.ZERO) == -1) {
|
type = "14";
|
}
|
insertPartnerAccountLog(partnerAccount, type, newOl, payOrderId, "7");
|
BigDecimal newPartnerMoney = new BigDecimal(partnerAccount.getMoney()).subtract(newOl);
|
if (newPartnerMoney.compareTo(BigDecimal.ZERO) == -1) {
|
return -1;
|
}
|
partnerAccount.setMoney(newPartnerMoney.doubleValue());
|
partnerAccountModel.setHbb(DoubleUtil.roundTwo(newPartnerMoney.toString()));
|
partnerAccountModel.setMoney(DoubleUtil.roundTwo(newPartnerMoney.toString()));
|
cityPartnerService.updateAccountPartner(partnerAccount);
|
cityPartnerService.updatePartnerAccount(partnerAccountModel);
|
//将打包员的额度置为0
|
//List<String> userIds = cityPartnerService.queryUserIdsByPid(pa.getPartnerId());
|
//pa.setUserIds(userIds);
|
//cityPartnerService.updateAccountLimitByPid(pa);
|
message="您已经由管理员调整额度,固定额度为:" + pa.getFixedLimit() + "元,可用额度为:" + pa.getOverdraftLimit() + ",请注意变化.";
|
packageUserId = partner.getUserId();
|
} else {
|
BigDecimal oldol = new BigDecimal(oldModel.getOverdraftLimit());
|
BigDecimal ollimit = new BigDecimal(oldModel.getFixedLimit());
|
newOl = new BigDecimal(model.getFixedLimit()).subtract(ollimit);
|
BigDecimal overFlag = oldol.add(newOl);
|
if (overFlag.compareTo(BigDecimal.ZERO) == -1) {
|
return -1;
|
}
|
oldModel.setOverdraftLimit(DoubleUtil.roundTwo(oldol.add(newOl).toString()));
|
oldModel.setFixedLimit(DoubleUtil.roundTwo(ollimit.add(newOl).toString()));
|
|
String type = "8";
|
//调整额度时需要扣除合伙人额度
|
String partnerId = userModel.getPartnerId();
|
XzxCityPartner partner = cityPartnerService.queryById(partnerId);
|
UserAccountModel partnerAccount = queryPartnerAccountByUserId(partner.getUserId());
|
PartnerAccountModel partnerAccountModel = getPartnerAccountByUserId(partner.getUserId());
|
|
Snowflake snowflake = IdUtil.getSnowflake(0, 3);
|
String payOrderId = "ZF" + snowflake.nextIdStr();
|
if (newOl.compareTo(BigDecimal.ZERO) == -1) {
|
type = "14";
|
}
|
insertPartnerAccountLog(partnerAccount, type, newOl, payOrderId, "7");
|
|
BigDecimal newPartnerMoney = new BigDecimal(partnerAccount.getMoney()).subtract(newOl);
|
if (newPartnerMoney.compareTo(BigDecimal.ZERO) == -1) {
|
return -1;
|
}
|
partnerAccount.setMoney(newPartnerMoney.doubleValue());
|
partnerAccountModel.setMoney(DoubleUtil.roundTwo(newPartnerMoney.toString()));
|
partnerAccountModel.setHbb(DoubleUtil.roundTwo(newPartnerMoney.toString()));
|
cityPartnerService.updateAccountPartner(partnerAccount);
|
cityPartnerService.updatePartnerAccount(partnerAccountModel);
|
xzxCityPartnerDao.updateAccountLimit(oldModel);
|
}
|
|
}
|
} else {
|
return 0;
|
}
|
if(null!=message&&!"".equals(message)){
|
payConsoleDao.insertMessage(message, packageUserId, "", "1", "额度调整", sdf.format(new Date()));
|
|
}else{
|
//发送系统消息
|
message = "您已经由管理员调整额度,固定额度为:" + oldModel.getFixedLimit() + "元,可用额度为:" + oldModel.getOverdraftLimit() + ",请注意变化.";
|
payConsoleDao.insertMessage(message, oldModel.getUserId(), "", "1", "额度调整", sdf.format(new Date()));
|
|
}
|
|
return 1;
|
}
|
|
public List<AccountMoneyModel> queryAccountByUserIds(AccountMoneyModel model) {
|
int p = model.getPage();
|
p = (p - 1) * model.getLimit();
|
model.setPage(p);
|
List<AccountMoneyModel> list = xzxCityPartnerDao.queryAccountByUserIds(model);
|
for (AccountMoneyModel mm : list) {
|
UserModel userModel = cuserConsoleService.queryUserOtherInfoById(mm.getUserId());
|
mm.setMoney(DoubleUtil.roundTwo(mm.getMoney()));
|
if (null != userModel) {
|
if (userModel.getUserType().equals("7")) {
|
//查询打包站额度
|
String partnerId = userModel.getPartnerId();
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(Long.parseLong(partnerId));
|
PartnerAccountModel partnerAccountModel = xzxCityPartnerDao.queryAccountIdByUserId(partner.getUserId());
|
mm.setFixedLimit(partnerAccountModel.getFixedLimit());
|
mm.setOverdraftLimit(partnerAccountModel.getOverdraftLimit());
|
mm.setMobilePhone(userModel.getMobilePhone());
|
mm.setUserName(userModel.getName());
|
mm.setRegistTime(userModel.getRegistTime());
|
mm.setRoleType(userModel.getUserType());
|
} else {
|
mm.setMobilePhone(userModel.getMobilePhone());
|
mm.setUserName(userModel.getName());
|
mm.setRegistTime(userModel.getRegistTime());
|
mm.setRoleType(userModel.getUserType());
|
}
|
|
} else {
|
userModel = cuserConsoleService.queryUserById(mm.getUserId());
|
mm.setMobilePhone(userModel.getMobilePhone());
|
if (null != userModel.getNickName() && !"".equals(userModel.getNickName())) {
|
try {
|
mm.setUserName(new String(base64.decode(userModel.getNickName()), "UTF-8"));
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
} else {
|
mm.setUserName("--");
|
}
|
mm.setRegistTime(userModel.getRegistTime());
|
mm.setRoleType("1");
|
}
|
|
}
|
|
return list;
|
}
|
|
public int updateAccountType(AccountMoneyModel model) {
|
return xzxCityPartnerDao.updateAccountType(model);
|
}
|
|
public int queryPartnerGaode(List<AreaModel> areaList){
|
List<String> list = new ArrayList<>();
|
for (AreaModel area:areaList) {
|
list.add(area.getTownName());
|
}
|
return xzxCityPartnerDao.queryPartnerGaode(list);
|
}
|
public List<String> queryPartnerByCurrent() {
|
//查询合伙人列表
|
List<String> partnerIds = new ArrayList<>();
|
CoreUser user = platformService.getCurrentUser();
|
|
if (user.getId() == 1) {
|
//如果是超管 显示全部投诉订单信息
|
partnerIds = null;
|
} else {
|
//如果是运营管理员 显示
|
if (user.getOrgId() == 10) {
|
partnerIds = null;
|
} else {
|
//合伙人显示 该合伙人和名下合伙人的所有订单。
|
partnerIds.add(user.getId() + "");
|
//多级合伙人带拓展
|
//List<String> childPartnerIds = xzxOrderComplaintDao.queryChildPids(user.getId()+"");
|
}
|
|
}
|
return partnerIds;
|
}
|
|
public String queryCityPartnerByPhone(String mobilePhone) {
|
return xzxCityPartnerDao.queryCityPartnerByPhone(mobilePhone);
|
}
|
|
|
public Map<String, Object> queryCityPartnerForOtherUser() {
|
List<String> partnerIds = queryPartnerByCurrent();
|
List<UserModel> list1 = xzxCityPartnerDao.queryCityPartnerForOtherUser(partnerIds, "2");
|
List<UserModel> list2 = xzxCityPartnerDao.queryCityPartnerForOtherUser(partnerIds, "6");
|
Map<String, Object> map = new HashMap<>();
|
map.put("code", 0);
|
map.put("hsyData", list1);
|
map.put("tgyData", list2);
|
return map;
|
}
|
|
public Map<String, Object> queryCityPartner(XzxCityPartnerModel model) {
|
List<String> partnerIds = queryPartnerByCurrent();
|
model.setPartnerIdList(partnerIds);
|
if (null != partnerIds && partnerIds.size() > 0) {
|
model.setPackingStation(partnerIds.get(0));
|
}
|
Map<String, Object> map = new HashMap<>();
|
int p = model.getPage();
|
p = (p - 1) * model.getLimit();
|
model.setPage(p);
|
|
if (null != model.getStartTime() && !"".equals(model.getStartTime())) {
|
model.setStartTime(model.getStartTime() + " 00:00:00");
|
}
|
if (null != model.getEndTime() && !"".equals(model.getEndTime())) {
|
model.setEndTime(model.getEndTime() + " 23:59:59");
|
}
|
if (null != model.getPartnerType()) {
|
if (model.getPartnerType().equals("2")) {
|
model.setPartnerIdList(null);
|
}
|
} else {
|
model.setPartnerType("1");
|
}
|
|
List<XzxCityPartnerModel> list = xzxCityPartnerDao.queryCityPartner(model);
|
for (XzxCityPartnerModel obj : list) {
|
List<List<String>> townList = new ArrayList<>();
|
|
List<AreaModel> areaList = xzxCityPartnerDao.queryAreaByParentner(obj.getId());
|
for (AreaModel am : areaList) {
|
List<String> townList1 = new ArrayList<>();
|
townList1.add(am.getProvinceName());
|
townList1.add(am.getCityName());
|
townList1.add(am.getTownName());
|
townList.add(townList1);
|
}
|
obj.setTownList(townList);
|
String cityName = "";
|
List<String> cityIdList = xzxCityPartnerDao.queryGaodeByParentner(obj.getId());
|
obj.setAreaList(areaList);
|
//当前只支持多选
|
if (cityIdList.size() > 0) {
|
cityName = xzxCityPartnerDao.queryCityNameById(cityIdList.get(0));
|
}
|
//if(obj.getPartnerType().equals("2")){
|
//打包站前端需要返回list地址
|
PartnerGaodeModel gaodeModel = new PartnerGaodeModel();
|
gaodeModel = xzxCityPartnerDao.queryGaodeAreaByPackageId(obj.getId());
|
if (null != gaodeModel) {
|
String[] packageAddress = gaodeModel.getAddressArea().split(",");
|
obj.setPackageAddress(packageAddress);
|
}
|
|
//}
|
obj.setCityName(cityName);
|
obj.setCzMoney(DoubleUtil.roundTwo(obj.getCzMoney()));
|
obj.setTxMoney(DoubleUtil.roundTwo(obj.getTxMoney()));
|
List<XzxElectronicFenceModel> fenceNameList = xzxCityPartnerDao.queryFenceNameList(obj);
|
StringBuffer sb = new StringBuffer();
|
StringBuffer sbId = new StringBuffer();
|
if (null != fenceNameList && fenceNameList.size() > 0) {
|
for (XzxElectronicFenceModel stn : fenceNameList) {
|
sb.append(stn.getFenceName()).append(",");
|
sbId.append(stn.getId()).append(",");
|
}
|
String sbStr = sb.toString();
|
String sbIds = sbId.toString();
|
if (!"".equals(sbStr)) {
|
sbStr = sbStr.substring(0, sbStr.length() - 1);
|
obj.setFenceName(sbStr);
|
}
|
if (!"".equals(sbIds)) {
|
sbIds = sbIds.substring(0, sbIds.length() - 1);
|
obj.setFenceIds(sbIds);
|
}
|
}
|
List<String> citys = xzxCityPartnerDao.queryCitysByPartnerId(obj.getId());
|
String cityName1 = "";
|
for (String cityId : citys) {
|
String named = xzxCityPartnerDao.queryCityNameById(cityId);
|
if (null != cityName1 && !"".equals(cityName1)) {
|
cityName1 = cityName1 + "," + named;
|
} else {
|
cityName1 = named;
|
}
|
}
|
|
if (cityName1 != null && !"".equals(cityName1)) {
|
obj.setCityName(cityName1);
|
} else {
|
|
String userId = obj.getUserId();
|
UserModel userModel = cuserConsoleService.queryUserOtherById(userId);
|
cityName = cuserConsoleService.queryAreaName("2", userModel.getCityId());
|
obj.setCityId(userModel.getCityId());
|
obj.setCityName(cityName);
|
}
|
|
if (null != obj.getPackingStation() && !"".equals(obj.getPackingStation())) {
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(Long.parseLong(obj.getPackingStation()));
|
obj.setPackingStationName(partner.getPartnerName());
|
}
|
}
|
int num = xzxCityPartnerDao.queryCityPartnerCount(model);
|
map.put("code", 0);
|
map.put("data", list);
|
map.put("count", num);
|
return map;
|
}
|
|
public Map<String, Object> queryDetailsPresentation(PartnerPayMsgModel model) {
|
List<String> partnerIds = queryPartnerByCurrent();
|
model.setPartnerIds(partnerIds);
|
Map<String, Object> map = new HashMap<>();
|
int p = model.getPage();
|
p = (p - 1) * model.getLimit();
|
model.setPage(p);
|
model.setUserId(model.getUserId());
|
|
List<PartnerPayMsgModel> list = xzxCityPartnerDao.queryDetailsPresentation(model);
|
for (PartnerPayMsgModel model1 : list
|
) {
|
model1.setMoney(DoubleUtil.roundTwo(model1.getMoney()));
|
}
|
int count = 0;
|
if (null != list && list.size() > 0) {
|
count = xzxCityPartnerDao.queryDetailsPresentationCount(model);
|
}
|
map.put("code", 0);
|
map.put("data", list);
|
map.put("count", count);
|
return map;
|
}
|
|
public String addPayInfoImg(PayInfoModel model) {
|
Snowflake snowflake1 = IdUtil.getSnowflake(0, 3);
|
String payOrderId = "ZF" + snowflake1.nextIdStr();
|
RemittanceModel remittanceModel = new RemittanceModel();
|
remittanceModel.setBankName("长沙银行股份有限公司鑫泰支行");
|
remittanceModel.setCompany("湖南小棕熊环保科技有限公司");
|
remittanceModel.setCompanyAccount("800271283808014");
|
remittanceModel.setCreateTime(sdf.format(new Date()));
|
remittanceModel.setRechargeName(model.getRechargeName());
|
remittanceModel.setRechargePhone(model.getRechargePhone());
|
remittanceModel.setPayOrderId(payOrderId);
|
CoreUser user = platformService.getCurrentUser();
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(user.getId());
|
if (null == partner) {
|
if (null != model.getPartnerId() && !"".equals(model.getPartnerId())) {
|
partner = xzxCityPartnerDao.queryPartnerById(Long.parseLong(model.getPartnerId()));
|
}
|
}else{
|
if(null!=model.getPartnerId()&&!"".equals(model.getPartnerId())){
|
partner = xzxCityPartnerDao.queryPartnerById(Long.parseLong(model.getPartnerId()));
|
|
}
|
}
|
remittanceModel.setCreateUserId(partner.getUserId() + "");
|
xzxCityPartnerDao.insertRemittance(remittanceModel);
|
|
|
model.setPayOrderId(payOrderId);
|
model.setCreateUserId(partner.getUserId() + "");
|
|
int num = xzxCityPartnerDao.addPayInfo(model);
|
PartnerAccountLogModel log = new PartnerAccountLogModel();
|
log.setFlowNo(payOrderId);
|
log.setCreateTime(sdf.format(new Date()));
|
log.setApproverStatus("1");
|
log.setMoney(model.getMoney());
|
log.setHbb(model.getMoney());
|
log.setDelFlag(0);
|
log.setAccountId(partner.getAccountNo());
|
log.setUserName(partner.getPartnerName());
|
log.setType("1");
|
log.setUserPhone(partner.getMobilePhone());
|
if (partner.getPartnerType().equals("1")) {
|
log.setRoleName("城市合伙人");
|
} else {
|
log.setRoleName("打包站");
|
}
|
|
xzxCityPartnerDao.addPartnerAccountLog(log);
|
return num + "";
|
}
|
|
public int addPayInfo1(PayInfoModel model) {
|
return xzxCityPartnerDao.addPayInfo1(model);
|
}
|
|
public int addPayInfo(PayInfoModel model) {
|
CoreUser user = platformService.getCurrentUser();
|
model.setAccountId("");
|
model.setStatus("1");
|
model.setPayType("1");
|
model.setCreateUserId(user.getId() + "");
|
model.setCreateTime(sdf.format(new Date()));
|
return xzxCityPartnerDao.addPayInfo(model);
|
}
|
|
public PartnerAccountModel getPartnerAccountByUserId(String userId) {
|
return fundManagementApiDao.getPartnerAccountByUserId(userId);
|
}
|
|
public void updateAccountPartner(UserAccountModel accountModel) {
|
xzxCityPartnerDao.updateAccountPartner(accountModel);
|
//return null
|
}
|
|
public void updatePartnerAccount(PartnerAccountModel partnerAccountModel) {
|
xzxCityPartnerDao.updatePartnerAccount(partnerAccountModel);
|
}
|
|
public void updatePackageAccount(PartnerAccountModel partnerAccountModel) {
|
xzxCityPartnerDao.updatePackageAccount(partnerAccountModel);
|
}
|
|
public void insertPackageAccountLog(PartnerAccountModel partnerAccountModel, String payOrderId, String money) {
|
XzxCityPartner partner = xzxCityPartnerDao.queryEntityByUserIds(partnerAccountModel.getUserId());
|
PartnerAccountLogModel partnerLog = new PartnerAccountLogModel();
|
partnerLog.setFlowNo(payOrderId);
|
partnerLog.setCreateTime(sdf.format(new Date()));
|
partnerLog.setApproverStatus("1");
|
if(null!=partnerAccountModel.getType()&&!"".equals(partnerAccountModel.getType())){
|
if(partnerAccountModel.getType().equals("7")){
|
partnerLog.setMoney(DoubleUtil.roundTwo(money));
|
partnerLog.setHbb(DoubleUtil.roundTwo(partnerAccountModel.getFixedLimit()));
|
BigDecimal oldLimit = new BigDecimal(partnerAccountModel.getFixedLimit());
|
oldLimit =oldLimit.subtract(new BigDecimal(money));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(oldLimit.toString()));
|
}else{
|
partnerLog.setMoney(DoubleUtil.roundTwo(money));
|
partnerLog.setHbb(DoubleUtil.roundTwo(new BigDecimal(money).add(new BigDecimal(partnerAccountModel.getHbb())).toString()));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(partnerAccountModel.getHbb() + ""));
|
}
|
|
}else{
|
partnerLog.setMoney(DoubleUtil.roundTwo(money));
|
partnerLog.setHbb(DoubleUtil.roundTwo(new BigDecimal(money).add(new BigDecimal(partnerAccountModel.getHbb())).toString()));
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(partnerAccountModel.getHbb() + ""));
|
}
|
partnerLog.setDelFlag(0);
|
partnerLog.setAccountId(partnerAccountModel.getAccount());
|
partnerLog.setUserName(partner.getPartnerName());
|
if(null!=partnerAccountModel.getType()&&!"".equals(partnerAccountModel.getType())){
|
partnerLog.setType(partnerAccountModel.getType());
|
}else{
|
partnerLog.setType("1");
|
}
|
|
partnerLog.setUserPhone(partner.getMobilePhone());
|
partnerLog.setRoleName("打包站");
|
xzxCityPartnerDao.addPartnerAccountLog(partnerLog);
|
}
|
public void insertAccountLogByPartner(UserAccountModel accountModel, String type, BigDecimal money, String payOrderId) {
|
//写入日志
|
AccountLogModel log = new AccountLogModel();
|
log.setAccountId(accountModel.getAccountId());
|
log.setChannelType(type);
|
log.setCreateTime(sdf.format(new Date()));
|
log.setCreateUserId(accountModel.getUserId());
|
log.setNewFixedLimit(DoubleUtil.roundTwo("0"));
|
log.setNewLimit(DoubleUtil.roundTwo("0"));
|
log.setNewMoney(DoubleUtil.roundTwo(new BigDecimal(accountModel.getMoney()).add(money).toString()));
|
log.setOldFixedLimit(DoubleUtil.roundTwo("0"));
|
log.setOldLimit(DoubleUtil.roundTwo("0"));
|
log.setOldMoney(DoubleUtil.roundTwo(accountModel.getMoney() + ""));
|
log.setOrderId(payOrderId);
|
payLogService.insertAccountLog(log);
|
}
|
public void insertPartnerLogByPartner(PartnerAccountModel accountModel, String type, String money, String payOrderId,XzxCityPartner partner,String newMoney) {
|
//写入日志
|
PartnerAccountLogModel partnerLog = new PartnerAccountLogModel();
|
partnerLog.setAccountId(accountModel.getAccount());
|
partnerLog.setType(type);
|
partnerLog.setCreateTime(sdf.format(new Date()));
|
partnerLog.setRoleName("城市合伙人");
|
partnerLog.setMoney(money);
|
partnerLog.setUserName(partner.getPartnerName());
|
partnerLog.setUserPhone(partner.getMobilePhone());
|
partnerLog.setAccountMoney(accountModel.getMoney());
|
partnerLog.setHbb(newMoney);
|
partnerLog.setFlowNo(payOrderId);
|
partnerLog.setApproverStatus("1");
|
partnerLog.setDelFlag(0);
|
xzxCityPartnerDao.addPartnerAccountLog(partnerLog);
|
}
|
public void insertPartnerAccountLog(UserAccountModel accountModel, String type, BigDecimal money, String payOrderId, String packageType) {
|
//写入日志
|
AccountLogModel log = new AccountLogModel();
|
log.setAccountId(accountModel.getAccountId());
|
log.setChannelType(type);
|
log.setCreateTime(sdf.format(new Date()));
|
log.setCreateUserId(accountModel.getUserId());
|
BigDecimal oldFixedLimit = new BigDecimal(String.valueOf(accountModel.getFixedLimit()));
|
BigDecimal oldLimit = new BigDecimal(String.valueOf(accountModel.getOverdraftLimit()));
|
BigDecimal oldMoney = new BigDecimal(accountModel.getMoney());
|
log.setNewFixedLimit(accountModel.getFixedLimit());
|
log.setNewLimit(accountModel.getLimit() + "");
|
if(null!=accountModel.getAddType()&&!"".equals(accountModel.getAddType())){
|
log.setNewMoney(DoubleUtil.roundTwo(new BigDecimal(accountModel.getMoney()).add(money).toString()));
|
|
}else{
|
log.setNewMoney(DoubleUtil.roundTwo(new BigDecimal(accountModel.getMoney()).subtract(money).toString()));
|
|
}
|
log.setOldFixedLimit(accountModel.getFixedLimit());
|
log.setOldLimit(accountModel.getLimit() + "");
|
log.setOldMoney(DoubleUtil.roundTwo(accountModel.getMoney() + ""));
|
log.setOrderId(payOrderId);
|
payLogService.insertAccountLog(log);
|
XzxCityPartner partner = xzxCityPartnerDao.queryEntityByUserIds(accountModel.getUserId());
|
PartnerAccountLogModel partnerLog = new PartnerAccountLogModel();
|
partnerLog.setFlowNo(payOrderId);
|
partnerLog.setCreateTime(sdf.format(new Date()));
|
partnerLog.setApproverStatus("1");
|
partnerLog.setMoney(DoubleUtil.roundTwo(money.toString()));
|
partnerLog.setHbb(log.getNewMoney());
|
partnerLog.setDelFlag(0);
|
partnerLog.setAccountId(accountModel.getAccountId());
|
partnerLog.setAccountMoney(DoubleUtil.roundTwo(accountModel.getMoney() + ""));
|
partnerLog.setUserName(partner.getPartnerName());
|
if (null != packageType) {
|
partnerLog.setType(packageType);
|
|
} else {
|
partnerLog.setType("1");
|
|
}
|
partnerLog.setUserPhone(partner.getMobilePhone());
|
partnerLog.setRoleName("城市合伙人");
|
xzxCityPartnerDao.addPartnerAccountLog(partnerLog);
|
}
|
|
public String queryAccountByAdminId() {
|
return xzxCityPartnerDao.queryAccountByAdminId();
|
}
|
|
public int updatePlatformHbb(String hbb) {
|
return fundManagementApiDao.updatePlatformHbb(hbb);
|
}
|
public int updatePlatformMoney(String money) {
|
return fundManagementApiDao.updatePlatformMoney(money);
|
}
|
public void insertPlatFormLog(PlatformAccountLogModel model) {
|
fundManagementApiDao.insertPlatFormLog(model);
|
}
|
|
public String updatePayInfoPass(PayInfoModel model) {
|
String payOrderId = model.getPayOrderId();
|
PayInfoModel payInfo = xzxCityPartnerDao.queryPayInfoById(payOrderId);
|
String fee = "0";
|
if (null != payInfo.getFee() && !"".equals(payInfo.getFee())) {
|
fee = payInfo.getFee();
|
}
|
int num = xzxCityPartnerDao.updatePayInfoPass(model);
|
PartnerAccountLogModel log = new PartnerAccountLogModel();
|
//审核通过,需要修改用户可用余额
|
//1:查询合作人账号
|
PartnerAccountModel pAccount = fundManagementApiDao.getPartnerAccountByUserId(model.getCreateUserId());
|
String acc = xzxCityPartnerDao.queryAccountByAdminId();
|
String[] accArr = acc.split(",");
|
String adminMoney = accArr[1];
|
String adminhbb = accArr[2];
|
|
if (null != pAccount) {
|
BigDecimal oldMoney = new BigDecimal("0");
|
if(null!=pAccount.getHbb()){
|
oldMoney = new BigDecimal(pAccount.getHbb());
|
}else{
|
pAccount.setHbb("0");
|
}
|
BigDecimal oldhbb = new BigDecimal(pAccount.getHbb());
|
BigDecimal newhbb = oldhbb.add(new BigDecimal(payInfo.getMoney()));
|
//平台
|
BigDecimal oldAdminMoney = new BigDecimal(adminMoney);
|
BigDecimal oldAdminhbb = new BigDecimal(adminhbb);
|
CoreUser user = platformService.getCurrentUser();
|
BigDecimal b3 = new BigDecimal(pAccount.getHbb());
|
//平台账户处理充值
|
BigDecimal newAdminMoney = oldAdminMoney.add(new BigDecimal(payInfo.getMoney()));
|
BigDecimal newAdminhbb = oldAdminhbb.subtract(new BigDecimal(payInfo.getMoney()));
|
log.setApprover(user.getName());
|
log.setUpdateTime(sdf.format(new Date()));
|
log.setApproverTime(sdf.format(new Date()));
|
log.setHbb(b3.add(new BigDecimal(payInfo.getMoney())).toString());
|
log.setFlowNo(payOrderId);
|
log.setApproverStatus("2");
|
if (pAccount.getType().equals("0")) {
|
//合伙人充值
|
//用户
|
BigDecimal newMoney = oldMoney.subtract(new BigDecimal(payInfo.getMoney()));
|
|
if (model.getStatus().equals("3")) {
|
BigDecimal b1 = new BigDecimal(pAccount.getHbb());
|
BigDecimal b2 = new BigDecimal(model.getMoney());
|
fundManagementApiDao.updateParterAccount(DoubleUtil.roundTwo(b3.add(b2).toString()), pAccount.getAccount());
|
fundManagementApiDao.updatePlatformMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
fundManagementApiDao.updatePlatformHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
//写流水日志
|
|
|
XzxCityPartner partner = queryById(pAccount.getPartnerId());
|
PartnerAccountModel pAccount1 = fundManagementApiDao.getPartnerAccountByUserId(partner.getUserId());
|
UserAccountModel account1 = fundManagementApiDao.getAccountByUserId(partner.getUserId());
|
String userM = "0";
|
if (null != pAccount1.getHbb() & !"".equals(pAccount1.getHbb())) {
|
userM = DoubleUtil.roundTwo(pAccount1.getHbb());
|
}
|
String packUserId = partner.getUserId();
|
System.out.println("打包员金额为::" + userM + "打包员的UserId 为" + packUserId);
|
PlatformAccountLogModel platformAccountLogModel = new PlatformAccountLogModel();
|
platformAccountLogModel.setCreateTime(sdf.format(new Date()));
|
platformAccountLogModel.setCreateUserId(pAccount.getPartnerId());
|
platformAccountLogModel.setMoney(DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setHbb("-" + DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setOldHbb(DoubleUtil.roundTwo(oldAdminhbb.toString()));
|
platformAccountLogModel.setOldMoney(DoubleUtil.roundTwo(oldAdminMoney.toString()));
|
platformAccountLogModel.setNewHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
platformAccountLogModel.setNewMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountLogModel.setCreateUserName(partner.getPartnerName());
|
platformAccountLogModel.setCreateUserType("2");
|
platformAccountLogModel.setCreateUserMobile(partner.getMobilePhone());
|
platformAccountLogModel.setFlowNo(payOrderId);
|
fundManagementApiDao.insertPlatFormLog(platformAccountLogModel);
|
fundManagementApiDao.updateParterAccountLog(log);
|
//同步合伙人普通账号
|
insertAccountLogByPartner(account1,"1",b2,payOrderId);
|
|
fundManagementApiDao.updateParterAccount1(DoubleUtil.roundTwo(b3.add(b2).toString()), pAccount.getAccount());
|
} else {
|
log.setApproverStatus("3");
|
}
|
} else {
|
//打包站充值 查询打包站的账号
|
if (model.getStatus().equals("3")) {
|
XzxCityPartner packagePartner = xzxCityPartnerDao.queryPartnerById(Long.parseLong(pAccount.getPartnerId()));
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(Long.parseLong(packagePartner.getPackingStation()));
|
fundManagementApiDao.updatePlatformMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
fundManagementApiDao.updatePlatformHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
if(pAccount.getOverdraftLimit().equals(pAccount.getFixedLimit())){
|
PartnerAccountModel newPackage = new PartnerAccountModel();
|
newPackage.setUserId(packagePartner.getUserId());
|
newPackage.setHbb(DoubleUtil.roundTwo(newhbb.toString()));
|
updatePartnerAccount(newPackage);
|
insertPackageAccountLog(pAccount, payOrderId, payInfo.getMoney());
|
}else{
|
BigDecimal ov = new BigDecimal(pAccount.getOverdraftLimit());
|
BigDecimal fl = new BigDecimal(pAccount.getFixedLimit());
|
BigDecimal pfMoney = new BigDecimal(payInfo.getMoney());
|
BigDecimal sfo = fl.subtract(ov);
|
BigDecimal fla = sfo.subtract(pfMoney);
|
BigDecimal fla1 = pfMoney.subtract(sfo);
|
if(fla.compareTo(BigDecimal.ZERO)==-1){
|
pAccount.setOverdraftLimit(pAccount.getFixedLimit());
|
pAccount.setHbb(fla1.add(new BigDecimal(pAccount.getHbb())).toString());
|
updatePartnerAccount(pAccount);
|
insertPackageAccountLog(pAccount, payOrderId, payInfo.getMoney());
|
}else{
|
//pAccount.setHbb(pAccount.getHbb());
|
pAccount.setOverdraftLimit(DoubleUtil.roundTwo(ov.add(pfMoney).toString()));
|
updatePartnerAccount(pAccount);
|
insertPackageAccountLog(pAccount, payOrderId, payInfo.getMoney());
|
}
|
|
}
|
|
PlatformAccountLogModel platformAccountLogModel = new PlatformAccountLogModel();
|
platformAccountLogModel.setCreateTime(sdf.format(new Date()));
|
platformAccountLogModel.setCreateUserId(pAccount.getPartnerId());
|
platformAccountLogModel.setMoney(DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setHbb("-" + DoubleUtil.roundTwo(payInfo.getMoney()));
|
platformAccountLogModel.setOldHbb(DoubleUtil.roundTwo(oldAdminhbb.toString()));
|
platformAccountLogModel.setOldMoney(DoubleUtil.roundTwo(oldAdminMoney.toString()));
|
platformAccountLogModel.setNewHbb(DoubleUtil.roundTwo(newAdminhbb.toString()));
|
platformAccountLogModel.setNewMoney(DoubleUtil.roundTwo(newAdminMoney.toString()));
|
platformAccountLogModel.setCreateUserName(partner.getPartnerName());
|
platformAccountLogModel.setCreateUserType("2");
|
platformAccountLogModel.setCreateUserMobile(partner.getMobilePhone());
|
platformAccountLogModel.setFlowNo(payOrderId);
|
fundManagementApiDao.insertPlatFormLog(platformAccountLogModel);
|
fundManagementApiDao.updateParterAccountLog(log);
|
} else {
|
log.setApproverStatus("3");
|
}
|
}
|
}
|
|
return num + "";
|
}
|
|
public List<XzxElectronicFenceModel> queryPartnerFenceList(XzxCityPartnerModel model) {
|
CoreUser user = platformService.getCurrentUser();
|
model.setId(user.getId() + "");
|
List<XzxElectronicFenceModel> list = xzxCityPartnerDao.queryPartnerFenceList(model);
|
return list;
|
}
|
|
public List<XzxElectronicFenceModel> queryPartnerFenceListByUser(XzxCityPartnerModel model) {
|
CoreUser user = platformService.getCurrentUser();
|
List<String> partnerIds = queryPartnerByCurrent();
|
if (user.getId() == 1) {
|
model.setId(null);
|
} else {
|
model.setId(user.getId() + "");
|
}
|
|
if (null != partnerIds && partnerIds.size() > 0) {
|
model.setPartnerIds(partnerIds.get(0));
|
}
|
List<XzxElectronicFenceModel> list = xzxCityPartnerDao.queryPartnerFenceListByUser(model);
|
return list;
|
}
|
|
public List<XzxCityPartner> queryPartnerByMobile(XzxCityPartnerModel model) {
|
return xzxCityPartnerDao.queryPartnerByMobile(model);
|
|
}
|
|
public UserAccountModel queryPartnerAccountByUserId(String userId) {
|
return fundManagementApiDao.getAccountByUserId(userId);
|
}
|
|
|
public String querySidByPid(String partnerId, String serviceType) {
|
return xzxCityPartnerDao.querySidByPid(partnerId, serviceType);
|
}
|
|
public List<String> queryTownIdsByPartnerId(String partnerId) {
|
return xzxCityPartnerDao.queryTownIdsByPartnerId(partnerId);
|
}
|
|
public List<String> queryTownIdsByPartnerIdList(List<String> partnerIds) {
|
return xzxCityPartnerDao.queryTownIdsByPartnerIdList(partnerIds);
|
}
|
|
public List<Map<String, Object>> queryGaodeByUserId(XzxCityPartnerModel model) {
|
List<Map<String, Object>> list1 = new ArrayList<>();
|
CoreUser user = platformService.getCurrentUser();
|
List<String> partnerIds = queryPartnerByCurrent();
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(user.getId());
|
String key = "";
|
if (null != model.getOrderId() && !"".equals(model.getOrderId())) {
|
partner = xzxCityPartnerDao.queryPartnerKeyByOrder(model.getOrderId());
|
key = partner.getPartnerKey();
|
model.setUserType("2");
|
} else {
|
model.setUserType("6");
|
}
|
if (null != partner) {
|
key = partner.getPartnerKey();
|
} else {
|
UserModel userModel = cuserConsoleService.queryUserOtherById(model.getUserId());
|
String partnerId = userModel.getPartnerId();
|
partner = cityPartnerService.queryById(partnerId);
|
if (null != partner) {
|
key = partner.getPartnerKey();
|
} else {
|
return null;
|
}
|
|
}
|
|
UserModel userModel = xzxCityPartnerDao.queryUserModelbyPartnerId(partnerIds, model.getUserType(), model.getUserId(), model.getOrderId());
|
if (null != model.getDayTime() && !"".equals(model.getDayTime())) {
|
if (null != model.getDateTime() && !"".equals(model.getDateTime())) {
|
String[] ss = model.getDateTime().split("-");
|
model.setStartTime(model.getDayTime() + " " + ss[0] + ":00");
|
model.setEndTime(model.getDayTime() + " " + ss[1] + ":59");
|
}
|
}
|
Map<String, Object> objMap = new HashMap<>();
|
String terminalId = userModel.getTerminalId();
|
Map map1 = new HashMap();
|
String url = "";
|
String type = null;
|
if (userModel.getUserType().equals("2")) {
|
type = "1";
|
map1.put("tid", terminalId);
|
} else if (userModel.getUserType().equals("6")) {
|
type = "2";
|
}
|
String sid = xzxCityPartnerDao.querySidByPartnerId(partner.getId() + "", type);
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
map1.put("key", key);
|
map1.put("sid", sid);
|
|
String result1 = "";
|
url = "https://tsapi.amap.com/v1/track/terminal/trsearch";
|
if (userModel.getUserType().equals("2")) {
|
if (null != model.getOrderId()) {
|
String trid = xzxCityPartnerDao.queryOrderById(model.getOrderId(), userModel.getUserId(), model.getStartTime(), model.getEndTime());
|
map1.put("trid", trid);
|
result1 = HttpClientUtils.doGet(url, map1);
|
Map maps1 = (Map) JSON.parse(result1);
|
if (null != maps1.get("data")) {
|
String str1 = maps1.get("data").toString();
|
Map mapsHsy = (Map) JSON.parse(str1);
|
if (null != mapsHsy.get("tracks")) {
|
String tracks = mapsHsy.get("tracks").toString();
|
List<GuijiByGaodeTridModel> dataArr = JSON.parseArray(tracks, GuijiByGaodeTridModel.class);
|
|
GuijiByGaodeTridModel mm = dataArr.get(0);
|
objMap.put("distance", mm.getDistance());
|
objMap.put("totalTime", mm.getTime() / (1000 * 60));
|
objMap.put("counts", mm.getCounts());
|
List<PointsModel> pointsList = mm.getPoints();
|
if (null != pointsList && pointsList.size() > 0) {
|
List<Map<String, Object>> propData = new ArrayList<>();
|
String address = "";
|
long t = 0;
|
long tt1 = 0;
|
for (PointsModel pp : pointsList) {
|
Map<String, Object> propMap = new HashMap<>();
|
Map maps4 = pp.getProps();
|
if (!"".equals(address)) {
|
if (address.equals(maps4.get("address").toString())) {
|
if (tt1 == 0) {
|
tt1 = pp.getLocatetime() - t;
|
} else {
|
tt1 = tt1 + (pp.getLocatetime() - t);
|
}
|
continue;
|
} else {
|
propMap.put("stopTime", tt1 / (1000 * 60));
|
}
|
}
|
|
address = maps4.get("address").toString();
|
propMap.put("address", address);
|
t = pp.getLocatetime();
|
Date date = new Date(t);
|
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String tt = sdf1.format(date);
|
propMap.put("time", tt);
|
propData.add(propMap);
|
}
|
objMap.put("counts", propData.size());
|
objMap.put("propData", propData);
|
}
|
}
|
}
|
} else {
|
|
List<String> trids = xzxCityPartnerDao.queryOrderByIds(userModel.getUserId(), model.getStartTime(), model.getEndTime());
|
for (int i = 0; i < trids.size(); i++) {
|
map1.put("trid", trids.get(i));
|
String r1 = HttpClientUtils.doGet(url, map1);
|
if (i == 0) {
|
result1 = i + ":" + r1;
|
} else {
|
result1 = result1 + " " + i + ":" + r1;
|
}
|
}
|
|
}
|
} else if (userModel.getUserType().equals("6")) {
|
try {
|
|
Date date1 = simpleDateFormat.parse(model.getStartTime());
|
Date date2 = simpleDateFormat.parse(model.getEndTime());
|
long ts1 = date1.getTime();
|
long ts2 = date2.getTime();
|
map1.put("starttime", ts1 + "");
|
map1.put("endtime", ts2 + "");
|
map1.put("tid", terminalId);
|
result1 = HttpClientUtils.doGet(url, map1);
|
Map maps1 = (Map) JSON.parse(result1);
|
if (null != maps1.get("data")) {
|
String str1 = maps1.get("data").toString();
|
Map mapsHsy = (Map) JSON.parse(str1);
|
if (null != mapsHsy.get("tracks")) {
|
String tracks = mapsHsy.get("tracks").toString();
|
List<GuijiByGaodeTridModel> dataArr = JSON.parseArray(tracks, GuijiByGaodeTridModel.class);
|
GuijiByGaodeTridModel mm = dataArr.get(0);
|
objMap.put("distance", mm.getDistance());
|
objMap.put("totalTime", mm.getTime() / (1000 * 60));
|
objMap.put("counts", mm.getCounts());
|
List<PointsModel> pointsList = mm.getPoints();
|
if (null != pointsList && pointsList.size() > 0) {
|
List<Map<String, Object>> propData = new ArrayList<>();
|
String address = "";
|
long t = 0;
|
long tt1 = 0;
|
for (PointsModel pp : pointsList) {
|
Map<String, Object> propMap = new HashMap<>();
|
Map maps4 = pp.getProps();
|
if (!"".equals(address)) {
|
if (address.equals(maps4.get("address").toString())) {
|
if (tt1 == 0) {
|
tt1 = pp.getLocatetime() - t;
|
} else {
|
tt1 = tt1 + (pp.getLocatetime() - t);
|
}
|
continue;
|
} else {
|
propMap.put("stopTime", tt1 / (1000 * 60));
|
}
|
}
|
|
address = maps4.get("address").toString();
|
propMap.put("address", address);
|
t = pp.getLocatetime();
|
Date date = new Date(t);
|
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String tt = sdf1.format(date);
|
propMap.put("time", tt);
|
propData.add(propMap);
|
}
|
objMap.put("counts", propData.size());
|
objMap.put("propData", propData);
|
}
|
|
}
|
}
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
}
|
objMap.put("userModel", userModel);
|
list1.add(objMap);
|
|
|
return list1;
|
}
|
|
public Map<String, Object> queryUserAccountLog(AccountLogModel model) {
|
|
Map<String, Object> result = new HashMap<>();
|
int page = model.getPage();
|
int limit = model.getLimit();
|
int p = page;
|
p = (p - 1) * limit;
|
model.setPage(p);
|
String totalMoney = "0";
|
CoreUser user = platformService.getCurrentUser();
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(user.getId());
|
if (null != model.getAccountId() && !"".equals(model.getAccountId())) {
|
AccountMoneyModel am = new AccountMoneyModel();
|
am.setAccountId(model.getAccountId());
|
AccountMoneyModel account = xzxCityPartnerDao.queryAccountByAccountId(am);
|
totalMoney = account.getMoney();
|
}
|
//String accountNo = partner.getAccountNo();
|
List<String> partnerIds = queryPartnerByCurrent();
|
// model.setAccountId(accountNo);
|
model.setPartnerIds(partnerIds);
|
if (null != model.getStartTime() && !"".equals(model.getStartTime())) {
|
model.setStartTime(model.getStartTime() + " 00:00:00");
|
}
|
if (null != model.getEndTime() && !"".equals(model.getEndTime())) {
|
model.setEndTime(model.getEndTime() + " 23:59:59");
|
}
|
List<String> list1 = new ArrayList<>();
|
if (null != model.getSzType()&&!"".equals(model.getSzType())) {
|
|
if (model.getSzType().equals("1")) {
|
switch (model.getRoleType()) {
|
case 5:
|
list1.add("1");
|
list1.add("14");
|
break;
|
case 2:
|
list1.add("1");
|
list1.add("4");
|
list1.add("11");
|
list1.add("12");
|
break;
|
case 6:
|
list1.add("1");
|
list1.add("10");
|
break;
|
case 1:
|
list1.add("1");
|
list1.add("3");
|
list1.add("5");
|
list1.add("6");
|
list1.add("7");
|
list1.add("13");
|
break;
|
case 7:
|
list1.add("1");
|
break;
|
default:
|
break;
|
}
|
} else if (model.getSzType().equals("2")) {
|
switch (model.getRoleType()) {
|
case 5:
|
list1.add("2");
|
list1.add("5");
|
list1.add("6");
|
list1.add("7");
|
list1.add("8");
|
list1.add("15");
|
break;
|
case 2:
|
list1.add("2");
|
list1.add("3");
|
list1.add("13");
|
list1.add("15");
|
break;
|
case 6:
|
list1.add("2");
|
list1.add("15");
|
break;
|
case 4:
|
list1.add("4");
|
list1.add("15");
|
break;
|
case 1:
|
list1.add("2");
|
list1.add("15");
|
break;
|
case 7:
|
list1.add("4");
|
list1.add("15");
|
break;
|
default:
|
break;
|
}
|
} else {
|
list1.add("1");
|
list1.add("2");
|
list1.add("3");
|
//操作渠道1:充值 2:提现 3:回收 4入库 5红包 6分享返利 7重量达标返利
|
list1.add("4");
|
list1.add("5");
|
list1.add("6");
|
list1.add("7");
|
list1.add("10");
|
list1.add("11");
|
list1.add("12");
|
list1.add("13");
|
list1.add("8");
|
list1.add("14");
|
list1.add("15");
|
}
|
model.setTypeList(list1);
|
}
|
|
List<AccountLogModel> list = xzxCityPartnerDao.queryAccountLogByAccount(model);
|
for (AccountLogModel r : list) {
|
if (r.getUserType().equals("1")) {
|
//转昵称
|
String nickName = r.getUserName();
|
if (nickName != null && !"".equals(nickName)) {
|
try {
|
nickName = new String(base64.decode(nickName), "UTF-8");
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
}
|
r.setUserName(nickName);
|
}
|
r.setRoleName("城市合伙人");
|
}
|
result.put("data", list);
|
result.put("count", xzxCityPartnerDao.queryAccountLogByAccountCount(model));
|
result.put("code", 0);
|
result.put("totalMoney", DoubleUtil.roundTwo(totalMoney));
|
return result;
|
}
|
|
public List<Map<String, String>> queryOrderByHsy(XzxCityPartnerModel model) {
|
if (null != model.getDayTime() && !"".equals(model.getDayTime())) {
|
if (null != model.getDateTime() && !"".equals(model.getDateTime())) {
|
String[] ss = model.getDateTime().split("-");
|
model.setStartTime(model.getDayTime() + " " + ss[0] + ":00");
|
model.setEndTime(model.getDayTime() + " " + ss[1] + ":59");
|
} else {
|
model.setStartTime(model.getDayTime() + " 00:00:00");
|
model.setEndTime(model.getDayTime() + " 23:59:59");
|
}
|
} else {
|
String t = sdf.format(new Date());
|
String[] tl = t.split(" ");
|
|
model.setStartTime(tl[0] + " 00:00:00");
|
model.setEndTime(tl[0] + " 23:59:59");
|
}
|
List<Map<String, String>> list = xzxCityPartnerDao.queryOrderByHsy(model);
|
return list;
|
}
|
|
public PartnerAccountModel queryAccountIdByUserId(String userId) {
|
return xzxCityPartnerDao.queryAccountIdByUserId(userId);
|
}
|
|
public Map<String, Object> queryPartnerAccountLog(PartnerAccountLogModel model) {
|
|
Map<String, Object> result = new HashMap<>();
|
int page = model.getPage();
|
int limit = model.getLimit();
|
int p = page;
|
p = (p - 1) * limit;
|
model.setPage(p);
|
CoreUser user = platformService.getCurrentUser();
|
XzxCityPartner partner = xzxCityPartnerDao.queryPartnerById(user.getId());
|
PartnerAccountModel userAccount = new PartnerAccountModel();
|
if (null != partner) {
|
userAccount = xzxCityPartnerDao.queryAccountIdByUserId(partner.getUserId());
|
} else {
|
String acc = xzxCityPartnerDao.queryAccountByAdminId();
|
String[] accArr = acc.split(",");
|
userAccount.setMoney(accArr[1]);
|
userAccount.setHbb(accArr[2]);
|
}
|
int count = 0;
|
if (null != userAccount) {
|
List<PartnerAccountLogModel> list = new ArrayList<>();
|
if (null != userAccount.getAccount() && !"".equals(userAccount.getAccount())) {
|
model.setAccountId(userAccount.getAccount());
|
list = xzxCityPartnerDao.queryPartnerAccountLog(model);
|
count = xzxCityPartnerDao.queryPartnerAccountLogCount(model);
|
} else {
|
list = xzxCityPartnerDao.queryAdminAccountLog(model);
|
count = xzxCityPartnerDao.queryAdminAccountLogCount(model);
|
for (PartnerAccountLogModel log : list) {
|
log.setApproverStatus("2");
|
log.setApproverTime(log.getCreateTime());
|
String userName = log.getUserName();
|
if (!StringUtils.isEmpty(userName)) {
|
try {
|
userName = new String(base64.decode(log.getUserName()), "UTF-8");
|
} catch (UnsupportedEncodingException e) {
|
e.printStackTrace();
|
}
|
}
|
if (!StringUtils.isEmpty(userName)) {
|
log.setUserName(userName);
|
}
|
if (null != log.getRoleName()) {
|
if (log.getRoleName().equals("1")) {
|
log.setRoleName("普通用户");
|
} else if (log.getRoleName().equals("2")) {
|
log.setRoleName("平台用户");
|
}
|
} else {
|
log.setRoleName("普通用户");
|
}
|
|
}
|
}
|
|
result.put("data", list);
|
result.put("hbbAccount", userAccount.getHbb());
|
result.put("moneryAccount", userAccount.getMoney());
|
result.put("code", 0);
|
result.put("count", count);
|
} else {
|
result.put("data", new ArrayList<>());
|
result.put("hbbAccount", "0");
|
result.put("moneryAccount", "0");
|
result.put("code", 0);
|
result.put("count", 0);
|
}
|
|
return result;
|
}
|
|
public List<Map<String, String>> queryPartnerCityById(XzxCityPartner partner) {
|
List<Map<String, String>> list = xzxCityPartnerDao.queryPartnerCityById(partner);
|
return list;
|
}
|
|
public List<Map<String, Object>> queryAreaObj(XzxCityPartner partner) {
|
List<Map<String, Object>> list = xzxCityPartnerDao.queryPidBypartnerId(partner);
|
String partnerId = "";
|
if (null != partner) {
|
partnerId = partner.getId() + "";
|
}
|
for (Map<String, Object> map : list) {
|
String pid = map.get("code").toString();
|
List<Map<String, Object>> clist = xzxCityPartnerDao.queryGaodeByCid(partnerId, pid);
|
for (Map<String, Object> cmap : clist) {
|
List<Map<String, String>> tlist = xzxCityPartnerDao.queryGaodeByTid(partnerId, cmap.get("code").toString());
|
cmap.put("children", tlist);
|
}
|
map.put("children", clist);
|
}
|
return list;
|
}
|
|
public int deleteUserByPartnerId(String id, String accountId) {
|
xzxCityPartnerDao.deleteAccount(accountId);
|
return xzxCityPartnerDao.deleteUserByPartnerId(id);
|
|
}
|
}
|