ソースを参照

Add 添加商铺

enilu 6 年 前
コミット
505df89ee7

+ 77 - 75
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/ShopController.java

@@ -11,12 +11,12 @@ import cn.enilu.flash.bean.vo.front.Rets;
 import cn.enilu.flash.dao.MongoRepository;
 import cn.enilu.flash.service.front.IdsService;
 import cn.enilu.flash.service.front.PositionService;
+import cn.enilu.flash.utils.BeanUtil;
 import cn.enilu.flash.utils.Maps;
 import cn.enilu.flash.utils.factory.Page;
 import com.google.common.collect.Lists;
 import org.nutz.json.Json;
 import org.nutz.lang.Strings;
-import org.nutz.mapl.Mapl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.geo.GeoResult;
 import org.springframework.data.geo.GeoResults;
@@ -40,46 +40,48 @@ public class ShopController extends BaseController {
     private IdsService idsService;
     @Autowired
     private PositionService positionService;
-    @RequestMapping(value = "/restaurant/{id}",method = RequestMethod.GET)
 
-    public Object getShop(@PathVariable("id")Long id) {
-        Object data = mongoRepository.findOne(id,"shops");
-        return Rets.success(data) ;
+    @RequestMapping(value = "/restaurant/{id}", method = RequestMethod.GET)
+
+    public Object getShop(@PathVariable("id") Long id) {
+        Object data = mongoRepository.findOne(id, "shops");
+        return Rets.success(data);
     }
 
-    @RequestMapping(value = "restaurants",method = RequestMethod.GET)
-    public Object listShop(@RequestParam(value = "latitude",required = false) String latitude,
-                           @RequestParam(value = "longitude",required = false) String longitude) {
+    @RequestMapping(value = "restaurants", method = RequestMethod.GET)
+    public Object listShop(@RequestParam(value = "latitude", required = false) String latitude,
+                           @RequestParam(value = "longitude", required = false) String longitude) {
         if (com.google.common.base.Strings.isNullOrEmpty(latitude) || "undefined".equals(latitude)
                 || com.google.common.base.Strings.isNullOrEmpty(longitude) || "undefined".equals(longitude)) {
             Page<Shop> page = new PageFactory<Shop>().defaultPage();
-            return Rets.success(mongoRepository.queryPage(page,Shop.class));
+            return Rets.success(mongoRepository.queryPage(page, Shop.class));
         } else {
             //查询指定经纬度范围内的餐厅
-            GeoResults<Map> geoResults =  mongoRepository.near(Double.valueOf(longitude),Double.valueOf(latitude),"shops");
-            List<GeoResult<Map>> geoResultList =  geoResults.getContent();
+            GeoResults<Map> geoResults = mongoRepository.near(Double.valueOf(longitude), Double.valueOf(latitude), "shops");
+            List<GeoResult<Map>> geoResultList = geoResults.getContent();
             List list = Lists.newArrayList();
-            for(int i=0;i<geoResultList.size();i++){
+            for (int i = 0; i < geoResultList.size(); i++) {
                 list.add(geoResultList.get(i).getContent());
             }
             return Rets.success(list);
         }
     }
 
-    @RequestMapping(value = "/restaurants/count",method = RequestMethod.GET)
+    @RequestMapping(value = "/restaurants/count", method = RequestMethod.GET)
 
     public Object countShop() {
         long count = mongoRepository.count(Shop.class);
         return Rets.success("count", count);
     }
-    @RequestMapping(value = "/restaurants/{id}",method = RequestMethod.DELETE)
 
-    public Object deleteShop(@PathVariable("id")Long id) {
-        mongoRepository.delete(id,"shops");
+    @RequestMapping(value = "/restaurants/{id}", method = RequestMethod.DELETE)
+
+    public Object deleteShop(@PathVariable("id") Long id) {
+        mongoRepository.delete(id, "shops");
         return Rets.success();
     }
 
-    @RequestMapping(value = "/updateshop",method = RequestMethod.POST)
+    @RequestMapping(value = "/updateshop", method = RequestMethod.POST)
 
     public Object updateShop(@ModelAttribute @Valid Shop shop) {
 //        Map data =   getRequestPayload( Map.class);
@@ -93,45 +95,68 @@ public class ShopController extends BaseController {
         updateMap.put("recent_order_num", shop.getRecent_order_num());
         updateMap.put("image_path", shop.getImage_path());
 
-        mongoRepository.update( shop.getId(), "shops", updateMap);
+        mongoRepository.update(shop.getId(), "shops", updateMap);
         return Rets.success();
     }
 
-    @RequestMapping(value = "/addShop",method = RequestMethod.POST)
-
+    @RequestMapping(value = "/addShop", method = RequestMethod.POST)
     public Object addShop(@ModelAttribute @Valid ShopVo shopVo) {
-        System.out.println(Json.toJson(shopVo));
-        Map data = (Map) Mapl.toMaplist(shopVo);
+
         Shop shop = new Shop();
+        BeanUtil.copyProperties(shopVo, shop);
         shop.setId(idsService.getId(Ids.RESTAURANT_ID));
-        System.out.println(Json.toJson(shop));
-        if(1==1){
-            return Rets.success();
+        List activities = Json.fromJson(List.class,shopVo.getActivitiesJson());
+        int index = 0;
+        for (int i = 0; i < activities.size(); i++) {
+            Map activity = (Map) activities.get(i);
+            String iconName = activity.get("icon_name").toString();
+            switch (iconName) {
+                case "减":
+                    activity.put("icon_color", "f07373");
+                    activity.put("id", index++);
+                    break;
+                case "特":
+                    activity.put("icon_color", "EDC123");
+                    activity.put("id", index++);
+                    break;
+                case "新":
+                    activity.put("icon_color ", "70bc46");
+                    activity.put("id", index++);
+                    break;
+                case "领":
+                    activity.put("icon_color ", "E3EE0D");
+                    activity.put("id ", index++);
+                    break;
+                default:
+                    break;
+            }
         }
+        shop.setActivities(activities);
+
         List<Map> supports = new ArrayList<Map>(4);
-        if ((boolean) data.get("bao")) {
+        if (shopVo.getBao()) {
             supports.add(buildSupport("已加入“外卖保”计划,食品安全有保障", "999999", "保", 7, "外卖保"));
         }
-        if ((boolean) data.get("zhun")) {
+        if (shopVo.getZhun()) {
             supports.add(buildSupport("准时必达,超时秒赔", "57A9FF", "准", 9, "准时达"));
         }
-        if ((boolean) data.get("piao")) {
+        if (shopVo.getPiao()) {
             supports.add(buildSupport("该商家支持开发票,请在下单时填写好发票抬头", "999999", "票", 4, "开发票"));
         }
         shop.setSupports(supports);
-        shop.setIs_new((boolean) data.get("new"));
+        shop.setIs_new(shopVo.getNews());
 
-        if ((boolean) data.get("delivery_mode")) {
+        if (shopVo.getDeliveryMode()) {
             Map<String, Object> deliveryMode = Maps.newHashMap("color", "57A9FF", "id", 1, "is_solid", true, "text", "蜂鸟专送");
             shop.setDelivery_mode(deliveryMode);
         }
         Map<String, String> tips = new HashMap<String, String>(2);
-        tips.put("tips", "配送费约¥" + data.get("float_delivery_fee"));
+        tips.put("tips", "配送费约¥" +shopVo.getFloat_delivery_fee());
         shop.setPiecewise_agent_fee(tips);
         List<String> openingHours = new ArrayList<String>();
-        if (Strings.isNotBlank(Strings.sNull(data.get("startTime"))) &&
-                Strings.isNotBlank(Strings.sNull(data.get("endTime")))) {
-            openingHours.add(data.get("startTime").toString() + "/" + data.get("endTime").toString());
+        if (Strings.isNotBlank(shopVo.getStartTime()) &&
+                Strings.isNotBlank(shopVo.getEndTime())) {
+            openingHours.add(shopVo.getStartTime() + "/" + shopVo.getEndTime());
         } else {
             openingHours.add("08:30/20:30");
         }
@@ -139,11 +164,11 @@ public class ShopController extends BaseController {
         shop.setOpening_hours(openingHours);
 
         Map<String, String> license = new HashMap<String, String>();
-        if (Strings.isNotBlank(Strings.sNull(data.get("business_license_image")))) {
-            license.put("business_license_image", data.get("business_license_image").toString());
+        if (Strings.isNotBlank(Strings.sNull(shopVo.getBusiness_license_image()))) {
+            license.put("business_license_image", shopVo.getBusiness_license_image());
         }
-        if (Strings.isNotBlank(Strings.sNull(data.get("catering_service_license_image")))) {
-            license.put("catering_service_license_image", data.get("catering_service_license_image").toString());
+        if (Strings.isNotBlank(shopVo.getCatering_service_license_image())) {
+            license.put("catering_service_license_image",shopVo.getCatering_service_license_image());
         }
         shop.setLicense(license);
 
@@ -160,33 +185,6 @@ public class ShopController extends BaseController {
                 "registered_number", "");
         shop.setIdentification(identification);
 
-        List activities = (List) data.get("activities");
-        int index = 0;
-        for (int i = 0; i < activities.size(); i++) {
-            Map activity = (Map) activities.get(i);
-            String iconName = activity.get("icon_name").toString();
-            switch (iconName) {
-                case "减":
-                    activity.put("icon_color", "f07373");
-                    activity.put("id", index++);
-                    break;
-                case "特":
-                    activity.put("icon_color", "EDC123");
-                    activity.put("id", index++);
-                    break;
-                case "新":
-                    activity.put("icon_color ", "70bc46");
-                    activity.put("id", index++);
-                    break;
-                case "领":
-                    activity.put("icon_color ", "E3EE0D");
-                    activity.put("id ", index++);
-                    break;
-                default:
-                    break;
-            }
-        }
-        shop.setActivities(activities);
 
         CityInfo cityInfo = positionService.getPostion(getIp());
         if (cityInfo != null) {
@@ -197,28 +195,31 @@ public class ShopController extends BaseController {
             locations.add(Double.valueOf(cityInfo.getLat()));
             shop.setLocation(locations);
         }
+
+
         mongoRepository.save(shop);
 
         return Rets.success();
     }
 
-    @RequestMapping(value = "addcategory",method = RequestMethod.POST)
+    @RequestMapping(value = "addcategory", method = RequestMethod.POST)
 
     public Object addCategory(HttpServletRequest request) {
-        Menu menu = getRequestPayload( Menu.class);
+        Menu menu = getRequestPayload(Menu.class);
         menu.setId(idsService.getId(Ids.CATEGORY_ID));
         System.out.println(Json.toJson(menu));
         //todo 进行处理后保存
         mongoRepository.save(menu);
         return Rets.success();
     }
-    @RequestMapping(value = "/v2/restaurant/category",method = RequestMethod.GET)
+
+    @RequestMapping(value = "/v2/restaurant/category", method = RequestMethod.GET)
 
     public Object categories() {
         return Rets.success(mongoRepository.findAll("categories"));
     }
 
-    @RequestMapping(value = "/getcategory/{id}",method = RequestMethod.GET)
+    @RequestMapping(value = "/getcategory/{id}", method = RequestMethod.GET)
 
     public Object getCategory(@PathVariable("id") Long restaurantId) {
         List list = mongoRepository.findAll("menus", "restaurant_id", restaurantId);
@@ -226,14 +227,15 @@ public class ShopController extends BaseController {
     }
 
 
-    @RequestMapping(value = "/v2/menu/{id}",method = RequestMethod.GET)
-    public Object getMenus(@PathVariable("id")Long id){
-        return Rets.success(mongoRepository.findOne(id,"menus"));
+    @RequestMapping(value = "/v2/menu/{id}", method = RequestMethod.GET)
+    public Object getMenus(@PathVariable("id") Long id) {
+        return Rets.success(mongoRepository.findOne(id, "menus"));
     }
-    @RequestMapping(value = "/v2/menu",method = RequestMethod.GET)
 
-    public Object getMenu(@RequestParam("restaurant_id")Long restaurantId, @RequestParam("allMenu")boolean allMEnu){
-        return Rets.success(mongoRepository.findAll("menus","restaurant_id",restaurantId));
+    @RequestMapping(value = "/v2/menu", method = RequestMethod.GET)
+
+    public Object getMenu(@RequestParam("restaurant_id") Long restaurantId, @RequestParam("allMenu") boolean allMEnu) {
+        return Rets.success(mongoRepository.findAll("menus", "restaurant_id", restaurantId));
     }
 
 

+ 4 - 2
flash-waimai-core/src/main/java/cn/enilu/flash/bean/entity/front/Shop.java

@@ -1,9 +1,10 @@
 package cn.enilu.flash.bean.entity.front;
 
-import com.alibaba.fastjson.annotation.JSONField;
+import cn.enilu.flash.utils.Lists;
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.mapping.Document;
 
+import javax.validation.constraints.NotBlank;
 import java.util.List;
 import java.util.Map;
 
@@ -16,6 +17,7 @@ import java.util.Map;
 public class Shop extends BaseMongoEntity {
     @Id
     private String _id;
+    @NotBlank(message = "商铺名称不能为空")
     private String name;
     private String address;
     private Long id;
@@ -24,7 +26,7 @@ public class Shop extends BaseMongoEntity {
     private List location;
     private String phone;
     private String category;
-    private List supports;
+    private List supports= Lists.newArrayList();
     private Integer status=1;
     private Integer recent_order_num=500;
     private Integer rating_count=200;

+ 7 - 1
flash-waimai-core/src/main/java/cn/enilu/flash/bean/vo/business/ShopVo.java

@@ -9,12 +9,18 @@ import lombok.Data;
  */
 @Data
 public class ShopVo extends Shop {
+
     private String activitiesJson;
-    private String delivery_mode;
+    private Boolean deliveryMode;
     private Boolean news;
     private Boolean bao;
     private Boolean zhun;
     private Boolean piao;
+    private String image_path;
+    private String business_license_image;
+    private String catering_service_license_image;
+    private String startTime;
+    private String endTime;
 }
 
 

+ 16 - 3
flash-waimai-core/src/main/java/cn/enilu/flash/utils/BeanUtil.java

@@ -2,12 +2,11 @@ package cn.enilu.flash.utils;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import org.apache.poi.ss.formula.functions.T;
+import org.nutz.lang.Mirror;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.BeanWrapper;
-import org.springframework.beans.BeanWrapperImpl;
 import org.springframework.cglib.beans.BeanMap;
 
+import java.lang.reflect.Field;
 import java.util.List;
 import java.util.Map;
 
@@ -102,5 +101,19 @@ public class BeanUtil {
         return list;
     }
 
+    public static  void copyProperties(Object src,Object dest){
+        Mirror mirrorSrc = Mirror.me(src.getClass());
+        Mirror mirrorDest = Mirror.me(dest.getClass());
+        Field[] fieldsSrc = mirrorSrc.getFields();
+        for(Field field:fieldsSrc){
+            try {
+                Field fieldDest = mirrorDest.getField(field.getName());
+                mirrorDest.setValue(dest,fieldDest,mirrorSrc.getValue(src,field));
+            }catch (Exception e){
+
+            }
+        }
+    }
+
 
 }

+ 35 - 47
flash-waimai-manage/src/views/business/shop/add.js

@@ -22,8 +22,8 @@ export default {
         float_delivery_fee: 5, //运费
         float_minimum_order_amount: 20, //起价
         is_premium: true,
-        delivery_mode: true,
-        new: true,
+        deliveryMode: true,
+        news: true,
         bao: true,
         zhun: true,
         piao: true,
@@ -223,52 +223,40 @@ export default {
           delete this.formData.activities
           this.formData.activitiesJson = activitiesJson
           console.log(this.formData)
-
-          try {
-            const result = addShop(this.formData)
-            if (result.code === 20000) {
-              this.$message({
-                type: 'success',
-                message: '添加成功'
-              })
-              this.formData = {
-                name: '', //店铺名称
-                address: '', //地址
-                latitude: '',
-                longitude: '',
-                description: '', //介绍
-                phone: '',
-                promotion_info: '',
-                float_delivery_fee: 5, //运费
-                float_minimum_order_amount: 20, //起价
-                is_premium: true,
-                delivery_mode: true,
-                new: true,
-                bao: true,
-                zhun: true,
-                piao: true,
-                startTime: '',
-                endTime: '',
-                image_path: '',
-                business_license_image: '',
-                catering_service_license_image: ''
-              }
-              this.selectedCategory = ['快餐便当', '简餐']
-              this.activities = [{
-                icon_name: '减',
-                name: '满减优惠',
-                description: '满30减5,满60减8'
-              }]
-            } else {
-              this.$message({
-                type: 'error',
-                message: result.message
-              })
+          addShop(this.formData).then(response => {
+            this.$message({
+              type: 'success',
+              message: '添加成功'
+            })
+            this.formData = {
+              name: '', //店铺名称
+              address: '', //地址
+              latitude: '',
+              longitude: '',
+              description: '', //介绍
+              phone: '',
+              promotion_info: '',
+              float_delivery_fee: 5, //运费
+              float_minimum_order_amount: 20, //起价
+              is_premium: true,
+              deliveryMode: true,
+              news: true,
+              bao: true,
+              zhun: true,
+              piao: true,
+              startTime: '',
+              endTime: '',
+              image_path: '',
+              business_license_image: '',
+              catering_service_license_image: ''
             }
-            console.log(result)
-          } catch (err) {
-            console.log(err)
-          }
+            this.selectedCategory = ['快餐便当', '简餐']
+            this.activities = [{
+              icon_name: '减',
+              name: '满减优惠',
+              description: '满30减5,满60减8'
+            }]
+          })
         } else {
           this.$notify.error({
             title: '错误',

+ 2 - 2
flash-waimai-manage/src/views/business/shop/add.vue

@@ -37,9 +37,9 @@
               <span>品牌保证</span>
               <el-switch on-text="" off-text="" v-model="formData.is_premium"></el-switch>
               <span>蜂鸟专送</span>
-              <el-switch on-text="" off-text="" v-model="formData.delivery_mode"></el-switch>
+              <el-switch on-text="" off-text="" v-model="formData.deliveryMode"></el-switch>
               <span>新开店铺</span>
-              <el-switch on-text="" off-text="" v-model="formData.new"></el-switch>
+              <el-switch on-text="" off-text="" v-model="formData.news"></el-switch>
             </el-form-item>
             <el-form-item style="white-space: nowrap;">
               <span>外卖保</span>