diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java index c997cad..e90b85e 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/exception/JeecgBootExceptionHandler.java @@ -12,6 +12,7 @@ import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.constant.enums.ClientTerminalTypeEnum; import org.jeecg.common.enums.SentinelErrorInfoEnum; import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.common.system.vo.MLoginUser; import org.jeecg.common.util.BrowserUtils; import org.jeecg.common.util.IpUtils; import org.jeecg.common.util.SpringContextUtils; @@ -34,9 +35,11 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.Map; +import static org.jeecg.common.system.util.JwtUtil.getUserChannelByToken; + /** * 异常处理器 - * + * * @Author scott * @Date 2019 */ @@ -56,7 +59,7 @@ public class JeecgBootExceptionHandler { addSysLog(e); return Result.error(e.getErrCode(), e.getMessage()); } - + /** * 处理自定义异常 */ @@ -120,7 +123,7 @@ public class JeecgBootExceptionHandler { addSysLog(e); return Result.error("操作失败,"+e.getMessage()); } - + /** * @Author 政辉 * @param e @@ -145,9 +148,9 @@ public class JeecgBootExceptionHandler { addSysLog(e); return Result.error(405,sb.toString()); } - - /** - * spring默认上传大小100MB 超出大小捕获异常MaxUploadSizeExceededException + + /** + * spring默认上传大小100MB 超出大小捕获异常MaxUploadSizeExceededException */ @ExceptionHandler(MaxUploadSizeExceededException.class) public Result handleMaxUploadSizeExceededException(MaxUploadSizeExceededException e) { @@ -228,13 +231,22 @@ public class JeecgBootExceptionHandler { } } - - //获取登录用户信息 - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - if(sysUser!=null){ - log.setUserid(sysUser.getUsername()); - log.setUsername(sysUser.getRealname()); + String channel = getUserChannelByToken(SpringContextUtils.getHttpServletRequest()); + if (channel != null && channel.equals("miniapp")) { + //获取登录用户信息 + MLoginUser sysUser = (MLoginUser) SecurityUtils.getSubject().getPrincipal(); + if(sysUser!=null){ + log.setUserid(sysUser.getNickName()); + log.setUsername(sysUser.getNickName()); + } + }else { + //获取登录用户信息 + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(sysUser!=null){ + log.setUserid(sysUser.getUsername()); + log.setUsername(sysUser.getRealname()); + } } baseCommonService.addLog(log); diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java index 298d5b7..95a8cf8 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/system/util/JwtUtil.java @@ -162,6 +162,20 @@ public class JwtUtil { return username; } + /** + * 根据request中的token获取渠道先 + * + * @param request + * @return + * @throws JeecgBootException + */ + public static String getUserChannelByToken(HttpServletRequest request) throws JeecgBootException { + String accessToken = request.getHeader("X-Access-Token"); + String channel = getChannel(accessToken); + return channel; + } + + /** * 从session中获取变量 * @param key diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java index ca53df0..ceee772 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrder.java @@ -20,7 +20,7 @@ import io.swagger.annotations.ApiModelProperty; /** * @Description: 合同订单表 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @ApiModel(value="app_order对象", description="合同订单表") @@ -119,7 +119,8 @@ public class AppOrder implements Serializable { @ApiModelProperty(value = "所属部门") private java.lang.String sysOrgCode; /**订单状态*/ - @Excel(name = "订单状态", width = 15) + @Excel(name = "订单状态", width = 15, dicCode = "order_status") + @Dict(dicCode = "order_status") @ApiModelProperty(value = "订单状态") private java.lang.Integer status; /**订单合同*/ diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderCar.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderCar.java index 2e830b7..d20df8e 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderCar.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderCar.java @@ -19,7 +19,7 @@ import java.io.UnsupportedEncodingException; /** * @Description: 订单车辆信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @ApiModel(value="app_order_car对象", description="订单车辆信息") diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderFinance.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderFinance.java index 6744180..b37bbf2 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderFinance.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderFinance.java @@ -19,7 +19,7 @@ import java.io.UnsupportedEncodingException; /** * @Description: 订单金融信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @ApiModel(value="app_order_finance对象", description="订单金融信息") diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderVoucher.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderVoucher.java index 44de715..5bc85dc 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderVoucher.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/entity/AppOrderVoucher.java @@ -19,7 +19,7 @@ import java.io.UnsupportedEncodingException; /** * @Description: 订单凭证信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @ApiModel(value="app_order_voucher对象", description="订单凭证信息") diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderCarMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderCarMapper.java index 098a251..055bede 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderCarMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderCarMapper.java @@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param; /** * @Description: 订单车辆信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface AppOrderCarMapper extends BaseMapper { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderFinanceMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderFinanceMapper.java index ea83d78..bdbc37b 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderFinanceMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderFinanceMapper.java @@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param; /** * @Description: 订单金融信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface AppOrderFinanceMapper extends BaseMapper { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java index df1ebf7..9ab1fb8 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderMapper.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; /** * @Description: 合同订单表 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface AppOrderMapper extends BaseMapper { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderVoucherMapper.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderVoucherMapper.java index 2468d7a..e11c1b0 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderVoucherMapper.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/mapper/AppOrderVoucherMapper.java @@ -8,7 +8,7 @@ import org.apache.ibatis.annotations.Param; /** * @Description: 订单凭证信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface AppOrderVoucherMapper extends BaseMapper { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderCarService.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderCarService.java index 21222d5..3b7e9d0 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderCarService.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderCarService.java @@ -8,7 +8,7 @@ import java.util.List; /** * @Description: 订单车辆信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface IAppOrderCarService extends IService { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderFinanceService.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderFinanceService.java index 6d52ffa..5ac21c1 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderFinanceService.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderFinanceService.java @@ -8,7 +8,7 @@ import java.util.List; /** * @Description: 订单金融信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface IAppOrderFinanceService extends IService { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderService.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderService.java index 5780bc3..19f8c72 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderService.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderService.java @@ -13,7 +13,7 @@ import java.util.List; /** * @Description: 合同订单表 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface IAppOrderService extends IService { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderVoucherService.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderVoucherService.java index 09a6fb6..b2236a9 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderVoucherService.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/IAppOrderVoucherService.java @@ -8,7 +8,7 @@ import java.util.List; /** * @Description: 订单凭证信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ public interface IAppOrderVoucherService extends IService { diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderCarServiceImpl.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderCarServiceImpl.java index 151ff59..50022e1 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderCarServiceImpl.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderCarServiceImpl.java @@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; /** * @Description: 订单车辆信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @Service diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderFinanceServiceImpl.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderFinanceServiceImpl.java index 0ad39b8..22cc4c2 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderFinanceServiceImpl.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderFinanceServiceImpl.java @@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; /** * @Description: 订单金融信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @Service diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderServiceImpl.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderServiceImpl.java index 0c86f6f..3a5632b 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderServiceImpl.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderServiceImpl.java @@ -20,7 +20,7 @@ import java.util.Collection; /** * @Description: 合同订单表 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @Service diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderVoucherServiceImpl.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderVoucherServiceImpl.java index 430e96b..6c051f5 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderVoucherServiceImpl.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/service/impl/AppOrderVoucherServiceImpl.java @@ -11,7 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; /** * @Description: 订单凭证信息 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @Service diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vo/AppOrderPage.java b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vo/AppOrderPage.java index 5740835..d5e585d 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vo/AppOrderPage.java +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vo/AppOrderPage.java @@ -17,7 +17,7 @@ import io.swagger.annotations.ApiModelProperty; /** * @Description: 合同订单表 * @Author: jeecg-boot - * @Date: 2025-02-20 + * @Date: 2025-02-21 * @Version: V1.0 */ @Data @@ -113,7 +113,8 @@ public class AppOrderPage { @ApiModelProperty(value = "所属部门") private java.lang.String sysOrgCode; /**订单状态*/ - @Excel(name = "订单状态", width = 15) + @Excel(name = "订单状态", width = 15, dicCode = "order_status") + @Dict(dicCode = "order_status") @ApiModelProperty(value = "订单状态") private java.lang.Integer status; /**订单合同*/ diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/AppOrder.data.ts b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/AppOrder.data.ts index 1c935b9..88f2ca6 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/AppOrder.data.ts +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/AppOrder.data.ts @@ -195,6 +195,7 @@ export const searchFormSchema: FormSchema[] = [ field: "status", component: 'JSelectMultiple', componentProps:{ + dictCode:"order_status" }, //colProps: {span: 6}, }, @@ -370,7 +371,7 @@ export const formSchema: FormSchema[] = [ field: 'status', component: 'JDictSelectTag', componentProps:{ - dictCode:"" + dictCode:"order_status" }, dynamicRules: ({model,schema}) => { return [ @@ -378,18 +379,6 @@ export const formSchema: FormSchema[] = [ ]; }, }, - { - label: '订单合同', - field: 'contractUrl', - component: 'JUpload', - componentProps:{ - }, - dynamicRules: ({model,schema}) => { - return [ - { required: true, message: '请输入订单合同!'}, - ]; - }, - }, { label: '收款方', field: 'payee', @@ -728,7 +717,7 @@ export const superQuerySchema = { carPic: {title: '车辆合格证',order: 14,view: 'image', type: 'string',}, busLicense: {title: '营业执照',order: 15,view: 'image', type: 'string',}, createTime: {title: '创建日期',order: 16,view: 'datetime', type: 'string',}, - status: {title: '订单状态',order: 17,view: 'number', type: 'number',dictCode: '',}, + status: {title: '订单状态',order: 17,view: 'number', type: 'number',dictCode: 'order_status',}, contractUrl: {title: '订单合同',order: 18,view: 'file', type: 'string',}, payee: {title: '收款方',order: 19,view: 'text', type: 'string',}, payeeTime: {title: '收款时间',order: 20,view: 'datetime', type: 'string',}, diff --git a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/V20250220_1__menu_insert_AppOrder.sql b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/V20250221_1__menu_insert_AppOrder.sql similarity index 58% rename from jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/V20250220_1__menu_insert_AppOrder.sql rename to jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/V20250221_1__menu_insert_AppOrder.sql index bb7a4a2..4eb48fc 100644 --- a/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/V20250220_1__menu_insert_AppOrder.sql +++ b/jeecg-module-demo/src/main/java/org/jeecg/modules/sysMiniapp/order/vue3/V20250221_1__menu_insert_AppOrder.sql @@ -2,25 +2,25 @@ -- 如果你想更改到其他目录,请修改sql中component字段对应的值 -INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) -VALUES ('202502200943650390', NULL, '合同订单表', '/order/appOrderList', 'miniapp/order/AppOrderList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0); +INSERT INTO sys_permission(id, parent_id, name, url, component, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_route, is_leaf, keep_alive, hidden, hide_tab, description, status, del_flag, rule_flag, create_by, create_time, update_by, update_time, internal_or_external) +VALUES ('2025022105354000190', NULL, '合同订单表', '/order/appOrderList', 'order/AppOrderList', NULL, NULL, 0, NULL, '1', 0.00, 0, NULL, 1, 0, 0, 0, 0, NULL, '1', 0, 0, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0); -- 权限控制sql -- 新增 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('202502200943650391', '202502200943650390', '添加合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0, 0, '1', 0); +VALUES ('2025022105354000191', '2025022105354000190', '添加合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:add', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0, 0, '1', 0); -- 编辑 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('202502200943650392', '202502200943650390', '编辑合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0, 0, '1', 0); +VALUES ('2025022105354000192', '2025022105354000190', '编辑合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:edit', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0, 0, '1', 0); -- 删除 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('202502200943650393', '202502200943650390', '删除合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0, 0, '1', 0); +VALUES ('2025022105354000193', '2025022105354000190', '删除合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:delete', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0, 0, '1', 0); -- 批量删除 INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('202502200943650394', '202502200943650390', '批量删除合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0, 0, '1', 0); +VALUES ('2025022105354000194', '2025022105354000190', '批量删除合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:deleteBatch', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0, 0, '1', 0); -- 导出excel INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('202502200943650395', '202502200943650390', '导出excel_合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0, 0, '1', 0); +VALUES ('2025022105354000195', '2025022105354000190', '导出excel_合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:exportXls', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0, 0, '1', 0); -- 导入excel INSERT INTO sys_permission(id, parent_id, name, url, component, is_route, component_name, redirect, menu_type, perms, perms_type, sort_no, always_show, icon, is_leaf, keep_alive, hidden, hide_tab, description, create_by, create_time, update_by, update_time, del_flag, rule_flag, status, internal_or_external) -VALUES ('202502200943650396', '202502200943650390', '导入excel_合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-20 21:43:39', NULL, NULL, 0, 0, '1', 0); +VALUES ('2025022105354000196', '2025022105354000190', '导入excel_合同订单表', NULL, NULL, 0, NULL, NULL, 2, 'order:app_order:importExcel', '1', NULL, 0, NULL, 1, 0, 0, 0, NULL, 'admin', '2025-02-21 17:35:19', NULL, NULL, 0, 0, '1', 0); \ No newline at end of file diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/controller/FileController.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/controller/FileController.java index 0178b96..1b6b8ce 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/controller/FileController.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/controller/FileController.java @@ -7,6 +7,8 @@ package org.jeecg.modules.miniapp.file.controller; */ import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; @@ -52,11 +54,22 @@ public class FileController { @ApiOperation(value="身份证识别", notes="身份证识别") - @PostMapping(value = "/ocr/idcard") + @GetMapping(value = "/ocr/idcard") + @ApiImplicitParams({ + @ApiImplicitParam(name = "url", value = "身份证图片的URL", required = true, dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "side", value = "身份证正反面,正面为front,反面为back", required = true, dataType = "String", paramType = "query") + }) public Result ocrIdCard(@RequestParam(name="url") String url, @RequestParam(name="side") String side){ return fileService.ocrIdCard(url,side); } + @ApiOperation(value="车辆合格证识别", notes="车辆合格证识别") + @GetMapping(value = "/ocr/carCert") + @ApiImplicitParam(name = "url", value = "车辆合格证URL", required = true, dataType = "String", paramType = "query") + public Result ocrIdCard(@RequestParam(name="url") String url){ + return fileService.ocrCarCert(url); + } + /** * 文件上传统一方法 * @param request diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/FileService.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/FileService.java index 78f43d6..968edb5 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/FileService.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/FileService.java @@ -11,4 +11,7 @@ import org.jeecg.common.api.vo.Result; public interface FileService { Result ocrIdCard(String url, String side); + + + Result ocrCarCert(String url); } diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/impl/FileServiceImpl.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/impl/FileServiceImpl.java index e1d7fcb..9a32069 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/impl/FileServiceImpl.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/file/service/impl/FileServiceImpl.java @@ -44,4 +44,24 @@ public class FileServiceImpl implements FileService { } return result; } + + @Override + public Result ocrCarCert(String url) { + Result result = new Result<>(); + try { + String carInfo = BaiduOCRUtil.recognizeVehicleCertificateWithImage(url, false); + JSONObject json = JSON.parseObject(carInfo); + if (json.containsKey("words_result") ){ + result.setResult(json.getJSONObject("words_result")); + } else { + result.setSuccess(false); + result.setMessage("识别失败"); + } + + } catch (Exception e) { + result.setSuccess(false); + result.setMessage("识别失败"); + } + return result; + } } diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java index cfcc4a7..5c2a5b3 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/order/controller/OrderController.java @@ -61,127 +61,128 @@ public class OrderController { @Autowired private IAppOrderFinanceService appOrderFinanceService; - /** - * 分页列表查询 - * - * @param appOrder - * @param pageNo - * @param pageSize - * @param req - * @return - */ - //@AutoLog(value = "合同订单表-分页列表查询") - @ApiOperation(value="合同订单表-分页列表查询", notes="合同订单表-分页列表查询") - @GetMapping(value = "/list") - public Result> queryPageList(AppOrder appOrder, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { - // 自定义查询规则 - Map customeRuleMap = new HashMap<>(); - // 自定义多选的查询规则为:LIKE_WITH_OR - customeRuleMap.put("salePort", QueryRuleEnum.LIKE_WITH_OR); - customeRuleMap.put("custType", QueryRuleEnum.LIKE_WITH_OR); - customeRuleMap.put("status", QueryRuleEnum.LIKE_WITH_OR); - QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appOrder, req.getParameterMap(),customeRuleMap); - Page page = new Page(pageNo, pageSize); - IPage pageList = appOrderService.page(page, queryWrapper); - return Result.OK(pageList); - } + /** + * 分页列表查询 + * + * @param appOrder + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "合同订单表-分页列表查询") + @ApiOperation(value="合同订单表-分页列表查询", notes="合同订单表-分页列表查询") + @GetMapping(value = "/list") + public Result> queryPageList(AppOrder appOrder, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + // 自定义查询规则 + Map customeRuleMap = new HashMap<>(); + // 自定义多选的查询规则为:LIKE_WITH_OR + customeRuleMap.put("salePort", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("custType", QueryRuleEnum.LIKE_WITH_OR); + customeRuleMap.put("status", QueryRuleEnum.LIKE_WITH_OR); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(appOrder, req.getParameterMap(),customeRuleMap); + Page page = new Page(pageNo, pageSize); + IPage pageList = appOrderService.page(page, queryWrapper); + return Result.OK(pageList); + } - /** - * 添加 - * - * @param appOrderPage - * @return - */ - @AutoLog(value = "合同订单表-添加") - @ApiOperation(value="合同订单表-添加", notes="合同订单表-添加") - @PostMapping(value = "/add") - public Result add(@RequestBody AppOrderPage appOrderPage) { - AppOrder appOrder = new AppOrder(); - BeanUtils.copyProperties(appOrderPage, appOrder); - appOrderService.saveMain(appOrder, appOrderPage.getAppOrderCarList(),appOrderPage.getAppOrderVoucherList(),appOrderPage.getAppOrderFinanceList()); - return Result.OK("添加成功!"); - } + /** + * 添加 + * + * @param appOrderPage + * @return + */ + @AutoLog(value = "合同订单表-添加") + @ApiOperation(value="合同订单表-添加", notes="合同订单表-添加") + @PostMapping(value = "/add") + public Result add(@RequestBody AppOrderPage appOrderPage) { + AppOrder appOrder = new AppOrder(); + BeanUtils.copyProperties(appOrderPage, appOrder); + appOrderService.saveMain(appOrder, appOrderPage.getAppOrderCarList(),appOrderPage.getAppOrderVoucherList(),appOrderPage.getAppOrderFinanceList()); + return Result.OK("添加成功!"); + } - /** - * 编辑 - * - * @param appOrderPage - * @return - */ - @AutoLog(value = "合同订单表-编辑") - @ApiOperation(value="合同订单表-编辑", notes="合同订单表-编辑") - @RequiresPermissions("order:app_order:edit") - @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody AppOrderPage appOrderPage) { - AppOrder appOrder = new AppOrder(); - BeanUtils.copyProperties(appOrderPage, appOrder); - AppOrder appOrderEntity = appOrderService.getById(appOrder.getId()); - if(appOrderEntity==null) { - return Result.error("未找到对应数据"); - } - appOrderService.updateMain(appOrder, appOrderPage.getAppOrderCarList(),appOrderPage.getAppOrderVoucherList(),appOrderPage.getAppOrderFinanceList()); - return Result.OK("编辑成功!"); - } + /** + * 编辑 + * + * @param appOrderPage + * @return + */ + @AutoLog(value = "合同订单表-编辑") + @ApiOperation(value="合同订单表-编辑", notes="合同订单表-编辑") + @RequiresPermissions("order:app_order:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result edit(@RequestBody AppOrderPage appOrderPage) { + AppOrder appOrder = new AppOrder(); + BeanUtils.copyProperties(appOrderPage, appOrder); + AppOrder appOrderEntity = appOrderService.getById(appOrder.getId()); + if(appOrderEntity==null) { + return Result.error("未找到对应数据"); + } + appOrderService.updateMain(appOrder, appOrderPage.getAppOrderCarList(),appOrderPage.getAppOrderVoucherList(),appOrderPage.getAppOrderFinanceList()); + return Result.OK("编辑成功!"); + } - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "合同订单表-通过id查询") - @ApiOperation(value="合同订单表-通过id查询", notes="合同订单表-通过id查询") - @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { - AppOrder appOrder = appOrderService.getById(id); - if(appOrder==null) { - return Result.error("未找到对应数据"); - } - return Result.OK(appOrder); + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "合同订单表-通过id查询") + @ApiOperation(value="合同订单表-通过id查询", notes="合同订单表-通过id查询") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name="id",required=true) String id) { + AppOrder appOrder = appOrderService.getById(id); + if(appOrder==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(appOrder); - } + } - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "订单车辆信息通过主表ID查询") - @ApiOperation(value="订单车辆信息主表ID查询", notes="订单车辆信息-通主表ID查询") - @GetMapping(value = "/queryAppOrderCarByMainId") - public Result> queryAppOrderCarListByMainId(@RequestParam(name="id",required=true) String id) { - List appOrderCarList = appOrderCarService.selectByMainId(id); - return Result.OK(appOrderCarList); - } - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "订单凭证信息通过主表ID查询") - @ApiOperation(value="订单凭证信息主表ID查询", notes="订单凭证信息-通主表ID查询") - @GetMapping(value = "/queryAppOrderVoucherByMainId") - public Result> queryAppOrderVoucherListByMainId(@RequestParam(name="id",required=true) String id) { - List appOrderVoucherList = appOrderVoucherService.selectByMainId(id); - return Result.OK(appOrderVoucherList); - } - /** - * 通过id查询 - * - * @param id - * @return - */ - //@AutoLog(value = "订单金融信息通过主表ID查询") - @ApiOperation(value="订单金融信息主表ID查询", notes="订单金融信息-通主表ID查询") - @GetMapping(value = "/queryAppOrderFinanceByMainId") - public Result> queryAppOrderFinanceListByMainId(@RequestParam(name="id",required=true) String id) { - List appOrderFinanceList = appOrderFinanceService.selectByMainId(id);return Result.OK(appOrderFinanceList); - } + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "订单车辆信息通过主表ID查询") + @ApiOperation(value="订单车辆信息主表ID查询", notes="订单车辆信息-通主表ID查询") + @GetMapping(value = "/queryAppOrderCarByMainId") + public Result> queryAppOrderCarListByMainId(@RequestParam(name="id",required=true) String id) { + List appOrderCarList = appOrderCarService.selectByMainId(id); + return Result.OK(appOrderCarList); + } + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "订单凭证信息通过主表ID查询") + @ApiOperation(value="订单凭证信息主表ID查询", notes="订单凭证信息-通主表ID查询") + @GetMapping(value = "/queryAppOrderVoucherByMainId") + public Result> queryAppOrderVoucherListByMainId(@RequestParam(name="id",required=true) String id) { + List appOrderVoucherList = appOrderVoucherService.selectByMainId(id); + return Result.OK(appOrderVoucherList); + } + /** + * 通过id查询 + * + * @param id + * @return + */ + //@AutoLog(value = "订单金融信息通过主表ID查询") + @ApiOperation(value="订单金融信息主表ID查询", notes="订单金融信息-通主表ID查询") + @GetMapping(value = "/queryAppOrderFinanceByMainId") + public Result> queryAppOrderFinanceListByMainId(@RequestParam(name="id",required=true) String id) { + List appOrderFinanceList = appOrderFinanceService.selectByMainId(id); + return Result.OK(appOrderFinanceList); + } } diff --git a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/utils/BaiduOCRUtil.java b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/utils/BaiduOCRUtil.java index 2274dd4..ead2dcc 100644 --- a/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/utils/BaiduOCRUtil.java +++ b/jeecg-module-miniapp/src/main/java/org/jeecg/modules/miniapp/utils/BaiduOCRUtil.java @@ -80,7 +80,7 @@ public class BaiduOCRUtil { String base64Image = encodeImageToBase64(image); params.put("image", base64Image); // 使用图片的Base64编码 }else { - params.put("image_url", image); // 使用图片的URL + params.put("url", image); // 使用图片的URL } return makePostRequest(apiUrl, accessToken, params); } @@ -156,15 +156,17 @@ public class BaiduOCRUtil { // 示例:调用身份证识别API(图片URL) // String idCardResultUrl = recognizeIdCardWithImage("/Users/tanzs/Pictures/cert/font.jpg","front",true); // String idCardResultUrl = recognizeIdCardWithImage("https://img.augcl.com/temp/font_1740062829439.jpg","front",false); - String idCardResultUrl = recognizeIdCardWithImage("https://img.augcl.com/temp/back_1740063490107.jpg","back",false); - System.out.println("身份证识别结果: " + idCardResultUrl); +// String idCardResultUrl = recognizeIdCardWithImage("https://img.augcl.com/temp/back_1740063490107.jpg","back",false); +// System.out.println("身份证识别结果: " + idCardResultUrl); // 示例:调用营业执照识别API(图片URL) // String businessLicenseResultUrl = recognizeBusinessLicenseWithImage("/Users/tanzs/Pictures/cert/license.jpg",true); // System.out.println("营业执照识别结果: " + businessLicenseResultUrl); // 示例:调用车辆合格证识别API(图片URL) -// String vehicleCertificateResultUrl = recognizeVehicleCertificateWithImage("https://example.com/path_to_vehicle_certificate_image.jpg"); -// System.out.println("车辆合格证识别结果(URL): " + vehicleCertificateResultUrl); + String vehicleCertificateResultUrl = recognizeVehicleCertificateWithImage("https://img.augcl.com/temp/car_1740126194295.png",false); + System.out.println("车辆合格证识别结果(URL): " + vehicleCertificateResultUrl); +// {"words_result_num":28,"direction":1,"words_result":{"CarModel":"BYD7008BEVB1","CarBrand":"比亚迪牌","CertificateDate":"2025年01月11日","CarColor":"雪域白","Displacement":"","Power":"100","Manufacturer":"比亚迪汽车工业有限公司","ManufactureDate":"2025年01月11日","EngineNo":"2V4003609","FuelType":"电","EmissionStandard":"","SteeringType":"方向盘","LimitPassenger":"","EngineType":"TZ180XSJ","TyreNum":"4","SpeedLimit":"130","TotalWeight":"2032","SaddleMass":"1657","VinNo":"LC0CE6DB8S4040471","Wheelbase":"2718","AxleNum":"2","CertificationNo":"YK5204001341249","CarName":"纯电动轿车","ChassisModel":"","ChassisID":"","SeatingCapacity":"5","QualifySeal":"1","CGSSeal":"0"},"log_id":1892852770796495169} + } } diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml index 07e774e..fe77909 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-dev.yml @@ -308,7 +308,7 @@ knife4j: #开启生产环境屏蔽 production: false basic: - enable: false + enable: true username: jeecg password: jeecg1314 #第三方登录 diff --git a/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml b/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml index a926b56..39833aa 100644 --- a/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml +++ b/jeecg-module-system/jeecg-system-start/src/main/resources/application-test.yml @@ -176,7 +176,7 @@ spring: #redis 配置 redis: database: 12 - host: 127.0.0.1 + host: 14.103.91.133 port: 63799 password: 'WEather_2024' #mybatis plus 设置