From 675b45becc2aa467b09921a482a8945d3ba0dd6c Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 18 六月 2024 18:44:14 +0800 Subject: [PATCH] 1.提交【管理后台】 系统设置相关接口 --- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java | 41 ++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java | 8 ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml | 12 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java | 13 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java | 21 ++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java | 93 ++++---- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java | 23 +- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java | 56 ----- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java | 27 +- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java | 31 +++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java | 86 ++++++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/Agreement.java | 8 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/AgreementController.java | 40 +++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java | 51 +++-- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/MemberInvoiceOrder.java | 2 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderStatusEnum.java | 4 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/AgreementDTO.java | 30 +++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IAgreementService.java | 9 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java | 2 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java | 5 22 files changed, 394 insertions(+), 172 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java index f50687b..bfacfce 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/Order.java @@ -61,7 +61,7 @@ @ApiModelProperty(value = "支付合计") private BigDecimal totalAmount; - @ApiModelProperty(value = "订单状态 1=待支付 2=待发货 3=待收货 4=已完成 5=已取消 6=售后中 7=已退款 8=已退款退货") + @ApiModelProperty(value = "订单状态 1=待支付 2=待发货 3=待收货 4=已完成 5=已取消 6=售后中") private OrderStatusEnum orderStatus; @ApiModelProperty(value = "支付时间") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java index 3602929..ebd8150 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysRole.java @@ -1,16 +1,15 @@ package com.ruoyi.system.api.domain; +import com.baomidou.mybatisplus.annotation.TableField; +import com.ruoyi.common.core.annotation.Excel; +import com.ruoyi.common.core.annotation.Excel.ColumnType; +import com.ruoyi.common.core.web.domain.BaseEntity; import java.util.Set; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; - -import com.baomidou.mybatisplus.annotation.TableField; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; -import com.ruoyi.common.core.annotation.Excel; -import com.ruoyi.common.core.annotation.Excel.ColumnType; -import com.ruoyi.common.core.web.domain.BaseEntity; /** * 角色表 sys_role @@ -78,19 +77,6 @@ @TableField(exist = false) private Set<String> permissions; - /** 车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限 */ - private Integer carDataAuth; - - /** 车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限 */ - private Integer carTrainOperAuth; - - /** 合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限 */ - private Integer contractDataAuth; - - /** 公司id */ - private Integer companyId; - - public SysRole() { @@ -101,39 +87,7 @@ { this.roleId = roleId; } - - public Integer getCarDataAuth() { - return carDataAuth; - } - - public void setCarDataAuth(Integer carDataAuth) { - this.carDataAuth = carDataAuth; - } - - public Integer getCarTrainOperAuth() { - return carTrainOperAuth; - } - - public void setCarTrainOperAuth(Integer carTrainOperAuth) { - this.carTrainOperAuth = carTrainOperAuth; - } - - public Integer getContractDataAuth() { - return contractDataAuth; - } - - public void setContractDataAuth(Integer contractDataAuth) { - this.contractDataAuth = contractDataAuth; - } - - public Integer getCompanyId() { - return companyId; - } - - public void setCompanyId(Integer companyId) { - this.companyId = companyId; - } - + public Long getRoleId() { return roleId; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderStatusEnum.java index cd39232..1208f0b 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderStatusEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/enums/OrderStatusEnum.java @@ -16,9 +16,7 @@ GOODS_TO_BE_RECEIVED(3, "待收货"), FINISHED(4, "已完成"), CANCELED(5, "已取消"), - AFTER_SALE(6, "售后中"), - REFUNDED(7, "已退款"), - REFUNDED_AND_RETURNED(8, "已退货退款"); + AFTER_SALE(6, "售后中"); @EnumValue private final int code; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/MemberInvoiceOrder.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/MemberInvoiceOrder.java index a67f25d..600233c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/MemberInvoiceOrder.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/MemberInvoiceOrder.java @@ -44,7 +44,7 @@ private BigDecimal orderMoney; @ApiModelProperty(value = "订单id") - private Integer orderId; + private Long orderId; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java index 3277c38..764fa7c 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/MemberInvoiceServiceImpl.java @@ -208,5 +208,18 @@ memberInvoice.setRemark(dto.getRemark()); } this.updateById(memberInvoice); + // 更新关联订单状态 + List<MemberInvoiceOrder> memberInvoiceOrderList = iMemberInvoiceOrderService.lambdaQuery() + .eq(MemberInvoiceOrder::getInvoiceId, memberInvoice) + .list(); + Set<Long> orderIdSet = memberInvoiceOrderList.stream() + .map(MemberInvoiceOrder::getOrderId) + .collect(Collectors.toSet()); + if (!orderIdSet.isEmpty()) { + iOrderService.lambdaUpdate() + .set(Order::getInvoiceStatus, dto.getInvoiceStatus() == 2 ? 3 : 4) + .in(Order::getId, orderIdSet).update(); + } + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java index 531ee51..b37e82f 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java @@ -262,9 +262,7 @@ boolean result = handleRefund(paymentMethod, paylog, orderNo); if (result) { paylog.setState(3);// 已退款 - order.setOrderStatus(OrderStatusEnum.REFUNDED); paylogService.updateById(paylog); - orderMapper.updateById(order); } } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 4e5844a..ded583b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -1065,9 +1065,7 @@ boolean result = handleRefund(paymentMethod, paylog, orderNo); if (result) { paylog.setState(3);// 已退款 - order.setOrderStatus(OrderStatusEnum.REFUNDED); iPaylogService.updateById(paylog); - this.updateById(order); } OrderReturnRequest orderReturnRequest = new OrderReturnRequest(); orderReturnRequest.setOrderId(id); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/AgreementController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/AgreementController.java index d6386a6..c5d1970 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/AgreementController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/AgreementController.java @@ -2,13 +2,21 @@ import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.system.domain.Agreement; +import com.ruoyi.system.domain.dto.AgreementDTO; import com.ruoyi.system.service.IAgreementService; +import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import java.util.List; import javax.annotation.Resource; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; /** @@ -21,14 +29,38 @@ */ @RestController @RequestMapping("/agreement") - +@Api(tags = "系统管理相关接口") public class AgreementController { @Resource private IAgreementService iAgreementService; - @RequestMapping("/getAgreement") - @ResponseBody + + @RequestMapping(value = "/getAgreement/{agreementType}", method = RequestMethod.GET) @ApiOperation(value = "获取用户协议/隐私协议") public R<Agreement> getAgreement(@PathVariable("agreementType") Integer agreementType) { return R.ok(iAgreementService.getAgreement(agreementType)); } + + /** + * 管理后台-获取协议列表 + * + * @return List<AgreementDTO> + */ + @ApiOperation("管理后台-获取协议列表") + @GetMapping("/list") + public R<List<AgreementDTO>> getAgreementList() { + List<Agreement> list = iAgreementService.lambdaQuery().last("limit 2").list(); + return R.ok(BeanUtils.copyList(list, AgreementDTO.class)); + } + + /** + * 保存协议 + * + * @param dto 协议对象 + */ + @ApiOperation(value = "管理后台-保存用户协议", notes = "接收一个包含多个AgreementDTO的列表") + @PostMapping("/save") + public R<?> saveAgreement(@Validated @RequestBody AgreementDTO dto) { + iAgreementService.saveAgreement(dto); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java index 68a8797..ba8ec76 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/CustomConfigController.java @@ -10,6 +10,8 @@ import com.ruoyi.system.domain.vo.CustomConfigVO; import com.ruoyi.system.service.ICustomConfigService; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -112,4 +114,43 @@ public R<MgtAfterSaleSettingDTO> getAfterSaleSetting() { return R.ok(iCustomConfigService.getAfterSaleSetting()); } + + /** + * 获取客服电话 + * + * @return 客服电话 + */ + @ApiOperation("获取客服电话") + @GetMapping("/service-phone") + public R<String> servicePhone() { + return R.ok(iCustomConfigService.getServicePhone()); + } + + /** + * 保存客服电话 + * + * @param phone 客服电话 + */ + @ApiOperation("保存客服电话") + @PostMapping("/save-service-phone") + @ApiImplicitParams({ + @ApiImplicitParam(name = "phone", value = "客服电话", example = "18888888888", required = true)}) + public R<?> servicePhone(@RequestParam(value = "phone", required = true) String phone) { + iCustomConfigService.updateServicePhone(phone); + return R.ok(); + } + + /** + * 删除客户电话 + * + * @param phone 客服电话 + */ + @ApiOperation("删除客服电话") + @PostMapping("/delete-service-phone") + @ApiImplicitParams({ + @ApiImplicitParam(name = "phone", value = "客服电话", example = "18888888888", required = true)}) + public R<?> deleteServicePhone(@RequestParam(value = "phone", required = true) String phone) { + iCustomConfigService.deleteServicePhone(phone); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java index f5298eb..cee3a8e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysRoleController.java @@ -1,18 +1,19 @@ package com.ruoyi.system.controller; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; -import javax.annotation.Resource; -import javax.management.relation.Role; -import javax.servlet.http.HttpServletResponse; - -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.ruoyi.common.core.utils.poi.ExcelUtil; +import com.ruoyi.common.core.web.controller.BaseController; +import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; +import com.ruoyi.common.core.web.page.TableDataInfo; +import com.ruoyi.common.log.annotation.Log; +import com.ruoyi.common.log.enums.BusinessType; +import com.ruoyi.common.security.annotation.RequiresPermissions; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.domain.SysDept; +import com.ruoyi.system.api.domain.SysRole; +import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.domain.SysMenus; import com.ruoyi.system.domain.SysRoleMenu; import com.ruoyi.system.domain.SysUserRole; @@ -27,21 +28,25 @@ import com.ruoyi.system.service.ISysUserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.*; -import com.ruoyi.common.core.utils.poi.ExcelUtil; -import com.ruoyi.common.core.web.controller.BaseController; -import com.ruoyi.common.core.web.domain.AjaxResult; -import com.ruoyi.common.core.web.page.TableDataInfo; -import com.ruoyi.common.log.annotation.Log; -import com.ruoyi.common.log.enums.BusinessType; -import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.ruoyi.common.security.utils.SecurityUtils; -import com.ruoyi.system.api.domain.SysDept; -import com.ruoyi.system.api.domain.SysRole; -import com.ruoyi.system.api.domain.SysUser; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; /** * 角色信息 @@ -72,30 +77,29 @@ @Resource private SysMenuMapper menuMapper; - @ApiOperation("获取所有角色信息根据公司id") + // @ApiOperation("获取所有角色信息根据公司id") @GetMapping("/list") public AjaxResult list(Integer companyId) { SysRole role = new SysRole(); - role.setCompanyId(companyId); List<SysRole> list = roleService.selectRoleList(role); return AjaxResult.success(list); } - - @ApiOperation("获取所有角色信息根据公司id--分页") + // @ApiOperation("获取所有角色信息根据公司id--分页") @GetMapping("/listPage") public AjaxResult listPage(Integer companyId,int pageNumber,int pageSize) { PageInfo<SysRole> pageInfo = new PageInfo<>(pageNumber, pageSize); - PageInfo<SysRole> page = roleService.page(pageInfo, new LambdaQueryWrapper<SysRole>().eq(SysRole::getCompanyId, companyId).ne(SysRole::getRoleId,20)); + PageInfo<SysRole> page = roleService.page(pageInfo, + new LambdaQueryWrapper<SysRole>().ne(SysRole::getRoleId, 20)); return AjaxResult.success(page); } - @ApiOperation("角色启用停用") + // @ApiOperation("角色启用停用") @GetMapping("/roleStart") public AjaxResult roleStart(Long roleId) { @@ -109,7 +113,7 @@ } - + @Log(title = "角色管理", businessType = BusinessType.INSERT) @ApiOperation("添加角色") @PostMapping("/roleAdd") public AjaxResult roleAdd(@Validated @RequestBody RoleAddDto dto) @@ -117,8 +121,7 @@ SysRole role = new SysRole(); role.setRoleName(dto.getRoleName()); long count = roleService.count(Wrappers.lambdaQuery(SysRole.class) - .eq(SysRole::getRoleName,dto.getRoleName()) - .eq(SysRole::getCompanyId,dto.getCompanyId())); + .eq(SysRole::getRoleName, dto.getRoleName())); if(count>0){ return AjaxResult.error("角色已存在,请重新输入"); } @@ -126,12 +129,8 @@ if(CollectionUtils.isEmpty(menuIds1)){ return AjaxResult.error("菜单id不能为空"); } - role.setMenuIds(dto.getMenuIds().toArray((new Long[dto.getMenuIds().size()]))); + role.setMenuIds(dto.getMenuIds().toArray(new Long[0])); // 添加角色 - role.setCompanyId(dto.getCompanyId()); - role.setCarDataAuth(dto.getCarDataAuth()); - role.setCarTrainOperAuth(dto.getCarTrainOperAuth()); - role.setContractDataAuth(dto.getContractDataAuth()); role.setCreateBy(SecurityUtils.getUsername()); role.setCreateTime(new Date()); roleService.insertRole(role); @@ -149,15 +148,13 @@ @ApiOperation("角色详情") - @GetMapping("/roleInfo") - public AjaxResult roleInfo( @RequestParam Long id) + @GetMapping("/roleInfo/{id}") + public AjaxResult roleInfo( + @ApiParam(value = "角色id", name = "id", required = true) @PathVariable("id") Long id) { SysRole role = roleService.selectRoleById(id); RoleInfoVo roleInfoVo = new RoleInfoVo(); roleInfoVo.setRoleId(role.getRoleId()); - roleInfoVo.setCarDataAuth(role.getCarDataAuth()); - roleInfoVo.setCarTrainOperAuth(role.getCarTrainOperAuth()); - roleInfoVo.setContractDataAuth(role.getContractDataAuth()); roleInfoVo.setRoleName(role.getRoleName()); // 获取当前角色的菜单id List<Long> menusId = sysRoleMenuMapper.selectList(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, id)).stream().map(SysRoleMenu::getMenuId).collect(Collectors.toList()); @@ -224,6 +221,7 @@ return AjaxResult.success(s1); } + @Log(title = "角色管理", businessType = BusinessType.UPDATE) @ApiOperation("编辑角色") @PostMapping("/roleUpdate") public AjaxResult roleUpdate(@Validated @RequestBody RoleUpdateDto dto) @@ -231,14 +229,11 @@ SysRole role = new SysRole(); role.setRoleName(dto.getRoleName()); SysRole one = roleService.getOne(new LambdaQueryWrapper<SysRole>().eq(SysRole::getRoleId, dto.getRoleId())); - List<SysRole> sysRoles = roleService.isExitUpdate(dto.getRoleName(),dto.getRoleId(),one.getCompanyId()); + List<SysRole> sysRoles = roleService.isExitUpdate(dto.getRoleName(), dto.getRoleId()); if(sysRoles.size()>0){ return AjaxResult.error("角色已存在,请重新输入"); } // 编辑角色 - role.setCarDataAuth(dto.getCarDataAuth()); - role.setCarTrainOperAuth(dto.getCarTrainOperAuth()); - role.setContractDataAuth(dto.getContractDataAuth()); role.setUpdateBy(SecurityUtils.getUsername()); role.setUpdateTime(new Date()); role.setRoleId(dto.getRoleId()); @@ -270,6 +265,14 @@ return AjaxResult.success(); } + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @ApiOperation("删除角色") + @DeleteMapping("/{id}") + public AjaxResult removeRole( + @ApiParam(name = "id", value = "角色ID", required = true) @PathVariable Long id) { + roleService.removeRole(id); + return AjaxResult.success(); + } @Log(title = "角色管理", businessType = BusinessType.EXPORT) @RequiresPermissions("system:role:export") @PostMapping("/export") diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/Agreement.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/Agreement.java index 3e7e7d2..6829b9c 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/Agreement.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/Agreement.java @@ -1,6 +1,7 @@ package com.ruoyi.system.domain; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModel; @@ -32,24 +33,31 @@ private Long id; @ApiModelProperty(value = "协议类型 1=用户协议 2=隐私协议") + @TableField(value = "agreement_type") private Integer agreementType; @ApiModelProperty(value = "协议内容") + @TableField(value = "agreement_content") private String agreementContent; @ApiModelProperty(value = "创建者") + @TableField(value = "create_by") private String createBy; @ApiModelProperty(value = "创建时间") + @TableField(value = "create_time") private LocalDateTime createTime; @ApiModelProperty(value = "更新者") + @TableField(value = "update_by") private String updateBy; @ApiModelProperty(value = "更新时间") + @TableField(value = "update_time") private LocalDateTime updateTime; @ApiModelProperty(value = "删除标志(0代表存在 1代表删除)") + @TableField(value = "del_flag") private Integer delFlag; diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/AgreementDTO.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/AgreementDTO.java new file mode 100644 index 0000000..6a739c6 --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/AgreementDTO.java @@ -0,0 +1,30 @@ +package com.ruoyi.system.domain.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import lombok.Data; + +/** + * @author mitao + * @date 2024/6/18 + */ +@Data +@ApiModel(value = "协议对象") +public class AgreementDTO implements Serializable { + + private static final long serialVersionUID = 7144114465287126540L; + + @ApiModelProperty(value = "协议id") + private Long id; + + @ApiModelProperty(value = "协议类型 1=用户协议 2=隐私协议") + @NotNull(message = "协议类型不能为空") + private Integer agreementType; + + @ApiModelProperty(value = "协议内容") + @NotBlank(message = "协议内容不能为空") + private String agreementContent; +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java index 3ed8f21..f927794 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleAddDto.java @@ -1,27 +1,24 @@ package com.ruoyi.system.domain.dto; +import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.List; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; -import java.util.List; - @Data -public class RoleAddDto { +@ApiModel("角色添加数据传输对象") +public class RoleAddDto implements Serializable { + + private static final long serialVersionUID = 5748474501961956215L; + @ApiModelProperty("角色名称") @NotBlank(message = "角色名称不能为空") private String roleName; - @ApiModelProperty("车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限") - private Integer carDataAuth; - @ApiModelProperty("车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限") - private Integer carTrainOperAuth; - @ApiModelProperty("合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限") - private Integer contractDataAuth; - @ApiModelProperty("公司id") - @NotNull(message = "公司id不能为空") - private Integer companyId; + @ApiModelProperty("菜单id") - @NotNull(message = "菜单id不能为空") + @NotEmpty(message = "菜单id不能为空") private List<Long> menuIds; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java index c0374c4..a5eb0e1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/RoleUpdateDto.java @@ -1,24 +1,27 @@ package com.ruoyi.system.domain.dto; import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.List; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; import lombok.Data; -import javax.validation.constraints.NotBlank; -import java.util.List; - @Data -public class RoleUpdateDto { +public class RoleUpdateDto implements Serializable { + + private static final long serialVersionUID = 8640434597899168206L; + @ApiModelProperty("角色id") + @NotNull(message = "角色id不能为空") private Long roleId; + @ApiModelProperty("角色名称") @NotBlank(message = "角色名称不能为空") private String roleName; - @ApiModelProperty("车辆数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限") - private Integer carDataAuth; - @ApiModelProperty("车务数据权限:1=所有数据 2=已租 3=未租 4=已租(仅自己负责的合同) 5=无数据权限") - private Integer carTrainOperAuth; - @ApiModelProperty("合同数据权限:1=所有数据 2=仅自己负责的合同 3=无数据权限") - private Integer contractDataAuth; + @ApiModelProperty("菜单id") + @NotEmpty(message = "菜单id不能为空") private List<Long> menuIds; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java index a06f172..6b83982 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java @@ -1,9 +1,8 @@ package com.ruoyi.system.mapper; -import java.util.List; - import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.system.api.domain.SysRole; +import java.util.List; import org.apache.ibatis.annotations.Param; /** @@ -108,7 +107,7 @@ */ public int deleteRoleByIds(Long[] roleIds); - List<SysRole> isExitUpdate(@Param("roleName") String roleName, @Param("roleId") Long roleId, @Param("companyId") Integer companyId); + List<SysRole> isExitUpdate(@Param("roleName") String roleName, @Param("roleId") Long roleId); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IAgreementService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IAgreementService.java index 8441fe7..2c31dd6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IAgreementService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/IAgreementService.java @@ -2,9 +2,8 @@ import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.common.core.domain.R; import com.ruoyi.system.domain.Agreement; -import org.springframework.web.bind.annotation.PathVariable; +import com.ruoyi.system.domain.dto.AgreementDTO; /** * <p> @@ -18,4 +17,10 @@ Agreement getAgreement(Integer agreementType); + /** + * 保存协议 + * + * @param dto 协议对象 + */ + void saveAgreement(AgreementDTO dto); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java index b0642b0..edbfbd1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ICustomConfigService.java @@ -58,4 +58,25 @@ * @return List<CustomConfigVO> */ MgtAfterSaleSettingDTO getAfterSaleSetting(); + + /** + * 保存客服电话 + * + * @param phone 客服电话 + */ + void updateServicePhone(String phone); + + /** + * 获取客服电话 + * + * @return 客服电话 + */ + String getServicePhone(); + + /** + * 删除客户电话 + * + * @param phone 客服电话 + */ + void deleteServicePhone(String phone); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java index 157b779..d7a79b1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -1,11 +1,10 @@ package com.ruoyi.system.service; -import java.util.List; -import java.util.Set; - import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.domain.SysUserRole; +import java.util.List; +import java.util.Set; /** * 角色业务层 @@ -173,6 +172,7 @@ */ public int insertAuthUsers(Long roleId, Long[] userIds); - List<SysRole> isExitUpdate(String roleName, Long roleId,Integer companyId); + List<SysRole> isExitUpdate(String roleName, Long roleId); + void removeRole(Long id); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java index 8afd215..86cbd67 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/AgreementServiceImpl.java @@ -3,9 +3,14 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ruoyi.common.core.utils.page.BeanUtils; +import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.domain.Agreement; +import com.ruoyi.system.domain.dto.AgreementDTO; import com.ruoyi.system.mapper.AgreementMapper; import com.ruoyi.system.service.IAgreementService; +import java.time.LocalDateTime; +import java.util.Optional; import org.springframework.stereotype.Service; /** @@ -26,4 +31,30 @@ wrapper.eq(Agreement::getDelFlag,0); return this.getOne(wrapper); } + + /** + * 保存协议 + * + * @param dto 协议对象 + */ + @Override + public void saveAgreement(AgreementDTO dto) { + Optional<Agreement> agreementOpt = this.lambdaQuery() + .eq(Agreement::getAgreementType, dto.getAgreementType()).oneOpt(); + Agreement agreement; + if (agreementOpt.isPresent()) { + agreement = agreementOpt.get(); + agreement.setAgreementType(dto.getAgreementType()); + agreement.setAgreementContent(dto.getAgreementContent()); + agreement.setUpdateBy(SecurityUtils.getUsername()); + agreement.setUpdateTime(LocalDateTime.now()); + this.updateById(agreement); + } else { + agreement = BeanUtils.copyBean(dto, Agreement.class); + agreement.setCreateBy(SecurityUtils.getUsername()); + agreement.setCreateTime(LocalDateTime.now()); + this.save(agreement); + } + + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java index ee30608..a8c1ab7 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/CustomConfigServiceImpl.java @@ -2,6 +2,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Lists; +import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; import com.ruoyi.system.api.constants.ConfigEnum; import com.ruoyi.system.api.domain.CustomConfig; @@ -11,8 +13,11 @@ import com.ruoyi.system.mapper.CustomConfigMapper; import com.ruoyi.system.service.ICustomConfigService; import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.Arrays; import java.util.List; import java.util.Optional; +import java.util.stream.Collectors; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -179,4 +184,85 @@ } return dto; } + + /** + * 保存客服电话 + * + * @param phone 客服电话 + */ + @Override + public void updateServicePhone(String phone) { + Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( + ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + if (customConfigByKey.isPresent()) { + CustomConfig customConfig = customConfigByKey.get(); + String[] split = customConfig.getConfigValue().split(","); + if (split.length > 1) { + throw new ServiceException("客户电话最多配置两个"); + } + boolean flag = Arrays.asList(split).contains(phone); + if (flag) { + throw new ServiceException("客户电话已存在"); + } + + if (StringUtils.isBlank(customConfig.getConfigValue())) { + customConfig.setConfigValue(phone); + } else { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(customConfig.getConfigValue()); + stringBuilder.append(","); + stringBuilder.append(phone); + customConfig.setConfigValue(stringBuilder.toString()); + } + customConfig.setUpdateTime(LocalDateTime.now()); + this.updateById(customConfig); + } else { + CustomConfig config = new CustomConfig(); + config.setConfigKey(ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + config.setConfigType(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyType()); + config.setConfigName(ConfigEnum.PLATFORM_SERVICE_PHONE.getKeyName()); + config.setConfigValue(phone); + config.setCreateTime(LocalDateTime.now()); + this.save(config); + } + } + + /** + * 获取客服电话 + * + * @return 客服电话 + */ + @Override + public String getServicePhone() { + Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( + ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + return customConfigByKey.map(CustomConfig::getConfigValue).orElse(null); + } + + /** + * 删除客户电话 + * + * @param phone 客服电话 + */ + @Override + public void deleteServicePhone(String phone) { + Optional<CustomConfig> customConfigByKey = getCustomConfigByKey( + ConfigEnum.PLATFORM_SERVICE_PHONE.getKey()); + if (customConfigByKey.isPresent()) { + CustomConfig customConfig = customConfigByKey.get(); + String configValue = customConfig.getConfigValue(); + if (StringUtils.isNotBlank(configValue)) { + String[] split = configValue.split(","); + // 判断当前phone是否存在 + boolean flag = Arrays.asList(split).contains(phone); + if (flag) { + // 删除 split 中与phone相同的元素 + configValue = Arrays.stream(split).filter(s -> !s.equals(phone)) + .collect(Collectors.joining(",")); + customConfig.setConfigValue(configValue); + this.updateById(customConfig); + } + } + } + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index 7840000..dcad841 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -1,23 +1,6 @@ package com.ruoyi.system.service.impl; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.system.domain.SysRoleDept; -import com.ruoyi.system.domain.SysRoleMenu; -import com.ruoyi.system.domain.SysUserRole; -import com.ruoyi.system.mapper.SysRoleDeptMapper; -import com.ruoyi.system.mapper.SysRoleMapper; -import com.ruoyi.system.mapper.SysRoleMenuMapper; -import com.ruoyi.system.mapper.SysUserRoleMapper; -import com.ruoyi.system.service.ISysRoleService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import com.ruoyi.common.core.constant.UserConstants; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.SpringUtils; @@ -26,6 +9,22 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; +import com.ruoyi.system.domain.SysRoleDept; +import com.ruoyi.system.domain.SysRoleMenu; +import com.ruoyi.system.domain.SysUserRole; +import com.ruoyi.system.mapper.SysRoleDeptMapper; +import com.ruoyi.system.mapper.SysRoleMapper; +import com.ruoyi.system.mapper.SysRoleMenuMapper; +import com.ruoyi.system.mapper.SysUserRoleMapper; +import com.ruoyi.system.service.ISysRoleService; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * 角色 业务层处理 @@ -249,9 +248,9 @@ public int updateRole(SysRole role) { // 修改角色信息 -// roleMapper.updateRole(role); + // roleMapper.updateRole(role); // 删除角色与菜单关联 -// roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); + roleMenuMapper.deleteRoleMenuByRoleId(role.getRoleId()); return roleMapper.updateRole(role); } @@ -440,7 +439,17 @@ } @Override - public List<SysRole> isExitUpdate(String roleName, Long roleId,Integer companyId) { - return roleMapper.isExitUpdate(roleName,roleId,companyId); + public List<SysRole> isExitUpdate(String roleName, Long roleId) { + return roleMapper.isExitUpdate(roleName, roleId); + } + + @Override + public void removeRole(Long id) { + SysRole sysRole = this.getById(id); + if (StringUtils.isNull(sysRole)) { + throw new ServiceException("角色不存在"); + } + sysRole.setDelFlag("2"); + this.updateRole(sysRole); } } diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 5984eaa..7f081e8 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -93,7 +93,10 @@ where r.role_key=#{roleKey} and r.del_flag = '0' limit 1 </select> <select id="isExitUpdate" resultType="com.ruoyi.system.api.domain.SysRole"> - select role_name romeName from sys_role where role_name=#{roleName} and companyId =#{companyId} and role_id != #{roleId} + select role_name romeName + from sys_role + where role_name = #{roleName} + and role_id != #{roleId} </select> <insert id="insertRole" parameterType="com.ruoyi.system.api.domain.SysRole" useGeneratedKeys="true" keyProperty="roleId"> @@ -124,10 +127,6 @@ <if test="status != null and status != ''">#{status},</if> <if test="remark != null and remark != ''">#{remark},</if> <if test="createBy != null and createBy != ''">#{createBy},</if> - <if test="carDataAuth != null and carDataAuth != ''">#{carDataAuth},</if> - <if test="carTrainOperAuth != null and carTrainOperAuth != ''">#{carTrainOperAuth},</if> - <if test="contractDataAuth != null and contractDataAuth != ''">#{contractDataAuth},</if> - <if test="companyId != null and companyId != ''">#{companyId},</if> sysdate() ) </insert> @@ -144,9 +143,6 @@ <if test="status != null and status != ''">status = #{status},</if> <if test="remark != null">remark = #{remark},</if> <if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if> - <if test="carDataAuth != null and carDataAuth != ''">carDataAuth = #{carDataAuth},</if> - <if test="carTrainOperAuth != null and carTrainOperAuth != ''">carTrainOperAuth = #{carTrainOperAuth},</if> - <if test="contractDataAuth != null and contractDataAuth != ''">contractDataAuth = #{contractDataAuth},</if> update_time = sysdate() </set> where role_id = #{roleId} -- Gitblit v1.7.1