فهرست منبع

Merge remote-tracking branch 'origin/ScrmStores' into ScrmStores

xw 3 روز پیش
والد
کامیت
a9fda3c00e

+ 1 - 1
fs-common/src/main/java/com/fs/common/utils/txocr/TxOcrClient.java

@@ -178,7 +178,7 @@ public class TxOcrClient  {
                 result.setBusinessStr(business);
                 result.setKeywords(YPLS);
                 result.setFlag(business.contains(YPLS));
-                result.setMessage(result.getFlag()?"包含":"不包含");
+                result.setMessage(result.getFlag()?"包含"+YPLS:"不包含"+YPLS);
                 result.setPerson(resp.getPerson());
                 result.setRegNum(resp.getRegNum());
                 result.setAddress(resp.getAddress());

+ 3 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyDivItem.java

@@ -51,5 +51,8 @@ public class CompanyDivItem extends BaseEntity{
     @Excel(name = "是否退款 0否 1是")
     private Integer isRefund;
 
+    /** 延迟交易状态: (实时分账 null) 0:未确认 1:已确认 */
+    @Excel(name = "是否退款 0否 1是")
+    private Integer delayStatus;
 
 }

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

@@ -893,7 +893,7 @@ public class FsStorePaymentScrmServiceImpl implements IFsStorePaymentScrmService
         o.setAppId(param.getAppId());
         //公司分账
         try {
-            HuiFuUtils.doDiv(o, company.getCompanyId());
+            HuiFuUtils.doDiv(o,company.getCompanyId());
             //存储分账明细
             HuiFuUtils.saveDivItem(o, storePayment.getPayCode(), storePayment.getPayCode());
         } catch (Exception e) {

+ 3 - 1
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreProductScrmServiceImpl.java

@@ -514,7 +514,9 @@ public class FsStoreProductScrmServiceImpl implements IFsStoreProductScrmService
 //            handleProductAttributes(param, product, storeId);
         } else{
             //新添加的商品默认都应该不是上架状态,流程都是需要先审核。即使你新增时候选择了上架状态,也应该是上架并待审核才对。
-            product.setIsShow(0);
+            if(product.getIsShow() == 1){
+                product.setIsAudit("0");
+            }
             fsStoreProductMapper.insertFsStoreProduct(product);
         }
         storeAuditLogUtil.addOperLog(product.getProductId());

+ 48 - 14
fs-service/src/main/java/com/fs/huifuPay/sdk/opps/core/utils/HuiFuUtils.java

@@ -11,10 +11,8 @@ import com.fs.company.service.ICompanyDivConfigService;
 import com.fs.company.service.ICompanyDivItemService;
 import com.fs.company.service.impl.CompanyDivConfigServiceImpl;
 import com.fs.company.vo.CompanyDivConfigVo;
-import com.fs.his.domain.FsPackageOrder;
-import com.fs.his.domain.FsPayConfig;
-import com.fs.his.domain.FsStoreOrder;
-import com.fs.his.domain.FsStorePayment;
+import com.fs.his.domain.*;
+import com.fs.his.mapper.FsHfpayConfigMapper;
 import com.fs.huifuPay.domain.HuiFuCreateOrder;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
@@ -32,32 +30,48 @@ public class HuiFuUtils {
     private static ICompanyDivItemService companyDivItemService = SpringUtils.getBean(ICompanyDivItemService.class);
 
     /**
-     *  处理分账
+     * 处理分账
+     *
      * @param huiFuCreateOrder
      * @param companyId
      */
     public static void doDiv(HuiFuCreateOrder huiFuCreateOrder, Long companyId) throws Exception {
         //默认汇付账户
-        SysConfigMapper sysConfigMapper= SpringUtils.getBean(SysConfigMapper.class);
+        SysConfigMapper sysConfigMapper = SpringUtils.getBean(SysConfigMapper.class);
         SysConfig sysConfig = sysConfigMapper.selectConfigByConfigKey("his.pay");
         FsPayConfig fsPayConfig = new Gson().fromJson(sysConfig.getConfigValue(), FsPayConfig.class);
+
+        // 根据appId动态获取主商户号
         String defaultHuifuId = fsPayConfig.getHuifuId();
+        if (StringUtils.isNotBlank(huiFuCreateOrder.getAppId())) {
+            // 如果有appId,查询对应的汇付支付配置
+            FsHfpayConfigMapper fsHfpayConfigMapper = SpringUtils.getBean(FsHfpayConfigMapper.class);
+            FsHfpayConfig fsHfpayConfig = fsHfpayConfigMapper.selectByAppId(huiFuCreateOrder.getAppId());
+            if (fsHfpayConfig != null && StringUtils.isNotBlank(fsHfpayConfig.getHuifuId())) {
+                defaultHuifuId = fsHfpayConfig.getHuifuId();
+            }
+        }
+
+        if ("6666000184032670".equals(defaultHuifuId)) {
+            return;
+        }
+
         //查询是否开启分账
-        if (companyId !=null){
+        if (companyId != null) {
 
             CompanyDivConfigVo configVo = companyDivConfigService.selectCompanyDivConfigByCompanyId(companyId);
-            if (configVo != null){
+            if (configVo != null) {
                 Integer divFlag = configVo.getDivFlag();
-                if (divFlag != null && divFlag == 1){
+                if (divFlag != null && divFlag == 1) {
                     //开启分账
                     //汇付传参
                     Map<String, Object> acctSplitBunchMap = new HashMap<>();
-                    List<Map<String,Object>> acctInfos = new ArrayList();
+                    List<Map<String, Object>> acctInfos = new ArrayList();
                     List<CompanyAcctInfo> acctInfoVos = configVo.getAcctInfos();
-                    if (acctInfoVos != null && !acctInfoVos.isEmpty()){
+                    if (acctInfoVos != null && !acctInfoVos.isEmpty()) {
                         String delayAcctFlag = configVo.getDelayAcctFlag();
                         String percentageFlag = configVo.getPercentageFlag();
-                        if (StringUtils.isNotBlank(delayAcctFlag) && delayAcctFlag.equals("N")){
+                        if (StringUtils.isNotBlank(delayAcctFlag) && delayAcctFlag.equals("N")) {
                             //实时分账
                             if (StringUtils.isNotBlank(percentageFlag) && percentageFlag.equals("Y")){
                                 acctSplitBunchMap.put("percentage_flag","Y");
@@ -90,6 +104,13 @@ public class HuiFuUtils {
                                     defaultAccount.put("percentage_div", String.format("%.2f", 100f - total));
                                     defaultAccount.put("huifu_id", defaultHuifuId);
                                     acctInfos.add(defaultAccount);
+                                } else {
+                                    // 即使没有其他分账接收方,也要包含主商户号,分账比例为0
+                                    acctInfos = new ArrayList<>();
+                                    Map<String, Object> defaultAccount = new HashMap<>();
+                                    defaultAccount.put("percentage_div", "0.00");
+                                    defaultAccount.put("huifu_id", defaultHuifuId);
+                                    acctInfos.add(defaultAccount);
                                 }
 
 
@@ -126,6 +147,13 @@ public class HuiFuUtils {
                                         defaultAccount.put("huifu_id", defaultHuifuId);
                                         acctInfos.add(defaultAccount);
                                     }
+                                } else {
+                                    // 即使没有其他分账接收方,也要包含主商户号,分账金额为0
+                                    acctInfos = new ArrayList<>();
+                                    Map<String, Object> defaultAccount = new HashMap<>();
+                                    defaultAccount.put("div_amt", "0.00");
+                                    defaultAccount.put("huifu_id", defaultHuifuId);
+                                    acctInfos.add(defaultAccount);
                                 }
 
                             }
@@ -148,12 +176,18 @@ public class HuiFuUtils {
 
     public static void saveDivItem(HuiFuCreateOrder o, String orderCode, String payCode) {
         CompanyDivItem companyDivItem = new CompanyDivItem();
-        if (StringUtils.isNotBlank(o.getAcctSplitBunch())){
+        if (StringUtils.isNotBlank(o.getAcctSplitBunch())) {
             companyDivItem.setOrderCode(orderCode);
             companyDivItem.setPayCode(payCode);
             companyDivItem.setDetail(o.getAcctSplitBunch());
             companyDivItem.setIsRefund(0); //支付
-            companyDivItem.setIsDelay(0); //延迟分账
+            if (StringUtils.isNotBlank(o.getDelayAcctFlag()) && o.getDelayAcctFlag().equals("Y")) {
+                companyDivItem.setIsDelay(1); //延迟分账
+
+            } else {
+                companyDivItem.setIsDelay(0);
+                companyDivItem.setDelayStatus(0);
+            }
             companyDivItemService.insertCompanyDivItem(companyDivItem);
         }
     }

+ 3 - 2
fs-service/src/main/resources/mapper/company/CompanyDivConfigMapper.xml

@@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectCompanyDivConfigByCompanyId" parameterType="Long" resultMap="CompanyDivConfigResult">
         <include refid="selectCompanyDivConfigVo"/>
         where company_id = #{companyId}
+        limit 1
     </select>
 
     <insert id="insertCompanyDivConfig" parameterType="CompanyDivConfig">
@@ -49,7 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="acctInfos != null">acct_infos,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="companyId != null">#{companyId},</if>
             <if test="companyName != null and companyName != ''">#{companyName},</if>
@@ -60,7 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="acctInfos != null">#{acctInfos},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
-         </trim>
+        </trim>
     </insert>
 
     <update id="updateCompanyDivConfig" parameterType="CompanyDivConfig">

+ 11 - 6
fs-service/src/main/resources/mapper/company/CompanyDivItemMapper.xml

@@ -1,12 +1,12 @@
 <?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">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.fs.company.mapper.CompanyDivItemMapper">
 
     <resultMap type="CompanyDivItem" id="CompanyDivItemResult">
         <result property="id"    column="id"    />
-<!--        <result property="orderId"    column="order_id"    />-->
+        <!--        <result property="orderId"    column="order_id"    />-->
         <result property="orderCode"    column="order_code"    />
         <result property="payCode"    column="pay_code"    />
         <result property="detail"    column="detail"    />
@@ -19,7 +19,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectCompanyDivItemVo">
-        select id, order_code, pay_code, detail,refund_detail,is_pay, is_delay, is_refund, create_time, update_time from company_div_item
+        select id, order_code, pay_code, detail,refund_detail,is_pay, is_delay, is_refund, create_time, update_time,delay_status from company_div_item
     </sql>
 
     <select id="selectCompanyDivItemList" parameterType="CompanyDivItem" resultMap="CompanyDivItemResult">
@@ -32,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isPay != null "> and is_pay = #{isPay}</if>
             <if test="isDelay != null "> and is_delay = #{isDelay}</if>
             <if test="isRefund != null "> and is_refund = #{isRefund}</if>
+            <if test="delayStatus != null "> and (delay_status = #{delayStatus} or delay_status is null)</if>
         </where>
         order by id desc
     </select>
@@ -61,7 +62,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isRefund != null">is_refund,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
-         </trim>
+            <if test="delayStatus != null">delay_status,</if>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="orderCode != null and orderCode != ''">#{orderCode},</if>
             <if test="payCode != null and payCode != ''">#{payCode},</if>
@@ -72,7 +74,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isRefund != null">#{isRefund},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
-         </trim>
+            <if test="updateTime != null">#{updateTime},</if>
+            <if test="delayStatus != null">#{delayStatus},</if>
+        </trim>
     </insert>
 
     <update id="updateCompanyDivItem" parameterType="CompanyDivItem">
@@ -87,6 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="isRefund != null">is_refund = #{isRefund},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
+            <if test="delayStatus != null">update_time = #{delayStatus},</if>
         </trim>
         where id = #{id}
     </update>

+ 10 - 3
fs-user-app/src/main/java/com/fs/app/controller/store/ProductScrmController.java

@@ -83,6 +83,7 @@ public class ProductScrmController extends AppBaseController {
             param.setStoreId(storeId);
             param.setIsDrug(isDrug);
             List<FsStoreProductCategoryScrm> list=categoryService.selectFsStoreProductCategoryListQuery(param);
+            list = dataSplit(isDrug, list);
             return R.ok().put("data",list);
         } catch (Exception e){
             return R.error("操作异常");
@@ -99,9 +100,7 @@ public class ProductScrmController extends AppBaseController {
             param.setIsDrug(isDrug);
             param.setStoreId(storeId);
             List<FsStoreProductCategoryScrm> list=categoryService.selectFsStoreProductCategoryListQuery(param);
-            if(param.getIsDrug() != null && param.getIsDrug() == 1){
-                list = list.stream().filter(item -> item.getCateName().equals("甲类非处方") || item.getCateName().equals("乙类非处方")).collect(Collectors.toList());
-            }
+            list = dataSplit(isDrug, list);
             return R.ok().put("data",list);
         } catch (Exception e){
             return R.error("操作异常");
@@ -379,4 +378,12 @@ public class ProductScrmController extends AppBaseController {
         param.setUserId(userId);
         return productService.instructionsViewable(param);
     }
+
+    //分类数据拆分
+    public List<FsStoreProductCategoryScrm> dataSplit(Integer isDrug,List<FsStoreProductCategoryScrm> list){
+        if(isDrug != null && isDrug == 1){
+            return list.stream().filter(item -> !item.getCateName().equals("活动专区") && !item.getCateName().equals("中药饮品")&& !item.getCateName().equals("保健食品")).collect(Collectors.toList());
+        }
+        return list;
+    }
 }