소스 검색

init from phab

xielq 4 년 전
부모
커밋
24e55a5c6d

+ 60 - 0
build.gradle

@@ -0,0 +1,60 @@
+// Gradle build file for Gradle 2.14.1
+// Created by huxz on 2017-3-17 13:38:59
+buildscript {
+    ext {
+        springBootVersion = '1.4.4.RELEASE'
+        // 0.12.0 升级到了 Gradle 3.4,Gradle 2.14.1 只能使用 0.11.0及以下
+        dockerVersion = '0.12.0'
+        dcokerRegistry = "10.10.100.200:5000"
+    }
+    repositories {
+        maven { url "https://plugins.gradle.org/m2/" }
+        maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
+        mavenCentral()
+        jcenter()
+    }
+    dependencies {
+        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
+        classpath "gradle.plugin.com.palantir.gradle.docker:gradle-docker:${dockerVersion}"
+    }
+}
+
+group 'com.uas.cloud.mall'
+version '0.1.2'
+
+apply plugin: 'java'
+apply plugin: 'maven'
+apply plugin: "com.palantir.docker"
+apply plugin: "org.springframework.boot"
+
+apply from: "$rootDir/gradle/tasks.gradle"
+apply from: "$rootDir/gradle/dependencies-base.gradle"
+
+jar {
+    baseName = project.name
+    version = ''
+}
+
+allprojects {
+    sourceCompatibility = 1.8
+}
+
+dependencies {
+    compile "org.springframework.boot:spring-boot-starter-data-mongodb"
+//    compile("org.mongodb:mongo-java-driver:3.4.2")
+
+    //compile "com.uas.cloud.base.commons:common:0.1.0"
+}
+
+uploadArchives {
+    repositories {
+        mavenDeployer {
+            repository(url: "http://10.10.101.21:8081/artifactory/libs-release-local") {
+                authentication(userName: "yingp", password: "111111")
+            }
+        }
+    }
+}.dependsOn build
+
+
+

+ 1 - 0
gradle.properties

@@ -0,0 +1 @@
+hibernateValidatorVersion=5.4.0.Final

+ 28 - 0
gradle/dependencies-base.gradle

@@ -0,0 +1,28 @@
+// Gradle Base Dependencies Configurations
+// Created by huxz on 2017-3-17 14:39:36
+repositories {
+	mavenLocal()
+	maven { url "http://maven.aliyun.com/nexus/content/groups/public/" }
+	maven {
+		url 'http://10.10.101.21:8081/artifactory/libs-release'
+	}
+	maven {
+		url 'http://10.10.101.21:8081/artifactory/libs-snapshot'
+	}
+	maven {
+		url 'http://10.10.101.21:8081/artifactory/plugins-snapshot'
+	}
+	mavenCentral()
+}
+
+dependencyManagement {
+	imports {
+		mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Camden.SR5'
+	}
+}
+
+dependencies {
+	//compile 'org.springframework.cloud:spring-cloud-starter-config'
+	compile "org.springframework.cloud:spring-cloud-starter-eureka"
+	testCompile 'org.springframework.boot:spring-boot-starter-test'
+}

+ 11 - 0
gradle/tasks.gradle

@@ -0,0 +1,11 @@
+// Gradle Tasks Configurations
+// Created by huxz on 2017-3-17 14:39:36
+bootRun {
+	addResources = true
+}
+
+docker {
+	name "${dcokerRegistry}/${project.name}:${project.version}"
+	dockerfile "${projectDir}/src/main/docker/Dockerfile"
+	files "${buildDir}/libs/${project.name}.jar"
+}.dependsOn build

+ 2 - 0
settings.gradle

@@ -0,0 +1,2 @@
+rootProject.name = 'mall-floor-service'
+

+ 6 - 0
src/main/docker/Dockerfile

@@ -0,0 +1,6 @@
+FROM hub.c.163.com/library/java:8-jre-alpine
+VOLUME /tmp # reate a temporary file on my host under "/var/lib/docker" and link it to the container under "/tmp".
+ADD mall-floor-service.jar app.jar
+RUN sh -c "touch /app.jar" #  "touch" the jar file so that it has a file modification time (Docker creates all container files in an "unmodified" state by default). This actually isn’t important for the simple app that we wrote, but any static content (e.g. "index.html") would require the file to have a modification time.
+ENV JAVA_OPTS=""
+ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar --spring.profiles.active=test"] # To reduce Tomcat startup time we added a system property pointing to "/dev/urandom" as a source of entropy.

+ 19 - 0
src/main/java/com/use/cloud/mall/floor/FloorApplication.java

@@ -0,0 +1,19 @@
+package com.use.cloud.mall.floor;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+
+/**
+ * 楼层服务
+ *
+ * @author yangck
+ * @create 2017-02-25 17:21
+ */
+@SpringBootApplication
+@EnableDiscoveryClient
+public class FloorApplication {
+    public static void main(String[] args) {
+        new SpringApplicationBuilder(FloorApplication.class).web(true).run(args);
+    }
+}

+ 104 - 0
src/main/java/com/use/cloud/mall/floor/api/FloorController.java

@@ -0,0 +1,104 @@
+package com.use.cloud.mall.floor.api;
+
+import com.use.cloud.mall.floor.domain.Floor;
+import com.use.cloud.mall.floor.domain.Item;
+import com.use.cloud.mall.floor.service.FloorService;
+import org.apache.log4j.LogManager;
+import org.apache.log4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.ServiceInstance;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.util.UriComponentsBuilder;
+
+import java.net.URI;
+import java.util.List;
+
+/**
+ * 楼层API
+ *
+ * @author yangck
+ * @create 2017-02-25 17:21
+ */
+@RestController
+@RequestMapping("/floors")
+public class FloorController {
+
+    private final Logger logger = LogManager.getLogger(getClass());
+/*
+    @Autowired
+    private DiscoveryClient client;*/
+
+    @Autowired
+    private FloorService floorService;
+
+    // 获取某一模块的楼层
+    @GetMapping(produces = "application/json")
+    public List<Floor> floors(@RequestParam("usedFor") String usedFor) {
+        /*ServiceInstance instance = client.getLocalServiceInstance();
+        logger.info("/floors, get, host:" + instance.getHost() + ", serviceId:" + instance.getServiceId() + ",usedFor: " + usedFor);
+        */List<Floor> floors = floorService.findByUsedFor(usedFor);
+        return floors;
+    }
+
+    // 新增一个楼层
+    @PostMapping(consumes = "application/json")
+    @ResponseStatus(HttpStatus.CREATED)
+    public ResponseEntity<Floor> save(@RequestBody Floor floor, UriComponentsBuilder ucb) {
+        /*ServiceInstance instance = client.getLocalServiceInstance();
+        logger.info("/floors, method: post, host: " + instance.getHost() + ", serviceId: " + instance.getServiceId() + "floor: " + floor);
+*/
+        Floor saved = floorService.save(floor);
+
+        HttpHeaders headers = new HttpHeaders();
+        URI locationUri = ucb.path("/carousel")
+                .path(String.valueOf(floor.getId()))
+                .build()
+                .toUri();
+        headers.setLocation(locationUri);
+
+        ResponseEntity<Floor> responseEntity = new ResponseEntity<>(saved, headers, HttpStatus.CREATED);
+        return responseEntity;
+    }
+
+    /**
+     * 修改或保存明细
+     * @param id
+     * @param item
+     */
+    @PostMapping(value = "/{id}/item" )
+    public Floor updateItem(@PathVariable("id") String id, @RequestBody Item item) {
+       /* ServiceInstance instance = client.getLocalServiceInstance();
+        logger.info("/floors/" + id + "/item, post, host:" + instance.getHost() + ", serviceId:" + instance.getServiceId());
+        */return floorService.saveItem(id, item);
+    }
+    /**
+     * 删除明细
+     * @param id
+     * @param itemid
+     */
+    @DeleteMapping(value = "/{id}/{itemid}" )
+    public void deleteItem(@PathVariable("id") String id,  @PathVariable("itemid") Long itemid) {
+        /*ServiceInstance instance = client.getLocalServiceInstance();
+        logger.info("/floors/" + id + "/item, post, host:" + instance.getHost() + ", serviceId:" + instance.getServiceId());
+        */floorService.deleteItem(id, itemid);
+    }
+
+    @GetMapping(value = "/{id}", produces = "application/json")
+    public Floor floor(@PathVariable String id) {
+        /*ServiceInstance instance = client.getLocalServiceInstance();
+        logger.info("/floors/" + id + ", get, host:" + instance.getHost() + ", serviceId:" + instance.getServiceId());
+        */Floor floor = floorService.findOne(id);
+        return floor;
+    }
+
+    @DeleteMapping(value = "/{id}")
+    public void delete(@PathVariable String id) {
+        /*ServiceInstance instance = client.getLocalServiceInstance();
+        logger.info("/floors, method: delete, host: " + instance.getHost() + ", serviceId: " + instance.getServiceId() + "id: " + id);
+        */floorService.delete(id);
+    }
+}

+ 28 - 0
src/main/java/com/use/cloud/mall/floor/config/MongoConfig.java

@@ -0,0 +1,28 @@
+package com.use.cloud.mall.floor.config;
+
+import com.mongodb.Mongo;
+import com.mongodb.MongoClient;
+import org.springframework.data.mongodb.config.AbstractMongoConfiguration;
+
+/**
+ * @author yangck
+ * @create 2017-03-06 13:53
+ */
+//@Configuration
+//@EnableMongoRepositories(basePackageClasses = FloorRepository.class)
+public class MongoConfig extends AbstractMongoConfiguration {
+
+    private String host = "10.10.100.22";
+
+    private Integer port = 27017;
+
+    @Override
+    protected String getDatabaseName() {
+        return "mall_floors";
+    }
+
+    @Override
+    public Mongo mongo() throws Exception {
+        return new MongoClient(host, port);
+    }
+}

+ 85 - 0
src/main/java/com/use/cloud/mall/floor/domain/Floor.java

@@ -0,0 +1,85 @@
+package com.use.cloud.mall.floor.domain;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import java.util.List;
+
+/**
+ * 楼层
+ *
+ * @author yangck
+ * @create 2017-02-25 17:23
+ */
+@Document // 默认名称可以不使用@Document注解
+public class Floor {
+
+    @Id
+    private String id;
+
+    /**
+     * 用途
+     */
+    private String usedFor;
+
+    private String name;
+
+    /**
+     * 楼层序号
+     */
+    private Integer floorNumber;
+
+
+    private List<Item> items;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getUsedFor() {
+        return usedFor;
+    }
+
+    public void setUsedFor(String usedFor) {
+        this.usedFor = usedFor;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getFloorNumber() {
+        return floorNumber;
+    }
+
+    public void setFloorNumber(Integer floorNumber) {
+        this.floorNumber = floorNumber;
+    }
+
+    public List<Item> getItems() {
+        return items;
+    }
+
+    public void setItems(List<Item> items) {
+        this.items = items;
+    }
+
+    @Override
+    public String toString() {
+        return "Floor{" +
+                "id='" + id + '\'' +
+                ", usedFor='" + usedFor + '\'' +
+                ", name='" + name + '\'' +
+                ", floorNumber=" + floorNumber +
+                ", items=" + items +
+                '}';
+    }
+}

+ 100 - 0
src/main/java/com/use/cloud/mall/floor/domain/Item.java

@@ -0,0 +1,100 @@
+package com.use.cloud.mall.floor.domain;
+
+/**
+ * 楼层项
+ *
+ * @author yangck
+ * @create 2017-02-27 15:23
+ */
+public class Item {
+
+    private Long id;
+    private String name;
+    private String body;
+    private String pictureUrl;
+    private String hrefUrl;
+    private Integer orderNumber;
+    private String backGroundColor;
+    /**
+     * tiny、small、medium、large
+     */
+    private String size;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getBody() {
+        return body;
+    }
+
+    public void setBody(String body) {
+        this.body = body;
+    }
+
+    public String getPictureUrl() {
+        return pictureUrl;
+    }
+
+    public void setPictureUrl(String pictureUrl) {
+        this.pictureUrl = pictureUrl;
+    }
+
+    public String getHrefUrl() {
+        return hrefUrl;
+    }
+
+    public void setHrefUrl(String hrefUrl) {
+        this.hrefUrl = hrefUrl;
+    }
+
+    public Integer getOrderNumber() {
+        return orderNumber;
+    }
+
+    public void setOrderNumber(Integer orderNumber) {
+        this.orderNumber = orderNumber;
+    }
+
+    public String getSize() {
+        return size;
+    }
+
+    public void setSize(String size) {
+        this.size = size;
+    }
+
+    public String getBackGroundColor() {
+        return backGroundColor;
+    }
+
+    public void setBackGroundColor(String backGroundColor) {
+        this.backGroundColor = backGroundColor;
+    }
+
+    @Override
+    public String toString() {
+        return "Item{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", body='" + body + '\'' +
+                ", pictureUrl='" + pictureUrl + '\'' +
+                ", hrefUrl='" + hrefUrl + '\'' +
+                ", orderNumber=" + orderNumber +
+                ", backGroundColor='" + backGroundColor + '\'' +
+                ", size='" + size + '\'' +
+                '}';
+    }
+}

+ 18 - 0
src/main/java/com/use/cloud/mall/floor/repository/FloorRepository.java

@@ -0,0 +1,18 @@
+package com.use.cloud.mall.floor.repository;
+
+import com.use.cloud.mall.floor.domain.Floor;
+import org.springframework.data.mongodb.repository.MongoRepository;
+
+import java.util.List;
+
+/**
+ * 楼层仓库
+ *
+ * @author yangck
+ * @create 2017-02-27 16:00
+ */
+public interface FloorRepository extends MongoRepository<Floor, String> {
+    Floor findByName(String name);
+    List<Floor> findByUsedForOrderByFloorNumberAsc(String usedFor);
+    Floor findByUsedForAndFloorNumber(String usedFor, Long floorNumber);
+}

+ 19 - 0
src/main/java/com/use/cloud/mall/floor/service/FloorService.java

@@ -0,0 +1,19 @@
+package com.use.cloud.mall.floor.service;
+
+import com.use.cloud.mall.floor.domain.Floor;
+import com.use.cloud.mall.floor.domain.Item;
+
+import java.util.List;
+
+/**
+ * @author yangck
+ * @create 2017-02-27 17:46
+ */
+public interface FloorService {
+    List<Floor> findByUsedFor(String usedFor);
+    Floor findOne(String id);
+    Floor save(Floor floor);
+    void delete(String id);
+    Floor saveItem(String id, Item item);
+    void deleteItem(String id, Long itemid);
+}

+ 92 - 0
src/main/java/com/use/cloud/mall/floor/service/impl/FloorServiceImpl.java

@@ -0,0 +1,92 @@
+package com.use.cloud.mall.floor.service.impl;
+
+import com.use.cloud.mall.floor.domain.Floor;
+import com.use.cloud.mall.floor.domain.Item;
+import com.use.cloud.mall.floor.repository.FloorRepository;
+import com.use.cloud.mall.floor.service.FloorService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author yangck
+ * @create 2017-02-27 17:55
+ */
+@Service
+public class FloorServiceImpl implements FloorService {
+
+    @Autowired
+    private FloorRepository floorRepository;
+
+    @Override
+    public List<Floor> findByUsedFor(String usedFor) {
+        return floorRepository.findByUsedForOrderByFloorNumberAsc(usedFor);
+    }
+
+    @Override
+    public Floor findOne(String id) {
+        return floorRepository.findOne(id);
+    }
+
+    @Override
+    public Floor save(Floor floor) {
+        return floorRepository.save(floor);
+    }
+
+    @Override
+    public void delete(String id) {
+        floorRepository.delete(id);
+    }
+
+    @Override
+    public Floor saveItem(String id, Item item) {
+        Floor floor = floorRepository.findOne(id);
+        if(floor != null) {
+            boolean update = false;
+            if(!CollectionUtils.isEmpty(floor.getItems())) {
+                if(!StringUtils.isEmpty(item.getId())) {
+                    for(Item exitItem : floor.getItems()) {
+                        if(exitItem.getId().equals(item.getId())) {
+                            update = true;
+
+                            System.out.println(item.getName());
+                            exitItem.setName(item.getName());
+                            exitItem.setBody(item.getBody());
+                            exitItem.setHrefUrl(item.getHrefUrl());
+                            exitItem.setPictureUrl(item.getPictureUrl());
+                            exitItem.setOrderNumber(item.getOrderNumber());
+                            exitItem.setSize(item.getSize());
+                            exitItem.setBackGroundColor(item.getBackGroundColor());
+                        }
+                    }
+                }
+            }
+            if(!update) {
+                if(CollectionUtils.isEmpty(floor.getItems())) floor.setItems(new ArrayList<Item>());
+                floor.getItems().add(item);
+            }
+            return floorRepository.save(floor);
+        }
+        return null;
+    }
+
+    @Override
+    public void deleteItem(String id, Long itemid) {
+        Floor floor = floorRepository.findOne(id);
+        if(floor != null) {
+            if(!CollectionUtils.isEmpty(floor.getItems())) {
+                    for(Item exitItem : floor.getItems()) {
+                        if(exitItem.getId().equals(itemid)){
+                            floor.getItems().remove(exitItem);
+                            break;
+                        }
+                    }
+                }
+            }
+        floorRepository.save(floor);
+    }
+}

+ 17 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,17 @@
+spring:
+  application:
+    name: mall-floor-service
+  http:
+    multipart:
+      max-file-size: 100Mb
+  data:
+    mongodb:
+      uri: mongodb://10.10.100.22:27017/mall_floors
+server:
+  port: 20040
+
+eureka:
+  client:
+    serviceUrl:
+      defaultZone: http://10.10.100.23:28000/eureka/
+#      http://localhost:1111/eureka/

+ 20 - 0
src/main/resources/application-prod.yml

@@ -0,0 +1,20 @@
+spring:
+  application:
+    name: mall-floor-service
+  http:
+    multipart:
+      max-file-size: 100Mb
+  data:
+    mongodb:
+      uri: mongodb://10.10.0.218:27017/mall_floors
+
+server:
+  port: 20040
+
+eureka:
+  client:
+    serviceUrl:
+      defaultZone: http://10.10.0.187:28000/eureka/
+  instance:
+    ip-address: 10.10.0.30
+    prefer-ip-address: true

+ 17 - 0
src/main/resources/application-test.yml

@@ -0,0 +1,17 @@
+spring:
+  application:
+    name: mall-floor-service
+  http:
+    multipart:
+      max-file-size: 100Mb
+  data:
+    mongodb:
+      uri: mongodb://10.10.100.22:27017/mall_floors
+server:
+  port: 20040
+
+eureka:
+  client:
+    serviceUrl:
+      defaultZone: http://10.10.100.23:28000/eureka/
+#      http://localhost:1111/eureka/

+ 3 - 0
src/main/resources/application.yml

@@ -0,0 +1,3 @@
+spring:
+  profiles:
+    active: dev

+ 0 - 0
README.md → src/main/resources/bootstrap-dev.yml


+ 0 - 0
src/main/resources/bootstrap-prod.yml


+ 0 - 0
src/main/resources/bootstrap-test.yml


+ 0 - 0
src/main/resources/bootstrap.yml


+ 95 - 0
src/test/java/com/use/cloud/mall/floor/FloorApplicationTest.java

@@ -0,0 +1,95 @@
+package com.use.cloud.mall.floor;
+
+import com.use.cloud.mall.floor.domain.Floor;
+import com.use.cloud.mall.floor.domain.Item;
+import com.use.cloud.mall.floor.repository.FloorRepository;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.mongodb.core.MongoOperations;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Arrays;
+import java.util.Random;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * Created by yangck on 2017/2/27.
+ */
+/*@Transactional
+@ContextConfiguration(classes = FloorApplication.class)
+@RunWith(SpringJUnit4ClassRunner.class)*/
+public class FloorApplicationTest {
+/*
+    @Autowired
+    private FloorRepository floorRepository;
+
+    @Autowired
+    private MongoOperations operations;
+
+    @Before
+    public void cleanup() {
+        floorRepository.deleteAll();
+    }
+
+    @Test
+    public void testMongoRepository() {
+        assertEquals(0, floorRepository.count());
+
+        Floor floor1 = floorRepository.save(createFloor("手机", "home", 1));
+        Floor floor2 = floorRepository.save(createFloor("家电", "home", 2));
+        Floor floor3 = floorRepository.save(createFloor("车载", "home", 3));
+        Floor floor4 = floorRepository.save(createFloor("消费电子", "home", 4));
+        Floor floor5 = floorRepository.save(createFloor("材料加工", "home", 5));
+
+        assertEquals(5, floorRepository.count());
+        Floor floor1_Found = floorRepository.findByUsedForAndFloorNumber("home", 1l);
+        assertEquals("手机", floor1_Found.getName());
+        assertEquals(8, floor1_Found.getItems().size());
+        System.out.println(floor1_Found);
+
+        System.out.println("--------yangck--------floor1_Found值=" + floor1_Found + "," + "当前类=FloorApplicationTest.testMongoRepository()");
+
+    }
+
+    private Floor createFloor(String name, String usedFor, Integer orderNumber) {
+        Floor floor = new Floor();
+        floor.setUsedFor(usedFor);
+        floor.setName(name);
+        floor.setFloorNumber(orderNumber);
+        Item item1 = createItem("", "", 1, "tiny");
+        Item item2 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 2, "large");
+        Item item3 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 3, "medium");
+        Item item4 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 4, "small");
+        Item item5 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 5, "small");
+        Item item6 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 6, "medium");
+        Item item7 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 7, "small");
+        Item item8 = createItem("商品名称", "商品介绍、商品介绍、商品介绍、商品介绍、商品介绍", 8, "small");
+        floor.setItems(Arrays.asList(item1, item2, item3, item4, item5, item6, item7, item8));
+
+        return floor;
+    }
+
+    private Item createItem(String name, String body, Integer orderNumber, String size) {
+        Item item = new Item();
+        item.setName(name);
+        item.setBody(body);
+        item.setPictureUrl(getRandomUrl());
+        item.setHrefUrl("http://www.ubtob.com/");
+        item.setOrderNumber(orderNumber);
+        item.setSize(size);
+        return item;
+    }
+
+    private Random random = new Random();
+
+    private String getRandomUrl() {
+        String[] urls = new String[] {"http://www.ubtob.com/static/img/about.png", "http://www.ubtob.com/static/img/carousel/header-06.jpg", "http://www.ubtob.com/static/img/carousel/header-02.jpg", "http://www.ubtob.com/static/img/carousel/header-07.jpg", "http://www.ubtob.com/static/img/carousel/header-04.jpg", "http://www.ubtob.com/static/img/carousel/header-05.jpg", "http://www.ubtob.com/static/img/about_saas/ad_01.jpg", "http://www.ubtob.com/static/img/about_saas/ad_01.jpg"};
+        int index = random.nextInt(urls.length);
+        return urls[index];
+    }*/
+}