diff --git a/electripper-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java b/electripper-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java index 1b3e705..f192669 100644 --- a/electripper-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java +++ b/electripper-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java @@ -99,16 +99,16 @@ public class AppController extends BaseController /** - * 根据定位获取运营区详细信息 device not subscribed + * 根据定位获取运营区详细信息 */ @GetMapping(value = "/area/info") - public AjaxResult areaInfo(String longitude,String latitude, String deptId) + public AjaxResult areaInfo(String longitude,String latitude, String deptId,String sn) { if(StrUtil.isBlank(longitude) || StrUtil.isBlank(latitude)){ logger.info("没有经纬度参数:【longitude={}】,【latitude={}】",longitude,latitude); return error("请传经纬度参数"+"【longitude="+longitude+"】,【latitude="+latitude+"】"); } - EtOperatingArea area = etOperatingAreaService.getAreaInfoByLocation(longitude,latitude,deptId); + EtOperatingArea area = etOperatingAreaService.getAreaInfoByLocation(longitude,latitude,deptId,sn); return success(area); } diff --git a/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java b/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java index 7a191c0..356cfaa 100644 --- a/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java +++ b/electripper-admin/src/main/java/com/ruoyi/web/controller/iot/receive/ReceiveController.java @@ -165,7 +165,10 @@ public class ReceiveController { device.setVoltage(divide.toString());//电压 // 根据电压计算续航里程 EtModel model = etModelService.selectEtModelByModelId(device.getModelId()); - Integer remainingMileage = CommonUtil.getRemainingMileage(device.getVoltage(), model.getFullVoltage(), model.getLowVoltage(), model.getFullEndurance()); + Integer remainingMileage = 0; + if(StrUtil.isNotBlank(device.getVoltage())){ + remainingMileage = CommonUtil.getRemainingMileage(device.getVoltage(), model.getFullVoltage(), model.getLowVoltage(), model.getFullEndurance()); + } Integer electricQuantity = CommonUtil.getElectricQuantity(device.getVoltage(), model.getFullVoltage(), model.getLowVoltage());//电量百分百 device.setRemainingMileage(remainingMileage); device.setRemainingPower(electricQuantity.toString()); diff --git a/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsArticleController.java b/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsArticleController.java index 4d1eba7..33eaeb9 100644 --- a/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsArticleController.java +++ b/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsArticleController.java @@ -41,7 +41,7 @@ public class AsArticleController extends BaseController public TableDataInfo list(EtArticle etArticle) { startPage(); - List list = asArticleService.selectAsArticleList(etArticle); + List list = asArticleService.selectAsArticleListByIsolate(etArticle); return getDataTable(list); } @@ -53,7 +53,7 @@ public class AsArticleController extends BaseController @PostMapping("/export") public void export(HttpServletResponse response, EtArticle etArticle) { - List list = asArticleService.selectAsArticleList(etArticle); + List list = asArticleService.selectAsArticleListByIsolate(etArticle); ExcelUtil util = new ExcelUtil(EtArticle.class); util.exportExcel(response, list, "文章数据"); } diff --git a/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsDeviceController.java b/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsDeviceController.java index f3c737e..25cef9e 100644 --- a/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsDeviceController.java +++ b/electripper-admin/src/main/java/com/ruoyi/web/controller/system/AsDeviceController.java @@ -78,6 +78,9 @@ public class AsDeviceController extends BaseController @PostMapping public AjaxResult add(@RequestBody AsDevice asDevice) { + if(!asDeviceService.checkSNUnique(asDevice)){ + return error("新增车辆'" + asDevice.getDeviceName() + "'失败,SN已存在"); + } return toAjax(asDeviceService.insertAsDevice(asDevice)); } @@ -89,6 +92,9 @@ public class AsDeviceController extends BaseController @PutMapping public AjaxResult edit(@RequestBody AsDevice asDevice) { + if(!asDeviceService.checkSNUnique(asDevice)){ + return error("修改车辆'" + asDevice.getDeviceName() + "'失败,SN已存在"); + } return toAjax(asDeviceService.updateAsDevice(asDevice)); } diff --git a/electripper-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/electripper-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 7299673..9f10078 100644 --- a/electripper-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/electripper-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -109,7 +109,7 @@ public class SysUserController extends BaseController List roles = roleService.selectRoleAll(); ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList())); ajax.put("posts", postService.selectPostAll()); - ajax.put("areas", etOperatingAreaService.selectAreaAll()); + ajax.put("areas", etOperatingAreaService.selectEtOperatingAreaListWithisolate(new EtOperatingArea())); if (StringUtils.isNotNull(userId)) { SysUser sysUser = userService.selectUserById(userId); diff --git a/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/AsUser.java b/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/AsUser.java index 5aa9b9f..05849d7 100644 --- a/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/AsUser.java +++ b/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/AsUser.java @@ -109,6 +109,17 @@ public class AsUser extends BaseEntity /** 是否认证:0-未认证;1-已认证 */ public String isAuthentication; + /** 小程序名称*/ + public String appName; + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + public String getIsAuthentication() { return isAuthentication; } diff --git a/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 01a13ec..7da58aa 100644 --- a/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/electripper-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -63,9 +63,18 @@ public class SysDept extends BaseEntity /** 是否开启分账 */ private String isProfitSharing; + /** 是否使用创享电动车小程序 */ + private String isUsePlatformApp; + + /** 域名 */ + private String domain; + /** appid */ private String appid; + /** 小程序名称 */ + private String appName; + /** appSecret */ private String appSecret; @@ -91,6 +100,30 @@ public class SysDept extends BaseEntity return platformServiceFee; } + public String getIsUsePlatformApp() { + return isUsePlatformApp; + } + + public void setIsUsePlatformApp(String isUsePlatformApp) { + this.isUsePlatformApp = isUsePlatformApp; + } + + public String getDomain() { + return domain; + } + + public void setDomain(String domain) { + this.domain = domain; + } + + public String getAppName() { + return appName; + } + + public void setAppName(String appName) { + this.appName = appName; + } + public void setPlatformServiceFee(String platformServiceFee) { this.platformServiceFee = platformServiceFee; } diff --git a/electripper-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/electripper-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 762fdb9..39a02cd 100644 --- a/electripper-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/electripper-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -232,7 +232,7 @@ public class SysLoginService throw new ServiceException("凭证无效"); } phoneNumber = wxMaPhoneNumberInfo.getPhoneNumber(); - user = asUserService.selectUserByPhone(phoneNumber); + user = asUserService.selectUserByWxopenid(openId); if(ObjectUtils.isEmpty(user)){ AsUser asUser = new AsUser(); asUser.setUserName(phoneNumber); @@ -242,9 +242,11 @@ public class SysLoginService asUser.setCreateTime(DateUtils.getNowDate()); asUser.setWxopenid(openId); asUser.setAreaId(Long.parseLong(areaId)); + asUser.setAppName(dept.getAppName()); int i = asUserService.insertUser(asUser); user = asUser; }else{ + user.setAppName(dept.getAppName()); user.setAreaId(Long.parseLong(areaId)); int i = asUserService.updateUser(user); } diff --git a/electripper-system/src/main/java/com/ruoyi/system/domain/AsDevice.java b/electripper-system/src/main/java/com/ruoyi/system/domain/AsDevice.java index 496a735..da0f635 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/domain/AsDevice.java +++ b/electripper-system/src/main/java/com/ruoyi/system/domain/AsDevice.java @@ -44,6 +44,11 @@ public class AsDevice extends BaseEntityPlus implements Serializable { @Excel(name = "设备SN号") private String sn; + /** 二维码文本 */ + @Excel(name = "二维码文本") + @TableField(exist = false) + private String qrText; + /** 分区 */ @Excel(name = "分区id") private Long areaId; diff --git a/electripper-system/src/main/java/com/ruoyi/system/domain/EtOperatingArea.java b/electripper-system/src/main/java/com/ruoyi/system/domain/EtOperatingArea.java index 4d9efab..24e2f48 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/domain/EtOperatingArea.java +++ b/electripper-system/src/main/java/com/ruoyi/system/domain/EtOperatingArea.java @@ -48,6 +48,10 @@ public class EtOperatingArea extends BaseEntityPlus implements Serializable // @TableField(exist = false) private String boundaryStr; + /** 图片 */ + @Excel(name = "图片") + private String picture; + /** 经度 */ @Excel(name = "经度") private String longitude; diff --git a/electripper-system/src/main/java/com/ruoyi/system/mapper/AsDeviceMapper.java b/electripper-system/src/main/java/com/ruoyi/system/mapper/AsDeviceMapper.java index 363a136..fbb4790 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/mapper/AsDeviceMapper.java +++ b/electripper-system/src/main/java/com/ruoyi/system/mapper/AsDeviceMapper.java @@ -107,4 +107,6 @@ public interface AsDeviceMapper extends BaseMapper public int batchDisable(String[] sns); + + AsDevice checkSNUnique(String sn); } diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/IAsArticleService.java b/electripper-system/src/main/java/com/ruoyi/system/service/IAsArticleService.java index da60e36..19e68fd 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/IAsArticleService.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/IAsArticleService.java @@ -28,6 +28,16 @@ public interface IAsArticleService */ public List selectAsArticleList(EtArticle etArticle); + + /** + * 查询文章列表(带数据隔离) + * + * @param etArticle 文章 + * @return 文章集合 + */ + public List selectAsArticleListByIsolate(EtArticle etArticle); + + /** * 新增文章 * diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java b/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java index de5a78d..92f4111 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/IAsDeviceService.java @@ -246,6 +246,11 @@ public interface IAsDeviceService extends IService */ boolean isOnline(String sn); + /** + * 判断是否重复 + */ + boolean checkSNUnique(AsDevice asDevice); + // /** // * 是否靠近运营区边界 // */ diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/IEtOperatingAreaService.java b/electripper-system/src/main/java/com/ruoyi/system/service/IEtOperatingAreaService.java index 81fa979..48ae758 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/IEtOperatingAreaService.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/IEtOperatingAreaService.java @@ -95,7 +95,7 @@ public interface IEtOperatingAreaService extends IService * @param deptId 运营商id * @return 结果 */ - EtOperatingArea getAreaInfoByLocation(String longitude, String latitude,String deptId); + EtOperatingArea getAreaInfoByLocation(String longitude, String latitude,String deptId,String sn); /** * 根据部门ID获取运营区选择框列表 diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsArticleServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsArticleServiceImpl.java index f90f6d1..4febb23 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsArticleServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsArticleServiceImpl.java @@ -51,6 +51,22 @@ public class AsArticleServiceImpl implements IAsArticleService */ @Override @DataScope(deptAlias = "d") + public List selectAsArticleListByIsolate(EtArticle etArticle) + { + List etArticles = asArticleMapper.selectAsArticleList(etArticle); + for (EtArticle etArticle1 : etArticles) { + etArticle.setFormatCreateTime(DateUtils.getYYYY_MM_DD(etArticle1.getCreateTime())); + } + return etArticles; + } + + /** + * 查询文章列表 + * + * @param etArticle 文章 隔离 + * @return 文章 + */ + @Override public List selectAsArticleList(EtArticle etArticle) { List etArticles = asArticleMapper.selectAsArticleList(etArticle); diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java index e689631..4b154d0 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/AsDeviceServiceImpl.java @@ -11,9 +11,13 @@ import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.constant.IotConstants; import com.ruoyi.common.constant.ServiceConstants; +import com.ruoyi.common.constant.UserConstants; +import com.ruoyi.common.core.domain.entity.SysDept; +import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.CommonUtil; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.http.HttpUtils; import com.ruoyi.common.utils.map.GeoUtils; import com.ruoyi.common.utils.onenet.IotUtil; @@ -88,6 +92,9 @@ public class AsDeviceServiceImpl extends ServiceImpl i @Autowired private ScheduledExecutorService scheduledExecutorService; + @Autowired + private IWxPayService wxPayService; + @Value(value = "${iot.iotUrl}") private String iotUrl; @@ -147,8 +154,12 @@ public class AsDeviceServiceImpl extends ServiceImpl i if(ObjectUtil.isNotNull(model)){ asDevice.setModel(model.getModel()); } - asDevice.setLocation(CommonUtil.getAddressByGeo(asDevice.getLongitude() + ","+asDevice.getLatitude())); - asDevice.setRemainingMileage(CommonUtil.getRemainingMileage(asDevice.getVoltage(),model.getFullVoltage(),model.getLowVoltage(),model.getFullEndurance())); + if(StrUtil.isNotBlank(asDevice.getLongitude()) && StrUtil.isNotBlank(asDevice.getLatitude())){ + asDevice.setLocation(CommonUtil.getAddressByGeo(asDevice.getLongitude() + ","+asDevice.getLatitude())); + } + if(StrUtil.isNotBlank(asDevice.getVoltage())){ + asDevice.setRemainingMileage(CommonUtil.getRemainingMileage(asDevice.getVoltage(),model.getFullVoltage(),model.getLowVoltage(),model.getFullEndurance())); + } //正在进行中的订单 EtOrder order = new EtOrder(); order.setType(ServiceConstants.ORDER_TYPE_RIDING); @@ -220,6 +231,9 @@ public class AsDeviceServiceImpl extends ServiceImpl i String typeName = sysDictDataService.selectDictLabel("as_device_status", status); asDevice1.setStatusStr(typeName); } + SysDept sysDept = wxPayService.getDeptObjByAreaId(areaId); + asDevice1.setQrText(sysDept.getDomain()+"?sn="+asDevice1.getSn()); + //https://dianche.chuantewulian.cn?sn=https://dche.ccttiot.com?sn=3000900 } return asDevices; } @@ -1384,6 +1398,20 @@ public class AsDeviceServiceImpl extends ServiceImpl i return false; } + /** + * 检查SN是否唯一 + */ + @Override + public boolean checkSNUnique(AsDevice asDevice) { + Long deviceId = StringUtils.isNull(asDevice.getDeviceId()) ? -1L : asDevice.getDeviceId(); + AsDevice info = asDeviceMapper.checkSNUnique(asDevice.getSn()); + if (StringUtils.isNotNull(info) && info.getDeviceId().longValue() != deviceId.longValue()) + { + return UserConstants.NOT_UNIQUE; + } + return UserConstants.UNIQUE; + } + /** * 判断是否靠近边界 diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtFaultServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtFaultServiceImpl.java index 3fdb450..472953e 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtFaultServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtFaultServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.system.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.ServiceConstants; @@ -131,7 +132,9 @@ public class EtFaultServiceImpl implements IEtFaultService throw new ServiceException("该设备不存在"); } //解析地址,将地址保存数据库 - etFault.setAddress(CommonUtil.getAddressByGeo(asDevice.getLongitude() + ","+asDevice.getLatitude())); + if(StrUtil.isNotBlank(asDevice.getLongitude()) && StrUtil.isNotBlank(asDevice.getLatitude())){ + etFault.setAddress(CommonUtil.getAddressByGeo(asDevice.getLongitude() + ","+asDevice.getLatitude())); + } etFault.setAreaId(asDevice.getAreaId()); etFault.setCreateTime(DateUtils.getNowDate()); setType(etFault); diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java index 27e6295..94e7c52 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/EtOperatingAreaServiceImpl.java @@ -19,6 +19,7 @@ import com.ruoyi.common.utils.map.GeoUtils; import com.ruoyi.system.domain.AsDevice; import com.ruoyi.system.domain.EtAreaRule; import com.ruoyi.system.domain.SysStudent; +import com.ruoyi.system.mapper.AsDeviceMapper; import com.ruoyi.system.mapper.EtAreaRuleMapper; import com.ruoyi.system.mapper.SysStudentMapper; import com.ruoyi.system.service.IAsDeviceService; @@ -63,6 +64,9 @@ public class EtOperatingAreaServiceImpl extends ServiceImpl etOperatingAreas = etOperatingAreaService.selectEtOperatingAreaList(area1); - EtOperatingArea area = null; - for(EtOperatingArea etOperatingArea:etOperatingAreas){ - String boundary = etOperatingArea.getBoundary(); - if(StrUtil.isNotBlank(boundary)){ - Geometry geometry = GeoUtils.fromWkt(boundary); - Boolean inCircle = GeoUtils.isInCircle(longitude, latitude, geometry); - if(inCircle){ - area = etOperatingArea; - break; + public EtOperatingArea getAreaInfoByLocation(String longitude, String latitude,String deptId,String sn) { + AsDevice device = asDeviceMapper.selectAsDeviceBySn(sn); + if(StrUtil.isNotBlank(sn) && ObjectUtil.isNotNull(device)){ + return dao.selectById(device.getAreaId()); + }else{ + double lon = Double.parseDouble(longitude); + double lat = Double.parseDouble(latitude); + //如果是创享小程序,根据‘是否使用创享电动车小程序’查询出所有为是的运营商下所有的运营区 + EtOperatingArea area1 = new EtOperatingArea(); + area1.setDeptId(Long.parseLong(deptId)); + List etOperatingAreas = etOperatingAreaService.selectEtOperatingAreaList(area1); + EtOperatingArea area = null; + for(EtOperatingArea etOperatingArea:etOperatingAreas){ + String boundary = etOperatingArea.getBoundary(); + if(StrUtil.isNotBlank(boundary)){ + Geometry geometry = GeoUtils.fromWkt(boundary); + Boolean inCircle = GeoUtils.isInCircle(longitude, latitude, geometry); + if(inCircle){ + area = etOperatingArea; + break; + } } } - } - if(ObjectUtil.isNotNull(area)){ - /** 在运营区内直接返回*/ - log.info("在【{}】运营区内",area.getAreaName()); - return area; - }else{ - /** 不在任何运营区内,获取到最近一个运营区*/ - log.info("不在任何运营区内,获取到最近一个运营区"); - EtOperatingArea closestArea = null; - double minDistance = Double.MAX_VALUE; - GeometryFactory geometryFactory = new GeometryFactory(); - Coordinate coordinate = new Coordinate(lon, lat); - Point point = geometryFactory.createPoint(coordinate); - if(ObjectUtil.isNotNull(etOperatingAreas) && etOperatingAreas.size()>0){ - for(EtOperatingArea etOperatingArea:etOperatingAreas){ - Geometry geometry = GeoUtils.fromWkt(etOperatingArea.getBoundary()); - if (geometry.contains(point)) { - return etOperatingArea; - }else{ - // 获取多边形的外边界 - Coordinate[] coordinates = geometry.getCoordinates(); - for (Coordinate coord : coordinates) { - double distance = GeoUtils.calculateDistance(lat, lon, coord.y, coord.x); - if (distance < minDistance) { - minDistance = distance; - closestArea = etOperatingArea; + if(ObjectUtil.isNotNull(area)){ + /** 在运营区内直接返回*/ + log.info("在【{}】运营区内",area.getAreaName()); + return area; + }else{ + /** 不在任何运营区内,获取到最近一个运营区*/ + log.info("不在任何运营区内,获取到最近一个运营区"); + EtOperatingArea closestArea = null; + double minDistance = Double.MAX_VALUE; + GeometryFactory geometryFactory = new GeometryFactory(); + Coordinate coordinate = new Coordinate(lon, lat); + Point point = geometryFactory.createPoint(coordinate); + if(ObjectUtil.isNotNull(etOperatingAreas) && etOperatingAreas.size()>0){ + for(EtOperatingArea etOperatingArea:etOperatingAreas){ + Geometry geometry = GeoUtils.fromWkt(etOperatingArea.getBoundary()); + if (geometry.contains(point)) { + return etOperatingArea; + }else{ + // 获取多边形的外边界 + Coordinate[] coordinates = geometry.getCoordinates(); + for (Coordinate coord : coordinates) { + double distance = GeoUtils.calculateDistance(lat, lon, coord.y, coord.x); + if (distance < minDistance) { + minDistance = distance; + closestArea = etOperatingArea; + } } } } + }else{ + throw new ServiceException("没有找到任何运营区"); } - }else{ - throw new ServiceException("没有找到任何运营区"); + return closestArea; } - return closestArea; } + } /** diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index be3ec00..4fc76cf 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.annotation.DataScope; import com.ruoyi.common.constant.ServiceConstants; @@ -248,6 +249,11 @@ public class SysDeptServiceImpl implements ISysDeptService throw new ServiceException("部门停用,不允许新增"); } dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); + if (dept.getIsUsePlatformApp().equals("true")) { + SysDept platform = deptMapper.selectDeptById(100L); + dept.setAppid(platform.getAppid()); + dept.setAppSecret(platform.getAppSecret()); + } int i = deptMapper.insertDept(dept); Long[] areaIds = dept.getAreaIds(); if (StringUtils.isNotNull(areaIds)){ @@ -284,6 +290,11 @@ public class SysDeptServiceImpl implements ISysDeptService dept.setAncestors(newAncestors); updateDeptChildren(dept.getDeptId(), newAncestors, oldAncestors); } + if (StrUtil.isNotBlank(dept.getIsUsePlatformApp()) && dept.getIsUsePlatformApp().equals("true")) { + SysDept platform = deptMapper.selectDeptById(100L); + dept.setAppid(platform.getAppid()); + dept.setAppSecret(platform.getAppSecret()); + } int result = deptMapper.updateDept(dept); if (UserConstants.DEPT_NORMAL.equals(dept.getStatus()) && StringUtils.isNotEmpty(dept.getAncestors()) && !StringUtils.equals("0", dept.getAncestors())) @@ -300,7 +311,7 @@ public class SysDeptServiceImpl implements ISysDeptService } // 添加运营商账号并添加运营商角色 // createOperator(dept); - if("true".equals(dept.getIsProfitSharing()) && StringUtils.isNotEmpty(dept.getMerchantId()) && dept.getParentId() != 0L){ + if("true".equals(dept.getIsProfitSharing()) && StringUtils.isNotEmpty(dept.getMerchantId()) && dept.getParentId() != 0L && !dept.getMerchantId().equals("1656437344")){ // 删除分账接收方 DeleteReceiverResponse deleteReceiverResponse = wxPayService.deleteReceiver(dept.getMerchantId(),dept.getDeptId(),ServiceConstants.PROFITSHARING_TYPE_PLATFORM); log.info("删除分账接收方响应:【{}】", JSON.toJSON(deleteReceiverResponse)); diff --git a/electripper-system/src/main/java/com/ruoyi/system/service/impl/WxPayService.java b/electripper-system/src/main/java/com/ruoyi/system/service/impl/WxPayService.java index b0a212c..19ff3a7 100644 --- a/electripper-system/src/main/java/com/ruoyi/system/service/impl/WxPayService.java +++ b/electripper-system/src/main/java/com/ruoyi/system/service/impl/WxPayService.java @@ -12,7 +12,6 @@ import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.system.domain.EtAreaDept; -import com.ruoyi.system.domain.EtOperatingArea; import com.ruoyi.system.domain.EtOrder; import com.ruoyi.system.domain.vo.AttachVo; import com.ruoyi.system.mapper.EtAreaDeptMapper; @@ -22,8 +21,6 @@ import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.system.service.IWxPayService; import com.wechat.pay.java.core.Config; import com.wechat.pay.java.core.RSAAutoCertificateConfig; -import com.wechat.pay.java.core.notification.NotificationParser; -import com.wechat.pay.java.core.notification.RequestParam; import com.wechat.pay.java.service.payments.jsapi.JsapiService; import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension; import com.wechat.pay.java.service.payments.jsapi.model.*; @@ -40,7 +37,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.util.List; diff --git a/electripper-system/src/main/resources/mapper/system/AsArticleMapper.xml b/electripper-system/src/main/resources/mapper/system/AsArticleMapper.xml index eb70a25..1538ec1 100644 --- a/electripper-system/src/main/resources/mapper/system/AsArticleMapper.xml +++ b/electripper-system/src/main/resources/mapper/system/AsArticleMapper.xml @@ -47,6 +47,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and a.classify_id = #{classifyId} and a.title like concat('%', #{title}, '%') and a.is_hot = #{isHot} + and a.area_id = #{areaId} + and a.tag = #{tag} ${params.dataScope} order by a.create_time desc diff --git a/electripper-system/src/main/resources/mapper/system/AsDeviceMapper.xml b/electripper-system/src/main/resources/mapper/system/AsDeviceMapper.xml index 1954e37..39f3614 100644 --- a/electripper-system/src/main/resources/mapper/system/AsDeviceMapper.xml +++ b/electripper-system/src/main/resources/mapper/system/AsDeviceMapper.xml @@ -127,6 +127,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + insert into et_device diff --git a/electripper-system/src/main/resources/mapper/system/AsUserMapper.xml b/electripper-system/src/main/resources/mapper/system/AsUserMapper.xml index f9eacae..02aa150 100644 --- a/electripper-system/src/main/resources/mapper/system/AsUserMapper.xml +++ b/electripper-system/src/main/resources/mapper/system/AsUserMapper.xml @@ -33,20 +33,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + select u.user_id, u.user_name, u.real_name, u.id_card, u.nick_name, u.email, u.avatar, u.phonenumber, u.balance, u.birthday, u.password, u.pay_password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,u.wxopenid, - u.is_sign,u.role,u.sys_user_id,u.area_id,u.is_authentication + u.is_sign,u.role,u.sys_user_id,u.area_id,u.is_authentication,u.app_name from et_user u select a.area_id, a.area_name, AsText(a.boundary) boundary, - a.boundary_str, a.longitude, a.latitude, a.create_by, a.create_time, + a.boundary_str, a.picture, a.longitude, a.latitude, a.create_by, a.create_time, a.contact, a.phone, a.status, a.area_time, a.service_phone, a.slogan, a.province, a.city, a.county, a.area_out_outage, a.parking_out_dispatch, a.area_out_dispatch, a.no_riding_outage, a.authentication, a.msg_switch, a.undercharge, a.error, a.agreement, a.deposit, diff --git a/electripper-system/src/main/resources/mapper/system/SysDeptMapper.xml b/electripper-system/src/main/resources/mapper/system/SysDeptMapper.xml index a67a7e3..bea0208 100644 --- a/electripper-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/electripper-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -18,7 +18,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -35,7 +38,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, - d.del_flag,d.platform_service_fee, d.is_profit_sharing, d.appid, d.app_secret, + d.del_flag,d.platform_service_fee, d.is_profit_sharing, d.domain, d.is_use_platform_app, d.appid, d.app_name, d.app_secret, d.merchant_id, d.api_v3_key, d.notify_url, d.private_key_path,d.merchant_serial_number,d.refund_notify_url, d.create_by, d.create_time from sys_dept d @@ -73,7 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"