浏览代码

Add 个人中心,订单,店铺搜索功能

enilu 6 年之前
父节点
当前提交
43196200af

+ 1 - 0
.gitignore

@@ -11,3 +11,4 @@
 target
 .project
 launch.json
+.vscode

+ 1 - 1
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/FileController.java

@@ -150,7 +150,7 @@ public class FileController extends BaseController {
             out.write(b);
             out.flush();
         } catch (Exception e) {
-            logger.error("getImgStream error",e.getMessage());
+            logger.error("getImgStream error",e);
         } finally {
             if (fis != null) {
                 try {

+ 2 - 2
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/AddressController.java

@@ -24,11 +24,11 @@ public class AddressController extends BaseController {
     private MongoRepository mongoRepository;
     @Autowired
     private IdsService idsService;
-    @RequestMapping(value = "/v1/users/${user_id}/addresses",method = RequestMethod.GET)
+    @RequestMapping(value = "/v1/users/{user_id}/addresses",method = RequestMethod.GET)
     public Object address(@PathVariable("user_id")Long userId){
         return Rets.success(mongoRepository.findAll(Address.class,"user_id",userId));
     }
-    @RequestMapping(value = "/v1/usres/${user_id}/addresses",method =  RequestMethod.POST)
+    @RequestMapping(value = "/v1/usres/{user_id}/addresses",method =  RequestMethod.POST)
     public Object save(@PathVariable("user_id")Long userId){
         Address address = getRequestPayload(Address.class);
         address.setUser_id(userId);

+ 28 - 0
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/ExplainController.java

@@ -0,0 +1,28 @@
+package cn.enilu.flash.api.controller.business;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import cn.enilu.flash.api.controller.BaseController;
+import cn.enilu.flash.bean.entity.front.Explain;
+import cn.enilu.flash.bean.vo.front.Rets;
+import cn.enilu.flash.dao.MongoRepository;
+
+/**
+ * Created  on 2019/10/10
+ *
+ * @author enilu.cn
+ */
+@RestController
+public class ExplainController extends BaseController {
+    @Autowired
+    private MongoRepository mongoRepository;
+    @RequestMapping(value="/v3/profile/explain",method = RequestMethod.GET)
+    public Object getData(){
+        Explain explain = mongoRepository.findOne(Explain.class);
+        return Rets.success(explain);
+    }
+    
+}

+ 9 - 3
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/OrderController.java

@@ -1,10 +1,13 @@
 package cn.enilu.flash.api.controller.business;
 
 import cn.enilu.flash.api.controller.BaseController;
+import cn.enilu.flash.bean.constant.factory.PageFactory;
 import cn.enilu.flash.bean.entity.front.Order;
 import cn.enilu.flash.bean.vo.front.Rets;
 import cn.enilu.flash.dao.MongoRepository;
 import cn.enilu.flash.utils.Maps;
+import cn.enilu.flash.utils.factory.Page;
+
 import org.nutz.lang.Strings;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -18,9 +21,12 @@ import org.springframework.web.bind.annotation.*;
 public class OrderController extends BaseController {
     @Autowired
     private MongoRepository mongoRepository;
-    @RequestMapping("/bos/v2/users/${user_id}/orders")
-    public Object orders(@PathVariable("user_id")Long userId){
-        return mongoRepository.findAll(Order.class,"user_id",userId);
+    @RequestMapping(value = "/bos/v2/users/{user_id}/orders" ,method = RequestMethod.GET)
+    public Object orders(@PathVariable("user_id")Long userId,@RequestParam("limit") Integer limit,
+    @RequestParam("offset")Integer offset){
+        Page<Order> page = new PageFactory<Order>().defaultPage();
+       return Rets.success(mongoRepository.queryPage(page, Order.class,Maps.newHashMap("user_id", userId)));
+        // return mongoRepository.findAll(Order.class,"user_id",userId);
 
     }
     @RequestMapping(value = "/bos/orders/count",method = RequestMethod.GET)

+ 38 - 7
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/RestaurantController.java

@@ -1,23 +1,54 @@
 package cn.enilu.flash.api.controller.business;
 
 import cn.enilu.flash.api.controller.BaseController;
+import cn.enilu.flash.bean.constant.factory.PageFactory;
+import cn.enilu.flash.bean.vo.front.Rets;
+import cn.enilu.flash.dao.MongoRepository;
+import cn.enilu.flash.utils.Lists;
+import cn.enilu.flash.utils.Maps;
+import cn.enilu.flash.utils.factory.Page;
+import cn.enilu.flash.utils.gps.Distance;
+
+import java.util.List;
+import java.util.Map;
+
+import org.nutz.json.Json;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.geo.GeoResult;
+import org.springframework.data.geo.GeoResults;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
- * Created  on 2018/1/5 0005.
- * todo 未完成
+ * Created on 2018/1/5 0005. todo 未完成
+ * 
  * @author zt
  */
 @RestController
 public class RestaurantController extends BaseController {
-    @RequestMapping(value = "/v4/restaurants",method = RequestMethod.GET)
-
-    public Object restaurants(@RequestParam("geohash")String geoHash,
-                              @RequestParam("keyword")String keyWord){
+    @Autowired
+    private MongoRepository mongoRepository;
 
-        return null;
+    @RequestMapping(value = "/v4/restaurants", method = RequestMethod.GET)
+    public Object restaurants(@RequestParam("geohash") String geoHash, @RequestParam("keyword") String keyWord) {
+        String[] geoHashArr = geoHash.split(",");
+        String longitude = geoHashArr[1];
+        String latitude = geoHashArr[0];
+        Map<String, Object> params = Maps.newHashMap("name", keyWord);
+        System.out.println(Json.toJson(params));
+        GeoResults<Map> geoResults = mongoRepository.near(Double.valueOf(longitude), Double.valueOf(latitude),
+                "shops", params);
+        List<GeoResult<Map>> geoResultList = geoResults.getContent();
+        List<Map> list = Lists.newArrayList();
+        for (int i = 0; i < geoResultList.size(); i++) {
+            Map map = geoResultList.get(i).getContent();
+            Distance distance = new Distance(Double.valueOf(longitude), Double.valueOf(latitude),
+                    Double.valueOf(map.get("longitude").toString()), Double.valueOf(map.get("latitude").toString()));
+            map.put("distance", distance.getDistance());
+            list.add(map);
+        }
+        return Rets.success(list);        
     }
 }

+ 4 - 1
flash-waimai-api/src/main/java/cn/enilu/flash/api/controller/business/User2Controller.java

@@ -47,7 +47,10 @@ public class User2Controller extends BaseController {
     public Object getUser(){
         return getSession("currentUser");
     }
-
+    @RequestMapping(method = RequestMethod.GET)
+    public Object getUser(@RequestParam("user_id") Long userId){
+        return getSession("currentUser");
+    }
     @RequestMapping(value = "/list",method = RequestMethod.GET)
     public Object list(@RequestParam("offset") Integer offset,@RequestParam("limit") Integer limit){
         List list = mongoRepository.findAll("userinfos");

+ 22 - 0
flash-waimai-core/src/main/java/cn/enilu/flash/bean/entity/front/Explain.java

@@ -0,0 +1,22 @@
+package cn.enilu.flash.bean.entity.front;
+
+import java.util.Map;
+
+import org.springframework.data.annotation.Id;
+import org.springframework.data.mongodb.core.mapping.Document;
+
+import lombok.Data;
+
+/**
+ * Created  on 2019/10/10
+ *
+ * @author enilu.cn
+ */
+@Data
+@Document(collection = "explains")
+public class Explain extends BaseMongoEntity{
+    @Id
+    private String _id;
+    private Map<String,String> data;
+    
+}

+ 1 - 1
flash-waimai-core/src/main/java/cn/enilu/flash/bean/entity/front/FrontUserInfo.java

@@ -31,6 +31,6 @@ public class FrontUserInfo  extends BaseMongoEntity{
     private Integer current_address_id=0;
     private Integer balance=0;
     private Integer brand_member_new=0;
-    private String avatar;
+    private String avatar="avatar.jpg";
 
 }

+ 0 - 53
flash-waimai-core/src/main/java/cn/enilu/flash/bean/vo/business/Rets.java

@@ -1,53 +0,0 @@
-package cn.enilu.flash.bean.vo.business;
-
-import com.google.common.collect.Maps;
-
-import java.util.Map;
-
-/**
- * Created on 2017/12/29 0029.
- * @author zt
- */
-public class Rets {
-    public static  final int STATUS_SUCCESS=1;
-    public static  final int STATUS_FAILURE=0;
-    public static  Map<String,Object> success(){
-        Map<String,Object> result = Maps.newHashMap();
-        result.put("status",STATUS_SUCCESS);
-        return result;
-    }
-    public static Map<String,Object> success(String message){
-        Map<String,Object> result = Maps.newHashMap();
-        result.put("status",STATUS_SUCCESS);
-        result.put("success",message);
-        return result;
-    }
-    public static Map<String,Object> success(String key,Object data){
-        Map<String,Object> result = Maps.newHashMap();
-        result.put("status",STATUS_SUCCESS);
-        result.put(key,data);
-        return result;
-    }
-    public static  Map<String,Object> failure(){
-        Map<String,Object> result = Maps.newHashMap();
-        result.put("status",STATUS_FAILURE);
-        return result;
-    }
-    public static Map<String,Object> failure(String key,Object data){
-        Map<String,Object> result = Maps.newHashMap();
-        result.put("status",STATUS_FAILURE);
-        result.put(key,data);
-        return result;
-    }
-    public static  Map<String,Object> failure(Map<String,Object> data){
-        data.put("status",STATUS_FAILURE);
-        return data;
-    }
-    public static Map<String,Object> failure(String message){
-        Map<String,Object> result = Maps.newHashMap();
-        result.put("status",STATUS_FAILURE);
-        result.put("message",message);
-        return result;
-    }
-
-}

+ 19 - 15
flash-waimai-core/src/main/java/cn/enilu/flash/dao/MongoRepository.java

@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * Created  on 2017/12/29 0029.
+ * Created on 2017/12/29 0029.
  *
  * @author zt
  */
@@ -63,6 +63,7 @@ public class MongoRepository {
         }
         return mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(id)), update, collectionName);
     }
+
     public UpdateResult update(String id, String collectionName, Map<String, Object> keyValues) {
         Update update = null;
         for (Map.Entry<String, Object> entry : keyValues.entrySet()) {
@@ -87,7 +88,6 @@ public class MongoRepository {
         return mongoTemplate.findOne(Query.query(Criteria.where("id").is(id)), Map.class, collectionName);
     }
 
-
     public Map findOne(String collectionName, Object... extraKeyValues) {
         Criteria criteria = criteria(extraKeyValues);
         if (criteria == null) {
@@ -100,6 +100,12 @@ public class MongoRepository {
         return mongoTemplate.findOne(Query.query(criteria), Map.class, collectionName);
     }
 
+    public <T> T findOne(Class<T> klass) {
+        Query query = new Query();
+        return mongoTemplate.findOne(query, klass);
+
+    }
+
     public <T> T findOne(Class<T> klass, Object... keyValues) {
         Criteria criteria = criteria(keyValues);
 
@@ -113,19 +119,19 @@ public class MongoRepository {
         return mongoTemplate.findOne(Query.query(criteria), klass);
     }
 
-    public <T> Page<T> queryPage(Page<T> page,Class<T> klass) {
-       return queryPage(page,klass,null);
+    public <T> Page<T> queryPage(Page<T> page, Class<T> klass) {
+        return queryPage(page, klass, null);
     }
 
-    public <T> Page<T> queryPage(Page<T> page,Class<T> klass,Map<String,Object> params) {
-        Pageable pageable = PageRequest.of(page.getCurrent() - 1, page.getSize(), Sort.Direction.DESC,"id");
+    public <T> Page<T> queryPage(Page<T> page, Class<T> klass, Map<String, Object> params) {
+        Pageable pageable = PageRequest.of(page.getCurrent() - 1, page.getSize(), Sort.Direction.DESC, "id");
         Query query = new Query();
-        if(params!=null &&!params.isEmpty()) {
+        if (params != null && !params.isEmpty()) {
             Criteria criteria = criteria(params);
             query = Query.query(criteria);
         }
-        List<T> list = mongoTemplate.find(query.with(pageable),klass);
-        Long count = count(klass);
+        List<T> list = mongoTemplate.find(query.with(pageable), klass);
+        Long count = count(klass, params);
         page.setTotal(count.intValue());
         page.setRecords(list);
         return page;
@@ -154,14 +160,14 @@ public class MongoRepository {
         return mongoTemplate.find(Query.query(criteria), Map.class, collectionName);
     }
 
-    public GeoResults<Map> near(double x, double y, String collectionName,Map<String,Object> params) {
-        Point location = new Point(x,y);
+    public GeoResults<Map> near(double x, double y, String collectionName, Map<String, Object> params) {
+        Point location = new Point(x, y);
         NearQuery nearQuery = NearQuery.near(location).maxDistance(new Distance(5, Metrics.MILES));
-        if(params!=null && !params.isEmpty()){
+        if (params != null && !params.isEmpty()) {
             Query query = Query.query(criteria(params));
             nearQuery.query(query);
         }
-        return mongoTemplate.geoNear(nearQuery,Map.class,collectionName);
+        return mongoTemplate.geoNear(nearQuery, Map.class, collectionName);
     }
 
     public long count(Class klass) {
@@ -191,7 +197,6 @@ public class MongoRepository {
         }
     }
 
-
     private Criteria criteria(Map<String, Object> map) {
         Criteria criteria = null;
         if (map != null) {
@@ -225,5 +230,4 @@ public class MongoRepository {
         return criteria;
     }
 
-
 }

+ 3 - 3
flash-waimai-mobile/package.json

@@ -6,9 +6,9 @@
   "private": true,
   "license": "GPL",
   "scripts": {
-    "dev": "cross-env NODE_ENV=online node build/dev-server.js",//使用线上api
-    "local": "cross-env NODE_ENV=local node build/dev-server.js",//本地开发
-    "build": "node build/build.js"//发布到生产
+    "dev": "cross-env NODE_ENV=online node build/dev-server.js",
+    "local": "cross-env NODE_ENV=local node build/dev-server.js",
+    "build": "node build/build.js"
   },
   "dependencies": {
     "better-scroll": "^0.1.15",

+ 4 - 1
flash-waimai-mobile/src/page/order/order.vue

@@ -87,7 +87,10 @@
             //初始化获取信息
             async initData(){
                 if (this.userInfo && this.userInfo.user_id) {
-                    let res = await getOrderList(this.userInfo.user_id, this.offset);
+                    let response = await getOrderList(this.userInfo.user_id, this.offset);
+                    console.log('response',response)                    
+                    let res = response.records
+                    console.log('res',res)
                     this.orderList = [...res];
                     this.hideLoading();
                 }else{

+ 1 - 1
flash-waimai-mobile/src/page/search/search.vue

@@ -23,7 +23,7 @@
                                 </svg>
                             </p>
                             <p>月售 {{item.month_sales||item.recent_order_num}} 单</p>
-                            <p>{{item.delivery_fee||item.float_minimum_order_amount}} 元起送 / 距离{{item.distance}}</p>
+                            <p>{{item.delivery_fee||item.float_minimum_order_amount}} 元起送 / 距离{{item.distance > 1000? (item.distance/1000).toFixed(2) + 'km': item.distance + 'm'}}</p>
                         </div>
                         <ul class="item_right_detail">
                             <li v-for="activities in item.restaurant_activity" :key="activities.id">

+ 6 - 1
flash-waimai-mobile/src/page/service/children/questionDetail.vue

@@ -63,6 +63,7 @@
         p, span{
             font-family: Helvetica Neue,Tahoma,Arial;
         }
+      
     }
     .scroll_container{
         position: fixed;
@@ -78,6 +79,10 @@
     	padding: 0 .7rem;
         color: #666;
         padding-bottom: 2rem;
+        li{
+            list-style: unset !important;
+            list-style-position: inside !important;
+        }
     }
-
+ 
 </style>

+ 3 - 1
flash-waimai-mobile/src/page/service/service.vue

@@ -60,7 +60,9 @@
             ]),
             //获取信息
             async initData(){
-                this.serviceData = await getService();
+                let response = await getService();
+                console.log('response',response)
+                this.serviceData = response.data
                 Object.keys(this.serviceData).forEach(item => {
                     let avoidRepeat = false;
                     this.questionTitle.forEach((insertItem) => {

+ 2 - 2
flash-waimai-mobile/src/service/getData.js

@@ -401,7 +401,7 @@ export const exChangeHongbao = (id, exchange_code, captcha_code) => fetch('/v1/u
  * 获取用户信息
  */
 
-export const getUser = () => fetch('/v1/user', {user_id: getStore('user_id')});
+export const getUser = () => fetch('/v1/users', {user_id: getStore('user_id')});
 
 
 /**
@@ -464,7 +464,7 @@ export const accountLogin = (username, password, captchaCode) => fetch('/v1/user
 /**
  * 退出登录
  */
-export const signout = () => fetch('/v2/signout');
+export const signout = () => fetch('/v1/users/v2/signout');
 
 
 /**

+ 1 - 1
flash-waimai-mobile/src/store/index.js

@@ -18,7 +18,7 @@ const state = {
 	invoice: false,//开发票
 	newAddress: [], //确认订单页新的地址
 	searchAddress: null,//搜索并选择的地址
-	geohash: '31.22299,121.36025',//地址geohash值
+	geohash: '',//地址geohash值 31.22299,121.36025
 	choosedAddress: null,//选择地址
 	addressIndex: null,//选择地址的索引值
 	needValidation: null,//确认订单时是否需要验证