diff --git a/bwie-models/bwie-buy/pom.xml b/bwie-models/bwie-buy/pom.xml
new file mode 100644
index 0000000..3cc4cd5
--- /dev/null
+++ b/bwie-models/bwie-buy/pom.xml
@@ -0,0 +1,20 @@
+
+
+ 4.0.0
+
+ com.bwie
+ bwie-models
+ 1.0-SNAPSHOT
+
+
+ bwie-buy
+
+
+ 8
+ 8
+ UTF-8
+
+
+
diff --git a/bwie-models/bwie-buy/src/main/java/com/bwie/buy/BuyApplication.java b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/BuyApplication.java
new file mode 100644
index 0000000..322bc35
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/BuyApplication.java
@@ -0,0 +1,18 @@
+package com.bwie.buy;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author FangShiBa
+ * @date 2023/12/17
+ * @apiNote
+ */
+@SpringBootApplication
+@MapperScan("com.bwie.buy.dao")
+public class BuyApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(BuyApplication.class,args);
+ }
+}
diff --git a/bwie-models/bwie-buy/src/main/java/com/bwie/buy/controller/BuyController.java b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/controller/BuyController.java
new file mode 100644
index 0000000..75506ff
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/controller/BuyController.java
@@ -0,0 +1,57 @@
+package com.bwie.buy.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.bwie.buy.service.BuyService;
+import com.bwie.common.pojo.VO.VOGoods;
+import com.bwie.common.result.Result;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * @author FangShiBa
+ * @date 2023/12/17
+ * @apiNote
+ */
+@Log4j2
+@RestController
+@RequestMapping("/buy")
+public class BuyController {
+ @Autowired
+ private BuyService service;
+ @Autowired
+ private HttpServletRequest request;
+
+
+
+ @PostMapping("/showGoodsList")
+ public Result showGoodsList(@RequestBody VOGoods voGoods){
+
+ log.info("功能:{商品列表展示},请求URI:{},请求方法:{},请求参数:{}",
+ request.getRequestURI(), request.getMethod(),voGoods );
+ Result result=service.showGoodsList(voGoods);
+ log.info("功能:{商品列表展示},请求URI:{},请求方法:{},响应参数:{}",
+ request.getRequestURI(), request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+
+ @PostMapping("/buyGood")
+ public Result buyGood(@RequestBody VOGoods voGoods){
+
+ log.info("功能:{购买商品},请求URI:{},请求方法:{},请求参数:{}",
+ request.getRequestURI(), request.getMethod(),voGoods );
+ Result result=service.buyGood(voGoods);
+ log.info("功能:{购买商品},请求URI:{},请求方法:{},响应参数:{}",
+ request.getRequestURI(), request.getMethod(), JSONObject.toJSONString(result));
+ return result;
+ }
+
+
+
+}
diff --git a/bwie-models/bwie-buy/src/main/java/com/bwie/buy/dao/BuyDao.java b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/dao/BuyDao.java
new file mode 100644
index 0000000..5b9023d
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/dao/BuyDao.java
@@ -0,0 +1,27 @@
+package com.bwie.buy.dao;
+
+import com.bwie.common.pojo.DTO.DTOGoods;
+import com.bwie.common.pojo.Shop;
+import com.bwie.common.pojo.VO.VOGoods;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author FangShiBa
+ * @date 2023/12/17
+ * @apiNote
+ */
+@Component
+public interface BuyDao {
+
+
+ List showGoodsList(VOGoods voGoods);
+
+
+ Shop findById(@Param("shopId") Integer shopId);
+
+ void buyGood(VOGoods voGoods);
+
+}
diff --git a/bwie-models/bwie-buy/src/main/java/com/bwie/buy/service/BuyService.java b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/service/BuyService.java
new file mode 100644
index 0000000..68408b4
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/service/BuyService.java
@@ -0,0 +1,15 @@
+package com.bwie.buy.service;
+
+import com.bwie.common.pojo.VO.VOGoods;
+import com.bwie.common.result.Result;
+
+/**
+ * @author FangShiBa
+ * @date 2023/12/17
+ * @apiNote
+ */
+public interface BuyService {
+ Result buyGood(VOGoods voGoods);
+
+ Result showGoodsList(VOGoods voGoods);
+}
diff --git a/bwie-models/bwie-buy/src/main/java/com/bwie/buy/util/FastUtil.java b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/util/FastUtil.java
new file mode 100644
index 0000000..c9a5e45
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/java/com/bwie/buy/util/FastUtil.java
@@ -0,0 +1,55 @@
+package com.bwie.buy.util;
+
+import org.springframework.stereotype.Component;
+import com.github.tobato.fastdfs.domain.fdfs.StorePath;
+import com.github.tobato.fastdfs.service.FastFileStorageClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.StringUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+
+/**
+ * @BelongsProject: 0107day02
+ * @BelongsPackage: com.bw.config
+ * @Author: zhupengfei
+ * @CreateTime: 2023-02-01 08:52
+ */
+@Component
+public class FastUtil {
+ private static final Logger log = LoggerFactory.getLogger(FastUtil.class);
+
+ @Resource
+ private FastFileStorageClient storageClient ;
+
+ /**
+ * 上传文件
+ */
+ public String upload(MultipartFile multipartFile) throws Exception{
+ String originalFilename = multipartFile.getOriginalFilename().
+ substring(multipartFile.getOriginalFilename().
+ lastIndexOf(".") + 1);
+ StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage(
+ multipartFile.getInputStream(),
+ multipartFile.getSize(),originalFilename , null);
+ return storePath.getFullPath() ;
+ }
+ /**
+ * 删除文件
+ */
+ public String deleteFile(String fileUrl) {
+ if (StringUtils.isEmpty(fileUrl)) {
+ log.info("fileUrl == >>文件路径为空...");
+ return "文件路径不能为空";
+ }
+ try {
+ StorePath storePath = StorePath.parseFromUrl(fileUrl);
+ storageClient.deleteFile(storePath.getGroup(), storePath.getPath());
+ } catch (Exception e) {
+ log.error(e.getMessage());
+ }
+ return "删除成功";
+ }
+
+}
diff --git a/bwie-models/bwie-buy/src/main/resources/bootstrap.yml b/bwie-models/bwie-buy/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..0afddb4
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/resources/bootstrap.yml
@@ -0,0 +1,41 @@
+# Tomcat
+server:
+ port: 9004
+# Spring
+spring:
+ main:
+ allow-circular-references: true
+ jackson:
+ date-format: yyyy-MM-dd HH:mm:ss
+ time-zone: GMT+8
+ application:
+ # 应用名称
+ name: bwie-buy
+ profiles:
+ # 环境配置
+ active: dev
+ cloud:
+ nacos:
+ discovery:
+ # 服务注册地址
+ server-addr: 110.42.214.8:8848
+ config:
+ # 配置中心地址
+ server-addr: 110.42.214.8:8848
+ # 配置文件格式
+ file-extension: yml
+ # 共享配置
+ shared-configs:
+ - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
+fdfs:
+ so-timeout: 1500 # socket 连接时长
+ connect-timeout: 600 # 连接 tracker 服务器超时时长
+ # 这两个是你服务器的 IP 地址,注意 23000 端口也要打开,阿里云服务器记得配置安全组。tracker 要和 stroage 服务进行交流
+ tracker-list: 110.42.214.8:22122
+ web-server-url: 110.42.214.8:8888
+ pool:
+ jmx-enabled: false
+ # 生成缩略图
+ thumb-image:
+ height: 500
+ width: 500
diff --git a/bwie-models/bwie-buy/src/main/resources/mapper/BuyMapper.xml b/bwie-models/bwie-buy/src/main/resources/mapper/BuyMapper.xml
new file mode 100644
index 0000000..2b177f4
--- /dev/null
+++ b/bwie-models/bwie-buy/src/main/resources/mapper/BuyMapper.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+ UPDATE `shop_manage`.`t_goods` SET
+ `goods_num` = (`goods_num`-1)
+ WHERE
+ `shop_id` = #{shopId} and
+ `facility_id` = #{facilityId}
+
+
+
+
+
diff --git a/bwie-models/pom.xml b/bwie-models/pom.xml
index 773a9c7..cd3e375 100644
--- a/bwie-models/pom.xml
+++ b/bwie-models/pom.xml
@@ -10,6 +10,10 @@
bwie-models
+ pom
+
+ bwie-buy
+
8