From 10a2b15fc6057e97c19c693da4596d5b7ee98e19 Mon Sep 17 00:00:00 2001 From: 18650502300 <18650502300@163.com> Date: Wed, 25 Sep 2024 18:11:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E3=80=81=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E8=A7=84=E5=88=99=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/app/AppController.java | 2 +- .../controller/rl/RlCancelRuleController.java | 105 ++++++++++++++++++ .../controller/system/SysLoginController.java | 17 +++ .../src/main/resources/application.yml | 4 +- .../framework/config/SecurityConfig.java | 3 +- .../web/service/SysLoginService.java | 44 ++++++++ .../domain/cancelRule/RlCancelRule.java | 43 +++++++ .../domain/cancelRule/RlCancelRuleQuery.java | 7 ++ .../domain/cancelRule/RlCancelRuleVO.java | 7 ++ .../com/ruoyi/system/domain/city/RlCity.java | 3 + .../ruoyi/system/domain/model/RlModel.java | 4 + .../ruoyi/system/domain/model/RlModelVO.java | 7 ++ .../domain/modelStore/RlModelStore.java | 23 ++++ .../com/ruoyi/system/domain/store/Store.java | 3 + .../ruoyi/system/domain/store/StoreVo.java | 9 +- .../system/mapper/RlCancelRuleMapper.java | 62 +++++++++++ .../ruoyi/system/mapper/RlDeviceMapper.java | 5 + .../ruoyi/system/mapper/RlModelMapper.java | 8 ++ .../system/mapper/RlModelStoreMapper.java | 63 +++++++++++ .../system/service/IRlCancelRuleService.java | 62 +++++++++++ .../system/service/IRlDeviceService.java | 5 + .../ruoyi/system/service/IRlModelService.java | 8 ++ .../system/service/IRlModelStoreService.java | 70 ++++++++++++ .../service/impl/RlCancelRuleServiceImpl.java | 94 ++++++++++++++++ .../service/impl/RlDeviceServiceImpl.java | 9 ++ .../service/impl/RlModelServiceImpl.java | 14 +++ .../service/impl/RlModelStoreServiceImpl.java | 95 ++++++++++++++++ .../service/store/impl/StoreServiceImpl.java | 37 ++++-- .../mapper/system/RlCancelRuleMapper.xml | 71 ++++++++++++ .../resources/mapper/system/RlCityMapper.xml | 9 +- .../mapper/system/RlDeviceMapper.xml | 6 +- .../mapper/system/RlFeeRuleMapper.xml | 8 +- .../resources/mapper/system/RlModelMapper.xml | 56 ++++++---- .../mapper/system/RlModelStoreMapper.xml | 62 +++++++++++ .../resources/mapper/system/StoreMapper.xml | 6 +- 35 files changed, 987 insertions(+), 44 deletions(-) create mode 100644 ridelease-admin/src/main/java/com/ruoyi/web/controller/rl/RlCancelRuleController.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRule.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleQuery.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleVO.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/domain/modelStore/RlModelStore.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/mapper/RlCancelRuleMapper.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelStoreMapper.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/service/IRlCancelRuleService.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelStoreService.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlCancelRuleServiceImpl.java create mode 100644 ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelStoreServiceImpl.java create mode 100644 ridelease-system/src/main/resources/mapper/system/RlCancelRuleMapper.xml create mode 100644 ridelease-system/src/main/resources/mapper/system/RlModelStoreMapper.xml diff --git a/ridelease-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java b/ridelease-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java index 2525cd4..e055b98 100644 --- a/ridelease-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java +++ b/ridelease-admin/src/main/java/com/ruoyi/web/controller/app/AppController.java @@ -166,7 +166,7 @@ public class AppController extends BaseController /** * 根据定位获取附近店铺列表 */ - @GetMapping("/getStoreListByLocation") + @PostMapping("/getStoreListByLocation") public AjaxResult getStoreListByLocation(@RequestBody StoreQuery query) { logger.info("根据定位获取附近店铺列表:【StoreQuery="+ JSON.toJSONString(query)+"】"); diff --git a/ridelease-admin/src/main/java/com/ruoyi/web/controller/rl/RlCancelRuleController.java b/ridelease-admin/src/main/java/com/ruoyi/web/controller/rl/RlCancelRuleController.java new file mode 100644 index 0000000..616c073 --- /dev/null +++ b/ridelease-admin/src/main/java/com/ruoyi/web/controller/rl/RlCancelRuleController.java @@ -0,0 +1,105 @@ +package com.ruoyi.web.controller.rl; + +import java.util.List; +import javax.servlet.http.HttpServletResponse; + +import com.ruoyi.system.domain.cancelRule.RlCancelRule; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.service.IRlCancelRuleService; +import com.ruoyi.common.utils.poi.ExcelUtil; +import com.ruoyi.common.core.page.TableDataInfo; + +/** + * 取消规则Controller + * + * @author qzz + * @date 2024-09-25 + */ +@RestController +@RequestMapping("/system/cancelRule") +public class RlCancelRuleController extends BaseController +{ + @Autowired + private IRlCancelRuleService rlCancelRuleService; + + /** + * 查询取消规则列表 + */ + @PreAuthorize("@ss.hasPermi('system:cancelRule:list')") + @GetMapping("/list") + public TableDataInfo list(RlCancelRule rlCancelRule) + { + startPage(); + List list = rlCancelRuleService.selectRlCancelRuleList(rlCancelRule); + return getDataTable(list); + } + + /** + * 导出取消规则列表 + */ + @PreAuthorize("@ss.hasPermi('system:cancelRule:export')") + @Log(title = "取消规则", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(HttpServletResponse response, RlCancelRule rlCancelRule) + { + List list = rlCancelRuleService.selectRlCancelRuleList(rlCancelRule); + ExcelUtil util = new ExcelUtil(RlCancelRule.class); + util.exportExcel(response, list, "取消规则数据"); + } + + /** + * 获取取消规则详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:cancelRule:query')") + @GetMapping(value = "/{cancalId}") + public AjaxResult getInfo(@PathVariable("cancalId") Long cancalId) + { + return success(rlCancelRuleService.selectRlCancelRuleByCancalId(cancalId)); + } + + /** + * 新增取消规则 + */ + @PreAuthorize("@ss.hasPermi('system:cancelRule:add')") + @Log(title = "取消规则", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@RequestBody RlCancelRule rlCancelRule) + { + return toAjax(rlCancelRuleService.insertRlCancelRule(rlCancelRule)); + } + + /** + * 修改取消规则 + */ + @PreAuthorize("@ss.hasPermi('system:cancelRule:edit')") + @Log(title = "取消规则", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@RequestBody RlCancelRule rlCancelRule) + { + return toAjax(rlCancelRuleService.updateRlCancelRule(rlCancelRule)); + } + + /** + * 删除取消规则 + */ + @PreAuthorize("@ss.hasPermi('system:cancelRule:remove')") + @Log(title = "取消规则", businessType = BusinessType.DELETE) + @DeleteMapping("/{cancalIds}") + public AjaxResult remove(@PathVariable Long[] cancalIds) + { + return toAjax(rlCancelRuleService.deleteRlCancelRuleByCancalIds(cancalIds)); + } +} diff --git a/ridelease-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ridelease-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java index 46621bb..4308e71 100644 --- a/ridelease-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java +++ b/ridelease-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java @@ -56,6 +56,23 @@ public class SysLoginController return ajax; } + /** + * 获取token用于测试 + * + * @param userId 用户id + * @return 结果 + */ + @PostMapping("/getToken") + public AjaxResult getToken(Long userId) + { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.getToken(userId); + ajax.put(Constants.TOKEN, token); + return ajax; + } + + /** * 获取用户信息 * diff --git a/ridelease-admin/src/main/resources/application.yml b/ridelease-admin/src/main/resources/application.yml index 306e914..c5e2455 100644 --- a/ridelease-admin/src/main/resources/application.yml +++ b/ridelease-admin/src/main/resources/application.yml @@ -193,7 +193,7 @@ geo: # 高德地图key web服务 手续费 key: 834f1f029671d84272554528311ff0f1 wx: - appid: wx3428c498d5061192 + appid: wx21a50f113c30d41a appSecret: 398d2cd38583a33233eef897996cc7ca et: # 手续费 4/1000 千分之几 @@ -203,3 +203,5 @@ et: repairAdmin: wx operateAdmin: root +# 用于测试获取token的admin的密码 +password: admin123 diff --git a/ridelease-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ridelease-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index e32504a..f74e863 100644 --- a/ridelease-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ridelease-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -119,7 +119,8 @@ public class SecurityConfig "/appCaptcha", "/appCodeLogin", "/app/**", -// "/appVerify/**", +// "/appVerify/**", + "/getToken", "/common/upload", "/common/receive", "/payment/callback/**", diff --git a/ridelease-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ridelease-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index f1ac3cb..ab49d12 100644 --- a/ridelease-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ridelease-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -75,6 +75,9 @@ public class SysLoginService @Value("${wx.appSecret}") private String appSecret; + @Value("${password}") + private String password; + /** * 登录验证 * @@ -123,6 +126,47 @@ public class SysLoginService return tokenService.createToken(loginUser); } + + public String getToken(Long userId) { + if(userId == null){ + userId = 1L; + } + SysUser user = userService.selectUserById(userId); + String username = user.getUserName(); + + // 用户验证 + Authentication authentication = null; + try + { + UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(username, password); + AuthenticationContextHolder.setContext(authenticationToken); + // 该方法会去调用UserDetailsServiceImpl.loadUserByUsername + authentication = authenticationManager.authenticate(authenticationToken); + } + catch (Exception e) + { + if (e instanceof BadCredentialsException) + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.password.not.match"))); + throw new UserPasswordNotMatchException(); + } + else + { + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, e.getMessage())); + throw new ServiceException(e.getMessage()); + } + } + finally + { + AuthenticationContextHolder.clearContext(); + } + AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); + LoginUser loginUser = (LoginUser) authentication.getPrincipal(); + recordLoginInfo(loginUser.getUserId()); + // 生成token + return tokenService.createToken(loginUser); + } + /** * 校验验证码 * diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRule.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRule.java new file mode 100644 index 0000000..7bea06f --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRule.java @@ -0,0 +1,43 @@ +package com.ruoyi.system.domain.cancelRule; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * 取消规则对象 rl_cancel_rule + * + * @author qzz + * @date 2024-09-25 + */ +@Data +public class RlCancelRule extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 取消规则id */ + private Long cancalId; + + /** 取消时间说明 */ + @Excel(name = "取消时间说明") + private String instructions; + + /** 扣款百分比,0-免费取消;100不可取消 */ + @Excel(name = "扣款百分比,0-免费取消;100不可取消") + private BigDecimal deductPercent; + + /** 超出取车时间多少小时 */ + @Excel(name = "超出取车时间多少小时") + private Integer frontOutTime; + + /** 超过多少到多少 */ + @Excel(name = "超过多少到多少") + private String middleOutTime; + + /** 超过多少小时以上 */ + @Excel(name = "超过多少小时以上") + private Integer afterOutTime; + +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleQuery.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleQuery.java new file mode 100644 index 0000000..74a14eb --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleQuery.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.domain.cancelRule; + +import lombok.Data; + +@Data +public class RlCancelRuleQuery extends RlCancelRule{ +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleVO.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleVO.java new file mode 100644 index 0000000..464254e --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/cancelRule/RlCancelRuleVO.java @@ -0,0 +1,7 @@ +package com.ruoyi.system.domain.cancelRule; + +import lombok.Data; + +@Data +public class RlCancelRuleVO extends RlCancelRule{ +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/city/RlCity.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/city/RlCity.java index 9b2e100..4f7b3ed 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/domain/city/RlCity.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/city/RlCity.java @@ -36,4 +36,7 @@ public class RlCity extends BaseEntity @Excel(name = "城市编码") private String citycode; + /** 是否开通 */ + private Boolean isOpen; + } diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModel.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModel.java index 551c68f..8c63252 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModel.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModel.java @@ -50,4 +50,8 @@ public class RlModel extends BaseEntity @Excel(name = "押金") private BigDecimal deposit; + /** 图片 */ + @Excel(name = "图片") + private String picture; + } diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModelVO.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModelVO.java index 85ccc21..bc03774 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModelVO.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/model/RlModelVO.java @@ -3,6 +3,7 @@ package com.ruoyi.system.domain.model; import com.ruoyi.system.domain.accessory.RlAccessory; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @@ -10,4 +11,10 @@ public class RlModelVO extends RlModel{ /** 配件 */ private List accessorys; + + /** 价格 */ + private BigDecimal price; + + /** 单位 */ + private String rentalUnit; } diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/modelStore/RlModelStore.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/modelStore/RlModelStore.java new file mode 100644 index 0000000..efb4362 --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/modelStore/RlModelStore.java @@ -0,0 +1,23 @@ +package com.ruoyi.system.domain.modelStore; + +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; + +/** + * 车型店铺关系对象 rl_model_store + * + * @author qzz + * @date 2024-09-25 + */ +@Data +public class RlModelStore extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** 车型id */ + private Long modeId; + + /** 店铺id */ + private Long storeId; + +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/store/Store.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/store/Store.java index 5da1965..b53dac0 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/domain/store/Store.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/store/Store.java @@ -57,6 +57,9 @@ public class Store extends BaseEntity @Size(min = 1, max = 200, message = "门店地址长度必须在1~200之间") private String address; + @ApiModelProperty("简化地址") + private String simpleAddress; + /** 定位经度 */ @Excel(name = "定位经度") @NotNull(message = "定位经度不能为空", groups = {ValidGroup.Create.class, ValidGroup.FrontCreate.class}) diff --git a/ridelease-system/src/main/java/com/ruoyi/system/domain/store/StoreVo.java b/ridelease-system/src/main/java/com/ruoyi/system/domain/store/StoreVo.java index 5c2707d..a3128b9 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/domain/store/StoreVo.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/domain/store/StoreVo.java @@ -1,9 +1,13 @@ package com.ruoyi.system.domain.store; +import com.ruoyi.system.domain.model.RlModel; +import com.ruoyi.system.domain.modelStore.RlModelStore; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.List; + /** * @author 辉 * 2024/3/5 @@ -18,9 +22,12 @@ public class StoreVo extends Store { @ApiModelProperty("可租车辆") private Integer rentalCar; - @ApiModelProperty("距离") + @ApiModelProperty("距离(米)") private double distance; + @ApiModelProperty("车型列表") + private List models; + // @ApiModelProperty("是否免费送取车") // private Boolean isFreeCar; diff --git a/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlCancelRuleMapper.java b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlCancelRuleMapper.java new file mode 100644 index 0000000..8eccc53 --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlCancelRuleMapper.java @@ -0,0 +1,62 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.cancelRule.RlCancelRule; + +import java.util.List; + +/** + * 取消规则Mapper接口 + * + * @author qzz + * @date 2024-09-25 + */ +public interface RlCancelRuleMapper +{ + /** + * 查询取消规则 + * + * @param cancalId 取消规则主键 + * @return 取消规则 + */ + public RlCancelRule selectRlCancelRuleByCancalId(Long cancalId); + + /** + * 查询取消规则列表 + * + * @param rlCancelRule 取消规则 + * @return 取消规则集合 + */ + public List selectRlCancelRuleList(RlCancelRule rlCancelRule); + + /** + * 新增取消规则 + * + * @param rlCancelRule 取消规则 + * @return 结果 + */ + public int insertRlCancelRule(RlCancelRule rlCancelRule); + + /** + * 修改取消规则 + * + * @param rlCancelRule 取消规则 + * @return 结果 + */ + public int updateRlCancelRule(RlCancelRule rlCancelRule); + + /** + * 删除取消规则 + * + * @param cancalId 取消规则主键 + * @return 结果 + */ + public int deleteRlCancelRuleByCancalId(Long cancalId); + + /** + * 批量删除取消规则 + * + * @param cancalIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRlCancelRuleByCancalIds(Long[] cancalIds); +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlDeviceMapper.java b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlDeviceMapper.java index 36ffd0b..9b411ac 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlDeviceMapper.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlDeviceMapper.java @@ -145,4 +145,9 @@ public interface RlDeviceMapper extends BaseMapper RlDevice checkSNUnique(String sn); RlDevice checkMACUnique(String mac); + + /** + * 根据店铺id查询可租车辆数 + */ + Integer selectRentalDeviceCountByStoreId(Long storeId); } diff --git a/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelMapper.java b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelMapper.java index a6358dd..1568556 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelMapper.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelMapper.java @@ -37,6 +37,14 @@ public interface RlModelMapper */ public List selectEModelListByAgentId(Long agentId); + /** + * 根据店铺id查询车辆型号列表 + * + * @param storeId 店铺id + * @return 车辆型号集合 + */ + public List selectEModelListByStoreId(Long storeId); + /** * 新增车辆型号 * diff --git a/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelStoreMapper.java b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelStoreMapper.java new file mode 100644 index 0000000..e6163d7 --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/mapper/RlModelStoreMapper.java @@ -0,0 +1,63 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.modelStore.RlModelStore; + +import java.util.List; + +/** + * 车型店铺关系Mapper接口 + * + * @author qzz + * @date 2024-09-25 + */ +public interface RlModelStoreMapper +{ + /** + * 查询车型店铺关系 + * + * @param modeId 车型店铺关系主键 + * @return 车型店铺关系 + */ + public RlModelStore selectRlModelStoreByModeId(Long modeId); + + /** + * 查询车型店铺关系列表 + * + * @param rlModelStore 车型店铺关系 + * @return 车型店铺关系集合 + */ + public List selectRlModelStoreList(RlModelStore rlModelStore); + + + /** + * 新增车型店铺关系 + * + * @param rlModelStore 车型店铺关系 + * @return 结果 + */ + public int insertRlModelStore(RlModelStore rlModelStore); + + /** + * 修改车型店铺关系 + * + * @param rlModelStore 车型店铺关系 + * @return 结果 + */ + public int updateRlModelStore(RlModelStore rlModelStore); + + /** + * 删除车型店铺关系 + * + * @param modeId 车型店铺关系主键 + * @return 结果 + */ + public int deleteRlModelStoreByModeId(Long modeId); + + /** + * 批量删除车型店铺关系 + * + * @param modeIds 需要删除的数据主键集合 + * @return 结果 + */ + public int deleteRlModelStoreByModeIds(Long[] modeIds); +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/IRlCancelRuleService.java b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlCancelRuleService.java new file mode 100644 index 0000000..6940f9a --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlCancelRuleService.java @@ -0,0 +1,62 @@ +package com.ruoyi.system.service; + +import com.ruoyi.system.domain.cancelRule.RlCancelRule; + +import java.util.List; + +/** + * 取消规则Service接口 + * + * @author qzz + * @date 2024-09-25 + */ +public interface IRlCancelRuleService +{ + /** + * 查询取消规则 + * + * @param cancalId 取消规则主键 + * @return 取消规则 + */ + public RlCancelRule selectRlCancelRuleByCancalId(Long cancalId); + + /** + * 查询取消规则列表 + * + * @param rlCancelRule 取消规则 + * @return 取消规则集合 + */ + public List selectRlCancelRuleList(RlCancelRule rlCancelRule); + + /** + * 新增取消规则 + * + * @param rlCancelRule 取消规则 + * @return 结果 + */ + public int insertRlCancelRule(RlCancelRule rlCancelRule); + + /** + * 修改取消规则 + * + * @param rlCancelRule 取消规则 + * @return 结果 + */ + public int updateRlCancelRule(RlCancelRule rlCancelRule); + + /** + * 批量删除取消规则 + * + * @param cancalIds 需要删除的取消规则主键集合 + * @return 结果 + */ + public int deleteRlCancelRuleByCancalIds(Long[] cancalIds); + + /** + * 删除取消规则信息 + * + * @param cancalId 取消规则主键 + * @return 结果 + */ + public int deleteRlCancelRuleByCancalId(Long cancalId); +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/IRlDeviceService.java b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlDeviceService.java index 2cf4c12..2b2a0f8 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/service/IRlDeviceService.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlDeviceService.java @@ -379,6 +379,11 @@ public interface IRlDeviceService extends IService */ boolean updateVersion(String sn); + /** + * 根据店铺id查询可租车辆数 + */ + Integer selectRentalDeviceCountByStoreId(Long storeId); + // /** // * 是否靠近运营区边界 // */ diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelService.java b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelService.java index f762c1c..724943c 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelService.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelService.java @@ -39,6 +39,14 @@ public interface IRlModelService public List selectEModelListByAgentId(Long agentId); + /** + * 根据店铺id查询车辆型号列表 + * + * @param storeId 店铺id + * @return 车辆型号 + */ + public List selectEModelListByStoreId(Long storeId); + /** * 新增车辆型号 * diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelStoreService.java b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelStoreService.java new file mode 100644 index 0000000..81626b3 --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/IRlModelStoreService.java @@ -0,0 +1,70 @@ +package com.ruoyi.system.service; + +import java.util.List; + +import com.ruoyi.system.domain.model.RlModel; +import com.ruoyi.system.domain.modelStore.RlModelStore; + +/** + * 车型店铺关系Service接口 + * + * @author qzz + * @date 2024-09-25 + */ +public interface IRlModelStoreService +{ + /** + * 查询车型店铺关系 + * + * @param modeId 车型店铺关系主键 + * @return 车型店铺关系 + */ + public RlModelStore selectRlModelStoreByModeId(Long modeId); + + /** + * 查询车型店铺关系列表 + * + * @param rlModelStore 车型店铺关系 + * @return 车型店铺关系集合 + */ + public List selectRlModelStoreList(RlModelStore rlModelStore); + +// /** +// * 根据店铺id查询车型店铺关系列表 +// * +// * @param storeId 店铺id +// * @return 车型店铺关系集合 +// */ +// public List selectRlModelStoreListBystoreId(Long storeId); + /** + * 新增车型店铺关系 + * + * @param rlModelStore 车型店铺关系 + * @return 结果 + */ + public int insertRlModelStore(RlModelStore rlModelStore); + + /** + * 修改车型店铺关系 + * + * @param rlModelStore 车型店铺关系 + * @return 结果 + */ + public int updateRlModelStore(RlModelStore rlModelStore); + + /** + * 批量删除车型店铺关系 + * + * @param modeIds 需要删除的车型店铺关系主键集合 + * @return 结果 + */ + public int deleteRlModelStoreByModeIds(Long[] modeIds); + + /** + * 删除车型店铺关系信息 + * + * @param modeId 车型店铺关系主键 + * @return 结果 + */ + public int deleteRlModelStoreByModeId(Long modeId); +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlCancelRuleServiceImpl.java b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlCancelRuleServiceImpl.java new file mode 100644 index 0000000..099089a --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlCancelRuleServiceImpl.java @@ -0,0 +1,94 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.system.domain.cancelRule.RlCancelRule; +import com.ruoyi.system.mapper.RlCancelRuleMapper; +import com.ruoyi.system.service.IRlCancelRuleService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 取消规则Service业务层处理 + * + * @author qzz + * @date 2024-09-25 + */ +@Service +public class RlCancelRuleServiceImpl implements IRlCancelRuleService +{ + @Autowired + private RlCancelRuleMapper rlCancelRuleMapper; + + /** + * 查询取消规则 + * + * @param cancalId 取消规则主键 + * @return 取消规则 + */ + @Override + public RlCancelRule selectRlCancelRuleByCancalId(Long cancalId) + { + return rlCancelRuleMapper.selectRlCancelRuleByCancalId(cancalId); + } + + /** + * 查询取消规则列表 + * + * @param rlCancelRule 取消规则 + * @return 取消规则 + */ + @Override + public List selectRlCancelRuleList(RlCancelRule rlCancelRule) + { + return rlCancelRuleMapper.selectRlCancelRuleList(rlCancelRule); + } + + /** + * 新增取消规则 + * + * @param rlCancelRule 取消规则 + * @return 结果 + */ + @Override + public int insertRlCancelRule(RlCancelRule rlCancelRule) + { + return rlCancelRuleMapper.insertRlCancelRule(rlCancelRule); + } + + /** + * 修改取消规则 + * + * @param rlCancelRule 取消规则 + * @return 结果 + */ + @Override + public int updateRlCancelRule(RlCancelRule rlCancelRule) + { + return rlCancelRuleMapper.updateRlCancelRule(rlCancelRule); + } + + /** + * 批量删除取消规则 + * + * @param cancalIds 需要删除的取消规则主键 + * @return 结果 + */ + @Override + public int deleteRlCancelRuleByCancalIds(Long[] cancalIds) + { + return rlCancelRuleMapper.deleteRlCancelRuleByCancalIds(cancalIds); + } + + /** + * 删除取消规则信息 + * + * @param cancalId 取消规则主键 + * @return 结果 + */ + @Override + public int deleteRlCancelRuleByCancalId(Long cancalId) + { + return rlCancelRuleMapper.deleteRlCancelRuleByCancalId(cancalId); + } +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlDeviceServiceImpl.java b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlDeviceServiceImpl.java index ac38224..2ab5fb0 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlDeviceServiceImpl.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlDeviceServiceImpl.java @@ -1397,6 +1397,7 @@ public class RlDeviceServiceImpl extends ServiceImpl i if (order.getExpiryTime().before(DateUtils.getNowDate())) { overdueFee = computeOverdueFee(order, updateOrder); } + updateOrder.setOverdueFee(overdueFee); int i = orderService.updateRlOrder(updateOrder); if(i==0){ throw new ServiceException("更新订单状态失败"); @@ -1912,6 +1913,14 @@ public class RlDeviceServiceImpl extends ServiceImpl i return false; } + /** + * 根据店铺id查询可租车辆数 + */ + @Override + public Integer selectRentalDeviceCountByStoreId(Long storeId) { + return deviceMapper.selectRentalDeviceCountByStoreId(storeId); + } + /** * sn和mac号绑定 diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelServiceImpl.java b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelServiceImpl.java index 0485617..7138e43 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelServiceImpl.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelServiceImpl.java @@ -97,6 +97,20 @@ public class RlModelServiceImpl implements IRlModelService return etModels; } + + /** + * 根据店铺id查询车辆型号列表 + * + * @param storeId 店铺id + * @return 车辆型号 + */ + @Override + public List selectEModelListByStoreId(Long storeId) + { + List etModels = rlModelMapper.selectEModelListByStoreId(storeId); + return etModels; + } + /** * 新增车辆型号 * diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelStoreServiceImpl.java b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelStoreServiceImpl.java new file mode 100644 index 0000000..b547094 --- /dev/null +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/impl/RlModelStoreServiceImpl.java @@ -0,0 +1,95 @@ +package com.ruoyi.system.service.impl; + +import com.ruoyi.system.domain.modelStore.RlModelStore; +import com.ruoyi.system.mapper.RlModelStoreMapper; +import com.ruoyi.system.service.IRlModelStoreService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * 车型店铺关系Service业务层处理 + * + * @author qzz + * @date 2024-09-25 + */ +@Service +public class RlModelStoreServiceImpl implements IRlModelStoreService +{ + @Resource + private RlModelStoreMapper rlModelStoreMapper; + + /** + * 查询车型店铺关系 + * + * @param modeId 车型店铺关系主键 + * @return 车型店铺关系 + */ + @Override + public RlModelStore selectRlModelStoreByModeId(Long modeId) + { + return rlModelStoreMapper.selectRlModelStoreByModeId(modeId); + } + + /** + * 查询车型店铺关系列表 + * + * @param rlModelStore 车型店铺关系 + * @return 车型店铺关系 + */ + @Override + public List selectRlModelStoreList(RlModelStore rlModelStore) + { + return rlModelStoreMapper.selectRlModelStoreList(rlModelStore); + } + + + /** + * 新增车型店铺关系 + * + * @param rlModelStore 车型店铺关系 + * @return 结果 + */ + @Override + public int insertRlModelStore(RlModelStore rlModelStore) + { + return rlModelStoreMapper.insertRlModelStore(rlModelStore); + } + + /** + * 修改车型店铺关系 + * + * @param rlModelStore 车型店铺关系 + * @return 结果 + */ + @Override + public int updateRlModelStore(RlModelStore rlModelStore) + { + return rlModelStoreMapper.updateRlModelStore(rlModelStore); + } + + /** + * 批量删除车型店铺关系 + * + * @param modeIds 需要删除的车型店铺关系主键 + * @return 结果 + */ + @Override + public int deleteRlModelStoreByModeIds(Long[] modeIds) + { + return rlModelStoreMapper.deleteRlModelStoreByModeIds(modeIds); + } + + /** + * 删除车型店铺关系信息 + * + * @param modeId 车型店铺关系主键 + * @return 结果 + */ + @Override + public int deleteRlModelStoreByModeId(Long modeId) + { + return rlModelStoreMapper.deleteRlModelStoreByModeId(modeId); + } +} diff --git a/ridelease-system/src/main/java/com/ruoyi/system/service/store/impl/StoreServiceImpl.java b/ridelease-system/src/main/java/com/ruoyi/system/service/store/impl/StoreServiceImpl.java index b1f404f..c075cfa 100644 --- a/ridelease-system/src/main/java/com/ruoyi/system/service/store/impl/StoreServiceImpl.java +++ b/ridelease-system/src/main/java/com/ruoyi/system/service/store/impl/StoreServiceImpl.java @@ -6,9 +6,15 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.bean.collection.CollectionUtils; import com.ruoyi.common.utils.map.GeoUtils; -import com.ruoyi.system.domain.store.*; +import com.ruoyi.system.domain.model.RlModel; +import com.ruoyi.system.domain.store.Store; +import com.ruoyi.system.domain.store.StoreCountVO; +import com.ruoyi.system.domain.store.StoreQuery; +import com.ruoyi.system.domain.store.StoreVo; import com.ruoyi.system.domain.store.enums.StoreGroupBy; import com.ruoyi.system.mapper.StoreMapper; +import com.ruoyi.system.service.IRlDeviceService; +import com.ruoyi.system.service.IRlModelService; import com.ruoyi.system.service.ISysConfigService; import com.ruoyi.system.service.store.RlStoreService; import com.ruoyi.system.service.store.StoreAssembler; @@ -21,10 +27,7 @@ import org.springframework.transaction.support.TransactionTemplate; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -41,8 +44,8 @@ public class StoreServiceImpl implements RlStoreService @Resource private StoreMapper storeMapper; -// @Autowired -// private DeviceService smDeviceService; + @Autowired + private IRlDeviceService deviceService; @Autowired private StoreAssembler storeAssembler; @@ -59,6 +62,9 @@ public class StoreServiceImpl implements RlStoreService @Autowired private ISysConfigService sysConfigService; + @Autowired + private IRlModelService modelService; + /** * 查询店铺 * @@ -416,7 +422,7 @@ public class StoreServiceImpl implements RlStoreService @Override public List getStoreListByLocation(StoreQuery query) { String nearby = sysConfigService.selectConfigByKey("nearby.store"); - double radiusInKm = Double.parseDouble(nearby); + double radiusInMeters = Double.parseDouble(nearby) * 1000; // 将半径转换为米 // 根据定位获取附近方圆X公里的店铺列表 double userLon = Double.parseDouble(query.getPhoneLon()); double userLat = Double.parseDouble(query.getPhoneLat()); @@ -424,15 +430,24 @@ public class StoreServiceImpl implements RlStoreService List allStores = storeMapper.selectSmStoreList(query); // 过滤出在方圆X公里内的店铺 List nearbyStores = allStores.stream() - .filter(store -> { + .map(store -> { + List list = modelService.selectEModelListByStoreId(store.getStoreId()); + store.setModels(list); + /** 多少辆可租 */ + Integer integer = deviceService.selectRentalDeviceCountByStoreId(store.getStoreId()); + store.setRentalCar(integer); double storeLon = store.getLng().doubleValue(); double storeLat = store.getLat().doubleValue(); double distance = GeoUtils.haversineDistance( new double[]{userLon, userLat}, new double[]{storeLon, storeLat} - ) / 1000; // 转换为公里 - return distance <= radiusInKm; + ); // 转换为公里 + double formattedDistance = Math.round(distance * 10) / 10.0; + store.setDistance(formattedDistance); // 设置距离 + return store; // 返回更新后的 store }) + .filter(store -> store.getDistance() <= radiusInMeters) // 过滤距离 + .sorted(Comparator.comparingDouble(StoreVo::getDistance)) // 根据距离排序 .collect(Collectors.toList()); return nearbyStores; } diff --git a/ridelease-system/src/main/resources/mapper/system/RlCancelRuleMapper.xml b/ridelease-system/src/main/resources/mapper/system/RlCancelRuleMapper.xml new file mode 100644 index 0000000..89beec9 --- /dev/null +++ b/ridelease-system/src/main/resources/mapper/system/RlCancelRuleMapper.xml @@ -0,0 +1,71 @@ + + + + + + + + select cancal_id, instructions, deduct_percent, front_out_time, middle_out_time, after_out_time from rl_cancel_rule + + + + + + + + insert into rl_cancel_rule + + cancal_id, + instructions, + deduct_percent, + front_out_time, + middle_out_time, + after_out_time, + + + #{cancalId}, + #{instructions}, + #{deductPercent}, + #{frontOutTime}, + #{middleOutTime}, + #{afterOutTime}, + + + + + update rl_cancel_rule + + instructions = #{instructions}, + deduct_percent = #{deductPercent}, + front_out_time = #{frontOutTime}, + middle_out_time = #{middleOutTime}, + after_out_time = #{afterOutTime}, + + where cancal_id = #{cancalId} + + + + delete from rl_cancel_rule where cancal_id = #{cancalId} + + + + delete from rl_cancel_rule where cancal_id in + + #{cancalId} + + + diff --git a/ridelease-system/src/main/resources/mapper/system/RlCityMapper.xml b/ridelease-system/src/main/resources/mapper/system/RlCityMapper.xml index e672565..d6f2df0 100644 --- a/ridelease-system/src/main/resources/mapper/system/RlCityMapper.xml +++ b/ridelease-system/src/main/resources/mapper/system/RlCityMapper.xml @@ -10,21 +10,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + - select c.city_id, c.name, c.pinyin, c.adcode, c.citycode, cc.name cityName from rl_city c + select c.city_id, c.name, c.pinyin, c.adcode, c.citycode, cc.name cityName, c.is_open from rl_city c left join rl_city_code cc on c.citycode = cc.code + + insert into rl_device diff --git a/ridelease-system/src/main/resources/mapper/system/RlFeeRuleMapper.xml b/ridelease-system/src/main/resources/mapper/system/RlFeeRuleMapper.xml index a8c345f..70f7fef 100644 --- a/ridelease-system/src/main/resources/mapper/system/RlFeeRuleMapper.xml +++ b/ridelease-system/src/main/resources/mapper/system/RlFeeRuleMapper.xml @@ -18,7 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - select rule_id, num, rental_unit, price, explain, instructions, out_unit, out_price, is_deleted, model_id from rl_fee_rule + select rule_id, num, rental_unit, price, `explain`, instructions, out_unit, out_price, is_deleted, model_id from rl_fee_rule select m.model_id, m.model, m.full_voltage, m.low_voltage, m.full_endurance, m.create_by, m.create_time, - m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit from rl_model m + m.update_by, m.update_time, m.remark, m.intro, m.agent_id, m.deposit, m.picture from rl_model m where 1 = 1 and m.model = #{model} @@ -37,14 +23,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -52,6 +38,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select count(1) from rl_model + + insert into rl_model @@ -68,6 +83,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" intro, agent_id, deposit, + picture, #{modelId}, @@ -83,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{intro}, #{agentId}, #{deposit}, + #{picture}, @@ -101,6 +118,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" intro = #{intro}, agent_id = #{agentId}, deposit = #{deposit}, + picture = #{picture}, where model_id = #{modelId} diff --git a/ridelease-system/src/main/resources/mapper/system/RlModelStoreMapper.xml b/ridelease-system/src/main/resources/mapper/system/RlModelStoreMapper.xml new file mode 100644 index 0000000..7504082 --- /dev/null +++ b/ridelease-system/src/main/resources/mapper/system/RlModelStoreMapper.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + select mode_id, store_id from rl_model_store + + + + + + + + + + insert into rl_model_store + + mode_id, + store_id, + + + #{modeId}, + #{storeId}, + + + + + update rl_model_store + + store_id = #{storeId}, + + where mode_id = #{modeId} + + + + delete from rl_model_store where mode_id = #{modeId} + + + + delete from rl_model_store where mode_id in + + #{modeId} + + + diff --git a/ridelease-system/src/main/resources/mapper/system/StoreMapper.xml b/ridelease-system/src/main/resources/mapper/system/StoreMapper.xml index 8ea1bd1..1d4e3d0 100644 --- a/ridelease-system/src/main/resources/mapper/system/StoreMapper.xml +++ b/ridelease-system/src/main/resources/mapper/system/StoreMapper.xml @@ -36,7 +36,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ss.agent_id, a.is_free_car, ss.server_phone, - su.user_name as user_name + su.user_name as user_name, + ss.simple_address from rl_store ss left join rl_user su on su.user_id = ss.user_id left join rl_agent a on a.agent_id = ss.agent_id @@ -163,6 +164,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" `enabled`, agent_id, server_phone, + simple_address, #{name}, @@ -188,6 +190,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{enabled}, #{agentId}, #{serverPhone}, + #{simpleAddress}, @@ -222,6 +225,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" `enabled` = #{data.enabled}, agent_id = #{data.agentId}, server_phone = #{data.serverPhone}, + simple_address = #{data.simpleAddress},