ATM提款机的转账

基于springboot,微服务springcloud和eurekaserver服务。
实现在ATM提款机转账功能。在前台界面上输入要转账人的卡号,通过卡号在数据库中查询数据库中是否存在此用户。
以下在springcloud的notice服务中的实现此功能的代码块:

Mapper.xml

//mapper.xml文件中的sql语句,通过userid(卡号)查询此人信息
<select id="getUserById" parameterType="java.lang.String" resultType="four.entities.User">//参数类型为String,返回值类型为User
        select userid,name,pwd,money from user where userid=#{userid};
    </select>

dao层 (接口)

@Mapper
public interface ChangeMapper {
    public User getUserById(String userid);
}

service层

@Service
public class ChangeServiceImpl {
    @Resource
    private ChangeMapper dao;

    public User getUserById(String userid){return dao.getUserById(userid);}
}

controller层

@RestController
public class ChangeController {
    @Resource
    private ChangeServiceImpl changeService;

    @GetMapping("/getbyid/{userid}")//get类型接口
    public JsonResult getUserById(@PathVariable String userid, HttpServletRequest request){//返回值为Json类型
        JsonResult res;
            if(changeService.getUserById(userid)==null||changeService.getUserById(userid).equals("")){
            res=new JsonResult(200,"没有此用户");
        }else{
            User user=changeService.getUserById(userid);//将从数据库中查到的数据返回一个User类型
            res=new JsonResult(0,"成功");
            res.setData(user);//将User类型对象写给Json类型的data
           request.setAttribute("user",user);
        }
        return res;
    }
 }
下面是ums服务调用notice服务的代码块:
将ums与notice服务中心共同需要的entity层的实体类和model层的JsonResult类从
notice中复制到ums中。
在ums中新建client层创建client层接口。

client层

import four.model.JsonResult;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

import javax.servlet.http.HttpServletRequest;

@FeignClient(value = "NOTICE-SERVICE") //微服务名称
@Component
public interface ChangeClient {

    @GetMapping(value = "/getbyid/{userid}")
    public JsonResult getUserById(@PathVariable(value = "userid") String userid);//注解@PathVariable必须要写value参数否则会报bug
    //启动报错:PathVariable annotation was empty on param 0
}

application.yml中notice服务名称,将它加在@FeignClient注解的value中
在这里插入图片描述
controller层

import four.client.ChangeClient;
import four.model.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

@RestController
@Slf4j //加载Slf4j日志对象
public class ChangeController {
    @Resource
    private ChangeClient client;

    @GetMapping(value = "/getbyid/{userid}")
    public JsonResult getUserById(@PathVariable String userid){
        return client.getUserById(userid);
    }

}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值