ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TCoupon.java
@@ -106,8 +106,8 @@ private BigDecimal vipPaymentAmount; @ApiModelProperty(value = "优惠券说明") @TableField("explain") private String explain; @TableField("explains") private String explains; @ApiModelProperty(value = "说明") @TableField("remark") ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/SysOperLog.java
@@ -22,9 +22,9 @@ @Data @ApiModel @TableName("sys_oper_log") public class SysOperLog extends BaseEntity { public class SysOperLog { private static final long serialVersionUID = 1L; /** * 日志主键 */ @@ -32,14 +32,14 @@ @ApiModelProperty("数据id") @TableId(value = "oper_id", type = IdType.AUTO) private Long operId; /** * 操作模块 */ @Excel(name = "操作模块") @ApiModelProperty("操作模块") private String title; /** * 业务类型(0其它 1新增 2修改 3删除) */ @@ -47,20 +47,20 @@ @ApiModelProperty("0=其它,1=新增,2=修改,3=删除,4=授权,5=导出,6=导入,7=强退,8=生成代码,9=清空数据") @TableField("business_type") private Integer businessType; /** * 业务类型数组 */ @TableField(exist = false) private Integer[] businessTypes; /** * 请求方法 */ @Excel(name = "请求方法") @ApiModelProperty("请求方法") private String method; /** * 请求方式 */ @@ -68,7 +68,7 @@ @ApiModelProperty("请求方式") @TableField("request_method") private String requestMethod; /** * 操作类别(0其它 1后台用户 2手机端用户) */ @@ -76,7 +76,7 @@ @ApiModelProperty("0=其它,1=后台用户,2=手机端用户") @TableField("operator_type") private Integer operatorType; /** * 操作人员 */ @@ -84,7 +84,7 @@ @ApiModelProperty("操作人员") @TableField("oper_name") private String operName; /** * 部门名称 */ @@ -92,7 +92,7 @@ @ApiModelProperty("部门名称") @TableField("dept_name") private String deptName; /** * 请求url */ @@ -100,7 +100,7 @@ @ApiModelProperty("请求地址") @TableField("oper_url") private String operUrl; /** * 操作地址 */ @@ -108,7 +108,7 @@ @ApiModelProperty("操作地址") @TableField("oper_ip") private String operIp; /** * 请求参数 */ @@ -116,7 +116,7 @@ @ApiModelProperty("请求参数") @TableField("oper_param") private String operParam; /** * 返回参数 */ @@ -124,14 +124,14 @@ @ApiModelProperty("返回参数") @TableField("json_result") private String jsonResult; /** * 操作状态(0正常 1异常) */ @Excel(name = "状态", readConverterExp = "0=正常,1=异常") @ApiModelProperty("0=正常,1=异常") private Integer status; /** * 错误消息 */ @@ -139,7 +139,7 @@ @ApiModelProperty("错误消息") @TableField("error_msg") private String errorMsg; /** * 操作时间 */ @@ -148,7 +148,7 @@ @ApiModelProperty("操作时间") @TableField("oper_time") private Date operTime; /** * 消耗时间 */ @@ -156,140 +156,4 @@ @ApiModelProperty("消耗时间") @TableField("cost_time") private Long costTime; public Long getOperId() { return operId; } public void setOperId(Long operId) { this.operId = operId; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public Integer getBusinessType() { return businessType; } public void setBusinessType(Integer businessType) { this.businessType = businessType; } public Integer[] getBusinessTypes() { return businessTypes; } public void setBusinessTypes(Integer[] businessTypes) { this.businessTypes = businessTypes; } public String getMethod() { return method; } public void setMethod(String method) { this.method = method; } public String getRequestMethod() { return requestMethod; } public void setRequestMethod(String requestMethod) { this.requestMethod = requestMethod; } public Integer getOperatorType() { return operatorType; } public void setOperatorType(Integer operatorType) { this.operatorType = operatorType; } public String getOperName() { return operName; } public void setOperName(String operName) { this.operName = operName; } public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } public String getOperUrl() { return operUrl; } public void setOperUrl(String operUrl) { this.operUrl = operUrl; } public String getOperIp() { return operIp; } public void setOperIp(String operIp) { this.operIp = operIp; } public String getOperParam() { return operParam; } public void setOperParam(String operParam) { this.operParam = operParam; } public String getJsonResult() { return jsonResult; } public void setJsonResult(String jsonResult) { this.jsonResult = jsonResult; } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getErrorMsg() { return errorMsg; } public void setErrorMsg(String errorMsg) { this.errorMsg = errorMsg; } public Date getOperTime() { return operTime; } public void setOperTime(Date operTime) { this.operTime = operTime; } public Long getCostTime() { return costTime; } public void setCostTime(Long costTime) { this.costTime = costTime; } } ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/RequestParamGlobalFilter.java
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.html.EscapeUtil; import com.ruoyi.gateway.config.properties.IgnoreWhiteProperties; import com.ruoyi.gateway.config.properties.XssProperties; import io.netty.buffer.ByteBufAllocator; import org.apache.commons.codec.binary.Base64; @@ -42,10 +43,24 @@ */ @Component public class RequestParamGlobalFilter implements GlobalFilter, Ordered { @Autowired private IgnoreWhiteProperties ignoreWhite; @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); ServerHttpRequest.Builder mutate = request.mutate(); HttpMethod method = request.getMethod(); if(method != HttpMethod.POST){ return chain.filter(exchange.mutate().request(mutate.build()).build()); } // 跳过不需要验证的路径 String url = request.getURI().getPath(); if (StringUtils.matches(url, ignoreWhite.getWhites())) { return chain.filter(exchange); } ServerHttpRequestDecorator httpRequestDecorator = requestDecorator(exchange); return chain.filter(exchange.mutate().request(httpRequestDecorator).build()); } ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/SignFilter.java
@@ -51,6 +51,9 @@ @Value("${security.sign}") private boolean parameter_signature; @Autowired private IgnoreWhiteProperties ignoreWhite; @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { @@ -61,6 +64,11 @@ if(method != HttpMethod.POST){ return chain.filter(exchange.mutate().request(mutate.build()).build()); } // 跳过不需要验证的路径 String url = request.getURI().getPath(); if (StringUtils.matches(url, ignoreWhite.getWhites())) { return chain.filter(exchange); } String sign = request.getHeaders().getFirst(TokenConstants.SIGN); String nonce_str = request.getHeaders().getFirst(TokenConstants.NONCE_STR); if (parameter_signature && StringUtils.isEmpty(sign)) { ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -174,6 +174,9 @@ public AjaxResult<List<String>> getRoleSiteName(@PathVariable Integer roleId){ List<Integer> ids = roleSiteClient.getSiteIds(roleId.longValue()).getData(); List<Site> data = siteClient.getSiteByIds(ids).getData(); if(null == data){ return AjaxResult.success(new ArrayList<>()); } List<String> siteNames = data.stream().map(Site::getName).collect(Collectors.toList()); return AjaxResult.success(siteNames); } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysMenuServiceImpl.java
@@ -14,10 +14,7 @@ import com.ruoyi.system.domain.vo.MetaVo; import com.ruoyi.system.domain.vo.RouterVo; import com.ruoyi.system.domain.vo.TreeSelect; import com.ruoyi.system.mapper.SysMenuMapper; import com.ruoyi.system.mapper.SysRoleMapper; import com.ruoyi.system.mapper.SysRoleMenuMapper; import com.ruoyi.system.mapper.SysUserRoleMapper; import com.ruoyi.system.mapper.*; import com.ruoyi.system.service.ISysMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -27,6 +24,8 @@ import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysRole; import com.ruoyi.system.api.domain.SysUser; import javax.annotation.Resource; /** * 菜单 业务层处理 @@ -52,6 +51,12 @@ @Autowired private SysUserRoleMapper sysUserRoleMapper; @Resource private SysUserMapper sysUserMapper; /** * 根据用户查询系统菜单列表 @@ -352,7 +357,9 @@ @Override public List<SysMenus> getAllMenu() { Long roleId = tokenService.getLoginUser().getSysUser().getRoles().get(0).getRoleId(); Long userid = tokenService.getLoginUser().getUserid(); SysUserRole sysUserRole = sysUserRoleMapper.selectSysUserRoleByUserId(userid); Long roleId = sysUserRole.getRoleId(); List<SysMenus> list=null; if(roleId!=1){ list = menuMapper.getAllOne(); ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -145,7 +145,7 @@ * @return 优惠券ids 查询每个优惠券的发放数量 */ @PostMapping("/getCountByCouponIds") public R<List<Integer>> getCountByCouponIds(@RequestParam("couponIds") String couponIds) { public R<List<Integer>> getCountByCouponIds( String couponIds) { // 最终结果 和优惠券id一一对应 List<Integer> res = new ArrayList<>(); String[] split = couponIds.split(","); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/FileController.java
@@ -21,7 +21,6 @@ */ @Api(tags = "服务器文件上传") @RestController @CrossOrigin @RequestMapping("/file/") public class FileController { @@ -47,7 +46,7 @@ // 获取文件名称 String filename = mf.getOriginalFilename(); // 获取文件后缀 String ext = filename.substring(filename.lastIndexOf("."), filename.length()); String ext = filename.substring(filename.lastIndexOf(".") + 1, filename.length()); // 检查文件类型 if (!fileUploadConfig.getAllowExt().contains(ext)) { return AjaxResult.error("上传文件格式不正确,仅支持" + fileUploadConfig.getAllowExt()); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/SiteController.java
@@ -109,7 +109,7 @@ return AjaxResult.success(siteService.list(new QueryWrapper<>())); } @PostMapping("/getSiteListGun") @GetMapping("/getSiteListGun") @ApiOperation(value = "获取站点列表 不分页", tags = {"管理后台-接口信息使用"}) public AjaxResult<List<Site>> getSiteListGun(){ return AjaxResult.success(siteService.getSiteListGun()); ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java
@@ -23,6 +23,8 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,9 +36,12 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Arrays; import java.util.List; import static com.ruoyi.common.core.context.SecurityContextHolder.getUserId; /** * <p> @@ -97,6 +102,11 @@ @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "添加计费策略") @PostMapping(value = "/add") public AjaxResult<Integer> add(@RequestBody TAccountingStrategyDTO dto) { if(null != dto.getSiteId()){ dto.setAuditStatus(3); } Long userId = SecurityUtils.getLoginUser().getUserid(); dto.setUserId(userId); accountingStrategyService.save(dto); // 添加明细 dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); @@ -132,10 +142,14 @@ TAccountingStrategyVO accountingStrategyVO = new TAccountingStrategyVO(); BeanUtils.copyProperties(accountingStrategy,accountingStrategyVO); // 查询用户信息 String firstUserName = sysUserClient.getSysUser(accountingStrategy.getFirstUserId()).getData().getNickName(); String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName(); accountingStrategyVO.setFirstUserName(firstUserName); accountingStrategyVO.setTwoUserName(twoUserName); if(null != accountingStrategy.getFirstUserId()){ String firstUserName = sysUserClient.getSysUser(accountingStrategy.getFirstUserId()).getData().getNickName(); accountingStrategyVO.setFirstUserName(firstUserName); } if(null != accountingStrategy.getTwoUserId()){ String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName(); accountingStrategyVO.setTwoUserName(twoUserName); } return AjaxResult.ok(accountingStrategyVO); } @@ -183,38 +197,52 @@ return AjaxResult.ok(accountingStrategyService.pageList(query)); } // @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核") // @PostMapping(value = "/auth/pass") // public AjaxResult<PageInfo<TAccountingStrategyVO>> authPass(@RequestBody SteategyPassDto steategyPassDto) { // TAccountingStrategy byId = accountingStrategyService.getById(steategyPassDto.getId()); // Long userId = tokenService.getLoginUser().getSysUser().getUserId(); // if (byId.getAuditStatus()==1&&byId.getFirstUserId()!=userId){ // return AjaxResult.error("您不是一级审核人员,无法审核"); // } // if (byId.getAuditStatus()==2&&byId.getTwoUserId()!=userId){ // return AjaxResult.error("您不是二级审核人员,无法审核"); // } // if (steategyPassDto.getPass()==1){ // if (byId.getAuditStatus()==1){ // // byId.setAuditStatus(2); // byId.setFirstRemark(steategyPassDto.getRemark()); // // }else if (byId.getAuditStatus()==2){ // byId.setAuditStatus(3); // byId.setTwoRemark(steategyPassDto.getRemark()); // // } // }else { // byId.setAuditStatus(4); // } // // // // // // // } @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "审核") @PostMapping(value = "/auth/pass") public AjaxResult<PageInfo<TAccountingStrategyVO>> authPass(@RequestBody SteategyPassDto steategyPassDto) { TAccountingStrategy byId = accountingStrategyService.getById(steategyPassDto.getId()); Long userId = SecurityUtils.getLoginUser().getUserid(); if (byId.getAuditStatus()==1&&byId.getFirstUserId()!=userId){ return AjaxResult.error("您不是一级审核人员,无法审核"); } if (byId.getAuditStatus()==2&&byId.getTwoUserId()!=userId){ return AjaxResult.error("您不是二级审核人员,无法审核"); } if (steategyPassDto.getPass()==1){ if (byId.getAuditStatus()==1){ byId.setAuditStatus(2); byId.setFirstRemark(steategyPassDto.getRemark()); byId.setFirstAuditTime(LocalDateTime.now()); }else if (byId.getAuditStatus()==2){ byId.setAuditStatus(3); byId.setTwoRemark(steategyPassDto.getRemark()); byId.setTwoAuditTime(LocalDateTime.now()); } }else { byId.setAuditStatus(4); } accountingStrategyService.updateById(byId); return AjaxResult.success(); } @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "删除") @DeleteMapping(value = "/delete") public R delete(String ids) { String[] split = ids.split(","); for (String s : split) { accountingStrategyService.removeById(s); } return R.ok(); } /** * 小程序远程调用 根据会员折扣、预付金额 计算服务费 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -6,6 +6,7 @@ import com.ruoyi.chargingPile.api.dto.ApplyChargingRemarkDto; import com.ruoyi.chargingPile.api.model.TApplyChargingPile; import com.ruoyi.chargingPile.service.TApplyChargingPileService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; @@ -40,12 +41,20 @@ * 建桩申请 */ @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE) @ApiOperation(tags = {"小程序-建桩申请","后台-申请表单-申请建桩"},value = "建桩申请") @ApiOperation(tags = {"小程序-建桩申请"},value = "建桩申请") @PostMapping(value = "/add") public AjaxResult<Boolean> add(@RequestBody TApplyChargingPile dto) { // 用户id Long userId = tokenService.getLoginUserApplet().getUserId(); dto.setAppUserId(userId); return AjaxResult.ok(applyChargingPileService.save(dto)); } @Log(title = "建桩申请", businessType = BusinessType.INSERT,operatorType = OperatorType.MOBILE) @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "建桩申请") @PostMapping(value = "/manage/add") public AjaxResult<Boolean> manageAdd(@RequestBody TApplyChargingPile dto) { return AjaxResult.ok(applyChargingPileService.save(dto)); } @@ -59,6 +68,12 @@ } @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "导出") @PostMapping(value = "/export") public R export() { return R.ok(); } @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "详情") @PostMapping(value = "/detail/{id}") public AjaxResult<TApplyChargingPile> detail(@PathVariable Integer id) { ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TChargingGunController.java
@@ -114,8 +114,8 @@ */ @Log(title = "结束充电", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) @ApiOperation(tags = {"后台-充电枪"},value = "结束充电") @PostMapping(value = "/stopCharging") public AjaxResult<String> stopCharging() { @PutMapping(value = "/stopCharging") public AjaxResult<String> stopCharging(@RequestParam("id") Integer id) { // TODO 硬件 结束充电 return AjaxResult.success(); } ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TChargingGunMapper.xml
@@ -56,7 +56,7 @@ AND tcg.status = #{query.status} </if> <if test="query.chargeMode != null"> AND tcg.chargeMode = #{query.chargeMode} AND tcg.charge_mode = #{query.chargeMode} </if> <if test="null != siteIds"> and tcg.site_id in ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -115,7 +115,7 @@ return AjaxResult.error("当前用户已到达兑换上限"); } //生成积分兑换成功的订单 orderClient.exchangeCreate(exchangeDto); // orderClient.exchangeCreate(exchangeDto); //如果是优惠卷,赠送优惠卷给用户 ruoyi-service/ruoyi-other/src/main/resources/mapper/other/TActivityMapper.xml
@@ -23,16 +23,16 @@ <select id="pageList" resultType="com.ruoyi.other.api.domain.TActivity"> select * from t_activity <where> <if test="req.name != null and req.name != ''"> AND `name` LIKE concat('%',#{req.name}, '%') <if test="req.title != null and req.title != ''"> AND `name` LIKE concat('%',#{req.title}, '%') </if> <if test="req.state == 1"> <if test="req.startState == 1"> AND start_time >= NOW() </if> <if test="req.state == 2"> <if test="req.startState == 2"> AND start_time <= NOW() AND end_time >= NOW() </if> <if test="req.state == 3"> <if test="req.startState == 3"> AND end_time <= NOW() </if> AND del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()}