java版商城之买家端商品分类Spring Cloud+SpringBoot+mybatis+uniapp b2b2c o2o 多商家入驻商城 直播带货商城 电子商务

一个好的SpringCloud+SpringBoot b2b2c 电子商务平台涉及哪些技术、运营方案?以下是我结合公司的产品做的总结,希望可以帮助到大家!

搜索体验小程序:海哇

1. 涉及平台
平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务)

2. 核心架构
Spring Cloud、Spring Boot、Mybatis、Redis

3. 前端框架
VUE、Uniapp、Bootstrap/H5/CSS3、IOS、Android、小程序

4. 核心思想
分布式、微服务、云架构、模块化、原子化、持续集成、集群部署、前后端分离、支持阿里Docker

5. 开发模式
前后端分离、微服务开发

6. 社交模式
VR全景虚拟现实、直播带货、短视频带货、分销分润、代跑腿配送、内容营销、社交种草、社交电商、秒杀、积分商城、限时折扣、活动商品、拼团活动等

7. 营销模式
通用版本(标准多商户入驻+二级分销体系+满减、满送、优惠券、组合销售、平台礼包等营销活动)
直播、短视频带货版本(标准多商户入驻+直播、短视频带货+二级分销体系+满减、满送、优惠券、组合销售、平台礼包等营销活动)
特殊营销方案(一):一县一特(一个县城,一个特色,集本地特产、特色、名胜、小吃、文化为一体的营销方案)
特殊营销方案(二):短距离配送(外卖、生鲜水果配送,解决1.5公里配送问题,接入第三方代跑腿服务)
特殊营销方案(三):酒店行业(酒店商家入驻,根据定位,可针对附近酒店,不同城酒店进行线上预定、下线核销等,参考去哪儿网酒店业务)
特殊营销方案(四):VR全景(商家入驻后,可以进行VR全景拍摄,VR店铺体验,全新购物方式,通过虚拟现实技术,线上线下打通,实现全新O2O,深度场景体验,感受另一个大千世界,让用户足不出户完美购物。通过VR让您的店铺曝光率更高,让天下没有难销的商品)
特殊营销方案(五):线下套餐体验(针对于实体行业,用户线上消费后生成核销码,用户到实体店铺体验套餐,可凭借核销码进行体验项目)
特殊营销方案(六):旅游业(周边游、本地游、异地游等,旅游景区和VR全景结合,用户足不出户先感受一下旅游项目、旅游攻略等,可线上订票、预定等)
特殊营销方案(七):供应求购(简易供应链供应、求购模式)
特殊营销方案(八):社交资讯(用户发布文章,可进行带货)
特殊营销方案(九):社交动态(个人信息、动态、视频,如:文字+图片、文字+视频,可进行带货;粉丝、关注、分享等)
活动商品(平台发布活动商品,如:可以进行0元领取,领取需要进行用户拉新,拉新后可进行现金奖励等)
特殊营销方案(十):异业联盟(不同行业的联盟销售,如:在某餐饮店面消费后可送附近健身卡优惠券,凭借优惠券可进行线下体验)
特殊营销方案(十一):一键代发营销(商家选择平台商品后放入自己店面销售,用户购买后商家可获取特殊分润提成,商家不需要发货,由平台厂家直接发货,并支持本店面自提)


 

/**
 * Copyright &copy; 2012-2017 <a href="http://minglisoft.cn">HongHu</a> All rights reserved.
 */
package com.honghu.cloud.controller;
 
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
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;
 
import com.honghu.cloud.bean.GoodsClass;
import com.honghu.cloud.code.ResponseCode;
import com.honghu.cloud.service.IGoodsClassService;
import com.honghu.cloud.tools.QueryTools;
import com.honghu.cloud.utils.CommUtil;
import com.honghu.cloud.common.page.Page;
 
import net.sf.json.JSONObject;
 
/**
 * 商品分类Controller
 * @author Administrator
 *
 */
@RestController
@RequestMapping(value = "/goodsClass")
public class GoodsClassController {
 
    @Autowired
    private IGoodsClassService goodsClassService;
 
    @Autowired
    private QueryTools queryTools;
    
    /**
     * 查询分类条目
     * @param congelationDto
     * @return
     */
    @RequestMapping(value = "/apiForFeign/queryClassSize", method = RequestMethod.POST)
    public Integer queryClassSize(@RequestBody Map<String, Object> params) {
        List<GoodsClass> list = goodsClassService.queryPageList(params);
        return list == null ? 0:list.size();
    }
 
    /**
     * 根据id查询商品分类
     * @param id
     * @return
     */
    @RequestMapping(value = "/apiForFeign/selectByPrimaryKey", method = RequestMethod.GET)
    public GoodsClass selectByPrimaryKey(@RequestParam("id") Long id){
        return goodsClassService.selectByPrimaryKey(id);
    }
    
    /**
     * 根据id查询所有子集
     * @param id
     * @return childs
     */
    @RequestMapping(value = "/apiForFeign/getChildsByGoodsClassId", method = RequestMethod.GET)
    public List<GoodsClass> getChildsByGoodsClassId(@RequestParam("id") Long id){
        return goodsClassService.getChildsByGoodsClassId(id);
    }
    
    
    /**
     * 查询商品分类
     * @param params
     * @return
     */
    @RequestMapping(value = "/apiForFeign/queryPageList", method = RequestMethod.POST)
    public List<GoodsClass> queryPageList(@RequestBody Map<String, Object> params) {
        return goodsClassService.queryPageList(params);
    }
 
    /**
     * 查询所有商品分类
     * @param params
     * @return
     */
    @RequestMapping(value = "/apiForFeign/queryPages", method = RequestMethod.POST)
    public List<GoodsClass> queryPages(@RequestBody Map<String, Object> params) {
        return goodsClassService.queryPages(params);
    }
    
    /**
     * 查询商品列表
     * @param id
     * @return
     */
    @RequestMapping(value = "/getGoodsClassList")
    public Map<String, Object> getGoodsClassList(String currentPage, Integer pageSize){
        Map<String, Object> params = queryTools.getParams(currentPage, pageSize, "sequence", "asc");
        
        Page<GoodsClass> iPage=goodsClassService.list(params);        
        return ResponseCode.buildEnumMap(ResponseCode.SUCCESS, iPage);
    }
    
    /**
     * 根据id查询商品分类
     * @param id
     * @return
     */
    @RequestMapping(value = "/getGoodsClass", method = RequestMethod.POST)
    public Map<String, Object> getGoodsClass(@RequestBody JSONObject json){
        Long id = CommUtil.null2Long(json.optString("id"));
        GoodsClass goodsClass= goodsClassService.selectByPrimaryKey(id);
        if(null==goodsClass){
            return ResponseCode.buildEnumMap(ResponseCode.GOODSCLASS_CODE_NULL,null);
        }
        Map<String,Object> searchResult=new HashMap<String,Object>();
        searchResult.put("object", goodsClass);
        return ResponseCode.buildSuccessMap(searchResult);    
        
    }
    
    
    /**
     * 根据id查询商品分类(添加店铺)
     * @param id
     * @return
     */
    @RequestMapping(value = "/getChildsByGoodsClassId", method = RequestMethod.POST)
    public Map<String, Object> getChildsByGoodsClassId(@RequestBody JSONObject json){
        Long id = CommUtil.null2Long(json.optString("id"));
        GoodsClass goodsClass= goodsClassService.selectByPrimaryKey(id);
        Map<String,Object> searchResult=new HashMap<String,Object>();
        searchResult.put("parent_id", id);
        searchResult.put("deleteStatus", 0);
        searchResult.put("level", 1);
         List<GoodsClass> childsByGoodsClassId = goodsClassService.queryPages(searchResult);
        if(null==childsByGoodsClassId){
            return ResponseCode.buildFailMap("数据不存在", null);
        }
        searchResult.put("object", childsByGoodsClassId);
        searchResult.put("goodsClass", goodsClass);
        return ResponseCode.buildSuccessMap(searchResult);    
        
    }
    
}