Просмотр исходного кода

init: 仁康迁移到多分支管理

xdd 2 дней назад
Родитель
Сommit
d6b848970b
40 измененных файлов с 559 добавлено и 52 удалено
  1. 3 3
      deploy.sh
  2. 2 2
      fs-admin/src/main/java/com/fs/core/config/UploadConfig.java
  3. 28 0
      fs-admin/src/main/java/com/fs/store/controller/FsStoreOrderController.java
  4. 2 2
      fs-admin/src/main/resources/application-dev.yml
  5. 6 6
      fs-admin/src/main/resources/application.yml
  6. 1 1
      fs-api/src/main/java/com/fs/app/controller/CommonController.java
  7. 2 2
      fs-api/src/main/resources/application-dev.yml
  8. 2 2
      fs-company/src/main/resources/application-dev.yml
  9. 5 1
      fs-service-system/pom.xml
  10. 4 0
      fs-service-system/src/main/java/com/fs/express/impl/FsStoreDeliversServiceImpl.java
  11. 13 0
      fs-service-system/src/main/java/com/fs/store/domain/FsStoreProduct.java
  12. 10 0
      fs-service-system/src/main/java/com/fs/store/domain/FsUser.java
  13. 2 0
      fs-service-system/src/main/java/com/fs/store/mapper/FsStoreOrderMapper.java
  14. 1 1
      fs-service-system/src/main/java/com/fs/store/mapper/FsStorePaymentMapper.java
  15. 6 0
      fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductMapper.java
  16. 10 10
      fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductRelationMapper.java
  17. 14 0
      fs-service-system/src/main/java/com/fs/store/param/FsStoreProductAddEditParam.java
  18. 16 0
      fs-service-system/src/main/java/com/fs/store/param/FsStoreProductQueryParam.java
  19. 5 0
      fs-service-system/src/main/java/com/fs/store/service/IFsStoreOrderService.java
  20. 1 0
      fs-service-system/src/main/java/com/fs/store/service/IFsStorePaymentService.java
  21. 111 0
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java
  22. 40 1
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java
  23. 6 0
      fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductServiceImpl.java
  24. 3 0
      fs-service-system/src/main/java/com/fs/store/vo/FsAdvListQueryVO.java
  25. 24 0
      fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductDeliverExcelVO.java
  26. 2 0
      fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductQueryVO.java
  27. 3 1
      fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductRelationQueryVO.java
  28. 6 2
      fs-service-system/src/main/java/com/fs/system/oss/CloudConstant.java
  29. 60 0
      fs-service-system/src/main/java/com/fs/system/oss/CloudStorageConfig.java
  30. 104 0
      fs-service-system/src/main/java/com/fs/system/oss/HuaweiCloudStorageService.java
  31. 3 0
      fs-service-system/src/main/java/com/fs/system/oss/OSSFactory.java
  32. 8 0
      fs-service-system/src/main/java/com/fs/system/oss/valdator/HuaweiGroup.java
  33. 11 11
      fs-service-system/src/main/resources/application-config.yml
  34. 16 2
      fs-service-system/src/main/resources/mapper/store/FsStoreProductMapper.xml
  35. 6 1
      fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml
  36. 2 2
      fs-user-app/src/main/java/com/fs/app/controller/ProductController.java
  37. 10 0
      fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java
  38. 8 0
      fs-user-app/src/main/java/com/fs/app/controller/UserController.java
  39. 2 2
      fs-user-app/src/main/resources/application-dev.yml
  40. 1 0
      fs-user-app/src/main/resources/static/Yonu9gc8VF.txt

+ 3 - 3
deploy.sh

@@ -2,7 +2,7 @@
 
 # 设置远程服务器信息
 REMOTE_USER="root"  # 远程服务器用户名,根据你的实际情况修改
-REMOTE_HOST="111.230.193.88" # 远程服务器地址
+REMOTE_HOST="116.204.43.56" # 远程服务器地址
 REMOTE_BASE_DIR="/home/software"  # 远程服务器上的部署目录,根据你的目录结构修改
 
 # 本地 JAR 包路径  -- 根据你提供的目录结构修改
@@ -60,11 +60,11 @@ deploy_jar() {
 #deploy_jar "$LOCAL_FS_COMPANY_JAR" "fs-company"
 
 # 部署 fs-user-app
-#deploy_jar "$LOCAL_FS_USER_APP_JAR" "fs-user-app"
+deploy_jar "$LOCAL_FS_USER_APP_JAR" "fs-user-app"
 #deploy_jar "$LOCAL_FS_API_JAR" "fs-api"
 
 #deploy_jar "$LOCAL_FS_USER_APP_JAR" "fs-api"
-deploy_jar "$LOCAL_FS_SYNC_JAR" "fs-sync"
+#deploy_jar "$LOCAL_FS_SYNC_JAR" "fs-sync"
 
 echo "Deployment completed."
 

+ 2 - 2
fs-admin/src/main/java/com/fs/core/config/UploadConfig.java

@@ -1,4 +1,4 @@
-package com.fs.web.core.config;
+package com.fs.core.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -16,7 +16,7 @@ public class UploadConfig {
         resolver.setResolveLazily(true);
         resolver.setMaxInMemorySize(40960);
         //上传文件大小 100M 100*1024*1024
-        resolver.setMaxUploadSize(100 * 1024 * 1024);
+        resolver.setMaxUploadSize(200 * 1024 * 1024);
         return resolver;
     }
 }

+ 28 - 0
fs-admin/src/main/java/com/fs/store/controller/FsStoreOrderController.java

@@ -495,6 +495,34 @@ public class FsStoreOrderController extends BaseController {
         return util.importTemplateExcel("物流回单数据");
     }
 
+    /**
+     * 导入运单号
+     * @return
+     */
+    @GetMapping("/getTemplate")
+    public AjaxResult sendExport()
+    {
+        ExcelUtil<FsStoreProductDeliverExcelVO> util = new ExcelUtil<>(FsStoreProductDeliverExcelVO.class);
+        return util.importTemplateExcel("导入运单号");
+    }
+
+    /**
+     * 导入运单号
+     * @param file
+     * @param updateSupport
+     * @return
+     * @throws Exception
+     */
+    @Log(title = "导入运单号", businessType = BusinessType.IMPORT)
+    @PostMapping("/importOrderExpressTemplate")
+    public AjaxResult importOrderExpressTemplate(MultipartFile file, boolean updateSupport) throws Exception
+    {
+        ExcelUtil<FsStoreProductDeliverExcelVO> util = new ExcelUtil<>(FsStoreProductDeliverExcelVO.class);
+        List<FsStoreProductDeliverExcelVO> list = util.importExcel(file.getInputStream());
+        String message = fsStoreOrderService.importProductDeliver(list);
+        return AjaxResult.success(message);
+    }
+
 
     @GetMapping("/getStoreOrder")
     public R getStoreOrder(@RequestParam("orderCode") String orderCode) {

+ 2 - 2
fs-admin/src/main/resources/application-dev.yml

@@ -29,9 +29,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://172.16.0.31:3306/fs_fhjx_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://55df955d464b4801af6c6df09196bb47in01.internal.cn-north-9.mysql.rds.myhuaweicloud.com:3306/fs_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: Ylrz_1q2w3e4r5t6y
+                password: RXZ5&Z3CyNBf+AV
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 6 - 6
fs-admin/src/main/resources/application.yml

@@ -51,12 +51,12 @@ spring:
     include: config
   # 文件上传
   servlet:
-     multipart:
-       # 单个文件大小
-       max-file-size:  10MB
-       # 设置总上传的文件大小
-       max-request-size:  20MB
-       enabled: false
+    multipart:
+      enabled: false # 默认是 true,确认一下
+      # 单个文件大小
+      max-file-size:  200MB
+      # 设置总上传的文件大小
+      max-request-size:  200MB
   # 服务模块
   devtools:
     restart:

+ 1 - 1
fs-api/src/main/java/com/fs/app/controller/CommonController.java

@@ -567,7 +567,7 @@ public class CommonController extends AppBaseController {
 
 	@ApiOperation("查询运单信息")
 	@PostMapping(path = "/expressNotify" )
-	public ExpressResultDTO expressNotify(ExpressNotifyDTO notifyDTO) throws Exception
+	public ExpressResultDTO expressNotify(@RequestBody ExpressNotifyDTO notifyDTO) throws Exception
 	{
 		logger.info("查询运单信息 {}",notifyDTO);
 		//RequestData={"PushTime":"2022-09-06 09:59:26","EBusinessID":"1762981","Data":[{"StateEx":"0","LogisticCode":"SF1650775430012","ShipperCode":"SF","State":"0","OrderCode":"XCRTZH22090500435","EBusinessID":"1762981","Success":false}],"Count":"1"}&DataSign=YTEwMzAxMTAzNGI4ZjQ0OTU5MWE1Y2U0NzMzYTczNWM=&RequestType=102

+ 2 - 2
fs-api/src/main/resources/application-dev.yml

@@ -27,9 +27,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://172.16.0.31:3306/fs_fhjx_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://55df955d464b4801af6c6df09196bb47in01.internal.cn-north-9.mysql.rds.myhuaweicloud.com:3306/fs_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: Ylrz_1q2w3e4r5t6y
+                password: RXZ5&Z3CyNBf+AV
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 2 - 2
fs-company/src/main/resources/application-dev.yml

@@ -40,9 +40,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://172.16.0.31:3306/fs_fhjx_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://55df955d464b4801af6c6df09196bb47in01.internal.cn-north-9.mysql.rds.myhuaweicloud.com:3306/fs_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: Ylrz_1q2w3e4r5t6y
+                password: RXZ5&Z3CyNBf+AV
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 5 - 1
fs-service-system/pom.xml

@@ -169,7 +169,11 @@
             <artifactId>spring-boot-starter-test</artifactId>
         </dependency>
 
-
+        <dependency>
+            <groupId>com.huaweicloud</groupId>
+            <artifactId>esdk-obs-java-bundle</artifactId>
+            <version>3.23.9</version>
+        </dependency>
         <dependency>
             <groupId>com.github.ben-manes.caffeine</groupId>
             <artifactId>caffeine</artifactId>

+ 4 - 0
fs-service-system/src/main/java/com/fs/express/impl/FsStoreDeliversServiceImpl.java

@@ -3,6 +3,7 @@ package com.fs.express.impl;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import com.fs.common.utils.PhoneUtils;
+import com.fs.common.utils.ServletUtils;
 import com.fs.express.FsStoreDeliversService;
 import com.fs.express.IExpressService;
 import com.fs.express.dto.DeliveryDTO;
@@ -13,6 +14,7 @@ import com.fs.store.enums.ShipperCodeEnum;
 import com.fs.store.mapper.FsStoreDeliversMapper;
 import com.fs.store.service.IFsExpressService;
 import com.fs.store.service.IFsStoreOrderService;
+import com.thoughtworks.xstream.core.SecurityUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -53,6 +55,8 @@ public class FsStoreDeliversServiceImpl implements FsStoreDeliversService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public FsStoreDelivers save(FsStoreDelivers fsStoreDelivers) {
+        fsStoreDelivers.setUpdateTime(LocalDateTime.now());
+        fsStoreDelivers.setCreateTime(LocalDateTime.now());
         if (fsStoreDelivers.getId() == null) {
             fsStoreDelivers.setCreateTime(LocalDateTime.now());
             fsStoreDeliversMapper.insert(fsStoreDelivers);

+ 13 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsStoreProduct.java

@@ -21,6 +21,8 @@ public class FsStoreProduct extends BaseEntity
     /** 商品id */
     private Long productId;
 
+    private String video;
+
     /** 商品图片 */
     @Excel(name = "商品图片")
     private String image;
@@ -186,4 +188,15 @@ public class FsStoreProduct extends BaseEntity
 
     private String erp;
 
+
+    /**
+     * 明星产品
+     */
+    private Integer isStar;
+
+    /**
+     * 是否今日特价
+     */
+    private Integer isDiscountToday;
+
 }

+ 10 - 0
fs-service-system/src/main/java/com/fs/store/domain/FsUser.java

@@ -124,6 +124,16 @@ public class FsUser extends BaseEntity
 
     private String userCode;
 
+    private Integer isShow;//是否展示购买以及订单状态
+
+    public Integer getIsShow() {
+        return isShow;
+    }
+
+    public void setIsShow(Integer isShow) {
+        this.isShow = isShow;
+    }
+
     public String getUserCode() {
         return userCode;
     }

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreOrderMapper.java

@@ -1001,4 +1001,6 @@ public interface FsStoreOrderMapper
     List<FsStoreOrder> selectDeliverPendingData();
 
     List<FsStoreOrder> selectFsOutDateOrder();
+    @Select("select * from fs_store_order where user_id = #{userId} limit 1")
+    FsStoreOrder selectOrderByUserIdLimit1(Long userId);
 }

+ 1 - 1
fs-service-system/src/main/java/com/fs/store/mapper/FsStorePaymentMapper.java

@@ -379,7 +379,7 @@ public interface FsStorePaymentMapper
     /**
      * 一个小时状态还没有变化
      */
-    @Select("select * from fs_store_payment where pay_mode='yb' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
+    @Select("select * from fs_store_payment where pay_mode='hf' and status=0 and trade_no is not null and remark is not null AND create_time < DATE_SUB(NOW(), INTERVAL 10 MINUTE)")
     List<FsStorePayment> queryPendingDelayState();
 
     @Select("select count(1) from fs_store_payment where order_id=${orderId} limit 1")

+ 6 - 0
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductMapper.java

@@ -133,6 +133,12 @@ public interface FsStoreProductMapper
             "<if test = 'maps.cateId != null    '> " +
             "and p.cate_id =#{maps.cateId}  " +
             "</if>" +
+            "<if test='maps.isStar != null'>" +
+            "and p.is_star = ${maps.isStar}" +
+            "</if>"+
+            "<if test='maps.isDiscountToday != null'>" +
+            "and p.is_discount_today = ${maps.isDiscountToday}" +
+            "</if>"+
             "<if test = 'maps.defaultOrder != null and maps.defaultOrder==\"desc\"  '> " +
             "order by p.sort desc " +
             "</if>" +

+ 10 - 10
fs-service-system/src/main/java/com/fs/store/mapper/FsStoreProductRelationMapper.java

@@ -10,15 +10,15 @@ import org.apache.ibatis.annotations.Select;
 
 /**
  * 商品点赞和收藏Mapper接口
- * 
+ *
  * @author fs
  * @date 2022-03-15
  */
-public interface FsStoreProductRelationMapper 
+public interface FsStoreProductRelationMapper
 {
     /**
      * 查询商品点赞和收藏
-     * 
+     *
      * @param id 商品点赞和收藏ID
      * @return 商品点赞和收藏
      */
@@ -26,7 +26,7 @@ public interface FsStoreProductRelationMapper
 
     /**
      * 查询商品点赞和收藏列表
-     * 
+     *
      * @param fsStoreProductRelation 商品点赞和收藏
      * @return 商品点赞和收藏集合
      */
@@ -34,7 +34,7 @@ public interface FsStoreProductRelationMapper
 
     /**
      * 新增商品点赞和收藏
-     * 
+     *
      * @param fsStoreProductRelation 商品点赞和收藏
      * @return 结果
      */
@@ -42,7 +42,7 @@ public interface FsStoreProductRelationMapper
 
     /**
      * 修改商品点赞和收藏
-     * 
+     *
      * @param fsStoreProductRelation 商品点赞和收藏
      * @return 结果
      */
@@ -50,7 +50,7 @@ public interface FsStoreProductRelationMapper
 
     /**
      * 删除商品点赞和收藏
-     * 
+     *
      * @param id 商品点赞和收藏ID
      * @return 结果
      */
@@ -58,7 +58,7 @@ public interface FsStoreProductRelationMapper
 
     /**
      * 批量删除商品点赞和收藏
-     * 
+     *
      * @param ids 需要删除的数据ID
      * @return 结果
      */
@@ -67,7 +67,7 @@ public interface FsStoreProductRelationMapper
 
 
     @Select({"<script> " +
-            "select p.image,p.product_name,p.price,r.*   from fs_store_product_relation r left join  fs_store_product p  on p.product_id=r.product_id   " +
+            "select p.image,p.product_name,p.price,p.ot_price,r.*   from fs_store_product_relation r inner join  fs_store_product p  on p.product_id=r.product_id   " +
             "where r.is_del=0 " +
             "<if test = 'maps.userId != null    '> " +
             "and r.user_id =#{maps.userId} " +
@@ -76,7 +76,7 @@ public interface FsStoreProductRelationMapper
             "</script>"})
     List<FsStoreProductRelationQueryVO> selectFsStoreProductRelationListVOQuery(@Param("maps") FsStoreProductRelationQueryParam param);
     @Select({"<script> " +
-            "select p.image,p.product_name,p.price,r.*,u.nickname,u.phone   from fs_store_product_relation r left join  fs_store_product p  on p.product_id=r.product_id left join fs_user u on u.user_id=r.user_id   " +
+            "select p.image,p.product_name,p.price,r.*,u.nickname,u.phone   from fs_store_product_relation r inner join  fs_store_product p  on p.product_id=r.product_id inner join fs_user u on u.user_id=r.user_id   " +
             "where r.is_del=0 " +
             "<if test = 'maps.userId != null    '> " +
             "and r.user_id =#{maps.userId} " +

+ 14 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreProductAddEditParam.java

@@ -24,6 +24,8 @@ public class FsStoreProductAddEditParam implements Serializable
 
     /** 商品图片 */
     private String image;
+    private String video;
+
 
     /** 轮播图 */
     private String sliderImage;
@@ -146,6 +148,18 @@ public class FsStoreProductAddEditParam implements Serializable
      */
     private String warehouseCode;
 
+
+    /**
+     * 明星产品
+     */
+    private Integer isStar;
+
+    /**
+     * 是否今日特价
+     */
+    private Integer isDiscountToday;
+
+
     //属性项目
     private List<ProductArrtDTO> items;
     //sku结果集

+ 16 - 0
fs-service-system/src/main/java/com/fs/store/param/FsStoreProductQueryParam.java

@@ -3,9 +3,11 @@ package com.fs.store.param;
 import com.fs.common.param.BaseQueryParam;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import lombok.EqualsAndHashCode;
 
 import java.io.Serializable;
 
+@EqualsAndHashCode(callSuper = true)
 @Data
 public class FsStoreProductQueryParam extends BaseQueryParam implements Serializable
 {
@@ -21,7 +23,21 @@ public class FsStoreProductQueryParam extends BaseQueryParam implements Serializ
     private String priceOrder;
     @ApiModelProperty(value = "销量排序")
     private String salesOrder;
+
+    /**
+     * 明星产品
+     */
+    private Integer isStar;
+
+    /**
+     * 是否今日特价
+     */
+    private Integer isDiscountToday;
+
     @ApiModelProperty(value = "1 只显示商城展示的商品 0展示所有")
     private Integer isDisplay=1;
 
+    private Integer page =1;
+    @ApiModelProperty(value = "页大小,默认为10")
+    private Integer pageSize = 10;
 }

+ 5 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsStoreOrderService.java

@@ -137,6 +137,11 @@ public interface IFsStoreOrderService
     R finishOrder(Long orderId);
 
     String payConfirm(Integer type,Long orderId,String payCode,String tradeNo,String bankTransactionId,String bankSerialNo);
+    void updateOrderInfo(FsStoreProductDeliverExcelVO vo, FsStoreOrder order);
+
+    FsStoreOrder selectOrderByUserIdLimit1(Long userId);
+
+    String importProductDeliver(List<FsStoreProductDeliverExcelVO> list);
 
     Integer selectFsStoreOrderCount(long userId, int status);
 

+ 1 - 0
fs-service-system/src/main/java/com/fs/store/service/IFsStorePaymentService.java

@@ -110,6 +110,7 @@ public interface IFsStorePaymentService
 
     boolean queryTzbk(FsStorePayment fsStorePayment);
     boolean queryYb(FsStorePayment fsStorePayment);
+    boolean queryHf(FsStorePayment fsStorePayment);
 
     boolean updateYbBankSerial(FsStorePayment fsStorePayment);
 

+ 111 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreOrderServiceImpl.java

@@ -26,6 +26,7 @@ import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
+import com.aliyun.oss.ServiceException;
 import com.fs.api.param.OrderListParam;
 import com.fs.api.vo.OrderListVO;
 import com.fs.api.vo.ProductListVO;
@@ -282,6 +283,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
     @Value("${snowflake.datacenter-id:1}")
     private long datacenterId;
 
+    @Autowired
+    private FSSysConfig fsSysConfig;
+
+
     @Override
     public void syncExpressToWx() {
         List<FsWxExpressTask> fsWxExpressTasks = fsWxExpressTaskMapper.selectPendingData();
@@ -1842,6 +1847,108 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
         redisCache.deleteObject("isPaying:"+param.getOrderId());
     }
 
+    @Override
+    public FsStoreOrder selectOrderByUserIdLimit1(Long userId) {
+        return fsStoreOrderMapper.selectOrderByUserIdLimit1(userId);
+    }
+
+    @Override
+    public String importProductDeliver(List<FsStoreProductDeliverExcelVO> list) {
+        if (com.fs.common.utils.StringUtils.isNull(list) || list.size() == 0)
+        {
+            throw new CustomException("导入商品数据不能为空!");
+        }
+        int successNum = 0;
+        int failureNum = 0;
+        StringBuilder successMsg = new StringBuilder();
+        StringBuilder failureMsg = new StringBuilder();
+        for (FsStoreProductDeliverExcelVO vo : list)
+        {
+            try
+            {
+                FsStoreOrder order = this.selectFsStoreOrderByOrderCode(vo.getOrderCode());
+                if (order==null){
+                    throw new CustomException("没有此订单");
+                }
+                if (order.getStatus()!=1){
+                    throw new CustomException("订单状态不为待发货");
+                }
+                // 判断每个字段是否为null或为空字符串
+                if (vo.getOrderCode() == null || vo.getOrderCode().isEmpty()) {
+                    throw new CustomException("订单编号为空");
+                }
+
+                // 设置未待发货
+                order.setStatus(2);
+
+                // 更新订单状态
+                IFsStoreOrderService fsStoreOrderService = (IFsStoreOrderService) AopContext.currentProxy();
+                fsStoreOrderService.updateOrderInfo(vo, order);
+
+                successNum++;
+                successMsg.append("<br/>" + successNum + "、订单编号 " + vo.getOrderCode() + " 导入成功");
+
+            }
+            catch (Exception e)
+            {
+
+                failureNum++;
+                String msg = "<br/>" + failureNum + "、订单编号 " + vo.getOrderCode()  + " 导入失败:";
+                failureMsg.append(msg + e.getMessage());
+            }
+        }
+        if (failureNum > 0)
+        {
+            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+            throw new CustomException(failureMsg.toString());
+        }
+        else
+        {
+            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+        }
+        return successMsg.toString();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class,propagation = Propagation.REQUIRED)
+    public void updateOrderInfo(FsStoreProductDeliverExcelVO vo, FsStoreOrder order) {
+        // 更新订单状态
+        orderService.updateFsStoreOrder(order);
+
+        // 添加物流信息
+        FsStoreDelivers delivers = new FsStoreDelivers();
+        delivers.setOrderId(order.getId());
+        delivers.setOrderCode(order.getOrderCode());
+        delivers.setDeliverSn(vo.getDeliveryCode());
+        delivers.setDeliverId(vo.getDeliverySn());
+        delivers.setDeliverName(vo.getDeliveryName());
+        delivers.setStatus(0);
+        delivers.setStateEx(0);
+        delivers.setDeliverSendTime(LocalDateTime.now());
+        fsStoreDeliversService.save(delivers);
+
+        // 订阅快递鸟
+        this.updateDeliveryOrder(order.getId(), vo.getDeliverySn(),vo.getDeliveryCode(),vo.getDeliveryName());
+
+        // 同步微信物流发货信息
+        FsWxExpressTask fsWxExpressTask = new FsWxExpressTask();
+        fsWxExpressTask.setUserId(order.getUserId());
+        fsWxExpressTask.setStatus(0);
+        fsWxExpressTask.setRetryCount(0);
+        fsWxExpressTask.setCreateTime(LocalDateTime.now());
+        fsWxExpressTask.setUpdateTime(LocalDateTime.now());
+        fsWxExpressTask.setOrderCode(order.getOrderCode());
+        fsWxExpressTask.setExpressCompany(vo.getDeliveryCode());
+        fsWxExpressTask.setExpressNo(vo.getDeliverySn());
+
+        List<FsStorePayment> fsStorePayments = fsStorePaymentService.selectFsStorePaymentByOrderIdNew(order.getId());
+        if(CollectionUtils.isNotEmpty(fsStorePayments)){
+            FsStorePayment fsStorePayment = fsStorePayments.get(0);
+            fsWxExpressTask.setPayCode(fsStorePayment.getPayCode());
+        }
+        fsWxExpressTaskMapper.insert(fsWxExpressTask);
+    }
+
     @Override
     @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
     //类型1支付回调 类型2货到付款
@@ -1949,6 +2056,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService
 
     @Override
     public void createOmsOrder(Long orderId) throws ParseException {
+        if(fsSysConfig.getErpOpen() == 0) {
+            logger.info("[推送ERP] erp推送已经关闭!");
+            return;
+        }
         FsStoreOrder order=fsStoreOrderMapper.selectFsStoreOrderById(orderId);
 
         if(StringUtils.isEmpty(order.getExtendOrderId())&&order.getStatus()!=1){

+ 40 - 1
fs-service-system/src/main/java/com/fs/store/service/impl/FsStorePaymentServiceImpl.java

@@ -1,12 +1,14 @@
 package com.fs.store.service.impl;
 
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
@@ -18,7 +20,10 @@ import com.fs.common.utils.DateUtils;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.service.ICompanyService;
 import com.fs.company.service.ICompanyUserService;
+import com.fs.huifuPay.domain.HuiFuQueryOrderResult;
 import com.fs.huifuPay.dto.*;
+import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayQueryRequest;
+import com.fs.huifuPay.service.HuiFuService;
 import com.fs.pay.pay.util.PayUtil;
 import com.fs.store.domain.*;
 import com.fs.store.service.IFsStoreOrderService;
@@ -87,6 +92,9 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
     @Value("${wx.miniapp.configs[0].account}")
     private String account;
 
+    @Autowired
+    private HuiFuService huiFuService;
+
     /**
      * 查询支付明细
      *
@@ -317,7 +325,7 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
     public void paymentSync() {
         List<FsStorePayment> fsStorePayments = fsStorePaymentMapper.queryPendingDelayState();
         for (FsStorePayment fsStorePayment : fsStorePayments) {
-            queryYb(fsStorePayment);
+            queryHf(fsStorePayment);
         }
     }
 
@@ -455,4 +463,35 @@ public class FsStorePaymentServiceImpl implements IFsStorePaymentService
     public List<FsStorePayment> queryByBankTrxId(List<String> bankTrxIds) {
         return fsStorePaymentMapper.queryByBankTrxId(bankTrxIds);
     }
+
+    @Override
+    public boolean queryHf(FsStorePayment payment) {
+        V2TradePaymentScanpayQueryRequest request = new V2TradePaymentScanpayQueryRequest();
+        HuiFuQueryOrderResult o;
+        try {
+            request.setOrgReqDate(new SimpleDateFormat("yyyyMMdd").format(payment.getCreateTime()));
+            request.setOrgHfSeqId(payment.getTradeNo());
+            o = huiFuService.queryOrder(request);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        logger.info("汇付返回"+o);
+        if ("00000000".equals(o.getResp_code())) {
+            if (o.getTrans_stat().equals("S")) {
+                String[] order=o.getOrg_req_seq_id().split("-");
+                switch (order[0]) {
+                    case "store":
+                        orderService.payConfirm(1,null,order[1], o.getOrg_hf_seq_id(),o.getOut_trans_id(),o.getParty_order_id());
+                        break;
+                    case "store_remain":
+                        orderService.payRemainConfirm( order[1], o.getOrg_hf_seq_id(),o.getOut_trans_id(),o.getParty_order_id());
+                        break;
+                    case "payment":
+                        this.payConfirm(order[1],o.getOrg_hf_seq_id(),o.getOut_trans_id(),o.getParty_order_id());
+                        break;
+                }
+            }
+        }
+        return true;
+    }
 }

+ 6 - 0
fs-service-system/src/main/java/com/fs/store/service/impl/FsStoreProductServiceImpl.java

@@ -251,6 +251,9 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
             product.setCost(countDto.getMinCost());
             product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
             product.setStock(Long.parseLong(countDto.getStock().toString()));
+            product.setVideo(param.getVideo());
+            product.setIsStar(param.getIsStar());
+            product.setIsDiscountToday(param.getIsDiscountToday());
             fsStoreProductMapper.updateFsStoreProduct(product);
             if (param.getSpecType().equals(0)) {
                 ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()
@@ -273,6 +276,9 @@ public class FsStoreProductServiceImpl implements IFsStoreProductService
             product.setCost(countDto.getMinCost());
             product.setIntegral(Long.parseLong(countDto.getMinIntegral().toString()));
             product.setStock(Long.parseLong(countDto.getStock().toString()));
+            product.setVideo(param.getVideo());
+            product.setIsStar(param.getIsStar());
+            product.setIsDiscountToday(param.getIsDiscountToday());
             fsStoreProductMapper.insertFsStoreProduct(product);
             if (param.getSpecType().equals(0)) {
                 ProductArrtDTO fromatDetailDto = ProductArrtDTO.builder()

+ 3 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsAdvListQueryVO.java

@@ -24,5 +24,8 @@ public class FsAdvListQueryVO implements Serializable
 
     private Integer showType;
 
+    private Integer sort;
+
+    private String code;
 
 }

+ 24 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductDeliverExcelVO.java

@@ -0,0 +1,24 @@
+package com.fs.store.vo;
+
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+@Data
+public class FsStoreProductDeliverExcelVO {
+
+    @Excel(name = "订单编号")
+    private String orderCode;
+
+
+    /** 快递公司编号 */
+    @Excel(name = "快递公司编号")
+    private String deliveryCode;
+
+    /** 快递名称 */
+    @Excel(name = "快递名称")
+    private String deliveryName;
+
+    /** 快递单号 */
+    @Excel(name = "快递单号")
+    private String deliverySn;
+}

+ 2 - 0
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductQueryVO.java

@@ -15,6 +15,8 @@ public class FsStoreProductQueryVO implements Serializable
     /** 商品图片 */
     private String image;
 
+    private String video;
+
     /** 轮播图 */
     private String sliderImage;
 

+ 3 - 1
fs-service-system/src/main/java/com/fs/store/vo/FsStoreProductRelationQueryVO.java

@@ -10,7 +10,7 @@ import java.util.Date;
 
 /**
  * 商品对象 fs_store_product
- * 
+ *
  * @author fs
  * @date 2022-03-15
  */
@@ -44,6 +44,8 @@ public class FsStoreProductRelationQueryVO implements Serializable
     @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
     private Date updateTime;
 
+    private BigDecimal otPrice;
+
 
 
 }

+ 6 - 2
fs-service-system/src/main/java/com/fs/system/oss/CloudConstant.java

@@ -23,7 +23,11 @@ public class CloudConstant
         /**
          * 腾讯云
          */
-        QCLOUD(3);
+        QCLOUD(3),
+        /**
+         * 华为云
+         */
+        HUAWEI(4);
         private int value;
 
         CloudService(int value)
@@ -36,4 +40,4 @@ public class CloudConstant
             return value;
         }
     }
-}
+}

+ 60 - 0
fs-service-system/src/main/java/com/fs/system/oss/CloudStorageConfig.java

@@ -2,6 +2,7 @@ package com.fs.system.oss;
 
 
 import com.fs.system.oss.valdator.AliyunGroup;
+import com.fs.system.oss.valdator.HuaweiGroup;
 import com.fs.system.oss.valdator.QcloudGroup;
 import com.fs.system.oss.valdator.QiniuGroup;
 import org.hibernate.validator.constraints.Range;
@@ -92,6 +93,25 @@ public class CloudStorageConfig implements Serializable
     @NotBlank(message = "所属地区不能为空", groups = QcloudGroup.class)
     private String qcloudRegion;
 
+
+
+    @NotBlank(message = "华为云BucketName不能为空", groups = HuaweiGroup.class)
+    private String huaweiBucketName;
+
+    @NotBlank(message = "华为云Endpoint不能为空", groups = HuaweiGroup.class)
+    private String huaweiEndpoint;
+
+    @NotBlank(message = "华为云AK不能为空", groups = HuaweiGroup.class)
+    private String huaweiAK;
+
+    @NotBlank(message = "华为云SK不能为空", groups = HuaweiGroup.class)
+    private String huaweiSK;
+
+    @NotBlank(message = "华为云绑定的域名不能为空", groups = HuaweiGroup.class)
+    @URL(message = "华为云绑定的域名格式不正确", groups = HuaweiGroup.class)
+    private String huaweiDomain;
+
+
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -239,4 +259,44 @@ public class CloudStorageConfig implements Serializable
     public void setQcloudRegion(String qcloudRegion) {
         this.qcloudRegion = qcloudRegion;
     }
+
+    public @NotBlank(message = "华为云BucketName不能为空", groups = HuaweiGroup.class) String getHuaweiBucketName() {
+        return huaweiBucketName;
+    }
+
+    public void setHuaweiBucketName(@NotBlank(message = "华为云BucketName不能为空", groups = HuaweiGroup.class) String huaweiBucketName) {
+        this.huaweiBucketName = huaweiBucketName;
+    }
+
+    public @NotBlank(message = "华为云Endpoint不能为空", groups = HuaweiGroup.class) String getHuaweiEndpoint() {
+        return huaweiEndpoint;
+    }
+
+    public void setHuaweiEndpoint(@NotBlank(message = "华为云Endpoint不能为空", groups = HuaweiGroup.class) String huaweiEndpoint) {
+        this.huaweiEndpoint = huaweiEndpoint;
+    }
+
+    public @NotBlank(message = "华为云AK不能为空", groups = HuaweiGroup.class) String getHuaweiAK() {
+        return huaweiAK;
+    }
+
+    public void setHuaweiAK(@NotBlank(message = "华为云AK不能为空", groups = HuaweiGroup.class) String huaweiAK) {
+        this.huaweiAK = huaweiAK;
+    }
+
+    public @NotBlank(message = "华为云SK不能为空", groups = HuaweiGroup.class) String getHuaweiSK() {
+        return huaweiSK;
+    }
+
+    public void setHuaweiSK(@NotBlank(message = "华为云SK不能为空", groups = HuaweiGroup.class) String huaweiSK) {
+        this.huaweiSK = huaweiSK;
+    }
+
+    public @NotBlank(message = "华为云绑定的域名不能为空", groups = HuaweiGroup.class) @URL(message = "华为云绑定的域名格式不正确", groups = HuaweiGroup.class) String getHuaweiDomain() {
+        return huaweiDomain;
+    }
+
+    public void setHuaweiDomain(@NotBlank(message = "华为云绑定的域名不能为空", groups = HuaweiGroup.class) @URL(message = "华为云绑定的域名格式不正确", groups = HuaweiGroup.class) String huaweiDomain) {
+        this.huaweiDomain = huaweiDomain;
+    }
 }

+ 104 - 0
fs-service-system/src/main/java/com/fs/system/oss/HuaweiCloudStorageService.java

@@ -0,0 +1,104 @@
+package com.fs.system.oss;
+
+import com.fs.common.exception.file.OssException;
+import com.obs.services.ObsClient;
+import com.obs.services.exception.ObsException;
+import com.obs.services.model.PutObjectRequest;
+import org.apache.commons.io.IOUtils;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.TimeZone;
+
+/**
+ * 腾讯云存储
+ */
+public class HuaweiCloudStorageService extends CloudStorageService
+{
+    private ObsClient client;
+
+    public HuaweiCloudStorageService(CloudStorageConfig config)
+    {
+        this.config = config;
+        // 初始化
+        init();
+    }
+
+    private void init()
+    {
+        client = new ObsClient(config.getHuaweiAK(), config.getHuaweiSK(), config.getHuaweiEndpoint());
+    }
+    public static String generateUploadFileName(String fileName) {
+        // 获取文件扩展名
+        String fileExtension = "";
+        int i = fileName.lastIndexOf('.');
+        if (i > 0) {
+            fileExtension = fileName.substring(i + 1);
+        }
+
+        // 获取当前时间戳
+        long currentTimeMillis = System.currentTimeMillis();
+
+        // 生成上传文件名
+        String uploadFileName = currentTimeMillis + "." + fileExtension;
+
+        // 获取当前日期
+        Date date = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
+        dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
+        String uploadDay = dateFormat.format(date);
+
+        // 生成上传路径
+        String key = "fs/" + uploadDay + "/" + uploadFileName;
+
+        return key;
+    }
+    @Override
+    public String upload(byte[] data, String path)
+    {
+        String objKey = generateUploadFileName(path);
+        try {
+            // 文件上传
+            com.obs.services.model.PutObjectRequest request = new PutObjectRequest(config.getHuaweiBucketName(), objKey,new ByteArrayInputStream(data));
+
+            client.putObject(request);
+        } catch (ObsException e) {
+            throw new ObsException("文件上传失败," + e.getErrorMessage());
+        } catch (Exception e) {
+            System.out.println("上传失败");
+            // 其他异常信息打印
+            return "上传失败"+e.getMessage();
+        }
+        return config.getHuaweiDomain()+"/"+ objKey;
+
+    }
+
+    @Override
+    public String upload(InputStream inputStream, String path)
+    {
+        try
+        {
+            byte[] data = IOUtils.toByteArray(inputStream);
+            return this.upload(data, path);
+        }
+        catch (IOException e)
+        {
+            throw new OssException("上传文件失败");
+        }
+    }
+
+    @Override
+    public String uploadSuffix(byte[] data, String suffix)
+    {
+        return upload(data, getPath(config.getQcloudPrefix(), suffix));
+    }
+
+    @Override
+    public String uploadSuffix(InputStream inputStream, String suffix)
+    {
+        return upload(inputStream, getPath(config.getQcloudPrefix(), suffix));
+    }
+}

+ 3 - 0
fs-service-system/src/main/java/com/fs/system/oss/OSSFactory.java

@@ -32,6 +32,9 @@ public final class OSSFactory
         else if (config.getType() == CloudConstant.CloudService.QCLOUD.getValue())
         {
             return new QcloudCloudStorageService(config);
+        }else if (config.getType() == CloudConstant.CloudService.HUAWEI.getValue())
+        {
+            return new HuaweiCloudStorageService(config);
         }
         return null;
     }

+ 8 - 0
fs-service-system/src/main/java/com/fs/system/oss/valdator/HuaweiGroup.java

@@ -0,0 +1,8 @@
+package com.fs.system.oss.valdator;
+
+/**
+ * 华为
+ */
+public interface HuaweiGroup
+{
+}

+ 11 - 11
fs-service-system/src/main/resources/application-config.yml

@@ -2,17 +2,17 @@
 fsConfig:
   omsCode: "wjdh.SF.0235493583"
   #快递鸟
-  kdnId: 1881217
-  kdnKeyId: a43fee18-3ea9-4eff-99c0-7e94618d7a57
+  kdnId: 1883622
+  kdnKeyId: cf5fee23-16de-4a9b-b5db-807523acd2cc
   kdnUrl: http://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx
   kdnSubscribeUrl: https://api.kdniao.com/api/dist
   kdnAddressUrl: https://api.kdniao.com/api/dist
-  notifyUrl: http://111.230.193.88/app/common/expressNotify
+  notifyUrl: http://admin.sxrenkang.com/notify/expressNotify
   #ERP配置
-  erpOpen: 1
-  erpAppKey: 108123
-  erpSessionKey: 9caae15474cb443ea22235e7bb86016b
-  erpSecret: 96f774dbd60847b59a16f92fd963a0c8
+  erpOpen: 0
+#  erpAppKey: 108123
+#  erpSessionKey: 9caae15474cb443ea22235e7bb86016b
+#  erpSecret: 96f774dbd60847b59a16f92fd963a0c8
   erpUrl: http://v2.api.guanyierp.com/rest/erp_open
   erpShopCode: "0080"
 
@@ -65,21 +65,21 @@ wx:
     corpId: wwb2a1055fb6c9a7c2
     appConfigs:
       - agentId: 1000002
-        secret: bhj3402rPCT0YGcosffyTO3eUMs1G2MFHMspXVBNf-c
+        secret: e7f1deb5bf5a5cb251134fe653976210
         token: PPKOdAlCoMO
         aesKey: PKvaxtpSv8NGpfTDm7VUHIK8Wok2ESyYX24qpXJAdMP
   miniapp:
     configs:
 #      - appid: wx36b87a0820734de8
 #        secret: 52700f5c811ed902a53ee3a358b29135
-      - appid: wx19c8813ffc33d1cb
-        secret: 38caf1e4f67c1d65061176d6157522a9
+      - appid: wx6526daecc07dd7f7
+        secret: e7f1deb5bf5a5cb251134fe653976210
         token: Ncbnd7lJvkripVOpyTFAna6NAWCxCrvC
         aesKey: HlEiBB55eaWUaeBVAQO3cWKWPYv1vOVQSq7nFNICw4E
         msgDataFormat: JSON
         account: 37519015371852
   pay:
-    appId: wx19c8813ffc33d1cb #微信公众号或者小程序等的appid
+    appId: wx6526daecc07dd7f7 #微信公众号或者小程序等的appid
     mchId: 1560230251 #微信支付商户号
     mchKey: dltcx057ngdbukiuwn83621khh07ewmn #微信支付商户密钥
     subAppId:  #服务商模式下的子商户公众账号ID

+ 16 - 2
fs-service-system/src/main/resources/mapper/store/FsStoreProductMapper.xml

@@ -47,10 +47,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="prescribeName"    column="prescribe_name"    />
         <result property="isDisplay"    column="is_display"    />
         <result property="tuiCateId"    column="tui_cate_id"    />
+        <result property="video"    column="video"    />
+        <result property="isStar"    column="is_star"    />
+        <result property="isDiscountToday"    column="is_discount_today"    />
     </resultMap>
 
     <sql id="selectFsStoreProductVo">
-        select product_id, image, slider_image, product_name, product_info, keyword, bar_code, cate_id, price, vip_price, ot_price, postage, unit_name, sort, sales, stock, is_show, is_hot, is_benefit, is_best, is_new, description, create_time, update_time, is_postage, is_del, give_integral, cost, is_good, browse, code_path, temp_id, spec_type, is_integral, integral, product_type, prescribe_code, prescribe_spec, prescribe_factory, prescribe_name,is_display,tui_cate_id,warehouse_id,warehouse_code from fs_store_product
+        select product_id, image, slider_image, product_name, product_info, keyword, bar_code, cate_id, price, vip_price, ot_price, postage, unit_name, sort, sales, stock, is_show, is_hot, is_benefit, is_best, is_new, description, create_time, update_time, is_postage, is_del, give_integral, cost, is_good, browse, code_path, temp_id, spec_type, is_integral, integral, product_type, prescribe_code, prescribe_spec, prescribe_factory, prescribe_name,is_display,tui_cate_id,warehouse_id,warehouse_code,video,is_star,is_discount_today from fs_store_product
     </sql>
 
     <select id="selectFsStoreProductList" parameterType="FsStoreProduct" resultMap="FsStoreProductResult">
@@ -96,6 +99,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isDisplay != null "> and is_display = #{isDisplay}</if>
             <if test="warehouseId != null"> and warehouse_id = #{warehouseId}</if>
             <if test="warehouseCode != null"> and warehouse_code = #{warehouseCode}</if>
+            <if test="isStar != null"> and is_star = ${isStar}</if>
+            <if test="isDiscountToday != null"> and is_discount_today = ${isDiscountToday}</if>
         </where>
     </select>
 
@@ -108,6 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         insert into fs_store_product
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="image != null and image != ''">image,</if>
+            <if test="video != null and video != ''">video,</if>
             <if test="sliderImage != null and sliderImage != ''">slider_image,</if>
             <if test="productName != null and productName != ''">product_name,</if>
             <if test="productInfo != null and productInfo != ''">product_info,</if>
@@ -150,9 +156,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="tuiCateId != null">tui_cate_id,</if>
             <if test="warehouseId != null">warehouse_id,</if>
             <if test="warehouseCode != null">warehouse_code,</if>
+            <if test="isStar != null">is_star,</if>
+            <if test="isDiscountToday != null">is_discount_today,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="image != null and image != ''">#{image},</if>
+            <if test="video != null and video != ''">#{video},</if>
             <if test="sliderImage != null and sliderImage != ''">#{sliderImage},</if>
             <if test="productName != null and productName != ''">#{productName},</if>
             <if test="productInfo != null and productInfo != ''">#{productInfo},</if>
@@ -195,13 +204,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="tuiCateId != null">#{tuiCateId},</if>
             <if test="warehouseId != null">#{warehouseId},</if>
             <if test="warehouseCode != null">#{warehouseCode},</if>
-         </trim>
+            <if test="isStar != null">#{isStar},</if>
+            <if test="isDiscountToday != null">#{isDiscountToday},</if>
+        </trim>
     </insert>
 
     <update id="updateFsStoreProduct" parameterType="FsStoreProduct">
         update fs_store_product
         <trim prefix="SET" suffixOverrides=",">
             <if test="image != null and image != ''">image = #{image},</if>
+            <if test="video != null">video = #{video},</if>
             <if test="sliderImage != null and sliderImage != ''">slider_image = #{sliderImage},</if>
             <if test="productName != null and productName != ''">product_name = #{productName},</if>
             <if test="productInfo != null and productInfo != ''">product_info = #{productInfo},</if>
@@ -244,6 +256,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="tuiCateId != null">tui_cate_id = #{tuiCateId},</if>
             <if test="warehouseId != null">warehouse_id = #{warehouseId},</if>
             <if test="warehouseCode != null">warehouse_code = #{warehouseCode},</if>
+            <if test="isStar != null">is_star = #{isStar},</if>
+            <if test="isDiscountToday != null">is_discount_today = #{isDiscountToday},</if>
         </trim>
         where product_id = #{productId}
     </update>

+ 6 - 1
fs-service-system/src/main/resources/mapper/store/FsUserMapper.xml

@@ -41,10 +41,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="registerCode"    column="register_code"    />
         <result property="source"    column="source"    />
         <result property="userCode"    column="user_code"    />
+        <result property="isShow"    column="is_show"    />
     </resultMap>
 
     <sql id="selectFsUserVo">
-        select user_id, username, password, real_name, birthday, id_card, remark, nickname, avatar, phone, create_time, update_time, last_ip, now_money, brokerage_price, integral, sign_num, status, level, spread_user_id, spread_time, user_type, is_promoter, pay_count, spread_count, addres,ma_open_id,mp_open_id,union_id, is_del,is_weixin_auth,company_id,company_user_id,register_date,register_code,source,user_code from fs_user
+        select user_id, username, password, real_name, birthday, id_card, remark, nickname, avatar, phone, create_time, update_time, last_ip, now_money, brokerage_price, integral, sign_num, status, level, spread_user_id, spread_time, user_type, is_promoter, pay_count, spread_count, addres,ma_open_id,mp_open_id,union_id, is_del,is_weixin_auth,company_id,company_user_id,register_date,register_code,source,user_code,is_show from fs_user
     </sql>
 
     <select id="selectFsUserList" parameterType="FsUser" resultMap="FsUserResult">
@@ -79,6 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registerDate != null "> and DATE_FORMAT(register_date,'%Y-%m-%d') = DATE_FORMAT(#{registerDate},'%Y-%m-%d')</if>
             <if test="registerCode != null   and registerCode != '' "> and register_code = #{registerCode}</if>
             <if test="source != null  and source != '' "> and source = #{source}</if>
+            <if test="isShow != null  and isShow != '' "> and is_show = #{isShow}</if>
         </where>
         order by user_id desc
     </select>
@@ -148,6 +150,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registerCode != null">register_code,</if>
             <if test="source != null">source,</if>
             <if test="userCode != null">user_code,</if>
+            <if test="isShow != null">is_show,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="username != null">#{username},</if>
@@ -186,6 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registerCode != null">#{registerCode},</if>
             <if test="source != null">#{source},</if>
             <if test="userCode != null">#{userCode},</if>
+            <if test="isShow != null">#{isShow},</if>
          </trim>
     </insert>
 
@@ -228,6 +232,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="registerCode != null">register_code = #{registerCode},</if>
             <if test="source != null">source = #{source},</if>
             <if test="userCode != null">user_code = #{userCode},</if>
+            <if test="isShow != null">is_show = #{isShow},</if>
         </trim>
         where user_id = #{userId}
     </update>

+ 2 - 2
fs-user-app/src/main/java/com/fs/app/controller/ProductController.java

@@ -71,8 +71,8 @@ public class ProductController extends  AppBaseController {
     }
 
     @ApiOperation("获取商品列表")
-    @GetMapping("/getProducts")
-    public R getProducts(FsStoreProductQueryParam param){
+    @PostMapping("/getProducts")
+    public R getProducts(@RequestBody FsStoreProductQueryParam param){
         PageHelper.startPage(param.getPage(), param.getPageSize());
         param.setIsDisplay(1);
         List<FsStoreProductListQueryVO> productList=productService.selectFsStoreProductListQuery(param);

+ 10 - 0
fs-user-app/src/main/java/com/fs/app/controller/StoreOrderController.java

@@ -4,8 +4,10 @@ import cn.hutool.core.util.ObjectUtil;
 import com.fs.app.annotation.Login;
 import com.fs.common.annotation.RepeatSubmit;
 
+import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
 import com.fs.common.exception.CustomException;
+import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.store.domain.*;
 import com.fs.store.dto.FsStoreOrderComputeDTO;
 
@@ -13,6 +15,7 @@ import com.fs.store.param.*;
 import com.fs.store.service.*;
 import com.fs.store.vo.FsMyStoreOrderListQueryVO;
 
+import com.fs.store.vo.FsStoreProductDeliverExcelVO;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import io.swagger.annotations.Api;
@@ -296,4 +299,11 @@ public class StoreOrderController extends  AppBaseController {
         return R.ok().put("count0",count0).put("count1",count1).put("count2",count2).put("afterSalesCount",afterSalesCount);
     }
 
+
+    @GetMapping("/importTemplate")
+    public AjaxResult sendExport()
+    {
+        ExcelUtil<FsStoreProductDeliverExcelVO> util = new ExcelUtil<>(FsStoreProductDeliverExcelVO.class);
+        return util.importTemplateExcel("导入运单号");
+    }
 }

+ 8 - 0
fs-user-app/src/main/java/com/fs/app/controller/UserController.java

@@ -9,6 +9,7 @@ import com.fs.common.config.FSConfig;
 import com.fs.common.core.domain.R;
 import com.fs.common.param.BaseQueryParam;
 import com.fs.common.utils.OrderUtils;
+import com.fs.store.domain.FsStoreOrder;
 import com.fs.store.domain.FsUser;
 import com.fs.store.domain.FsUserBill;
 import com.fs.store.domain.FsUserPromoterApply;
@@ -64,8 +65,15 @@ public class UserController extends  AppBaseController {
     public R getUserInfo(){
         try {
             FsUser user=userService.selectFsUserById(Long.parseLong(getUserId()));
+            if (user.getIsShow() == null || user.getIsShow()==0){
+                FsStoreOrder order = orderService.selectOrderByUserIdLimit1(user.getUserId());
+                if (order!=null){
+                    user.setIsShow(1);
+                }
+            }
             return R.ok().put("user",user);
         } catch (Exception e){
+            log.error("获取用户信息异常",e);
 
             return R.error("操作异常");
         }

+ 2 - 2
fs-user-app/src/main/resources/application-dev.yml

@@ -27,9 +27,9 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://172.16.0.31:3306/fs_fhjx_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+                url: jdbc:mysql://55df955d464b4801af6c6df09196bb47in01.internal.cn-north-9.mysql.rds.myhuaweicloud.com:3306/fs_hospital?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: Ylrz_1q2w3e4r5t6y
+                password: RXZ5&Z3CyNBf+AV
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭

+ 1 - 0
fs-user-app/src/main/resources/static/Yonu9gc8VF.txt

@@ -0,0 +1 @@
+bd84c23a0ae50424be50c87282784f14