Browse Source

Merge remote-tracking branch 'origin/master'

yfh 6 days ago
parent
commit
17add4e889

+ 114 - 0
fs-admin/src/main/java/com/fs/his/controller/FsStoreActivityController.java

@@ -0,0 +1,114 @@
+package com.fs.his.controller;
+
+import com.fs.common.annotation.Log;
+import com.fs.common.core.controller.BaseController;
+import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
+import com.fs.common.utils.StringUtils;
+import com.fs.common.utils.poi.ExcelUtil;
+import com.fs.his.domain.FsPackage;
+import com.fs.his.service.IFsPackageService;
+import com.fs.store.domain.FsStoreActivity;
+import com.fs.store.service.IFsStoreActivityService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 活动Controller
+ *
+ * @author fs
+ * @date 2022-11-18
+ */
+@RestController
+@RequestMapping("/his/storeActivity")
+public class FsStoreActivityController extends BaseController
+{
+    @Autowired
+    private IFsStoreActivityService fsStoreActivityService;
+    @Autowired
+    private IFsPackageService packageService;
+    /**
+     * 查询活动列表
+     */
+    @PreAuthorize("@ss.hasPermi('his:storeActivity:list')")
+    @GetMapping("/list")
+    public TableDataInfo list(FsStoreActivity fsStoreActivity)
+    {
+        startPage();
+        List<FsStoreActivity> list = fsStoreActivityService.selectFsStoreActivityList(fsStoreActivity);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出活动列表
+     */
+    @PreAuthorize("@ss.hasPermi('his:storeActivity:export')")
+    @Log(title = "活动", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(FsStoreActivity fsStoreActivity)
+    {
+        List<FsStoreActivity> list = fsStoreActivityService.selectFsStoreActivityList(fsStoreActivity);
+        ExcelUtil<FsStoreActivity> util = new ExcelUtil<FsStoreActivity>(FsStoreActivity.class);
+        return util.exportExcel(list, "storeActivity");
+    }
+
+    /**
+     * 获取活动详细信息
+     */
+    @PreAuthorize("@ss.hasPermi('his:storeActivity:query')")
+    @GetMapping(value = "/{activityId}")
+    public R getInfo(@PathVariable("activityId") Long activityId)
+    {
+        FsStoreActivity activity=fsStoreActivityService.selectFsStoreActivityById(activityId);
+        List<FsPackage> packages =new ArrayList<>();
+        String productIds = activity.getProductIds();
+        if(StringUtils.isNotBlank(productIds)){
+            Long[] list = Arrays.stream(productIds.split(","))
+                    .map(Long::valueOf)
+                    .toArray(Long[]::new);
+            packages = packageService.selectFsPackageListByIds(list);
+        }
+        return R.ok().put("activity",activity).put("packages",packages);
+    }
+
+    /**
+     * 新增活动
+     */
+    @PreAuthorize("@ss.hasPermi('his:storeActivity:add')")
+    @Log(title = "活动", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody FsStoreActivity fsStoreActivity)
+    {
+        return toAjax(fsStoreActivityService.insertFsStoreActivity(fsStoreActivity));
+    }
+
+    /**
+     * 修改活动
+     */
+    @PreAuthorize("@ss.hasPermi('his:storeActivity:edit')")
+    @Log(title = "活动", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody FsStoreActivity fsStoreActivity)
+    {
+        return toAjax(fsStoreActivityService.updateFsStoreActivity(fsStoreActivity));
+    }
+
+    /**
+     * 删除活动
+     */
+    @PreAuthorize("@ss.hasPermi('his:storeActivity:remove')")
+    @Log(title = "活动", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{activityIds}")
+    public AjaxResult remove(@PathVariable Long[] activityIds)
+    {
+        return toAjax(fsStoreActivityService.deleteFsStoreActivityByIds(activityIds));
+    }
+}

+ 1 - 1
fs-live-app/src/main/resources/application.yml

@@ -6,4 +6,4 @@ server:
 # Spring配置
 spring:
   profiles:
-    active: dev
+    active: druid-bjzm-test

+ 3 - 3
fs-service/src/main/java/com/fs/hisStore/domain/FsUserBillScrm.java

@@ -46,7 +46,7 @@ public class FsUserBillScrm extends BaseEntity
 
     /** 明细数字 */
     @Excel(name = "明细数字")
-    private Double number;
+    private BigDecimal number;
 
     @Excel(name = "金额")
     private BigDecimal money;
@@ -139,11 +139,11 @@ public class FsUserBillScrm extends BaseEntity
         this.title = title;
     }
 
-    public Double getNumber() {
+    public BigDecimal getNumber() {
         return number;
     }
 
-    public void setNumber(Double number) {
+    public void setNumber(BigDecimal number) {
         this.number = number;
     }
 

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreOrderScrmMapper.java

@@ -509,7 +509,7 @@ public interface FsStoreOrderScrmMapper
     @Select("select * from fs_store_order_scrm where extend_order_id=#{extendOrderId}")
     FsStoreOrderScrm selectFsStoreOrderByExtendOrderId(String extendOrderId);
     @Select({"<script> " +
-            "select b.number as tui_price,b.bill_type,b.create_time,o.id as order_id,o.order_code,o.pay_price,u.nickname,u.avatar from fs_user_bill b inner join  fs_store_order_scrm o on b.business_id=o.id left join fs_user u on u.user_id=o.user_id  " +
+            "select b.money as tui_price,b.bill_type,b.create_time,o.id as order_id,o.order_code,o.pay_price,u.nickname,u.avatar from fs_user_bill b inner join  fs_store_order_scrm o on b.business_id=o.id left join fs_user u on u.user_id=o.user_id  " +
             "where b.user_id=#{userId} and b.category='brokerage_price'   " +
             " order by b.bill_id desc"+
             "</script>"})

+ 6 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserBillScrmServiceImpl.java

@@ -3,6 +3,7 @@ package com.fs.hisStore.service.impl;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
+import java.util.Optional;
 
 import cn.hutool.json.JSONUtil;
 import com.fs.common.utils.DateUtils;
@@ -55,7 +56,11 @@ public class FsUserBillScrmServiceImpl implements IFsUserBillScrmService
     @Override
     public List<FsUserBillScrm> selectFsUserBillList(FsUserBillScrm fsUserBill)
     {
-        return fsUserBillMapper.selectFsUserBillList(fsUserBill);
+        List<FsUserBillScrm> bills=fsUserBillMapper.selectFsUserBillList(fsUserBill);
+        Optional.ofNullable( bills).ifPresent(list -> list.forEach(bill -> {
+            bill.setNumber(bill.getMoney());
+        }));
+        return bills;
     }
 
     /**

+ 49 - 22
fs-service/src/main/java/com/fs/qw/service/impl/QwWatchLogServiceImpl.java

@@ -31,6 +31,7 @@ import com.fs.store.service.cache.IFsUserCacheService;
 import com.fs.store.service.cache.IFsUserCourseCacheService;
 import com.hc.openapi.tool.util.StringUtils;
 import org.apache.commons.collections4.CollectionUtils;
+import org.jetbrains.annotations.Nullable;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -149,17 +150,13 @@ public class QwWatchLogServiceImpl extends ServiceImpl<QwWatchLogMapper, QwWatch
     @Override
     public List<QwWatchLogStatisticsListVO> selectQwWatchLogStatisticsListVOExport(FsCourseWatchLogListParam param) {
         List<Long> deptIds = param.getDeptIds();
-        if (deptIds !=null && !deptIds.isEmpty()){
-            List<CompanyDept> companyDeptList  = companyDeptMapper.selectCompanyDeptByIds(deptIds);
-            if (companyDeptList!=null && !companyDeptList.isEmpty()){
-                for (CompanyDept c : companyDeptList) {
-                    if (c.getParentId() == 0L) {
-                        param.setDeptId(null);
-                        param.setDeptIds(null);
-                        break;
-                    }
-                }
-            }
+        List<Long> allDeptIds = getAllDeptIds(deptIds);
+        if (allDeptIds == null){
+            param.setDeptId(null);
+            param.setDeptIds(null);
+        } else if (!allDeptIds.isEmpty()){
+            param.setDeptIds(allDeptIds);
+            param.setDeptId(null);
         } else {
             CompanyDept companyDept = companyDeptMapper.selectCompanyDeptById(param.getDeptId());
             if (ObjectUtils.isNotEmpty(companyDept)&&companyDept.getParentId()==0L){
@@ -225,23 +222,20 @@ public class QwWatchLogServiceImpl extends ServiceImpl<QwWatchLogMapper, QwWatch
     @Override
     public TableDataInfo selectQwWatchLogStatisticsListVO(QwWatchLogStatisticsListParam param) {
         List<Long> deptIds = param.getDeptIds();
-        if (deptIds !=null && !deptIds.isEmpty()){
-            List<CompanyDept> companyDeptList  = companyDeptMapper.selectCompanyDeptByIds(deptIds);
-            if (companyDeptList!=null && !companyDeptList.isEmpty()){
-                for (CompanyDept c : companyDeptList) {
-                    if (c.getParentId() == 0L) {
-                        param.setDeptId(null);
-                        param.setDeptIds(null);
-                        break;
-                    }
-                }
-            }
+        List<Long> allDeptIds = getAllDeptIds(deptIds);
+        if (allDeptIds == null){
+            param.setDeptId(null);
+            param.setDeptIds(null);
+        } else if (!allDeptIds.isEmpty()){
+            param.setDeptIds(allDeptIds);
+            param.setDeptId(null);
         } else {
             CompanyDept companyDept = companyDeptMapper.selectCompanyDeptById(param.getDeptId());
             if (ObjectUtils.isNotEmpty(companyDept)&&companyDept.getParentId()==0L){
                 param.setDeptId(null);
             }
         }
+
         TableDataInfo rspData = new TableDataInfo();
         rspData.setCode(HttpStatus.SUCCESS);
         rspData.setMsg("查询成功");
@@ -277,6 +271,39 @@ public class QwWatchLogServiceImpl extends ServiceImpl<QwWatchLogMapper, QwWatch
         return rspData;
     }
 
+    /**
+     * 根据部门id查询所有子部门
+     * @param deptIds
+     * @return
+     */
+    private @Nullable List<Long> getAllDeptIds( List<Long> deptIds) {
+        List<Long> allDeptIds = new ArrayList<>();
+        if (deptIds == null || deptIds.isEmpty()){
+            return allDeptIds;
+        } else {
+            allDeptIds.addAll(deptIds);
+        }
+        while (true){
+            if (deptIds.isEmpty()){
+                break;
+            }
+            List<CompanyDept> companyDeptList  = companyDeptMapper.selectCompanyDeptByIds(deptIds);
+            if (companyDeptList.isEmpty()){
+               break;
+            }
+            deptIds = new ArrayList<>();
+            for (CompanyDept c : companyDeptList) {
+                List<Long> ids = companyDeptMapper.selectCompanyDeptByParentId(c.getDeptId());
+                allDeptIds.addAll(ids);
+                deptIds.addAll(ids);
+                if (c.getParentId() == 0L) {
+                    return null;
+                }
+            }
+        }
+        return allDeptIds;
+    }
+
     /**
      * 查询进线统计,排除掉转接的数据
      * @param param

+ 131 - 0
fs-service/src/main/java/com/fs/store/domain/FsStoreActivity.java

@@ -0,0 +1,131 @@
+package com.fs.store.domain;
+
+import com.fs.common.annotation.Excel;
+import com.fs.common.core.domain.BaseEntity;
+
+/**
+ * 活动对象 fs_store_activity
+ * 
+ * @author fs
+ * @date 2022-11-18
+ */
+public class FsStoreActivity extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** $column.columnComment */
+    private Long activityId;
+
+    /** 标题 */
+    @Excel(name = "标题")
+    private String title;
+
+    /** 描述 */
+    @Excel(name = "描述")
+    private String descs;
+
+    /** 封面图 */
+    @Excel(name = "封面图")
+    private String logoUrl;
+
+    /** 活动图 */
+    @Excel(name = "活动图")
+    private String images;
+
+    /** 活动商品 */
+    @Excel(name = "活动商品")
+    private String productIds;
+
+    /** 活动内容 */
+    @Excel(name = "活动内容")
+    private String content;
+
+    /** 状态 0禁用 1启用 */
+    @Excel(name = "状态 0禁用 1启用")
+    private Integer status;
+
+    private Integer shareNumber;
+
+    public Integer getShareNumber() {
+        return shareNumber;
+    }
+
+    public void setShareNumber(Integer shareNumber) {
+        this.shareNumber = shareNumber;
+    }
+
+    public String getDescs() {
+        return descs;
+    }
+
+    public void setDescs(String descs) {
+        this.descs = descs;
+    }
+
+    public void setActivityId(Long activityId)
+    {
+        this.activityId = activityId;
+    }
+
+    public Long getActivityId() 
+    {
+        return activityId;
+    }
+    public void setTitle(String title) 
+    {
+        this.title = title;
+    }
+
+    public String getTitle() 
+    {
+        return title;
+    }
+
+    public void setLogoUrl(String logoUrl) 
+    {
+        this.logoUrl = logoUrl;
+    }
+
+    public String getLogoUrl() 
+    {
+        return logoUrl;
+    }
+    public void setImages(String images) 
+    {
+        this.images = images;
+    }
+
+    public String getImages() 
+    {
+        return images;
+    }
+    public void setProductIds(String productIds) 
+    {
+        this.productIds = productIds;
+    }
+
+    public String getProductIds() 
+    {
+        return productIds;
+    }
+    public void setContent(String content) 
+    {
+        this.content = content;
+    }
+
+    public String getContent() 
+    {
+        return content;
+    }
+    public void setStatus(Integer status) 
+    {
+        this.status = status;
+    }
+
+    public Integer getStatus() 
+    {
+        return status;
+    }
+
+
+}

+ 69 - 0
fs-service/src/main/java/com/fs/store/mapper/FsStoreActivityMapper.java

@@ -0,0 +1,69 @@
+package com.fs.store.mapper;
+
+import com.fs.store.domain.FsStoreActivity;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+ * 活动Mapper接口
+ *
+ * @author fs
+ * @date 2022-11-18
+ */
+public interface FsStoreActivityMapper
+{
+    /**
+     * 查询活动
+     *
+     * @param activityId 活动ID
+     * @return 活动
+     */
+    public FsStoreActivity selectFsStoreActivityById(Long activityId);
+
+    /**
+     * 查询活动列表
+     *
+     * @param fsStoreActivity 活动
+     * @return 活动集合
+     */
+    public List<FsStoreActivity> selectFsStoreActivityList(FsStoreActivity fsStoreActivity);
+
+    /**
+     * 新增活动
+     *
+     * @param fsStoreActivity 活动
+     * @return 结果
+     */
+    public int insertFsStoreActivity(FsStoreActivity fsStoreActivity);
+
+    /**
+     * 修改活动
+     *
+     * @param fsStoreActivity 活动
+     * @return 结果
+     */
+    public int updateFsStoreActivity(FsStoreActivity fsStoreActivity);
+
+    /**
+     * 删除活动
+     *
+     * @param activityId 活动ID
+     * @return 结果
+     */
+    public int deleteFsStoreActivityById(Long activityId);
+
+    /**
+     * 批量删除活动
+     *
+     * @param activityIds 需要删除的数据ID
+     * @return 结果
+     */
+    public int deleteFsStoreActivityByIds(Long[] activityIds);
+    @Select("select * from fs_store_activity where status=1 order by activity_id desc limit 1")
+    FsStoreActivity selectFsStoreActivityByTop();
+
+    @Update("update fs_store_activity set share_number=share_number+1 where activity_id=#{activityId} ")
+    int addShare(Long activityId);
+}

+ 66 - 0
fs-service/src/main/java/com/fs/store/service/IFsStoreActivityService.java

@@ -0,0 +1,66 @@
+package com.fs.store.service;
+
+import com.fs.store.domain.FsStoreActivity;
+
+import java.util.List;
+
+/**
+ * 活动Service接口
+ *
+ * @author fs
+ * @date 2022-11-18
+ */
+public interface IFsStoreActivityService
+{
+    /**
+     * 查询活动
+     *
+     * @param activityId 活动ID
+     * @return 活动
+     */
+    public FsStoreActivity selectFsStoreActivityById(Long activityId);
+
+    /**
+     * 查询活动列表
+     *
+     * @param fsStoreActivity 活动
+     * @return 活动集合
+     */
+    public List<FsStoreActivity> selectFsStoreActivityList(FsStoreActivity fsStoreActivity);
+
+    /**
+     * 新增活动
+     *
+     * @param fsStoreActivity 活动
+     * @return 结果
+     */
+    public int insertFsStoreActivity(FsStoreActivity fsStoreActivity);
+
+    /**
+     * 修改活动
+     *
+     * @param fsStoreActivity 活动
+     * @return 结果
+     */
+    public int updateFsStoreActivity(FsStoreActivity fsStoreActivity);
+
+    /**
+     * 批量删除活动
+     *
+     * @param activityIds 需要删除的活动ID
+     * @return 结果
+     */
+    public int deleteFsStoreActivityByIds(Long[] activityIds);
+
+    /**
+     * 删除活动信息
+     *
+     * @param activityId 活动ID
+     * @return 结果
+     */
+    public int deleteFsStoreActivityById(Long activityId);
+
+    FsStoreActivity selectFsStoreActivityByTop();
+
+    int addShare(Long activityId);
+}

+ 106 - 0
fs-service/src/main/java/com/fs/store/service/impl/FsStoreActivityServiceImpl.java

@@ -0,0 +1,106 @@
+package com.fs.store.service.impl;
+
+import com.fs.common.utils.DateUtils;
+import com.fs.store.domain.FsStoreActivity;
+import com.fs.store.mapper.FsStoreActivityMapper;
+import com.fs.store.service.IFsStoreActivityService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 活动Service业务层处理
+ *
+ * @author fs
+ * @date 2022-11-18
+ */
+@Service
+public class FsStoreActivityServiceImpl implements IFsStoreActivityService
+{
+    @Autowired
+    private FsStoreActivityMapper fsStoreActivityMapper;
+
+    /**
+     * 查询活动
+     *
+     * @param activityId 活动ID
+     * @return 活动
+     */
+    @Override
+    public FsStoreActivity selectFsStoreActivityById(Long activityId)
+    {
+        return fsStoreActivityMapper.selectFsStoreActivityById(activityId);
+    }
+
+    /**
+     * 查询活动列表
+     *
+     * @param fsStoreActivity 活动
+     * @return 活动
+     */
+    @Override
+    public List<FsStoreActivity> selectFsStoreActivityList(FsStoreActivity fsStoreActivity)
+    {
+        return fsStoreActivityMapper.selectFsStoreActivityList(fsStoreActivity);
+    }
+
+    /**
+     * 新增活动
+     *
+     * @param fsStoreActivity 活动
+     * @return 结果
+     */
+    @Override
+    public int insertFsStoreActivity(FsStoreActivity fsStoreActivity)
+    {
+        fsStoreActivity.setCreateTime(DateUtils.getNowDate());
+        return fsStoreActivityMapper.insertFsStoreActivity(fsStoreActivity);
+    }
+
+    /**
+     * 修改活动
+     *
+     * @param fsStoreActivity 活动
+     * @return 结果
+     */
+    @Override
+    public int updateFsStoreActivity(FsStoreActivity fsStoreActivity)
+    {
+        return fsStoreActivityMapper.updateFsStoreActivity(fsStoreActivity);
+    }
+
+    /**
+     * 批量删除活动
+     *
+     * @param activityIds 需要删除的活动ID
+     * @return 结果
+     */
+    @Override
+    public int deleteFsStoreActivityByIds(Long[] activityIds)
+    {
+        return fsStoreActivityMapper.deleteFsStoreActivityByIds(activityIds);
+    }
+
+    /**
+     * 删除活动信息
+     *
+     * @param activityId 活动ID
+     * @return 结果
+     */
+    @Override
+    public int deleteFsStoreActivityById(Long activityId)
+    {
+        return fsStoreActivityMapper.deleteFsStoreActivityById(activityId);
+    }
+
+    @Override
+    public FsStoreActivity selectFsStoreActivityByTop() {
+        return fsStoreActivityMapper.selectFsStoreActivityByTop();
+    }
+
+    @Override
+    public int addShare(Long activityId) {
+        return fsStoreActivityMapper.addShare(activityId);
+    }
+}

+ 1 - 1
fs-service/src/main/resources/application-config-druid-bjzm.yml

@@ -71,7 +71,7 @@ nuonuo:
 tencent_cloud_config:
   secret_id: AKIDiMq9lDf2EOM9lIfqqfKo7FNgM5meD0sT
   secret_key: u5SuS80342xzx8FRBukza9lVNHKNMSaB
-  bucket: bjzm-1323137866
+  bucket: bjzmky-1323137866
   app_id: 1323137866
   region: ap-guangzhou
   proxy: bjzm

+ 2 - 2
fs-service/src/main/resources/application-druid-yxj.yml

@@ -168,6 +168,6 @@ openIM:
 im:
     type: OPENIM
 #是否为新商户,新商户不走mpOpenId
-isNewWxMerchant: true
-enableRedPackAccount: 0
+isNewWxMerchant: false
+enableRedPackAccount: 1
 

+ 95 - 0
fs-service/src/main/resources/mapper/store/FsStoreActivityMapper.xml

@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.store.mapper.FsStoreActivityMapper">
+
+    <resultMap type="FsStoreActivity" id="FsStoreActivityResult">
+        <result property="activityId"    column="activity_id"    />
+        <result property="title"    column="title"    />
+        <result property="descs"    column="descs"    />
+        <result property="logoUrl"    column="logo_url"    />
+        <result property="images"    column="images"    />
+        <result property="productIds"    column="product_ids"    />
+        <result property="content"    column="content"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="status"    column="status"    />
+        <result property="shareNumber"    column="share_number"    />
+    </resultMap>
+
+    <sql id="selectFsStoreActivityVo">
+        select activity_id, title, descs, logo_url, images, product_ids, content, create_time, status,share_number from fs_store_activity
+    </sql>
+
+    <select id="selectFsStoreActivityList" parameterType="FsStoreActivity" resultMap="FsStoreActivityResult">
+        <include refid="selectFsStoreActivityVo"/>
+        <where>
+            <if test="title != null  and title != ''"> and title = #{title}</if>
+            <if test="logoUrl != null  and logoUrl != ''"> and logo_url = #{logoUrl}</if>
+            <if test="images != null  and images != ''"> and images = #{images}</if>
+            <if test="productIds != null  and productIds != ''"> and product_ids = #{productIds}</if>
+            <if test="content != null  and content != ''"> and content = #{content}</if>
+            <if test="status != null "> and status = #{status}</if>
+        </where>
+        order by activity_id desc
+    </select>
+
+    <select id="selectFsStoreActivityById" parameterType="Long" resultMap="FsStoreActivityResult">
+        <include refid="selectFsStoreActivityVo"/>
+        where activity_id = #{activityId}
+    </select>
+
+    <insert id="insertFsStoreActivity" parameterType="FsStoreActivity" useGeneratedKeys="true" keyProperty="activityId">
+        insert into fs_store_activity
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="title != null">title,</if>
+            <if test="descs != null">descs,</if>
+            <if test="logoUrl != null">logo_url,</if>
+            <if test="images != null">images,</if>
+            <if test="productIds != null">product_ids,</if>
+            <if test="content != null">content,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="status != null">status,</if>
+            <if test="shareNumber != null">share_number,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="title != null">#{title},</if>
+            <if test="descs != null">#{descs},</if>
+            <if test="logoUrl != null">#{logoUrl},</if>
+            <if test="images != null">#{images},</if>
+            <if test="productIds != null">#{productIds},</if>
+            <if test="content != null">#{content},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="status != null">#{status},</if>
+            <if test="shareNumber != null">#{shareNumber},</if>
+         </trim>
+    </insert>
+
+    <update id="updateFsStoreActivity" parameterType="FsStoreActivity">
+        update fs_store_activity
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="title != null">title = #{title},</if>
+            <if test="descs != null">descs = #{descs},</if>
+            <if test="logoUrl != null">logo_url = #{logoUrl},</if>
+            <if test="images != null">images = #{images},</if>
+            <if test="productIds != null">product_ids = #{productIds},</if>
+            <if test="content != null">content = #{content},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="status != null">status = #{status},</if>
+            <if test="shareNumber != null">share_number = #{shareNumber},</if>
+        </trim>
+        where activity_id = #{activityId}
+    </update>
+
+    <delete id="deleteFsStoreActivityById" parameterType="Long">
+        delete from fs_store_activity where activity_id = #{activityId}
+    </delete>
+
+    <delete id="deleteFsStoreActivityByIds" parameterType="String">
+        delete from fs_store_activity where activity_id in
+        <foreach item="activityId" collection="array" open="(" separator="," close=")">
+            #{activityId}
+        </foreach>
+    </delete>
+
+</mapper>

+ 63 - 0
fs-user-app/src/main/java/com/fs/app/controller/StoreActivityController.java

@@ -0,0 +1,63 @@
+package com.fs.app.controller;
+
+
+import com.fs.common.core.domain.R;
+import com.fs.common.utils.StringUtils;
+import com.fs.his.domain.FsPackage;
+import com.fs.his.service.IFsPackageService;
+import com.fs.store.domain.FsStoreActivity;
+import com.fs.store.service.IFsStoreActivityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+
+@Api("活动接口")
+@RestController
+@RequestMapping(value="/app/activity")
+public class StoreActivityController extends  AppBaseController {
+
+    @Autowired
+    private IFsStoreActivityService activityService;
+
+    @Autowired
+    private IFsPackageService packageService;
+
+    @ApiOperation("获取活动")
+    @GetMapping("/getStoreActivity")
+    public R getStoreActivity( HttpServletRequest request){
+        FsStoreActivity activity=activityService.selectFsStoreActivityByTop();
+        return R.ok().put("activity",activity);
+    }
+
+
+    @ApiOperation("获取活动详情")
+    @GetMapping("/getStoreActivityDetails")
+    public R getStoreActivityDetails(@RequestParam(value = "activityId")Long activityId, HttpServletRequest request){
+        FsStoreActivity activity=activityService.selectFsStoreActivityById(activityId);
+        List<FsPackage> products =new ArrayList<>();
+        String productIds = activity.getProductIds();
+        if(StringUtils.isNotBlank(productIds)){
+            Long[] list = Arrays.stream(productIds.split(","))
+                    .map(Long::valueOf)
+                    .toArray(Long[]::new);
+            products = packageService.selectFsPackageListByIds(list);
+        }
+        return R.ok().put("activity",activity).put("products",products);
+    }
+    @ApiOperation("分享")
+    @PostMapping("/share")
+    public R share(@RequestParam(value = "activityId")Long activityId, HttpServletRequest request){
+        activityService.addShare(activityId);
+        return R.ok();
+    }
+
+
+
+}

+ 16 - 0
fs-user-app/src/main/java/com/fs/app/controller/store/H5ScrmController.java

@@ -7,6 +7,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
 @Controller
@@ -31,6 +32,21 @@ public class H5ScrmController
         //return R.ok().put("userAgreement", config.getUserRegister());
         return mv;
     }
+    @GetMapping("/userAgreementNew")
+    @ResponseBody
+    public String userAgreementNew(){
+        String json=configService.selectConfigByKey("store.agreement");
+        AgreementConfig config= JSONUtil.toBean(json, AgreementConfig.class);
+        return config.getUserAgreement();
+    }
+    @GetMapping("/privacyPolicyNew")
+    @ResponseBody
+    public String privacyPolicyNew( )
+    {
+        String json=configService.selectConfigByKey("store.agreement");
+        AgreementConfig config= JSONUtil.toBean(json, AgreementConfig.class);
+        return config.getPrivacyPolicy();
+    }
     @GetMapping("/privacyPolicy")
     public ModelAndView privacyPolicy( )
     {