935090232@qq.com
2021-04-14 95f9ea7eb339c36cade6c67d0385c49ec2d81477
zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java
New file
@@ -0,0 +1,164 @@
package com.matrix.system.fenxiao.action;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.matrix.system.hive.dao.SysVipInfoDao;
import com.matrix.core.constance.MatrixConstance;
import com.matrix.core.pojo.AjaxResult;
import com.matrix.core.pojo.PaginationVO;
import com.matrix.core.tools.WebUtil;
import com.matrix.system.common.bean.BusParameterSettings;
import com.matrix.system.common.bean.SysUsers;
import com.matrix.system.common.constance.AppConstance;
import com.matrix.system.common.dao.BusParameterSettingsDao;
import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant;
import com.matrix.system.fenxiao.service.FenXiaoSettingService;
import com.matrix.system.fenxiao.vo.FenXiaoSettingVo;
import com.matrix.system.hive.action.util.QueryUtil;
import com.matrix.system.hive.dao.ShoppingGoodsDao;
import com.matrix.system.shopXcx.bean.ShopProduct;
import com.matrix.system.shopXcx.dao.ShopProductDao;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@RestController
@RequestMapping(value = "/fenXiao/ruleSetting")
public class FenXiaoSettingAction {
   @Autowired
    private FenXiaoSettingService fenXiaoSettingService;
    @Autowired
    private BusParameterSettingsDao busParameterSettingsDao;
    @Autowired
    private ShoppingGoodsDao shoppingGoodsDao;
    @Autowired
    private SysVipInfoDao sysVipInfoDao;
    @Autowired
    private ShopProductDao shopProductDao;
   /**
     *查询分销配置
     */
    @RequestMapping(value = "/selectFenXiaoSetting")
    public AjaxResult selectFenXiaoSetting() {
       AjaxResult result= AjaxResult.buildSuccessInstance("查询成功");
       SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY);
       Long companyId = user.getCompanyId();
       //分销开关
       String[] FXKGCode={FenxiaoSettingConstant.FX_SWITCH};
       String[] FXKGName={"分销开关"};
       List<FenXiaoSettingVo> fxkgRuleSettingsVo = getRuleSettingsVo(FXKGCode,FXKGName,companyId);
       result.putInMap("fxkg", fxkgRuleSettingsVo);
       //自购返佣
       String[] ZGFYCode={FenxiaoSettingConstant.FX_ZGFY};
       String[] ZGFYName={"自购返佣"};
       List<FenXiaoSettingVo> zgfyRuleSettingsVo = getRuleSettingsVo(ZGFYCode,ZGFYName,companyId);
       result.putInMap("zgfy", zgfyRuleSettingsVo);
       //分销模式
       String[] FXMSCode={FenxiaoSettingConstant.FX_MODEL};
       String[] FXMSName={"分销模式"};
       List<FenXiaoSettingVo> fxmsRuleSettingsVo = getRuleSettingsVo(FXMSCode,FXMSName,companyId);
       result.putInMap("fxms", fxmsRuleSettingsVo);
       //申请方式
       String[] sqfsCode={FenxiaoSettingConstant.FX_APPLY_WAY};
       String[] sqfsName={"申请方式"};
       List<FenXiaoSettingVo> sqfsRuleSettingsVo = getRuleSettingsVo(sqfsCode,sqfsName,companyId);
       result.putInMap("sqfs", sqfsRuleSettingsVo);
       //审核方式
       String[] shfsCode={FenxiaoSettingConstant.FX_AUDIT_METHOD};
       String[] shfsName={"审核方式"};
       List<FenXiaoSettingVo> shfsRuleSettingsVo = getRuleSettingsVo(shfsCode,shfsName,companyId);
       result.putInMap("shfs", shfsRuleSettingsVo);
       //申请条件
       String[] sqtjCode={FenxiaoSettingConstant.FX_APPLY_CONDITION};
       String[] sqtjName={"申请条件"};
       List<FenXiaoSettingVo> sqtjRuleSettingsVo = getRuleSettingsVo(sqtjCode,sqtjName,companyId);
       result.putInMap("sqtj", sqtjRuleSettingsVo);
       if(CollUtil.isNotEmpty(sqtjRuleSettingsVo)){
          for(FenXiaoSettingVo fenXiaoSettingVo : sqtjRuleSettingsVo) {
             //选择申请条件条件3时,获得选中产品集合
             if(FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP.equals(fenXiaoSettingVo.getParamValue())) {
                String paramValue1 = fenXiaoSettingVo.getParamValue1();
                if(StrUtil.isNotEmpty(paramValue1)) {
                   List<Integer> idsList = new ArrayList<>();
                   List<String> idsStringList = Arrays.asList(paramValue1.split(","));
                   if(CollUtil.isNotEmpty(idsStringList)){
                      for(String string : idsStringList) {
                         Integer parseInt = Integer.parseInt(string);
                         idsList.add(parseInt);
                      }
                   }
                   //List<ShoppingGoods> list = shoppingGoodsDao.selectByIds(idsList);
                       List<ShopProduct> shopProducts = shopProductDao.selectByIds(idsList);
                       result.putInMap("order", shopProducts);
                }
             }else{
                   List<ShopProduct> shopProducts = new ArrayList<>();
                   result.putInMap("order", shopProducts);
               }
          }
       }
       return result;
    }
    /**
     * 列表显示
     */
    @RequestMapping(value = "/selectProduct")
    public @ResponseBody
       AjaxResult selectProduct(ShopProduct shopProduct, PaginationVO pageVo) {
       QueryUtil.setQueryLimitCom(shopProduct);
      pageVo.setSort("createTime");
      pageVo.setOrder("desc");
      shopProduct.setDelFlag(AppConstance.DATA_USEABLE);
      shopProduct.setCompanyId(shopProduct.getCompanyId());
      List<ShopProduct> dataList = shopProductDao.selectInPage(shopProduct, pageVo);
      AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, dataList,
            shopProductDao.selectTotalRecord(shopProduct));
      return result;
    }
    /**
     *获取对应的规则设置数据
     * @param ArrayCode
     * @param ArrayName
     * @param companyId
     * @return
     */
    private List<FenXiaoSettingVo> getRuleSettingsVo(String[] ArrayCode,String[] ArrayName,Long companyId){
       List<BusParameterSettings> dataList = busParameterSettingsDao.selectByCodesAndCompanyId(Arrays.asList(ArrayCode), companyId);
        List<FenXiaoSettingVo> scoreRuleSettingsVos=new ArrayList<FenXiaoSettingVo>();
        int index=0;
        for (BusParameterSettings item:dataList){
           FenXiaoSettingVo paramVo=new FenXiaoSettingVo();
            BeanUtils.copyProperties(item,paramVo);
            paramVo.setParamName(ArrayName[index]);
            scoreRuleSettingsVos.add(paramVo);
            index++;
        }
        return scoreRuleSettingsVos;
    }
    /**
     * 修改公司维度的分销规则
     */
    @PostMapping(value = "/updateFenXiaoSetting")
    public @ResponseBody
    AjaxResult updateFenXiaoSetting(@RequestBody List<BusParameterSettings> busParameterSettings) {
        return fenXiaoSettingService.updateFenXiaoSettingByCompanyId(busParameterSettings);
    }
}