package com.ibeetl.admin.console.service;
|
|
import com.google.gson.Gson;
|
import com.ibeetl.admin.console.dao.OperateManageDao;
|
import com.ibeetl.admin.console.dao.SettingConsoleDao;
|
import com.ibeetl.admin.console.model.*;
|
import com.ibeetl.admin.console.util.DoubleUtil;
|
import com.ibeetl.admin.core.entity.CoreSetMoney;
|
import com.ibeetl.admin.core.entity.CoreUser;
|
import com.ibeetl.admin.core.entity.XzxCityPartner;
|
import com.ibeetl.admin.core.service.CoreBaseService;
|
import com.ibeetl.admin.core.service.CorePlatformService;
|
import com.ibeetl.admin.core.web.JsonResult;
|
import org.apache.commons.lang3.StringUtils;
|
import org.beetl.sql.core.engine.PageQuery;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
|
@Service
|
@Transactional
|
public class OperateManageApiService extends CoreBaseService<CoreSetMoney> {
|
|
Logger log = LoggerFactory.getLogger(this.getClass());
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
@Autowired
|
OperateManageDao operateManageDao;
|
@Autowired
|
SettingConsoleDao settingConsoleDao;
|
@Autowired
|
RedisService redisService;
|
@Autowired
|
XzxCityPartnerService cityPartnerService;
|
@Autowired
|
CorePlatformService platformService;
|
|
public List<Map<String, Object>> queryCityByPartnerId() {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
List<String> cityIds = operateManageDao.queryCityByPartnerId(partnerIds);
|
List<Map<String, Object>> list = operateManageDao.queryAreaByCityIds(cityIds);
|
return list;
|
}
|
|
public Map<String, Object> querOperaIteml(ItemModel item) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
//item.setPartnerIds(partnerIds);
|
if (null != partnerIds && partnerIds.size() > 0) {
|
List<String> townIds = cityPartnerService.queryTownIdsByPartnerId(partnerIds.get(0));
|
item.setTownIdList(townIds);
|
}
|
Map<String, Object> map = new HashMap<>();
|
int p = item.getPageNum();
|
p = (p - 1) * item.getLimitNum();
|
item.setPageNum(p);
|
List<ItemModel> list = operateManageDao.queryOperaIteml(item);
|
for (ItemModel itemModel : list) {
|
String townId = itemModel.getCityId();
|
if (null != townId && !"".equals(townId)) {
|
Map<String, Object> objmap = operateManageDao.queryCityByTownId(townId);
|
String cityId = objmap.get("cid").toString();
|
String pid = objmap.get("pid").toString();
|
|
List<List<String>> resList = new ArrayList<>();
|
List<String> detailList = new ArrayList<>();
|
detailList.add(pid);
|
detailList.add(cityId);
|
detailList.add(townId);
|
resList.add(detailList);
|
itemModel.setResultArea(resList);
|
|
}
|
|
}
|
map.put("data", list);
|
map.put("count", operateManageDao.queryOperaItemlCount(item));
|
map.put("code", 0);
|
return map;
|
}
|
|
public Map<String, Object> queryPackageOperaIteml(ItemModel item) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
item.setPartnerIds(partnerIds);
|
Map<String, Object> map = new HashMap<>();
|
int p = item.getPageNum();
|
p = (p - 1) * item.getLimitNum();
|
item.setPageNum(p);
|
List<ItemModel> list = operateManageDao.queryOperaIteml1(item);
|
map.put("data", list);
|
map.put("count", operateManageDao.queryOperaItemlCount1(item));
|
map.put("code", 0);
|
return map;
|
}
|
|
@Transactional(rollbackFor = SettingConsoleService.RollbackException.class)
|
public Map<String, Object> addOperateParent(ItemModel item) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds && partnerIds.size() > 0) {
|
CoreUser user = platformService.getCurrentUser();
|
item.setPartnerId(user.getId() + "");
|
}
|
Map<String, Object> map = new HashMap<>();
|
item.setItemType(System.currentTimeMillis() + "" + (int) (Math.random() * (10000 - 10) + 10));
|
item.setCreateTime(sdf.format(new Date()));
|
// 对排序字段进行处理
|
setSort(item);
|
List<String> townIdList = item.getTownIdList();
|
int i = 0;
|
for (String townId : townIdList) {
|
item.setCityId(townId);
|
i = settingConsoleDao.insertItemOperate(item);
|
}
|
setSortAggin(item);
|
map.put("count", i);
|
map.put("code", 0);
|
return map;
|
}
|
|
@Transactional(rollbackFor = SettingConsoleService.RollbackException.class)
|
public Map<String, Object> addOperateParent1(ItemModel item) {
|
//CoreUser user = platformService.getCurrentUser();
|
//item.setPartnerId(item.getPackageId().getId()+"");
|
Map<String, Object> map = new HashMap<>();
|
item.setItemType(System.currentTimeMillis() + "" + (int) (Math.random() * (10000 - 10) + 10));
|
item.setCreateTime(sdf.format(new Date()));
|
// 对排序字段进行处理
|
setSort1(item);
|
int i = settingConsoleDao.insertItemOperate1(item);
|
setSortAggin1(item);
|
// updateItemForRedis();
|
//redisService.remove("environmentalInfoList");
|
//redisService.remove("environmentalInfoListNew");
|
//redisService.remove("xzx:sys:category");
|
|
map.put("count", i);
|
map.put("code", 0);
|
return map;
|
}
|
|
void setSort1(ItemModel item) {
|
ItemModel im = new ItemModel();
|
im.setLimit(1000);
|
im.setPackageId(item.getPackageId());
|
List<ItemModel> list = settingConsoleDao.querIteml1(im);
|
log.info("------list.size() : {} -----", list.size());
|
// 找到原始的sort数据
|
int originalSort = item.getSort();
|
|
for (ItemModel imx : list) {
|
if (originalSort <= imx.getSort()) {
|
imx.setSort(imx.getSort() + 1);
|
}
|
}
|
for (ItemModel imx : list) {
|
settingConsoleDao.updateItem1(imx);
|
}
|
}
|
|
void setSort(ItemModel item) {
|
ItemModel im = new ItemModel();
|
im.setLimit(1000);
|
im.setParentId(item.getParentId());
|
List<ItemModel> list = settingConsoleDao.querIteml(im);
|
log.info("------list.size() : {} -----", list.size());
|
// 找到原始的sort数据
|
int originalSort = item.getSort();
|
|
for (ItemModel imx : list) {
|
if (originalSort <= imx.getSort()) {
|
imx.setSort(imx.getSort() + 1);
|
}
|
}
|
for (ItemModel imx : list) {
|
settingConsoleDao.updateItem(imx);
|
}
|
}
|
|
void setSortAggin(ItemModel item) {
|
ItemModel im = new ItemModel();
|
im.setLimit(1000);
|
im.setParentId(item.getParentId());
|
List<ItemModel> list = settingConsoleDao.querIteml(im);
|
list.sort((x, y) -> Integer.compare(x.getSort(), y.getSort()));
|
int f = 1;
|
for (ItemModel itemModel : list) {
|
itemModel.setSort(f++);
|
}
|
for (ItemModel itemModel : list) {
|
settingConsoleDao.updateItem(itemModel);
|
}
|
}
|
|
void setSortAggin1(ItemModel item) {
|
ItemModel im = new ItemModel();
|
im.setLimit(1000);
|
im.setParentId(item.getParentId());
|
List<ItemModel> list = settingConsoleDao.querIteml1(im);
|
list.sort((x, y) -> Integer.compare(x.getSort(), y.getSort()));
|
int f = 1;
|
for (ItemModel itemModel : list) {
|
itemModel.setSort(f++);
|
}
|
for (ItemModel itemModel : list) {
|
settingConsoleDao.updateItem1(itemModel);
|
}
|
}
|
|
/**
|
* 更新redis里面的数据
|
*/
|
public void updateItemForRedis() {
|
List<ItemModel> list = operateManageDao.queryOperaItemAll();
|
list = parentUtils(list);
|
Gson gson = new Gson();
|
String str = gson.toJson(list);
|
redisService.set("environmentalInfoList", str);
|
}
|
|
public void updateItemForRedis1() {
|
List<ItemModel> list = operateManageDao.queryOperaItemAll1();
|
list = parentUtils(list);
|
Gson gson = new Gson();
|
String str = gson.toJson(list);
|
//redisService.set("environmentalInfoList", str);
|
}
|
|
// 递归操作父子结构数据
|
List<ItemModel> parentUtils(List<ItemModel> parentlist) {
|
List<ItemModel> list = new ArrayList<>();
|
for (ItemModel itemModel : parentlist) {
|
if (itemModel.getParentId() == null) {
|
itemModel.setList(childUtils(parentlist, itemModel.getId()));
|
list.add(itemModel);
|
}
|
}
|
log.info("----更新redis里面的分类数据:{}", list);
|
return list;
|
}
|
|
List<ItemModel> childUtils(List<ItemModel> childlist, Long id) {
|
List<ItemModel> list = new ArrayList<>();
|
for (ItemModel itemModel : childlist) {
|
if (itemModel.getParentId() == id) {
|
itemModel.setList(childUtils(childlist, itemModel.getId()));
|
list.add(itemModel);
|
}
|
}
|
return list;
|
}
|
|
public Map<String, Object> delPackageOperateItem(ItemModel item) {
|
Map<String, Object> map = new HashMap<>();
|
ItemModel im = new ItemModel();
|
im.setLimit(10);
|
im.setParentId(item.getId());
|
List<ItemModel> list = settingConsoleDao.querIteml1(im);
|
if (list.size() > 0) {
|
map.put("code", -1);
|
map.put("num", 0);
|
return map;
|
}
|
int i = settingConsoleDao.delItem1(item);
|
map.put("code", 0);
|
map.put("num", i);
|
return map;
|
}
|
|
public Map<String, Object> delOperateItem(ItemModel item) {
|
Map<String, Object> map = new HashMap<>();
|
ItemModel im = new ItemModel();
|
im.setLimit(10);
|
im.setParentId(item.getId());
|
List<ItemModel> list = settingConsoleDao.querIteml(im);
|
if (list.size() > 0) {
|
map.put("code", -1);
|
map.put("num", 0);
|
return map;
|
}
|
int i = settingConsoleDao.delItem(item);
|
// updateItemForRedis();
|
redisService.remove("environmentalInfoList");
|
redisService.remove("environmentalInfoListNew");
|
redisService.remove("xzx:sys:category");
|
map.put("code", 0);
|
map.put("num", i);
|
return map;
|
}
|
|
/**
|
* 更新
|
*
|
* @param item
|
* @return
|
*/
|
@Transactional(rollbackFor = SettingConsoleService.RollbackException.class)
|
public Map<String, Object> updateOperateItem(ItemModel item) {
|
Map<String, Object> map = new HashMap<>();
|
//ItemModel model = operateManageDao.queryItemById(item);
|
String cityId = item.getCityId();
|
//根据区域查询围栏
|
List<OrderModel> orderList = operateManageDao.queryOrderByCityId(cityId);
|
if (null != orderList && orderList.size() > 0) {
|
return null;
|
}
|
// 对排序字段进行处理
|
setSort(item);
|
int i = settingConsoleDao.updateItem(item);
|
setSortAggin(item);
|
|
redisService.remove("environmentalInfoList");
|
redisService.remove("environmentalInfoListNew");
|
//redisService.hdel( "xzx:sys:category", item.getCityId());
|
//redisService.remove("xzx:sys:category");
|
//redisService.remove("");
|
//updateItemForRedis();
|
map.put("code", 0);
|
map.put("num", i);
|
return map;
|
}
|
|
@Transactional(rollbackFor = SettingConsoleService.RollbackException.class)
|
public Map<String, Object> updateOperateItem1(ItemModel item) {
|
Map<String, Object> map = new HashMap<>();
|
// 对排序字段进行处理
|
setSort1(item);
|
int i = settingConsoleDao.updateItem1(item);
|
setSortAggin1(item);
|
map.put("code", 0);
|
map.put("num", i);
|
return map;
|
}
|
|
public Map<String, Object> queryOperateItemList(ItemModel item) {
|
Map<String, Object> map = new HashMap<>();
|
int p = item.getPageNum();
|
p = (p - 1) * item.getLimitNum();
|
item.setPageNum(p);
|
List<ItemModel> list = operateManageDao.queryOperateItemList(item);
|
for (ItemModel obj : list) {
|
obj = queryChildItem(obj);
|
}
|
map.put("data", list);
|
map.put("count", operateManageDao.queryOperateItemCount(item));
|
map.put("code", 0);
|
return map;
|
}
|
|
public Map<String, Object> queryOperateItemList1(ItemModel item) {
|
Map<String, Object> map = new HashMap<>();
|
int p = item.getPageNum();
|
p = (p - 1) * item.getLimitNum();
|
item.setPageNum(p);
|
List<ItemModel> list = operateManageDao.queryOperateItemList1(item);
|
for (ItemModel obj : list) {
|
obj = queryChildItem(obj);
|
}
|
map.put("data", list);
|
map.put("count", operateManageDao.queryOperateItemCount1(item));
|
map.put("code", 0);
|
return map;
|
}
|
|
/**
|
* 无限子类算法(时间有限)
|
*
|
* @param item
|
* @return
|
*/
|
private ItemModel queryChildItem(ItemModel item) {
|
List<ItemModel> child = operateManageDao.queryOperateItemChildren(item);
|
List<ItemModel> childm = new ArrayList<>();
|
for (ItemModel obj : child) {
|
childm.add(obj);
|
}
|
item.setChildren(childm);
|
for (ItemModel cObj : childm) {
|
if (null != cObj.getParentId()) {
|
queryChildItem(cObj);
|
}
|
}
|
return item;
|
}
|
|
|
public Map<String, Object> querySysStorageList(SysStorageApiModel storageModel) {
|
List<String> partnerIds = cityPartnerService.queryPartnerByCurrent();
|
if (null != partnerIds && partnerIds.size() > 0) {
|
String partnerId = partnerIds.get(0);
|
List<String> townIds = cityPartnerService.queryTownIdsByPartnerId(partnerId);
|
storageModel.setTownIds(townIds);
|
}
|
Map<String, Object> m = new HashMap<>();
|
int p = storageModel.getPage();
|
p = (p - 1) * storageModel.getLimit();
|
storageModel.setPage(p);
|
m.put("data", operateManageDao.querySysStorageApiList(storageModel));
|
m.put("count", operateManageDao.querySysStorageApiCount(storageModel));
|
m.put("code", 0);
|
return m;
|
}
|
|
/**
|
* 修改仓库
|
*
|
* @param storageModel
|
* @return
|
*/
|
public int updateSysStorageApi(SysStorageApiModel storageModel) {
|
return operateManageDao.updateSysStorageApi(storageModel);
|
}
|
|
/**
|
* 删除仓库
|
*
|
* @param storageModel
|
* @return
|
*/
|
public int delSysStorageApi(SysStorageApiModel storageModel) {
|
return operateManageDao.delSysStorageApi(storageModel);
|
}
|
|
/**
|
* 添加仓库
|
*
|
* @param storageModel
|
* @return
|
*/
|
public int addSysStorageApi(SysStorageApiModel storageModel) {
|
storageModel.setCreateTime(sdf.format(new Date()));
|
return operateManageDao.addSysStorageApi(storageModel);
|
}
|
|
/**
|
* 查询
|
*
|
* @param bannerModel
|
* @return
|
*/
|
public Map<String, Object> queryBannerApiList(BannerModel bannerModel) {
|
Map<String, Object> map = new HashMap<>();
|
int p = bannerModel.getPage();
|
p = (p - 1) * bannerModel.getLimit();
|
bannerModel.setPage(p);
|
map.put("data", settingConsoleDao.queryBannerList(bannerModel));
|
map.put("count", settingConsoleDao.queryBannerListCount(bannerModel));
|
map.put("code", 0);
|
return map;
|
}
|
|
/**
|
* 添加
|
*
|
* @param bannerModel
|
* @return
|
*/
|
public JsonResult insertBannerApi(BannerModel bannerModel) {
|
CoreUser user = platformService.getCurrentUser();
|
XzxCityPartner partner = cityPartnerService.queryById(user.getId());
|
if (null != partner) {
|
bannerModel.setPartnerId(user.getId() + "");
|
} else {
|
if (null != bannerModel.getCityId() && !"".equals(bannerModel.getCityId())) {
|
partner = cityPartnerService.queryCityPartnerByCityId(bannerModel.getCityId());
|
if (null != partner) {
|
bannerModel.setPartnerId(partner.getId() + "");
|
}
|
}
|
}
|
|
bannerModel.setCreateTime(sdf.format(new Date()));
|
if (settingConsoleDao.insertBanner(bannerModel) > 0) {
|
return JsonResult.success();
|
} else {
|
return JsonResult.failMessage("保存失败");
|
}
|
}
|
|
/**
|
* 更新
|
*
|
* @param bannerModel
|
* @return
|
*/
|
public int updateBannerApi(BannerModel bannerModel) {
|
return settingConsoleDao.updateBanner(bannerModel);
|
}
|
|
/**
|
* 删除
|
*
|
* @param id
|
* @return
|
*/
|
public int delBannerApi(String id) {
|
//redisService.remove();
|
return settingConsoleDao.delBanner(id);
|
}
|
|
/**
|
* 根据条件查询
|
*
|
* @param query
|
*/
|
public void moneySetting(PageQuery<CoreSetMoney> query) {
|
PageQuery<CoreSetMoney> ret = settingConsoleDao.queryByCondtion(query);
|
queryListAfter(ret.getList());
|
}
|
|
@Transactional(rollbackFor = {})
|
public void updateMoneySetting(CoreSetMoney money) {
|
if (!StringUtils.isEmpty(money.getAgentPrice())) {
|
settingConsoleDao.updateAgentPrice(money);
|
}
|
if (!StringUtils.isEmpty(money.getTimeInterval())) {
|
settingConsoleDao.updateTimeInterval(money);
|
}
|
if (!StringUtils.isEmpty(money.getStartTime())) {
|
settingConsoleDao.updateStratTime(money);
|
}
|
if (!StringUtils.isEmpty(money.getEndTime())) {
|
settingConsoleDao.updateEndTime(money);
|
}
|
if (!StringUtils.isEmpty(money.getOverdrawPrice())) {
|
Map<String, Object> m = settingConsoleDao.queryOverdrawPrice();
|
String limitPrice = m.get("configValue").toString();
|
List<String> orderIds = settingConsoleDao.queryRKOrderIds(m.get("configValue").toString(), "1");
|
if (null != orderIds && orderIds.size() > 0) {
|
if (money.getOverdrawPrice().equals(m.get("configValue").toString())) {
|
// 需要更新所有account表的透支额度,但是不更新已经修改过的用户额度
|
money.setWarehousingPrice(DoubleUtil.roundTwo(money.getWarehousingPrice()));
|
money.setOverdrawPrice(DoubleUtil.roundTwo(money.getOverdrawPrice()));
|
settingConsoleDao.updateOverdrawPrice(money);
|
settingConsoleDao.updateAccountOverdrawPrice(money.getOverdrawPrice(), m.get("configValue").toString(), orderIds, null);
|
} else {
|
money.setWarehousingPrice(DoubleUtil.roundTwo(money.getWarehousingPrice()));
|
money.setOverdrawPrice(DoubleUtil.roundTwo(money.getOverdrawPrice()));
|
settingConsoleDao.updateOverdrawPrice(money);
|
settingConsoleDao.updateAccountOverdrawPrice(money.getOverdrawPrice(), m.get("configValue").toString(), orderIds, "1");
|
|
}
|
}
|
|
|
}
|
if (!StringUtils.isEmpty(money.getWarehousingPrice())) {
|
Map<String, Object> m = settingConsoleDao.queryWarehousingPrice();
|
List<String> orderIds = settingConsoleDao.queryRKOrderIds(m.get("configValue").toString(), null);
|
if (null != orderIds && orderIds.size() > 0) {
|
if (money.getOverdrawPrice().equals(m.get("configValue").toString())) {
|
money.setWarehousingPrice(DoubleUtil.roundTwo(money.getWarehousingPrice()));
|
money.setOverdrawPrice(DoubleUtil.roundTwo(money.getOverdrawPrice()));
|
settingConsoleDao.updateWarehousingPrice(money);
|
settingConsoleDao.updateAccountWarehousingPrice(money.getWarehousingPrice(), m.get("configValue").toString(), orderIds, null);
|
|
} else {
|
money.setWarehousingPrice(DoubleUtil.roundTwo(money.getWarehousingPrice()));
|
money.setOverdrawPrice(DoubleUtil.roundTwo(money.getOverdrawPrice()));
|
settingConsoleDao.updateWarehousingPrice(money);
|
settingConsoleDao.updateAccountWarehousingPrice(money.getWarehousingPrice(), m.get("configValue").toString(), orderIds, "1");
|
|
}
|
}
|
|
|
}
|
if (!StringUtils.isEmpty(money.getRechargePrice())) {
|
settingConsoleDao.updateRechargePrice(money);
|
}
|
|
if (!StringUtils.isEmpty(money.getOrderTimeout())) {
|
settingConsoleDao.updateOrderTimeout(money);
|
}
|
if (!StringUtils.isEmpty(money.getOrderTotal())) {
|
settingConsoleDao.updateOrderTotal(money);
|
}
|
|
}
|
|
public UserModel checkUserNameByPhone(String phone, String type) {
|
return operateManageDao.checkUserNameByPhone(phone, type);
|
}
|
}
|