
@Override
@Path("push")
@POST
@Consumes(value?=?MediaType.APPLICATION_JSON)
@Produces(value?=?MediaType.APPLICATION_JSON)
public?BaseResponse?pushOrder(PushOrderDto?dto)?{
????if?(dto.getItemId()?==?null?||?dto.getItemId()?<=?0?||?Strings.isNullOrEmpty(dto.getCustomerName())
????????????||?dto.getTotal()?==?null)?{
????????return?new?BaseResponse(StatusCode.InvalidParams);
????}
????log.info("請求過來的參數(shù):{}?",?dto);
????BaseResponse?response?=?new?BaseResponse(StatusCode.Success);
????try?{
????????//TODO:實(shí)際的業(yè)務(wù)邏輯
????????//TODO:校驗(yàn)商品信息是否存在
????????ItemInfo?info?=?itemInfoMapper.selectByPrimaryKey(dto.getItemId());
????????if?(info?==?null)?{
????????????return?new?BaseResponse(StatusCode.NotAllowParams);
????????}
????????//TODO:庫存服務(wù)-校驗(yàn)....
????????//TODO:客戶中心服務(wù)-校驗(yàn)....
????????//TODO:訂單服務(wù)-下單
????????OrderRecord?entity?=?new?OrderRecord();
????????BeanUtils.copyProperties(dto,?entity);
????????entity.setOrderTime(new?Date());
????????orderRecordMapper.insertSelective(entity);
????????response.setData(entity.getId());
????}?catch?(Exception?e)?{
????????e.printStackTrace();
????????response?=?new?BaseResponse(StatusCode.Fail.getCode(),?e.getMessage());
????}
????return?response;
}
package?com.yy.dubbo.two.server.service;
import?com.fasterxml.jackson.databind.ObjectMapper;
import?com.yy.dubbo.two.server.request.RequestPushRecord;
import?okhttp3.*;
import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;
import?org.springframework.beans.factory.annotation.Autowired;
import?org.springframework.stereotype.Service;
import?java.io.Serializable;
@Service
public?class?OrderRecordService?implements?Serializable{
????private?static?final?Logger?log?=?LoggerFactory.getLogger(OrderRecordService.class);
????@Autowired
????private?ObjectMapper?objectMapper;
????private?OkHttpClient?okHttpClient?=?new?OkHttpClient();
????private?static?final?String?URL?=?"http://192.168.110.1:9013/v1/record/push";
????public?void?pushOrder(RequestPushRecord?pushRecord)?throws?Exception?{
????????try?{
????????????//?構(gòu)建request?builder
????????????Request.Builder?builder?=?new?Request.Builder().url(URL).header("Content-Type","application/json");
????????????//?構(gòu)造請求體
????????????RequestBody?requestBody?=?RequestBody.create(MediaType.parse("application/json"),
????????????????????objectMapper.writeValueAsString(pushRecord));
????????????//?構(gòu)造請求
????????????Request?request?=?builder.post(requestBody).build();
????????????//?發(fā)起請求
????????????Response?response?=?okHttpClient.newCall(request).execute();
????????????log.info(response.body().toString());
????????}?catch?(Exception?e)?{
????????????throw?e;
????????}
????}
}