|
@@ -6,31 +6,40 @@ import com.sky.ioc.entity.Indeicator;
|
|
|
import com.sky.ioc.entity.Label;
|
|
|
import com.sky.ioc.entity.Cake;
|
|
|
import com.sky.ioc.entity.domain.canteen.Cuisine;
|
|
|
+import com.sky.ioc.entity.domain.canteen.CuisineOrderItem;
|
|
|
import com.sky.ioc.entity.domain.canteen.FoodMenu;
|
|
|
import com.sky.ioc.entity.domain.canteen.Order;
|
|
|
+import com.sky.ioc.entity.domain.security.SecurityDoorRecord;
|
|
|
import com.sky.ioc.entity.domain.system.Users;
|
|
|
import com.sky.ioc.entity.params.IocParam;
|
|
|
import com.sky.ioc.entity.params.IocTimeRange;
|
|
|
import com.sky.ioc.mapper.CuisineMapper;
|
|
|
+import com.sky.ioc.mapper.CuisineOderItemMapper;
|
|
|
import com.sky.ioc.mapper.CuisineOrderMapper;
|
|
|
import com.sky.ioc.mapper.FoodMenusMapper;
|
|
|
+import com.sky.ioc.mapper.job.TokenMapper;
|
|
|
+import com.sky.ioc.mapper.security.SecurityDoorRecordMapper;
|
|
|
import com.sky.ioc.service.canteen.RestaurantService;
|
|
|
import com.sky.ioc.tool.DateUtil;
|
|
|
import com.sky.ioc.tool.FalseData;
|
|
|
import com.sky.ioc.tool.GeneralMethod;
|
|
|
import com.sky.ioc.tool.ReturnMsg;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.http.HttpEntity;
|
|
|
+import org.springframework.http.HttpHeaders;
|
|
|
+import org.springframework.http.HttpMethod;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.web.client.RestTemplate;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.text.DecimalFormat;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.concurrent.ThreadLocalRandom;
|
|
|
|
|
|
|
|
@@ -38,6 +47,7 @@ import java.util.concurrent.ThreadLocalRandom;
|
|
|
* @author LunCe
|
|
|
*/
|
|
|
@Service
|
|
|
+@Slf4j
|
|
|
public class RestaurantServiceImpl implements RestaurantService {
|
|
|
|
|
|
@Autowired
|
|
@@ -46,7 +56,19 @@ public class RestaurantServiceImpl implements RestaurantService {
|
|
|
@Autowired
|
|
|
FoodMenusMapper foodMenusMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ TokenMapper tokenMapper;
|
|
|
+
|
|
|
+ @Value("${sky.dataIp}")
|
|
|
+ private String dataIp;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ CuisineMapper cuisineMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ CuisineOderItemMapper cuisineOderItemMapper;
|
|
|
+
|
|
|
+ final static String CANTEEN_ORDER_URL="%s/api/canteen/CANTEEN/order/list";
|
|
|
/**
|
|
|
* TODO 查询智慧生活中智慧餐厅的支付分析
|
|
|
*
|
|
@@ -397,4 +419,65 @@ public class RestaurantServiceImpl implements RestaurantService {
|
|
|
}
|
|
|
return ReturnMsg.ok(labels1);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ReturnMsg getOrderData() {
|
|
|
+ cuisineOrderMapper.delete(null);
|
|
|
+ cuisineOderItemMapper.delete(null);
|
|
|
+ int pageNum = 1;
|
|
|
+ for (int k =0;k<10;k++){
|
|
|
+ pageNum = k+1;
|
|
|
+ String url = String.format(CANTEEN_ORDER_URL,"http://"+dataIp)+"?pageNum="+pageNum+"&pageSize=1000";
|
|
|
+ Map<String,String> tokenMap = tokenMapper.getNewToken();
|
|
|
+ String token ="Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VyX2tleSI6IjUwZTU1NTRkLWJjYzYtNGRhMS1iZDUxLWFhNTc3YzU4YTFiNCIsInVzZXJuYW1lIjoiYWRtaW4ifQ.X10VPYJfeeRTka7OtqNPOGMpL4QkW3fR_TfCKXCmO-yXbIIrr_40fcwiVnpXfYVENo_BvXWEACRd-Y6nXsbkog";
|
|
|
+ if(tokenMap!=null){
|
|
|
+ token = "Bearer "+tokenMap.get("token");
|
|
|
+ }
|
|
|
+ HttpHeaders httpHeaders = new HttpHeaders();
|
|
|
+ httpHeaders.set("authorization", token);
|
|
|
+ HttpEntity<String> httpEntity = new HttpEntity(httpHeaders);
|
|
|
+ RestTemplate restTemplate = new RestTemplate();
|
|
|
+ ResponseEntity<Map> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, Map.class);
|
|
|
+ Map<String, Object> body = responseEntity.getBody();
|
|
|
+ Integer code = (Integer)body.get("code");
|
|
|
+ String message = (String)body.get("msg");
|
|
|
+ if(code==200){
|
|
|
+ ArrayList list = (ArrayList) body.get("rows");
|
|
|
+ if(list!=null&&list.size()>0){
|
|
|
+ for (int i=0;i<list.size();i++){
|
|
|
+ LinkedHashMap json = (LinkedHashMap) list.get(i);
|
|
|
+ Order order = new Order();
|
|
|
+ order.setId((Integer) json.get("id"));
|
|
|
+ order.setOrderId(String.valueOf(json.get("oriId")));
|
|
|
+ order.setOrderPrice(Double.parseDouble(String.valueOf(json.get("totalFee"))));
|
|
|
+ order.setOrderTime(String.valueOf(json.get("orderTime")));
|
|
|
+ order.setPaytype(Integer.parseInt(String.valueOf(json.get("oSource"))));
|
|
|
+ ArrayList products = (ArrayList) json.get("products");
|
|
|
+ for(int j=0;j<products.size();j++){
|
|
|
+ LinkedHashMap product = (LinkedHashMap) products.get(j);
|
|
|
+ String name = String.valueOf(product.get("name"));
|
|
|
+ CuisineOrderItem oderItem = new CuisineOrderItem();
|
|
|
+ Cuisine cuisine = cuisineMapper.getByName(name);
|
|
|
+ //.selectOne(new LambdaQueryWrapper<Cuisine>().eq(Cuisine::getCuisineName,name));
|
|
|
+ if(cuisine!=null){
|
|
|
+ oderItem.setPId(cuisine.getId());
|
|
|
+ oderItem.setOrderNum(order.getOrderId());
|
|
|
+ oderItem.setPName(name);
|
|
|
+ oderItem.setPPrice(Double.parseDouble(String.valueOf(product.get("price"))));
|
|
|
+ cuisineOderItemMapper.insert(oderItem);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ cuisineOrderMapper.insert(order);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+ log.info("获取餐厅订单记录数据:"+message);
|
|
|
+ return ReturnMsg.fail(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return ReturnMsg.ok();
|
|
|
+
|
|
|
+ }
|
|
|
}
|