# feign接口
feign接口
服务间的接口调用,可实现服务间数据交互,以下为服务A调用服务B的feign接口代码示例;
Author
zhangyun1@expservice.com.cn
# 后端示例
# 服务A
- feign接口
// 本地调试时使用此地址 name:调用服务名称 url:指定调用地址
// @FeignClient(name = "sentury-rms", url = "http://127.0.0.1:5707/", configuration = FeignConfig.class, fallbackFactory = HystrixFallbackFactory.class)
// 注意:contextId的值要唯一
@FeignClient(name = "sentury-rms", configuration = FeignConfig.class, fallbackFactory = HystrixFallbackFactory.class, contextId = "ImsRetailerScanService")
public interface RmsStoreDailyScanService extends FeignFallback
{
/**
* @remark:获取调用服务数据
* @param: id
* @return: java.lang.String,java.lang.Object
* @author: zhangyun
* @date: 2023/5/31 11:46
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* ----------------------------------------------------------
* 2023/5/31 zhangyun v1.0.1 init
*/
@PostMapping(value = "/storeDailyScan/findStoreDailyScan")
Object findStoreDailyScan(String id);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 服务B
- controller
@Api(tags = {"rms_storeDailyScan"})
@RestController
@EnableFeignClients
@RequestMapping("/storeDailyScan")
public class StoreDailyScanController
{
@Resource
private StoreDailyScanService storeDailyScanService;
/**
* @remark:查询门店扫码数据controller层
* @param: id
* @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @author: zhangyun
* @date: 2023/5/31 11:46
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* ----------------------------------------------------------
* 2023/5/31 zhangyun v1.0.1 init
*/
@ApiOperation(value = "查询->查询门店扫码数据", notes = "查询门店扫码数据")
@ApiImplicitParams({
@ApiImplicitParam(name = "param", value = "查询参数", dataTypeClass = String.class)
})
@PostMapping(value = "/findStoreDailyScan")
public List<Map<String,Object>> findStoreDailyScan(@RequestBody String id)
{
return storeDailyScanService.findStoreDailyScan(id);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
- service
public interface StoreDailyScanService
{
/**
* @remark:查询门店扫码数据service层
* @param: id
* @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @author: zhangyun
* @date: 2023/5/31 11:47
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* ----------------------------------------------------------
* 2023/5/31 zhangyun v1.0.1 init
*/
List<Map<String, Object>> findStoreDailyScan(String id);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
- impl
@Service
public class StoreDailyScanServiceImpl implements StoreDailyScanService
{
@Resource
public StoreDailyScanMapper storeDailyScanMapper;
/**
* @remark:查询门店扫码数据impl层
* @param: id
* @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @author: zhangyun
* @date: 2023/5/31 11:48
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* ----------------------------------------------------------
* 2023/5/31 zhangyun v1.0.1 init
*/
@ApiOperation(value = "查询门店扫码数据", notes = "查询门店扫码数据")
@ApiImplicitParams({
@ApiImplicitParam(name = "request", value = "request", dataTypeClass = String.class)
})
@PostMapping(value = "/findStoreScanList")
public List<Map<String,Object>> findStoreDailyScan(String id)
{
return storeDailyScanMapper.findStoreDailyScan(id);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
- mapper
@Repository
public interface StoreDailyScanMapper extends DBMapper<RmsDealerDailySalesPO>
{
/**
* @remark:查询门店扫码数据mapper层
* @param: id
* @return: java.util.List<java.util.Map<java.lang.String,java.lang.Object>>
* @author: zhangyun
* @date: 2023/5/31 11:49
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* ----------------------------------------------------------
* 2023/5/31 zhangyun v1.0.1 init
*/
@SelectProvider(StoreDailyScanSqlProvider.class)
List<Map<String, Object>> findStoreDailyScan(String id);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
- provider
public class StoreDailyScanSqlProvider implements ProviderMethodResolver
{
/**
* @remark: 查询门店扫码数据provider层
* @param: id
* @return: String
* @author: zhangyun
* @created: 2023/5/31 11:50
* @version: 1.0.1
* Modification History:
* Date Author Version Description
* ----------------------------------------------------------
* 2023/5/31 zhangyun v1.0.1 init
**/
public static String findStoreDailyScan(String id)
{
StringBuffer sql = new StringBuffer();
sql.append(" select \n ");
sql.append(" store_dept_code as storeDeptCode,\n ");
sql.append(" store_dept_name as storeDeptName,\n ");
sql.append(" store_owner_phone as storeOwnerPhone,\n ");
sql.append(" customer_code as customerCode,\n ");
sql.append(" customer_name as customerName,\n ");
sql.append(" brand_id as brandId,\n ");
sql.append(" brand_name as brandName\n ");
sql.append(" from\n ");
sql.append(" rms_store_daily_scan\n ");
sql.append(" where store_id = "+ id + "\n ");
sql.append(" and count_day = date_format(date_sub(now(),interval 1 day),'%Y-%m-%d')\n ");
return sql.toString();
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 版本
- v1.0.1