xiaohanzi 5 лет назад
Родитель
Сommit
58479c17e3
9 измененных файлов: 179 добавлений и 6 удалений
  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 Просмотреть файл

@@ -22,3 +22,15 @@ CREATE TABLE `wx_ocr_model` (
UNIQUE KEY `UNIQUE` (`font_name`)
) 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 Просмотреть файл

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

import com.iformall.common.ErrorCode;
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.WxOcrModel;
import com.iformall.domain.po.base.TenantEntity;
import com.iformall.ocr.FormallTess4j;
import com.iformall.service.WxMallService;
import com.iformall.service.WxOcrService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -29,6 +32,10 @@ public class WxOcrController extends BaseController {

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

@@ -40,13 +47,25 @@ public class WxOcrController extends BaseController {
})
public ResultData analyImage(Long merchantId,String imageUrl) {
TenantEntity tenantEntity = getTenantInfo();
Long modelId = null;
WxMerchantOcrModel MerchantModel = ocrService.getMerchantOcrModel(merchantId, tenantEntity.getTenantId(), tenantEntity.getParentTenantId());
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) {
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "当前商户配置的OCR模板未查询到");
return new ResultData(ErrorCode.SYS_SERVER_ERROR.getCode(), "OCR模板未查询到:"+modelId);
}
String result;
try {


+ 1
- 1
mallinkCApi/src/main/resources/application-dev.yml Просмотреть файл

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

logging:
level:


+ 25
- 0
mallinkService/src/main/java/com/iformall/domain/po/WxMallOcrModel.java Просмотреть файл

@@ -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 Просмотреть файл

@@ -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 Просмотреть файл

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

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 Просмотреть файл

@@ -5,8 +5,10 @@ import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.common.Result;
import com.iformall.common.ResultData;
import com.iformall.domain.po.WxMallOcrModel;
import com.iformall.domain.po.WxMerchantOcrModel;
import com.iformall.domain.po.WxOcrModel;
import com.iformall.mapper.WxMallOcrModelMapper;
import com.iformall.mapper.WxMerchantOcrModelMapper;
import com.iformall.mapper.WxOcrModelMapper;
import com.iformall.service.WxOcrService;
@@ -25,6 +27,8 @@ public class WxOcrServiceImpl implements WxOcrService {
WxMerchantOcrModelMapper merchantOcrModelMapper;
@Autowired
WxOcrModelMapper ocrModelMapper;
@Autowired
WxMallOcrModelMapper mallOcrModelMapper;
@Override
public PageInfo<WxOcrModel> listOcrModelAsPage(WxOcrModel record, Integer pageIndex, Integer pageSize) {
@@ -83,7 +87,40 @@ public class WxOcrServiceImpl implements WxOcrService {
public ResultData deleteMerchantOcrModel(Long id) {
merchantOcrModelMapper.deleteById(id);
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 Просмотреть файл

@@ -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 Просмотреть файл

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

ueditor:
config: config.json


Загрузка…
Отмена
Сохранить