From 378b6ef815c3c115454bbc38c8802ef74e4ef936 Mon Sep 17 00:00:00 2001 From: huangdeliang Date: Sat, 24 Oct 2020 12:00:10 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E5=BD=95=E5=85=A5=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E6=88=90=E4=BA=A4=E6=97=B6=E9=97=B4=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/contract.pdf | Bin 118190 -> 153195 bytes ruoyi-admin/pom.xml | 5 --- .../custom/SysCommisionController.java | 2 +- .../custom/SysContractController.java | 29 +++++++------- .../controller/custom/SysOrderController.java | 3 ++ .../service/impl/SysOrderServiceImpl.java | 2 +- .../framework/config/SecurityConfig.java | 37 ++++++++---------- ruoyi-ui/src/views/custom/order/index.vue | 22 ++++++++++- 8 files changed, 56 insertions(+), 44 deletions(-) diff --git a/doc/contract.pdf b/doc/contract.pdf index d128494bb13685f5ead56e918e7285fc05735c83..be360b133dcc194a5f5bf99c28ba895a4c8989c6 100644 GIT binary patch delta 50544 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 diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index 2fb3e6223..e7882dcf1 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -130,11 +130,6 @@ layout 7.1.12 - - org.slf4j - slf4j-log4j12 - 1.7.30 - diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysCommisionController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysCommisionController.java index fec73a841..56eb1efb6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysCommisionController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysCommisionController.java @@ -102,7 +102,7 @@ public class SysCommisionController extends BaseController { @GetMapping(value = "/{ruleId}") public AjaxResult getInfo(@PathVariable("ruleId") Long ruleId, SysCommision sysCommision) { sysCommision.setRuleId(ruleId); - System.out.println(sysCommision); +// System.out.println(sysCommision); return AjaxResult.success(sysCommisionService.selectSysCommisionById(sysCommision)); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysContractController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysContractController.java index 71312315a..634d58b14 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysContractController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysContractController.java @@ -1,26 +1,19 @@ package com.ruoyi.web.controller.custom; -import java.util.List; - -import com.ruoyi.common.core.domain.model.Contract; -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.core.domain.model.Contract; +import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.custom.domain.SysContract; import com.ruoyi.custom.service.ISysContractService; -import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.common.core.page.TableDataInfo; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 合同Controller @@ -96,6 +89,12 @@ public class SysContractController extends BaseController { return toAjax(sysContractService.deleteSysContractByIds(ids)); } + + @GetMapping("/file/{id}") + public String getContract(@PathVariable long id) { + return redirect("/swagger-ui.html"); + } + /** * 合同签单 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysOrderController.java index a122093f2..7ec587368 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/custom/SysOrderController.java @@ -56,6 +56,9 @@ public class SysOrderController extends OrderBaseController { List list = sysOrderService.selectSysOrderList(sysOrder); List userList = userService.selectAllUser(); BigDecimal totalAmount = sysOrderService.selectAllOrderAmount(sysOrder); + if(totalAmount == null) { + totalAmount = new BigDecimal(0); + } for (SysOrder order : list) { for (SysUser user : userList) { diff --git a/ruoyi-custom/src/main/java/com/ruoyi/custom/service/impl/SysOrderServiceImpl.java b/ruoyi-custom/src/main/java/com/ruoyi/custom/service/impl/SysOrderServiceImpl.java index 1e0338711..aed783dfa 100644 --- a/ruoyi-custom/src/main/java/com/ruoyi/custom/service/impl/SysOrderServiceImpl.java +++ b/ruoyi-custom/src/main/java/com/ruoyi/custom/service/impl/SysOrderServiceImpl.java @@ -54,7 +54,7 @@ public class SysOrderServiceImpl implements ISysOrderService { public int insertSysOrder(SysOrder sysOrder) { Date orderTime = DateUtils.getNowDate(); sysOrder.setCreateTime(orderTime); - sysOrder.setOrderTime(orderTime); +// sysOrder.setOrderTime(orderTime); sysOrder.setOrderId(Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHHMMSS, orderTime))); return sysOrderMapper.insertSysOrder(sysOrder); } diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java index f2e41bc3b..71090a640 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java @@ -1,5 +1,8 @@ package com.ruoyi.framework.config; +import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter; +import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; +import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.http.HttpMethod; @@ -14,24 +17,20 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.logout.LogoutFilter; import org.springframework.web.filter.CorsFilter; -import com.ruoyi.framework.security.filter.JwtAuthenticationTokenFilter; -import com.ruoyi.framework.security.handle.AuthenticationEntryPointImpl; -import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl; /** * spring security配置 - * + * * @author ruoyi */ @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true) -public class SecurityConfig extends WebSecurityConfigurerAdapter -{ +public class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 自定义用户认证逻辑 */ @Autowired private UserDetailsService userDetailsService; - + /** * 认证失败处理类 */ @@ -55,7 +54,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Autowired private CorsFilter corsFilter; - + /** * 解决 无法直接注入 AuthenticationManager * @@ -64,8 +63,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter */ @Bean @Override - public AuthenticationManager authenticationManagerBean() throws Exception - { + public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } @@ -85,8 +83,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * authenticated | 用户登录后可访问 */ @Override - protected void configure(HttpSecurity httpSecurity) throws Exception - { + protected void configure(HttpSecurity httpSecurity) throws Exception { httpSecurity // CSRF禁用,因为不使用session .csrf().disable() @@ -99,9 +96,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 对于登录login 验证码captchaImage 允许匿名访问 .antMatchers( "/login", - "/captchaImage", - "/common/contract" - ).anonymous() + "/captchaImage" + ).anonymous() .antMatchers( HttpMethod.GET, "/*.html", @@ -117,6 +113,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter .antMatchers("/webjars/**").anonymous() .antMatchers("/*/api-docs").anonymous() .antMatchers("/druid/**").anonymous() + .antMatchers("/custom/contract/sign").anonymous() + .antMatchers("/custom/contract/file/**").anonymous() + // 除上面外的所有请求全部需要鉴权认证 .anyRequest().authenticated() .and() @@ -129,13 +128,12 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class); } - + /** * 强散列哈希加密实现 */ @Bean - public BCryptPasswordEncoder bCryptPasswordEncoder() - { + public BCryptPasswordEncoder bCryptPasswordEncoder() { return new BCryptPasswordEncoder(); } @@ -143,8 +141,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter * 身份认证接口 */ @Override - protected void configure(AuthenticationManagerBuilder auth) throws Exception - { + protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(userDetailsService).passwordEncoder(bCryptPasswordEncoder()); } } diff --git a/ruoyi-ui/src/views/custom/order/index.vue b/ruoyi-ui/src/views/custom/order/index.vue index 4d95a591f..fffd56a05 100644 --- a/ruoyi-ui/src/views/custom/order/index.vue +++ b/ruoyi-ui/src/views/custom/order/index.vue @@ -421,6 +421,19 @@ + + + + + + @@ -449,7 +462,7 @@