Explorar el Código

fix ocr

release_toaliyun_real
xiaohanzi hace 5 años
padre
commit
58479c17e3
Se han modificado 9 ficheros con 179 adiciones y 6 borrados
  1. +12
    -0
      mallinkAdmin/src/main/resources/db/migration/V202101260001__ocr.sql
  2. +22
    -3
      mallinkCApi/src/main/java/com/iformall/controller/WxOcrController.java
  3. +1
    -1
      mallinkCApi/src/main/resources/application-dev.yml
  4. +25
    -0
      mallinkService/src/main/java/com/iformall/domain/po/WxMallOcrModel.java
  5. +14
    -0
      mallinkService/src/main/java/com/iformall/mapper/WxMallOcrModelMapper.java
  6. +9
    -0
      mallinkService/src/main/java/com/iformall/service/WxOcrService.java
  7. +38
    -1
      mallinkService/src/main/java/com/iformall/service/impl/WxOcrServiceImpl.java
  8. +57
    -0
      mallinkService/src/main/resources/mapper/WxMallOcrModelMapper.xml
  9. +1
    -1
      mallinkSysAdmin/src/main/resources/application-dev.yml

+ 12
- 0
mallinkAdmin/src/main/resources/db/migration/V202101260001__ocr.sql Ver fichero

@@ -22,3 +22,15 @@ CREATE TABLE `wx_ocr_model` (
UNIQUE KEY `UNIQUE` (`font_name`) UNIQUE KEY `UNIQUE` (`font_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;



CREATE TABLE `wx_mall_ocr_model` (
`id` bigint(20) NOT NULL,
`mall_id` bigint(20) NOT NULL COMMENT '商户编号',
`ocr_model_id` bigint(20) NOT NULL COMMENT 'ocr模板编号',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`tenant_id` varchar(5) DEFAULT NULL COMMENT '租户id',
`parent_tenant_id` varchar(5) DEFAULT NULL,
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `UNIQUE` (`mall_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

+ 22
- 3
mallinkCApi/src/main/java/com/iformall/controller/WxOcrController.java Ver fichero

@@ -2,10 +2,13 @@ package com.iformall.controller;


import com.iformall.common.ErrorCode; import com.iformall.common.ErrorCode;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxMall;
import com.iformall.domain.po.WxMallOcrModel;
import com.iformall.domain.po.WxMerchantOcrModel; import com.iformall.domain.po.WxMerchantOcrModel;
import com.iformall.domain.po.WxOcrModel; import com.iformall.domain.po.WxOcrModel;
import com.iformall.domain.po.base.TenantEntity; import com.iformall.domain.po.base.TenantEntity;
import com.iformall.ocr.FormallTess4j; import com.iformall.ocr.FormallTess4j;
import com.iformall.service.WxMallService;
import com.iformall.service.WxOcrService; import com.iformall.service.WxOcrService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@@ -29,6 +32,10 @@ public class WxOcrController extends BaseController {


@Autowired @Autowired
private WxOcrService ocrService; private WxOcrService ocrService;
@Autowired
private WxMallService mallService;
@Autowired @Autowired
private String ocrData; private String ocrData;


@@ -40,13 +47,25 @@ public class WxOcrController extends BaseController {
}) })
public ResultData analyImage(Long merchantId,String imageUrl) { public ResultData analyImage(Long merchantId,String imageUrl) {
TenantEntity tenantEntity = getTenantInfo(); TenantEntity tenantEntity = getTenantInfo();
Long modelId = null;
WxMerchantOcrModel MerchantModel = ocrService.getMerchantOcrModel(merchantId, tenantEntity.getTenantId(), tenantEntity.getParentTenantId()); WxMerchantOcrModel MerchantModel = ocrService.getMerchantOcrModel(merchantId, tenantEntity.getTenantId(), tenantEntity.getParentTenantId());
if (null == MerchantModel) { if (null == MerchantModel) {
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "当前商户没有配置OCR模板");
WxMall mall = mallService.getByTenantId(tenantEntity.getTenantId());
if (null == mall) {
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "当前登陆信息未查询倒Mall.");
}
WxMallOcrModel mallModel = ocrService.getMallOcrModel(mall.getId(), mall.getTenantId(), mall.getParentTenantId());
if (null == mallModel) {
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "当前商户没有配置OCR模板,并且当前Mall也未配置OCR模板.");
}else {
modelId = mallModel.getOcrModelId();
}
}else {
modelId = MerchantModel.getOcrModelId();
} }
WxOcrModel ocrModel = ocrService.getOcrModelById(MerchantModel.getOcrModelId());
WxOcrModel ocrModel = ocrService.getOcrModelById(modelId);
if (null == ocrModel) { if (null == ocrModel) {
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "当前商户配置的OCR模板未查询到");
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "OCR模板未查询到:"+modelId);
} }
String result; String result;
try { try {


+ 1
- 1
mallinkCApi/src/main/resources/application-dev.yml Ver fichero

@@ -160,7 +160,7 @@ fm:
deploy: 1 deploy: 1
open: true open: true
upload_dir: /home/test/server/uploads/ upload_dir: /home/test/server/uploads/
ocr_data: /home/test/server/ocr_data/
ocr_data: /root/ocr_data/


logging: logging:
level: level:


+ 25
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxMallOcrModel.java Ver fichero

@@ -0,0 +1,25 @@
package com.iformall.domain.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.iformall.domain.po.base.TenantEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;

@TableName(value = "wx_mall_ocr_model")
@Data
@EqualsAndHashCode(callSuper = true)
public class WxMallOcrModel extends TenantEntity {
private static final long serialVersionUID = 1L;
protected Long id;
@io.swagger.annotations.ApiModelProperty(value="商户编号",name="mallId")
private Long mallId;
@io.swagger.annotations.ApiModelProperty(value="ocr模板编号",name="ocrModelId")
private Long ocrModelId;
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="createTime")
private Date createTime;
@io.swagger.annotations.ApiModelProperty(value="创建时间",name="updateTime")
private Date updateTime;

}

+ 14
- 0
mallinkService/src/main/java/com/iformall/mapper/WxMallOcrModelMapper.java Ver fichero

@@ -0,0 +1,14 @@
package com.iformall.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iformall.domain.po.WxMallOcrModel;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface WxMallOcrModelMapper extends BaseMapper<WxMallOcrModel> {

List<WxMallOcrModel> findList(WxMallOcrModel merchantOcrModel);
}

+ 9
- 0
mallinkService/src/main/java/com/iformall/service/WxOcrService.java Ver fichero

@@ -3,6 +3,7 @@ package com.iformall.service;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxActivity; import com.iformall.domain.po.WxActivity;
import com.iformall.domain.po.WxMallOcrModel;
import com.iformall.domain.po.WxMerchantOcrModel; import com.iformall.domain.po.WxMerchantOcrModel;
import com.iformall.domain.po.WxOcrModel; import com.iformall.domain.po.WxOcrModel;
import com.iformall.enums.EnumPayWay; import com.iformall.enums.EnumPayWay;
@@ -27,4 +28,12 @@ public interface WxOcrService {
ResultData saveOrUpdateMerchantOcrModel(WxMerchantOcrModel record); ResultData saveOrUpdateMerchantOcrModel(WxMerchantOcrModel record);


ResultData deleteMerchantOcrModel(Long id); ResultData deleteMerchantOcrModel(Long id);
WxMallOcrModel getMallOcrModel(Long mallId,String tenantId,String parentTenantId);
ResultData saveOrUpdateMallOcrModel(WxMallOcrModel record);

ResultData deleteMallOcrModel(Long id);
} }

+ 38
- 1
mallinkService/src/main/java/com/iformall/service/impl/WxOcrServiceImpl.java Ver fichero

@@ -5,8 +5,10 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker; import com.iformall.common.IdWorker;
import com.iformall.common.Result; import com.iformall.common.Result;
import com.iformall.common.ResultData; import com.iformall.common.ResultData;
import com.iformall.domain.po.WxMallOcrModel;
import com.iformall.domain.po.WxMerchantOcrModel; import com.iformall.domain.po.WxMerchantOcrModel;
import com.iformall.domain.po.WxOcrModel; import com.iformall.domain.po.WxOcrModel;
import com.iformall.mapper.WxMallOcrModelMapper;
import com.iformall.mapper.WxMerchantOcrModelMapper; import com.iformall.mapper.WxMerchantOcrModelMapper;
import com.iformall.mapper.WxOcrModelMapper; import com.iformall.mapper.WxOcrModelMapper;
import com.iformall.service.WxOcrService; import com.iformall.service.WxOcrService;
@@ -25,6 +27,8 @@ public class WxOcrServiceImpl implements WxOcrService {
WxMerchantOcrModelMapper merchantOcrModelMapper; WxMerchantOcrModelMapper merchantOcrModelMapper;
@Autowired @Autowired
WxOcrModelMapper ocrModelMapper; WxOcrModelMapper ocrModelMapper;
@Autowired
WxMallOcrModelMapper mallOcrModelMapper;
@Override @Override
public PageInfo<WxOcrModel> listOcrModelAsPage(WxOcrModel record, Integer pageIndex, Integer pageSize) { public PageInfo<WxOcrModel> listOcrModelAsPage(WxOcrModel record, Integer pageIndex, Integer pageSize) {
@@ -83,7 +87,40 @@ public class WxOcrServiceImpl implements WxOcrService {
public ResultData deleteMerchantOcrModel(Long id) { public ResultData deleteMerchantOcrModel(Long id) {
merchantOcrModelMapper.deleteById(id); merchantOcrModelMapper.deleteById(id);
return new ResultData(Result.SUCCESS, "操作成功"); return new ResultData(Result.SUCCESS, "操作成功");

} }


@Override
public WxMallOcrModel getMallOcrModel(Long mallId, String tenantId, String parentTenantId) {
WxMallOcrModel query = new WxMallOcrModel();
query.setMallId(mallId);
query.setTenantId(tenantId);
query.setParentTenantId(parentTenantId);
List<WxMallOcrModel> models = mallOcrModelMapper.findList(query);
if (null == models || models.size() <= 0) {
return null;
}
return models.get(0);
}

@Override
public ResultData saveOrUpdateMallOcrModel(WxMallOcrModel record) {
Date date = new Date();
if (record.getId() == null) {
final IdWorker idWorker = IdWorker.get();
record.setId(idWorker.nextId());
record.setCreateTime(date);
mallOcrModelMapper.insert(record);
} else {
record.setUpdateTime(date);
mallOcrModelMapper.updateById(record);
}
return new ResultData(Result.SUCCESS, "操作成功");
}

@Override
public ResultData deleteMallOcrModel(Long id) {
mallOcrModelMapper.deleteById(id);
return new ResultData(Result.SUCCESS, "操作成功");
}

} }

+ 57
- 0
mallinkService/src/main/resources/mapper/WxMallOcrModelMapper.xml Ver fichero

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.iformall.mapper.WxMallOcrModelMapper">

<resultMap type="com.iformall.domain.po.WxMallOcrModel" id="BaseResultMap">
<result property="id" column="id"/>
<result property="tenantId" column="tenant_id" jdbcType="VARCHAR"/>
<result property="parentTenantId" column="parent_tenant_id" jdbcType="VARCHAR"/>
<result property="mallId" column="mall_id" jdbcType="BIGINT"/>
<result property="ocrModelId" column="ocr_model_id" jdbcType="BIGINT"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
</resultMap>

<sql id="allColumns">
id,tenant_id,parent_tenant_id,mall_id,ocr_model_id,create_time,update_time
</sql>

<sql id="dynamicWhereConditions">
where 1 = 1

<if test=" null != id ">
and `id` = #{id}
</if>

<if test=" null != tenantId and '' != tenantId">
and `tenant_id` = #{tenantId}
</if>
<if test=" null != parentTenantId and '' != parentTenantId">
and `parent_tenant_id` = #{parentTenantId}
</if>

<if test=" null != merchantId ">
and `mall_id` = #{mallId}
</if>

<if test=" null != ocrModelId ">
and `ocr_model_id` = #{ocrModelId}
</if>
<if test=" null != ids ">
and id in
<foreach collection="ids" index="index" item="idItem" open="(" separator="," close=")">
#{idItem}
</foreach>
</if>
<if test=" null != sortColumns">order by ${sortColumns}</if>
</sql>

<select id="findList" parameterType="com.iformall.domain.po.WxMallOcrModel" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from wx_mall_ocr_model
<include refid="dynamicWhereConditions"/>
</select>

</mapper>

+ 1
- 1
mallinkSysAdmin/src/main/resources/application-dev.yml Ver fichero

@@ -165,7 +165,7 @@ fm:
deploy: 1 deploy: 1
open: true open: true
upload_dir: /home/test/server/uploads/ upload_dir: /home/test/server/uploads/
ocr_data: /home/test/server/ocr_data/
ocr_data: /root/ocr_data/


ueditor: ueditor:
config: config.json config: config.json


Cargando…
Cancelar
Guardar