Sfoglia il codice sorgente

商城套餐购买赠送积分,userapp获取小程序图标商城商品根据sort排序

ct 4 giorni fa
parent
commit
d66dc19aca

+ 14 - 1
fs-service/src/main/java/com/fs/hisStore/domain/FsStoreProductPackageScrm.java

@@ -9,7 +9,7 @@ import com.fs.hisStore.dto.StoreOrderProductDTO;
 
 /**
  * 商品组合套餐对象 fs_store_product_package
- * 
+ *
  * @author fs
  * @date 2022-07-14
  */
@@ -66,6 +66,11 @@ public class FsStoreProductPackageScrm extends BaseEntity
 
     private Integer status;
 
+
+
+    //套餐赠送积分
+    private Integer integral;
+
     List<StoreOrderProductDTO> productList;
 
     public Integer getStatus() {
@@ -211,4 +216,12 @@ public class FsStoreProductPackageScrm extends BaseEntity
     public void setProducts(String products) {
         this.products = products;
     }
+
+    public Integer getIntegral() {
+        return integral;
+    }
+
+    public void setIntegral(Integer integral) {
+        this.integral = integral;
+    }
 }

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

@@ -209,7 +209,7 @@ public interface FsStoreProductScrmMapper
             "        </foreach>\n" +
             "    </if>"+
             "<if test = 'maps.defaultOrder != null and maps.defaultOrder==\"desc\"  '> " +
-            "order by p.sort desc,product_id desc" +
+            "order by p.sort asc,product_id desc" +
             "</if>" +
             "<if test = 'maps.priceOrder != null and maps.priceOrder==\"desc\"   '> " +
             "order by p.price desc " +

+ 58 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreOrderScrmServiceImpl.java

@@ -21,6 +21,7 @@ import com.fs.api.vo.ProductListVO;
 import com.fs.common.config.FSSysConfig;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
+import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.event.TemplateBean;
 import com.fs.common.event.TemplateEvent;
@@ -62,9 +63,12 @@ import com.fs.his.dto.FsStoreOrderAmountScrmStatsQueryDto;
 import com.fs.his.dto.FsStoreOrderItemDTO;
 import com.fs.his.enums.FsStoreOrderLogEnum;
 import com.fs.his.enums.FsStoreOrderStatusEnum;
+import com.fs.his.enums.FsUserIntegralLogTypeEnum;
 import com.fs.his.mapper.*;
 import com.fs.his.param.FsStoreOrderSalesParam;
+import com.fs.his.param.FsUserAddIntegralTemplateParam;
 import com.fs.his.service.IFsPrescribeService;
+import com.fs.his.service.IFsUserIntegralLogsService;
 import com.fs.his.service.IFsUserWatchService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.vo.FsInquiryOrderVO;
@@ -104,6 +108,7 @@ import com.fs.hisStore.domain.*;
 import com.fs.hisStore.enums.*;
 import com.fs.hisStore.service.*;
 import com.fs.system.service.ISysConfigService;
+import com.fs.system.service.ISysDictTypeService;
 import com.fs.wx.miniapp.config.WxMaProperties;
 import com.fs.wx.order.domain.FsWxExpressTask;
 import com.fs.wx.order.dto.*;
@@ -379,6 +384,13 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
     @Autowired
     private IFsStoreCartScrmService fsStoreCartScrmService;
 
+    @Autowired
+    private ISysDictTypeService sysDictTypeService;
+    @Autowired
+    private IFsUserIntegralLogsService userIntegralLogsService;
+    @Autowired
+    private FsStoreProductPackageScrmMapper fsStoreProductPackageMapper;
+
     @PostConstruct
     public void initErpServiceMap() {
         erpServiceMap = new HashMap<>();
@@ -1820,6 +1832,13 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                     companyService.addCompanyMoney(order);
                 }
             }
+            //套餐包赠送积分
+            try {
+                sendIntegral(order);
+            } catch (Exception e) {
+                log.error("赠送积分错误:{},订单号:{}", e.getMessage(), order.getOrderCode());
+            }
+
 
             FsErpConfig erpConfig = configUtil.getErpConfig();
             Integer erpType = erpConfig.getErpType();
@@ -1859,6 +1878,43 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
         }
     }
 
+    /**
+     * 套餐包赠送积分
+     * @param order
+     */
+    private void sendIntegral(FsStoreOrderScrm order) {
+        //如果是套餐包赠送积分
+        Integer orderCreateType = order.getOrderCreateType();
+        Long packageId = order.getPackageId();
+        if (orderCreateType != null && order.getUserId() != null && packageId !=null) {
+            List<SysDictData> sysDictData = sysDictTypeService.selectDictDataByType("store_order_create_type");
+            if (sysDictData != null && !sysDictData.isEmpty()){
+                String dictValue = "";
+                for (SysDictData dictData : sysDictData) {
+                    String dictLabel = dictData.getDictLabel();
+                    if (StringUtils.isNotBlank(dictLabel) && "套餐".equals(dictLabel)){
+                        dictValue = dictData.getDictValue();
+                        break;
+                    }
+                    if (StringUtils.isNotBlank(dictValue)){
+                        //查询套餐赠送积分
+                        FsStoreProductPackageScrm fsStoreProductPackage = fsStoreProductPackageMapper.selectFsStoreProductPackageById(packageId);
+                        if (fsStoreProductPackage != null && fsStoreProductPackage.getIntegral() != null && fsStoreProductPackage.getIntegral()>0){
+                            //赠送积分
+                            FsUserAddIntegralTemplateParam integralTemplateParam = new FsUserAddIntegralTemplateParam();
+                            integralTemplateParam.setUserId(order.getUserId());
+                            integralTemplateParam.setLogType(FsUserIntegralLogTypeEnum.TYPE_2.getValue()); //消费获取积分
+                            integralTemplateParam.setBusinessId(order.getId().toString());
+                            integralTemplateParam.setPoints(fsStoreProductPackage.getIntegral());
+                            userIntegralLogsService.addIntegralTemplate(integralTemplateParam);
+                        }
+
+                    }
+                }
+            }
+        }
+    }
+
     @Override
     public BigDecimal selectFsStoreOrderByPayPriceCount(FsStoreOrderStatisticsParam param) {
         return fsStoreOrderMapper.selectFsStoreOrderByPayPriceCount(param);
@@ -2452,6 +2508,8 @@ public class FsStoreOrderScrmServiceImpl implements IFsStoreOrderScrmService {
                 }
             }
         }
+        //退积分 todo
+
         orderStatusService.create(order.getId(), OrderLogEnum.REFUND_ORDER_SUCCESS.getValue(),
                 OrderLogEnum.REFUND_ORDER_SUCCESS.getDesc());
         if (order.getTuiUserId() != null && order.getTuiUserId() > 0) {

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsStoreProductPacketVO.java

@@ -71,6 +71,9 @@ public class FsStoreProductPacketVO implements Serializable
     @Excel(name = "状态", dictType = "common_status")
     private Integer status;
 
+    @Excel(name = "赠送积分")
+    private Integer integral;
+
     List<StoreOrderProductDTO> productList;
 
 }

+ 6 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreProductPackageScrmMapper.xml

@@ -20,10 +20,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="cateId"    column="cate_id"    />
         <result property="sort"    column="sort"    />
         <result property="status"    column="status"    />
+        <result property="integral"    column="integral"    />
     </resultMap>
 
     <sql id="selectFsStoreProductPackageVo">
-        select package_id, title, descs, content, img_url,images, products, money, pay_money, company_id, dept_id,pay_type,limit_count,cate_id,sort,status from fs_store_product_package_scrm
+        select package_id, title, descs, content, img_url,images, products, money, pay_money, company_id,
+               dept_id,pay_type,limit_count,cate_id,sort,status,integral from fs_store_product_package_scrm
     </sql>
 
     <select id="selectFsStoreProductPackageList" parameterType="FsStoreProductPackageScrm" resultMap="FsStoreProductPackageResult">
@@ -70,6 +72,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="cateId != null">cate_id,</if>
             <if test="sort != null">sort,</if>
             <if test="status != null">status,</if>
+            <if test="integral != null">integral,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="packageId != null">#{packageId},</if>
@@ -88,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="cateId != null">#{cateId},</if>
             <if test="sort != null">#{sort},</if>
             <if test="status != null">#{status},</if>
+            <if test="integral != null">#{integral},</if>
          </trim>
     </insert>
 
@@ -109,6 +113,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="cateId != null">cate_id = #{cateId},</if>
             <if test="sort != null">sort = #{sort},</if>
             <if test="status != null">status = #{status},</if>
+            <if test="integral != null">integral = #{integral},</if>
         </trim>
         where package_id = #{packageId}
     </update>

+ 27 - 1
fs-user-app/src/main/java/com/fs/app/controller/store/IndexScrmController.java

@@ -2,10 +2,14 @@ package com.fs.app.controller.store;
 
 
 import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fs.app.annotation.Login;
 import com.fs.app.controller.AppBaseController;
 import com.fs.app.vo.IndexVO;
 import com.fs.common.core.domain.R;
+import com.fs.course.domain.FsCoursePlaySourceConfig;
+import com.fs.course.service.IFsCoursePlaySourceConfigService;
 import com.fs.his.config.AgreementConfig;
 import com.fs.hisStore.domain.*;
 import com.fs.hisStore.param.*;
@@ -57,13 +61,16 @@ public class IndexScrmController extends AppBaseController {
 	private IFsStoreCanvasScrmService storeCanvasService;
 	@Autowired
 	private ISysConfigService configService;
+	@Autowired
+	private IFsCoursePlaySourceConfigService coursePlaySourceConfigService;
+
 	@ApiOperation("获取首页数据")
 	@GetMapping("/getIndexData")
 	public R getIndexData(HttpServletRequest request){
 		List<FsArticleCateListQueryVO> articleCateList=articleCateService.selectFsArticleCateListQuery();
 		List<FsAdvListQueryVO> advList=advService.selectFsAdvListQuery(1);
 		List<FsStoreProductListQueryVO> newProductList=productService.selectFsStoreProductNewQuery(10);
-		List<FsStoreProductListQueryVO> hotProductList=productService.selectFsStoreProductHotQuery(10);
+		List<FsStoreProductListQueryVO> hotProductList=productService.selectFsStoreProductHotQuery(12);
 		IndexVO vo=IndexVO.builder().articleCateList(articleCateList).advList(advList).newProductList(newProductList).hotProductList(hotProductList).build();
 		return R.ok().put("data", vo);
 	}
@@ -287,5 +294,24 @@ public class IndexScrmController extends AppBaseController {
 		return R.ok().put("data",data);
 	}
 
+	/**
+	 * 获取小程序logo
+	 * @return
+	 */
+	@GetMapping("/getAppInfo")
+	public R getAppInfo(@RequestParam("appId") String appId)
+	{
+		Wrapper<FsCoursePlaySourceConfig> queryWrapper = Wrappers.<FsCoursePlaySourceConfig>lambdaQuery()
+				.eq(FsCoursePlaySourceConfig::getAppid, appId)
+				.eq(FsCoursePlaySourceConfig::getIsDel, 0)
+				.last("limit 1");
+		FsCoursePlaySourceConfig sourceConfig = coursePlaySourceConfigService.getOne(queryWrapper);
+		FsCoursePlaySourceConfig vo = new FsCoursePlaySourceConfig();
+		vo.setAppid(appId);
+		vo.setImg(sourceConfig.getImg());
+		vo.setName(sourceConfig.getName());
+		return R.ok().put("data",vo);
+	}
+
 
 }