From 9974b1fffff1cad712b7c30fb4c708ef45ec4b8c Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Wed, 17 Mar 2021 09:44:03 +0800 Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop --- zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateSetOrderDoneDto.java | 32 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopRevenueFlowDao.java | 6 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html | 54 + zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderListDto.java | 41 + zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml | 107 ++ zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java | 4 zq-erp/src/main/resources/config/xcx/system.properties | 4 zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/RevenueFlowDto.java | 26 zq-erp/src/main/resources/config/prd/system.properties | 4 zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java | 16 zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoOrderAction.java | 94 ++ zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java | 185 +++-- zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java | 17 zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java | 2 zq-erp/src/main/resources/config/system.properties | 4 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html | 665 +++++++++++++++++ zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderBasicDto.java | 14 zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java | 6 zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java | 25 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderDao.java | 13 zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadSetOrderListDtoVo.java | 35 zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderBasicVo.java | 20 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java | 7 zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java | 15 zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java | 47 + zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderV2Dao.xml | 24 zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderListVo.java | 45 + zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java | 1 zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html | 60 - zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java | 40 zq-erp/src/main/resources/config/application.properties | 2 zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java | 24 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadSetOrderListDtoDto.java | 27 zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html | 6 zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/WithdrawalCashDto.java | 20 zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopRevenueFlow.java | 22 zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderV2Dao.java | 19 zq-erp/src/main/resources/config/test/system.properties | 4 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java | 28 zq-erp/src/main/resources/config/dev/system.properties | 4 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java | 6 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java | 4 zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalemanSettlement.java | 13 zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java | 127 +++ zq-erp/src/test/java/com/matrix/JyyTests.java | 47 + zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java | 165 ++++ zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopRevenueFlowDao.xml | 14 zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java | 9 zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml | 24 49 files changed, 1,908 insertions(+), 270 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java b/zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java index daa4513..5b07806 100644 --- a/zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java +++ b/zq-erp/src/main/java/com/matrix/biz/action/BizUserAction.java @@ -5,7 +5,6 @@ import com.matrix.biz.dao.BizUserDao; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.pojo.PaginationVO; -import com.matrix.core.tools.StringUtils; import com.matrix.system.hive.action.util.QueryUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -44,18 +43,6 @@ } - /** - * 批量设置为销售员 - * @param ids - * @param status 1=销售员,0=普通用户 - * @return - */ - @RequestMapping(value = "/setUserSales") - @ResponseBody - public AjaxResult setUserSales(String ids,Integer status){ - List<String> userIds = StringUtils.strToCollToString(ids, ","); - bizUserDao.updateSalesByIds(userIds,status); - return new AjaxResult(AjaxResult.STATUS_SUCCESS,"修改成功"); - } + } diff --git a/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java b/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java index 5af497a..32ab3bb 100644 --- a/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java +++ b/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java @@ -144,7 +144,6 @@ */ public JsApiPayComResData comPay(String desc, String outTradeNo,int totalFee, String openid,Long companyId){ JsApiPayComResData result=null; - //boolean flag=false; try { JsApiPayBusiness jsApiPayBusiness = new JsApiPayBusiness(); // TODO 企业付款 diff --git a/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java b/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java new file mode 100644 index 0000000..d4bb932 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/core/pojo/VerificationResult.java @@ -0,0 +1,47 @@ +package com.matrix.core.pojo; + +import lombok.Data; + +/** + * 通用的验证返回参数 + */ +@Data +public class VerificationResult { + + private boolean judgeResult; + + private String msg; + + private Object info; + + private VerificationResult(){ + + } + + public static VerificationResult buildVerificationResult(boolean judgeResult){ + VerificationResult obj=new VerificationResult(); + obj.judgeResult =judgeResult; + return obj ; + } + + + public static VerificationResult buildVerificationResult(boolean judgeResult,String msg){ + VerificationResult obj=new VerificationResult(); + obj.judgeResult =judgeResult; + obj.msg=msg; + return obj ; + } + + + public static VerificationResult buildVerificationResult(boolean judgeResult,Object info){ + VerificationResult obj=new VerificationResult(); + obj.judgeResult =judgeResult; + obj.info=info; + return obj ; + } + + + + + +} diff --git a/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java b/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java index c2fbc63..60ff28d 100644 --- a/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java +++ b/zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java @@ -1,15 +1,5 @@ package com.matrix.core.tools; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; -import java.util.Random; -import java.util.UUID; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - import com.matrix.core.exception.GlobleException; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; @@ -18,6 +8,11 @@ import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import org.apache.commons.collections.CollectionUtils; + +import java.io.UnsupportedEncodingException; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; /** * 字符串操作类,转换数据类型,切割字符串,对象比较等操作 @@ -404,6 +399,8 @@ return sb.toString(); } + + /** * 用逗号分开的存的id是否包含对应的id 如比较 123,123,124 中是否包含12这个主键 比对的方法是 字符串中是否包含"^12$" * "^12,.*" 或者 ".+,12$" 或者 ".+,12,$" 或者 ".+,12,.+" 字符串 diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoOrderAction.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoOrderAction.java new file mode 100644 index 0000000..46cdaf9 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoOrderAction.java @@ -0,0 +1,94 @@ +package com.matrix.system.fenxiao.action; + +import com.matrix.core.pojo.AjaxResult; +import com.matrix.system.fenxiao.dto.ChangeSaleManGradeDto; +import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderBasicDto; +import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderListDto; +import com.matrix.system.fenxiao.dto.LoadSetOrderListDtoDto; +import com.matrix.system.fenxiao.dto.UpdateSetOrderDoneDto; +import com.matrix.system.fenxiao.service.ShopSalesmanOrderService; +import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderBasicVo; +import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderListVo; +import com.matrix.system.fenxiao.vo.LoadSetOrderListDtoVo; + +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping(value = "/fenXiao/fenXiaoOrder") +public class FenXiaoOrderAction { + + @Autowired + private ShopSalesmanOrderService shopSalesmanOrderService; + + /** + * 分销订单基本信息 + */ + @ApiOperation(value = "分销订单基本信息") + @ApiResponses({ + @ApiResponse(code = 200, message = "OK", response = LoadFenxiaoOrderBasicVo.class) + }) + @PostMapping(value = "/loadFenxiaoOrderBasic") + public @ResponseBody + AjaxResult loadFenxiaoOrderBasic(@RequestBody LoadFenxiaoOrderBasicDto loadFenxiaoOrderBasicDto) { + return shopSalesmanOrderService.loadFenxiaoOrderBasic(loadFenxiaoOrderBasicDto); + } + + /** + * 分销订单 + */ + @ApiOperation(value = "分销订单") + @ApiResponses({ + @ApiResponse(code = 200, message = "OK", response = LoadFenxiaoOrderListVo.class) + }) + @PostMapping(value = "/loadFenxiaoOrderList") + public @ResponseBody + AjaxResult loadFenxiaoOrderList(@RequestBody LoadFenxiaoOrderListDto loadFenxiaoOrderListDto) { + return shopSalesmanOrderService.loadFenxiaoOrderList(loadFenxiaoOrderListDto); + } + + /** + *批量结算分销订单 + */ + @ApiOperation(value = "批量结算分销订单") + @PostMapping(value = "/updateSetOrderDone") + public @ResponseBody + AjaxResult updateSetOrderDone(@RequestBody UpdateSetOrderDoneDto updateSetOrderDoneDto) { + return shopSalesmanOrderService.updateSetOrderDone(updateSetOrderDoneDto); + } + + /** + * 结算记录 + */ + @ApiOperation(value = "分销订单") + @ApiResponses({ + @ApiResponse(code = 200, message = "OK", response = LoadSetOrderListDtoVo.class) + }) + @PostMapping(value = "/loadSetOrderList") + public @ResponseBody + AjaxResult loadSetOrderList(@RequestBody LoadSetOrderListDtoDto loadSetOrderListDto) { + return shopSalesmanOrderService.loadSetOrderList(loadSetOrderListDto); + } + + + + + + + + + + + + + + + + + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java index 3ab2680..98e2f77 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java @@ -1,5 +1,7 @@ package com.matrix.system.fenxiao.action; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.matrix.biz.dao.BizUserDao; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; @@ -10,25 +12,15 @@ 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.bean.ShoppingGoods; +import com.matrix.system.hive.dao.ShoppingGoodsDao; +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; - -import com.matrix.system.hive.bean.ShoppingGoods; -import com.matrix.system.hive.dao.ShoppingGoodsDao; - -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.StrUtil; - -import org.apache.commons.collections.CollectionUtils; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping(value = "/fenXiao/ruleSetting") @@ -83,7 +75,8 @@ result.putInMap("sqtj", sqtjRuleSettingsVo); if(CollUtil.isNotEmpty(sqtjRuleSettingsVo)){ for(FenXiaoSettingVo fenXiaoSettingVo : sqtjRuleSettingsVo) { - if("3".equals(fenXiaoSettingVo.getParamValue())) { + //选择申请条件条件3时,获得选中产品集合 + if(FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP.equals(fenXiaoSettingVo.getParamValue())) { String paramValue1 = fenXiaoSettingVo.getParamValue1(); if(StrUtil.isNotEmpty(paramValue1)) { List<Integer> idsList = new ArrayList<>(); diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java index f0fe454..f7ef70f 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java @@ -298,11 +298,11 @@ AjaxResult addSaleManApply(@RequestBody AddSaleManApplyDto addSaleManApplyDto) { String gradeId = addSaleManApplyDto.getGradeId(); if(StrUtil.isBlankOrUndefined(gradeId)) { - return AjaxResult.buildSuccessInstance("请选择分销等级"); + return AjaxResult.buildFailInstance("请选择分销等级"); } ShopSalesmanGrade selectById = shopSalesmanGradeDao.selectById(Long.parseLong(gradeId)); if(ObjectUtil.isEmpty(selectById)) { - return AjaxResult.buildSuccessInstance("请选择分销等级"); + return AjaxResult.buildFailInstance("请选择分销等级"); } //设置用户公司ID diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java index 194c31b..4faf796 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/constant/FenxiaoSettingConstant.java @@ -22,6 +22,22 @@ */ public final static String FX_APPLY_CONDITION = "FX_APPLY_CONDITION"; /** + * 申请条件 1 无条件 + */ + public final static String FX_APPLY_CONDITION_WTJ = "1"; + /** + * 申请条件 1 消费任意产品 + */ + public final static String FX_APPLY_CONDITION_XFRYCP = "2"; + /** + * 申请条件 1 消费指定产品 + */ + public final static String FX_APPLY_CONDITION_XFZDCP = "3"; + /** + * 申请条件 1 消费指定金额 + */ + public final static String FX_APPLY_CONDITION_XCZDJE = "4"; + /** * 推广计划 */ public final static String FX_TG_PLAN = "FX_TG_PLAN"; diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopRevenueFlowDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopRevenueFlowDao.java index b01b42f..e4b1d83 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopRevenueFlowDao.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopRevenueFlowDao.java @@ -1,7 +1,12 @@ package com.matrix.system.fenxiao.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.matrix.system.fenxiao.entity.ShopRevenueFlow; +import com.matrix.system.shopXcx.api.dto.RevenueFlowDto; +import com.matrix.system.shopXcx.vo.SalesOrderVo; +import org.apache.ibatis.annotations.Param; /** * @description 收益流水 @@ -10,4 +15,5 @@ */ public interface ShopRevenueFlowDao extends BaseMapper<ShopRevenueFlow> { + IPage<SalesOrderVo> selectRevenuFlowList(Page<SalesOrderVo> page, @Param("record") RevenueFlowDto revenueFlowDto); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderDao.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderDao.java index ac3d1f6..9d64d7a 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderDao.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderDao.java @@ -3,7 +3,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderListDto; +import com.matrix.system.fenxiao.dto.LoadSetOrderListDtoDto; import com.matrix.system.fenxiao.entity.ShopSalesmanOrder; +import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderBasicVo; +import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderListVo; +import com.matrix.system.fenxiao.vo.LoadSetOrderListDtoVo; import com.matrix.system.shopXcx.api.dto.SaleOrderDto; import com.matrix.system.shopXcx.vo.SalesOrderVo; import org.apache.ibatis.annotations.Param; @@ -23,4 +28,12 @@ */ IPage<SalesOrderVo> selectSalesManOrder(Page<SalesOrderVo> page, @Param("record")SaleOrderDto saleOrderDto); + LoadFenxiaoOrderBasicVo selectFenxiaoOrderBasicByCompanyId(@Param("companyId")Long companyId); + + IPage<LoadFenxiaoOrderListVo> findFenxiaoOrderList(Page<LoadFenxiaoOrderListVo> page, + @Param("record")LoadFenxiaoOrderListDto loadFenxiaoOrderListDto); + + IPage<LoadSetOrderListDtoVo> findSetOrderList(Page<LoadSetOrderListDtoVo> page, + @Param("record")LoadSetOrderListDtoDto loadSetOrderListDto); + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java index 4966537..36a5df2 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/FyfaManageDto.java @@ -12,5 +12,11 @@ @ApiModelProperty(hidden = true) private Long companyId; + + @ApiModelProperty(value ="会员OPENID") + private String userId; + + @ApiModelProperty(value ="申请记录ID") + private Long applyId; } diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderBasicDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderBasicDto.java new file mode 100644 index 0000000..80a80fd --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderBasicDto.java @@ -0,0 +1,14 @@ +package com.matrix.system.fenxiao.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "LoadFenxiaoOrderBasicDto", description = "查询参数") +public class LoadFenxiaoOrderBasicDto { + + @ApiModelProperty(hidden = true) + private Long companyId; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderListDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderListDto.java new file mode 100644 index 0000000..006e414 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadFenxiaoOrderListDto.java @@ -0,0 +1,41 @@ +package com.matrix.system.fenxiao.dto; + +import com.matrix.core.pojo.BasePageQueryDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +@Data +@ApiModel(value = "LoadFenxiaoOrderListDto", description = "查询参数") +public class LoadFenxiaoOrderListDto extends BasePageQueryDto { + + @ApiModelProperty(hidden = true) + private Long companyId; + + @ApiModelProperty(value ="订单状态") + private Integer ddType; + + @ApiModelProperty(value ="结算状态") + private Integer orderType; + + @ApiModelProperty(value ="客户名称") + private String userName; + + @ApiModelProperty(value ="推广员名称") + private String tgy; + + @ApiModelProperty(value ="开始时间") + private Date startTime; + + @ApiModelProperty(value ="结束时间") + private Date endTime; + + @ApiModelProperty(value ="结算编号") + private String jsbh; + + @ApiModelProperty(value ="订单号") + private String ddh; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadSetOrderListDtoDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadSetOrderListDtoDto.java new file mode 100644 index 0000000..b23b183 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/LoadSetOrderListDtoDto.java @@ -0,0 +1,27 @@ +package com.matrix.system.fenxiao.dto; + +import java.util.Date; + +import com.matrix.core.pojo.BasePageQueryDto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "LoadSetOrderListDtoDto", description = "查询参数") +public class LoadSetOrderListDtoDto extends BasePageQueryDto { + + @ApiModelProperty(hidden = true) + private Long companyId; + + @ApiModelProperty(value ="会员姓名") + private String userName; + + @ApiModelProperty(value ="开始时间") + private Date startTime; + + @ApiModelProperty(value ="结束时间") + private Date endTime; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateSetOrderDoneDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateSetOrderDoneDto.java new file mode 100644 index 0000000..dd4c723 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateSetOrderDoneDto.java @@ -0,0 +1,32 @@ +package com.matrix.system.fenxiao.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "UpdateSetOrderDoneDto", description = "查询参数") +public class UpdateSetOrderDoneDto { + + @ApiModelProperty(hidden = true) + private Long companyId; + + @ApiModelProperty(value ="需要处理的IDs(字符串逗号隔开)") + private String orderIds; + + @ApiModelProperty(value ="结算方式1,线下结算,2余额结算") + private Integer setType; + + @ApiModelProperty(value ="结算人数") + private Integer manCount; + + @ApiModelProperty(value ="结算单数") + private Integer orderCount; + + @ApiModelProperty(value ="结算金额") + private Double amount; + + @ApiModelProperty(value ="备注") + private String remark; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopRevenueFlow.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopRevenueFlow.java index 68a0b7d..fd8d9b2 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopRevenueFlow.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopRevenueFlow.java @@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.matrix.core.anotations.Extend; import com.matrix.system.score.entity.BaseEntity; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -16,43 +17,50 @@ @Extend private static final long serialVersionUID = 1L; - + /** + * 推广收益类型 推广收益 + */ + public static final String TYPE_TGSY = "推广收益"; + /** + * 推广收益类型 邀请收益 + */ + + public static final String TYPE_YQSY = "邀请收益"; /** * 用户id */ - - + @ApiModelProperty(hidden = true) private String userId; /** * 收益说明 */ - + @ApiModelProperty(value = "收益说明") private String revenueContent; /** * 收益金额 */ - + @ApiModelProperty(value = "收益金额") private Double amount; /** * 原始订单ID */ - + @ApiModelProperty(value = "原始订单ID") private Long businessId; /** * 公司ID */ - + @ApiModelProperty(hidden = true) private Long companyId; diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalemanSettlement.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalemanSettlement.java index 176f3d8..66a9dc1 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalemanSettlement.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopSalemanSettlement.java @@ -15,9 +15,20 @@ public class ShopSalemanSettlement extends BaseEntity { @Extend private static final long serialVersionUID = 1L; - + /** + * 结算编号头部编码 + */ + public static final String ORDERNO_START = "J"; + /** + * 结算方式 1 线下结算 + */ + public static final Integer SETTLEMENTWAY_XXJS = 1; + /** + * 结算方式 2 微信余额结算 + */ + public static final Integer SETTLEMENTWAY_YEJS = 2; /** diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java index e13c1cc..9cf5e16 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java @@ -1,6 +1,7 @@ package com.matrix.system.fenxiao.service; -import com.baomidou.mybatisplus.core.conditions.Wrapper; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,8 +9,10 @@ import com.matrix.biz.bean.BizUser; import com.matrix.biz.dao.BizUserDao; import com.matrix.biz.service.BizUserService; +import com.matrix.core.constance.MatrixConstance; import com.matrix.core.exception.GlobleException; import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.pojo.VerificationResult; import com.matrix.core.tools.StringUtils; import com.matrix.system.common.bean.BusParameterSettings; import com.matrix.system.common.bean.SysUsers; @@ -17,31 +20,12 @@ import com.matrix.system.fenxiao.constant.FenxiaoSettingConstant; import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao; import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao; -import com.matrix.system.fenxiao.dto.ChangeSaleManGradeDto; -import com.matrix.system.fenxiao.dto.DelFyfaApplyDto; -import com.matrix.system.fenxiao.dto.DelSaleManGradeApplyDto; -import com.matrix.system.fenxiao.dto.FyfaManageDto; -import com.matrix.system.fenxiao.dto.ShopSalesmanAppliingDto; -import com.matrix.system.fenxiao.dto.ShopSalesmanApplyDto; -import com.matrix.system.fenxiao.dto.ShopSalesmanDetailDto; -import com.matrix.system.fenxiao.dto.UnbundlingSaleManDto; -import com.matrix.system.fenxiao.dto.UpdateFyfaDto; -import com.matrix.system.fenxiao.dto.UpdateTgjhDto; -import com.matrix.system.fenxiao.dto.UpdateTgtpDto; +import com.matrix.system.fenxiao.dto.*; import com.matrix.system.fenxiao.entity.ShopSalesmanApply; import com.matrix.system.fenxiao.entity.ShopSalesmanGrade; -import com.matrix.system.fenxiao.vo.FyfaManageVo; -import com.matrix.system.fenxiao.vo.SalesmanBasicDetailVo; -import com.matrix.system.fenxiao.vo.ShopCustomDetailVo; -import com.matrix.system.fenxiao.vo.ShopOrderDetailVo; -import com.matrix.system.fenxiao.vo.ShopSalesmanAppliingVo; -import com.matrix.system.fenxiao.vo.ShopSalesmanApplyVo; -import com.matrix.system.fenxiao.vo.ShopSalesmanGradeVo; +import com.matrix.system.fenxiao.vo.*; import com.matrix.system.hive.action.util.QueryUtil; - -import cn.hutool.core.util.ObjectUtil; -import cn.hutool.core.util.StrUtil; - +import com.matrix.system.shopXcx.dao.ShopOrderV2Dao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -74,6 +58,9 @@ @Autowired BizUserService bizUserService; + @Autowired + ShopOrderV2Dao shopOrderV2Dao; + /** * 申请成为推广员 * @param openId @@ -83,61 +70,111 @@ public ShopSalesmanApply applyToBeAnSalesman(String openId,String gradeId,String invitationId,int applyWay) { BizUser loginUser=bizUserDao.findByOpenId(openId); - //校验审核状态,和是否重复发起 - QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("user_id",loginUser.getOpenId()); - queryWrapper.in("apply_status",Arrays.asList("1,2".split(","))); - ShopSalesmanApply checkApply = shopSalesmanApplyDao.selectOne(queryWrapper); - if(checkApply==null|| - checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){ + //验证申请条件 + VerificationResult verificationResult = isAbleToBeAnSalesman(openId); + if(verificationResult.isJudgeResult()){ + //校验审核状态,和是否重复发起 + QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("user_id",loginUser.getOpenId()); + queryWrapper.in("apply_status",Arrays.asList("1,2".split(","))); + ShopSalesmanApply checkApply = shopSalesmanApplyDao.selectOne(queryWrapper); + if(checkApply==null|| + checkApply.getApplyStatus()==ShopSalesmanApply.APPLY_STATUS_WTG){ - ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply(); - shopSalesmanApply.setUserId(openId); - - shopSalesmanApply.setCreateBy(loginUser.getNickName()); - shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF); + ShopSalesmanApply shopSalesmanApply=new ShopSalesmanApply(); + shopSalesmanApply.setUserId(openId); - shopSalesmanApply.setCompanyId(loginUser.getCompanyId()); - shopSalesmanApply.setUpdateBy(loginUser.getNickName()); - Date date = new Date(); - shopSalesmanApply.setCreateTime(date); - shopSalesmanApply.setUpdateTime(date); + shopSalesmanApply.setCreateBy(MatrixConstance.SYSTEM_USER); + shopSalesmanApply.setApplyWay(ShopSalesmanApply.APPLY_WAY_SELF); - if(StringUtils.isNotBlank(invitationId)){ - shopSalesmanApply.setParentUserId(invitationId); - }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){ - //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级 - shopSalesmanApply.setParentUserId(loginUser.getParentOpenId()); - } - if(StringUtils.isNotBlank(gradeId)){ - shopSalesmanApply.setGradeId(Long.parseLong(gradeId)); + shopSalesmanApply.setCompanyId(loginUser.getCompanyId()); + shopSalesmanApply.setUpdateBy(MatrixConstance.SYSTEM_USER); + Date date = new Date(); + shopSalesmanApply.setCreateTime(date); + shopSalesmanApply.setUpdateTime(date); + + if(StringUtils.isNotBlank(invitationId)){ + shopSalesmanApply.setParentUserId(invitationId); + }else if(StringUtils.isNotBlank(loginUser.getParentOpenId())){ + //如果曾经是被邀请进来的则自动绑定为之前邀请人的下级 + shopSalesmanApply.setParentUserId(loginUser.getParentOpenId()); + } + if(StringUtils.isNotBlank(gradeId)){ + shopSalesmanApply.setGradeId(Long.parseLong(gradeId)); + }else{ + //获取初始等级ID(公司id,是否为初始等级) + QueryWrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>(); + queryWrapperOrepool.eq("company_id", loginUser.getCompanyId()); + queryWrapperOrepool.eq("is_default", 1); + ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool); + shopSalesmanApply.setGradeId(shopSalesmanGrade.getId()); + } + shopSalesmanApply.setApplyWay(applyWay); + + BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, loginUser.getCompanyId()); + if(busParameterSettings!=null + &&busParameterSettings.getParamValue().equals("1")){ + //自动审核 + shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG); + bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId); + + }else{ + shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH); + } + shopSalesmanApplyDao.insert(shopSalesmanApply); + return shopSalesmanApply; }else{ - //获取初始等级ID(公司id,是否为初始等级) - Wrapper<ShopSalesmanGrade> queryWrapperOrepool = new QueryWrapper<>(); - ((QueryWrapper<ShopSalesmanGrade>) queryWrapperOrepool).eq("company_id", loginUser.getCompanyId()); - ((QueryWrapper<ShopSalesmanGrade>) queryWrapperOrepool).eq("is_default", 1); - ShopSalesmanGrade shopSalesmanGrade = shopSalesmanGradeDao.selectOne(queryWrapperOrepool); - shopSalesmanApply.setGradeId(shopSalesmanGrade.getId()); + throw new GlobleException("不能重复申请"); } - shopSalesmanApply.setApplyWay(applyWay); - - BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_AUDIT_METHOD, loginUser.getCompanyId()); - if(busParameterSettings!=null - &&busParameterSettings.getParamValue().equals("1")){ - //自动审核 - shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_TG); - bizUserService.setToBeAnSalesman(loginUser.getOpenId(),invitationId); - - }else{ - shopSalesmanApply.setApplyStatus(ShopSalesmanApply.APPLY_STATUS_DSH); - } - shopSalesmanApplyDao.insert(shopSalesmanApply); - return shopSalesmanApply; }else{ - throw new GlobleException("不能重复申请"); + throw new GlobleException(verificationResult.getMsg()); } - } + + + /** + * 判断是否满足申请成为分销员的条件 + */ + public VerificationResult isAbleToBeAnSalesman(String openId) { + BizUser bizUser = bizUserDao.findByOpenId(openId); + VerificationResult verificationResult=null; + //申请条件 + BusParameterSettings applyCondition = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_APPLY_CONDITION, bizUser.getCompanyId()); + switch (applyCondition.getParamValue()){ + case FenxiaoSettingConstant.FX_APPLY_CONDITION_WTJ: + VerificationResult.buildVerificationResult(true); + case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFZDCP: + VerificationResult.buildVerificationResult(true); + int buyZdcpCount= shopOrderV2Dao.countBuyZdcp(openId,applyCondition.getParamValue1()); + if(buyZdcpCount>0){ + verificationResult= VerificationResult.buildVerificationResult(true); + }else{ + verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费指定产品后再申请!"); + } + + case FenxiaoSettingConstant.FX_APPLY_CONDITION_XFRYCP: + //判断用户是否有确认收货的产品 + int receivedOrderCount= shopOrderV2Dao.selectReceivedOrderCount(openId); + if(receivedOrderCount>0){ + verificationResult= VerificationResult.buildVerificationResult(true); + }else{ + verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费任意产品后再申请!"); + } + case FenxiaoSettingConstant.FX_APPLY_CONDITION_XCZDJE: + Double zdje=Double.parseDouble(applyCondition.getParamValue2()); + Double yxfje=shopOrderV2Dao.countOrderAmount(openId); + if(zdje<yxfje){ + verificationResult=VerificationResult.buildVerificationResult(true); + }else{ + verificationResult= VerificationResult.buildVerificationResult(false,"不符合申请条件,请消费满"+zdje+"元后再申请!"); + } + VerificationResult.buildVerificationResult(true); + default: + VerificationResult.buildVerificationResult(true); + } + return verificationResult; + } + public IPage<ShopSalesmanApplyVo> findShopSalesmanApplyList(Page<ShopSalesmanApplyVo> page, ShopSalesmanApplyDto shopSalesmanApplyDto) { return shopSalesmanApplyDao.findShopSalesmanApplyList(page,shopSalesmanApplyDto); @@ -329,19 +366,19 @@ return AjaxResult.buildFailInstance("请输入方案名称"); } Double sealesCommission = updateFyfaDto.getSealesCommission(); - if(StrUtil.isEmpty(sealesCommission.toString())) { + if(ObjectUtil.isEmpty(sealesCommission)) { return AjaxResult.buildFailInstance("请输入正确的推广提成"); } Double invitationCommission = updateFyfaDto.getInvitationCommission(); - if(StrUtil.isEmpty(invitationCommission.toString())) { + if(ObjectUtil.isEmpty(invitationCommission)) { return AjaxResult.buildFailInstance("请输入正确的邀请提成"); } //设置用户公司ID QueryUtil.setQueryLimitCom(updateFyfaDto); selectById.setCompanyId(updateFyfaDto.getCompanyId()); selectById.setName(updateFyfaDto.getName()); - selectById.setSealesCommission(updateFyfaDto.getSealesCommission()); - selectById.setInvitationCommission(updateFyfaDto.getInvitationCommission()); + selectById.setSealesCommission(sealesCommission); + selectById.setInvitationCommission(invitationCommission); selectById.setGradeCondition(updateFyfaDto.getGradeCondition()); shopSalesmanGradeDao.updateById(selectById); return AjaxResult.buildFailInstance("操作成功"); diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java index 8a6ca27..256be95 100644 --- a/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanOrderService.java @@ -1,9 +1,43 @@ package com.matrix.system.fenxiao.service; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.matrix.biz.bean.BizUser; +import com.matrix.biz.dao.BizUserDao; +import com.matrix.core.constance.MatrixConstance; +import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.tools.StringUtils; +import com.matrix.core.tools.WebUtil; +import com.matrix.system.common.bean.SysUsers; +import com.matrix.system.fenxiao.dao.ShopRevenueFlowDao; +import com.matrix.system.fenxiao.dao.ShopSalemanSettlementDao; import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao; +import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderBasicDto; +import com.matrix.system.fenxiao.dto.LoadFenxiaoOrderListDto; +import com.matrix.system.fenxiao.dto.LoadSetOrderListDtoDto; +import com.matrix.system.fenxiao.dto.UpdateSetOrderDoneDto; +import com.matrix.system.fenxiao.entity.ShopRevenueFlow; +import com.matrix.system.fenxiao.entity.ShopSalemanSettlement; import com.matrix.system.fenxiao.entity.ShopSalesmanOrder; +import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderBasicVo; +import com.matrix.system.fenxiao.vo.LoadFenxiaoOrderListVo; +import com.matrix.system.fenxiao.vo.LoadSetOrderListDtoVo; +import com.matrix.system.hive.action.util.QueryUtil; +import com.matrix.system.hive.service.CodeService; +import com.matrix.system.shopXcx.bean.ShopOrder; +import com.matrix.system.shopXcx.dao.ShopOrderDao; + +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; /** * @description 分销订单 @@ -12,6 +46,137 @@ */ @Service public class ShopSalesmanOrderService extends ServiceImpl<ShopSalesmanOrderDao, ShopSalesmanOrder>{ + + @Autowired + ShopSalesmanOrderDao shopSalesmanOrderDao; + @Autowired + CodeService codeService; + @Autowired + ShopSalemanSettlementDao shopSalemanSettlementDao; + @Autowired + ShopRevenueFlowDao shopRevenueFlowDao; + @Autowired + ShopOrderDao shopOrderDao; + @Autowired + BizUserDao bizUserDao; + + public AjaxResult loadFenxiaoOrderBasic(LoadFenxiaoOrderBasicDto loadFenxiaoOrderBasicDto) { + //设置用户公司ID + QueryUtil.setQueryLimitCom(loadFenxiaoOrderBasicDto); + AjaxResult result= AjaxResult.buildSuccessInstance("查询成功"); + //根据OPENID查询基础信息 + Long companyId = loadFenxiaoOrderBasicDto.getCompanyId(); + LoadFenxiaoOrderBasicVo loadFenxiaoOrderBasicVo = shopSalesmanOrderDao.selectFenxiaoOrderBasicByCompanyId(companyId); + result.putInMap("basicdetail", loadFenxiaoOrderBasicVo); + return result; + } + + public AjaxResult loadFenxiaoOrderList(LoadFenxiaoOrderListDto loadFenxiaoOrderListDto) { + //设置用户公司ID + QueryUtil.setQueryLimitCom(loadFenxiaoOrderListDto); + //排序 + if(StringUtils.isBlank(loadFenxiaoOrderListDto.getSort())){ + loadFenxiaoOrderListDto.setSort("create_time"); + loadFenxiaoOrderListDto.setOrder("desc"); + } + Page<LoadFenxiaoOrderListVo> page = new Page(loadFenxiaoOrderListDto.getPageNum(), loadFenxiaoOrderListDto.getPageSize()); + IPage<LoadFenxiaoOrderListVo> loadFenxiaoOrderListVos = shopSalesmanOrderDao.findFenxiaoOrderList(page,loadFenxiaoOrderListDto); + return AjaxResult.buildSuccessInstance(loadFenxiaoOrderListVos.getRecords(),loadFenxiaoOrderListVos.getTotal()); + } + + public AjaxResult loadSetOrderList(LoadSetOrderListDtoDto loadSetOrderListDto) { + //设置用户公司ID + QueryUtil.setQueryLimitCom(loadSetOrderListDto); + //排序 + if(StringUtils.isBlank(loadSetOrderListDto.getSort())){ + loadSetOrderListDto.setSort("create_time"); + loadSetOrderListDto.setOrder("desc"); + } + Page<LoadSetOrderListDtoVo> page = new Page(loadSetOrderListDto.getPageNum(), loadSetOrderListDto.getPageSize()); + IPage<LoadSetOrderListDtoVo> loadFenxiaoOrderListVos = shopSalesmanOrderDao.findSetOrderList(page,loadSetOrderListDto); + return AjaxResult.buildSuccessInstance(loadFenxiaoOrderListVos.getRecords(),loadFenxiaoOrderListVos.getTotal()); + } + + @Transactional(rollbackFor = Exception.class) + public AjaxResult updateSetOrderDone(UpdateSetOrderDoneDto updateSetOrderDoneDto) { + //设置用户公司ID + QueryUtil.setQueryLimitCom(updateSetOrderDoneDto); + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + Long companyId = updateSetOrderDoneDto.getCompanyId(); + Integer setType = updateSetOrderDoneDto.getSetType(); + + String orderIds = updateSetOrderDoneDto.getOrderIds(); + if(StrUtil.isNotEmpty(orderIds)){ + List<String> idsStringList = Arrays.asList(orderIds.split(",")); + if(CollUtil.isEmpty(idsStringList)) { + return AjaxResult.buildFailInstance("请至少选择一条记录"); + } + //产生订单结算记录 + ShopSalemanSettlement shopSalemanSettlement = new ShopSalemanSettlement(); + shopSalemanSettlement.setCompanyId(companyId); + shopSalemanSettlement.setCreateBy(MatrixConstance.SYSTEM_USER); + shopSalemanSettlement.setUpdateBy(MatrixConstance.SYSTEM_USER); + shopSalemanSettlement.setCreateTime(new Date()); + shopSalemanSettlement.setUpdateTime(new Date()); + shopSalemanSettlement.setOrderNo(codeService.getCodeByTyle(ShopSalemanSettlement.ORDERNO_START)); + shopSalemanSettlement.setSettlementWay(setType); + shopSalemanSettlement.setManCount(updateSetOrderDoneDto.getManCount()); + shopSalemanSettlement.setOrderCount(updateSetOrderDoneDto.getOrderCount()); + shopSalemanSettlement.setUserId(user.getSuId().intValue()); + shopSalemanSettlement.setAmount(updateSetOrderDoneDto.getAmount()); + shopSalemanSettlement.setRemark(updateSetOrderDoneDto.getRemark()); + shopSalemanSettlement.setCompanyId(companyId); + shopSalemanSettlementDao.insert(shopSalemanSettlement); + + for(String idString : idsStringList) { + long id = Long.parseLong(idString); + //更新分销订单 + ShopSalesmanOrder shopSalesmanOrder = shopSalesmanOrderDao.selectById(id); + if(!ShopSalesmanOrder.STATUS_DJS.equals(shopSalesmanOrder.getOrderStatus())) { + return AjaxResult.buildFailInstance("选中记录中存在【已结算】的记录"); + } + //判断原始订单的状态【4=待评价, 5=已评价】才能结算 + ShopOrder shopOrder = shopOrderDao.selectById(shopSalesmanOrder.getOrderId().intValue()); + if(ShopOrder.ORDER_STATUS_WAIT_REMARK != shopOrder.getOrderStatus() && + ShopOrder.ORDER_STATUS_ALREADY_REMARK != shopOrder.getOrderStatus()) { + return AjaxResult.buildFailInstance("未收货订单不允许结算"); + } + shopSalesmanOrder.setOrderStatus(ShopSalesmanOrder.STATUS_YJS); + shopSalesmanOrder.setSettlementId(shopSalemanSettlement.getId()); + shopSalesmanOrderDao.updateById(shopSalesmanOrder); + //记录流水 + ShopRevenueFlow salesRevenueFlow=new ShopRevenueFlow(); + salesRevenueFlow.setCompanyId(companyId); + salesRevenueFlow.setCreateBy(MatrixConstance.SYSTEM_USER); + salesRevenueFlow.setUpdateBy(MatrixConstance.SYSTEM_USER); + salesRevenueFlow.setCreateTime(new Date()); + salesRevenueFlow.setUpdateTime(new Date()); + salesRevenueFlow.setAmount(shopSalesmanOrder.getAmount()); + salesRevenueFlow.setUserId(shopSalesmanOrder.getSalesUserId()); + if(ShopSalesmanOrder.REVENUE_TYPE_SALES.equals(shopSalesmanOrder.getRevenueType())) { + salesRevenueFlow.setRevenueContent(ShopRevenueFlow.TYPE_TGSY); + } + if(ShopSalesmanOrder.REVENUE_TYPE_INVITATION.equals(shopSalesmanOrder.getRevenueType())) { + salesRevenueFlow.setRevenueContent(ShopRevenueFlow.TYPE_YQSY); + } + salesRevenueFlow.setBusinessId(shopSalesmanOrder.getId()); + shopRevenueFlowDao.insert(salesRevenueFlow); + //选择微信余额支付,更新用户的金额 + if(ShopSalemanSettlement.SETTLEMENTWAY_YEJS == updateSetOrderDoneDto.getSetType()) { + BizUser findByOpenId = bizUserDao.findByOpenId(shopSalesmanOrder.getSalesUserId()); + if(ObjectUtil.isEmpty(findByOpenId)) { + return AjaxResult.buildFailInstance("收益人信息不存在"); + } + Double withdrawalCash = findByOpenId.getWithdrawalCash(); + Double amount = shopSalesmanOrder.getAmount(); + withdrawalCash = (withdrawalCash == null?0:withdrawalCash)+(amount== null?0:amount); + findByOpenId.setWithdrawalCash(withdrawalCash); + bizUserDao.updateByModel(findByOpenId); + } + } + } + return AjaxResult.buildSuccessInstance("操作成功"); + } diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderBasicVo.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderBasicVo.java new file mode 100644 index 0000000..c2ac378 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderBasicVo.java @@ -0,0 +1,20 @@ +package com.matrix.system.fenxiao.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "LoadFenxiaoOrderBasicVo", description = "返回类") +public class LoadFenxiaoOrderBasicVo { + + @ApiModelProperty(value = "待计算金额") + private BigDecimal balance; + @ApiModelProperty(value = "待结算人数") + private Integer waitNum; + @ApiModelProperty(value = "待结算订单") + private Integer waitOrderNum; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderListVo.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderListVo.java new file mode 100644 index 0000000..b0e5aef --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadFenxiaoOrderListVo.java @@ -0,0 +1,45 @@ +package com.matrix.system.fenxiao.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@ApiModel(value = "LoadFenxiaoOrderListVo", description = "返回类") +public class LoadFenxiaoOrderListVo { + + @ApiModelProperty(value = "订单ID") + private Long id; + @ApiModelProperty(value = "订单编号") + private String orderNo; + @ApiModelProperty(value = "订单状态") + private Integer orderState; + @ApiModelProperty(value = "实付金额(元)") + private BigDecimal actualBalance; + @ApiModelProperty(value = "下单门店") + private String address; + @ApiModelProperty(value = "客户") + private String custom; + @ApiModelProperty(value = "客户openId") + private String customUserId; + @ApiModelProperty(value = "推广员") + private String parentSale; + @ApiModelProperty(value = "收益类型") + private Integer profitType; + @ApiModelProperty(value = "收益金额") + private BigDecimal profitBalance; + @ApiModelProperty(value = "结算状态") + private Integer settleType; + @ApiModelProperty(value = "结算编号") + private String settleNo; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + @ApiModelProperty(value = "结算时间") + private Date settleTime; + @ApiModelProperty(value = "结算人") + private String settler; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadSetOrderListDtoVo.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadSetOrderListDtoVo.java new file mode 100644 index 0000000..b769ec7 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/vo/LoadSetOrderListDtoVo.java @@ -0,0 +1,35 @@ +package com.matrix.system.fenxiao.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +@Data +@ApiModel(value = "LoadSetOrderListDtoVo", description = "返回类") +public class LoadSetOrderListDtoVo { + + @ApiModelProperty(value = "ID") + private Long id; + @ApiModelProperty(value = "结算编号") + private String orderNo; + @ApiModelProperty(value = "结算金额") + private BigDecimal actualBalance; + @ApiModelProperty(value = "结算订单数") + private String setNum; + @ApiModelProperty(value = "结算人数") + private String setManNum; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8") + @ApiModelProperty(value = "结算时间") + private Date setTime; + @ApiModelProperty(value = "结算人") + private String setMan; + @ApiModelProperty(value = "结算方式") + private BigDecimal settlementWay; + @ApiModelProperty(value = "备注") + private String remark; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java index 896518f..13508db 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java @@ -25,7 +25,16 @@ */ public String getOrderCode(); + String get32LenNumberCode(); + public String getFlowCode(); + /** + * 生成一个加上typeName前缀的编号 + * typeName+时间戳+四位随机数 + * @param typeName + * @return + */ + public String getCodeByTyle(String typeName); /** * 根据一定的规则返回一个随机编号。 diff --git a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java index 8d7277f..77c291c 100644 --- a/zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java +++ b/zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java @@ -9,9 +9,9 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.Random; - /** * * @@ -96,7 +96,29 @@ } @Override + public String get32LenNumberCode(){ + DateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmss"); + Date date=new Date(); + + String str = "0123456789"; + Random random = new Random(); + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 18; i++) { + int number = random.nextInt(str.length()); + sb.append(str.charAt(number)); + } + return fmt.format(date)+sb.toString(); + } + + + + @Override public String getFlowCode() { return "F" + getNowTimeString(); } + + @Override + public String getCodeByTyle(String typeName) { + return typeName+getNowTimeString()+ StringUtils.getRandomString(4); + } } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java index bdd6dff..b89cac9 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java @@ -8,6 +8,7 @@ import com.matrix.system.shopXcx.bean.ShopProductAttribute; import com.matrix.system.shopXcx.dao.ShopProductAttributeDao; import com.matrix.system.shopXcx.dao.ShopProductDao; +import com.matrix.system.shopXcx.dao.ShopSkuDao; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; @@ -36,6 +37,9 @@ @Autowired private ShopProductAttributeDao shopProductAttributeDao; + @Autowired + private ShopSkuDao shopSkuDao; + @ApiOperation(value = "查询推广商品", notes = "") @PostMapping(value = "/getSalesProductList") @ApiResponses({ @@ -46,12 +50,13 @@ ShopProductAttribute fxsc = shopProductAttributeDao.selectByCode("fxsc", HostInterceptor.getCompanyId()); shopProduct.setLimit(saleProductDto.getPageSize()); - shopProduct.setOffset(saleProductDto.getPageNum()* saleProductDto.getPageSize()); + shopProduct.setOffset((saleProductDto.getPageNum()-1)* saleProductDto.getPageSize()); shopProduct.setDelFlag(AppConstance.DATA_USEABLE); shopProduct.setStatus(AppConstance.IS_PUTAWAY); shopProduct.setCompanyId(HostInterceptor.getCompanyId()); shopProduct.setAttrs(fxsc.getAttrId()+""); List<ShopProduct> shopProducts = shopProductDao.selectByModelWx(shopProduct); + shopProducts.forEach(item->item.setSkus(shopSkuDao.selectByPid(item.getId()))); AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, shopProducts); return result; } diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java new file mode 100644 index 0000000..5256ec0 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java @@ -0,0 +1,127 @@ +package com.matrix.system.shopXcx.api.action; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.matrix.biz.bean.BizUser; +import com.matrix.biz.dao.BizUserDao; +import com.matrix.component.redis.RedisUserLoginUtils; +import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil; +import com.matrix.core.constance.MatrixConstance; +import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.pojo.BasePageQueryDto; +import com.matrix.system.fenxiao.dao.ShopRevenueFlowDao; +import com.matrix.system.fenxiao.entity.ShopRevenueFlow; +import com.matrix.system.hive.service.CodeService; +import com.matrix.system.shopXcx.api.dto.RevenueFlowDto; +import com.matrix.system.shopXcx.api.dto.WithdrawalCashDto; +import com.matrix.system.shopXcx.vo.SalesOrderVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Date; + +/** + * @author jyy + * @date 2021-03-10 + **/ +@Api(tags = "提现接口类") +@RestController +@RequestMapping(value = "/wxapi/salesWithdrawal") +public class WxSalesWithdrawalAction { + + + @Autowired + private RedisUserLoginUtils redisUserLoginUtils; + + @Autowired + private BizUserDao bizUserDao; + + @Autowired + private ShopRevenueFlowDao revenueFlowDao; + + + @Autowired + private ShopRevenueFlowDao shopRevenueFlowDao; + @Autowired + WeixinServiceUtil weixinServiceUtil; + + @Autowired + CodeService codeService; + + @ApiOperation(value = "获取收支明细", notes = "") + @PostMapping(value = "/getInvitationuserList") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = ShopRevenueFlow.class) + }) + AjaxResult getInvitationuserList(@RequestBody @Validated RevenueFlowDto revenueFlowDto) { + BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); + Page<SalesOrderVo> page=new Page<>(revenueFlowDto.getPageNum(),revenueFlowDto.getPageSize()); + revenueFlowDto.setUserId(loginUser.getOpenId()); + IPage<SalesOrderVo> shopSalesmanApplyIPage = revenueFlowDao.selectRevenuFlowList(page, revenueFlowDto); + AjaxResult result=AjaxResult.buildSuccessInstance(shopSalesmanApplyIPage.getRecords()); + return result; + } + + + @ApiOperation(value = "提现", notes = "") + @PostMapping(value = "/withdrawalCash") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response = BasePageQueryDto.class) + }) + @Transactional + AjaxResult withdrawalCash(@RequestBody @Validated WithdrawalCashDto withdrawalCashDto) { + BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); + loginUser=bizUserDao.selectById(loginUser.getUserId()); + if(withdrawalCashDto.getAmount()<1){ + return AjaxResult.buildFailInstance("最小提现金额为1元"); + }else if(withdrawalCashDto.getAmount()>20000){ + return AjaxResult.buildFailInstance("最大提现金额为2万元"); + }else{ + if(loginUser.getWithdrawalCash()==null || loginUser.getWithdrawalCash()<withdrawalCashDto.getAmount()){ + return AjaxResult.buildFailInstance("余额不足"); + }else{ + + String txNo = codeService.get32LenNumberCode(); + + /*调试注释 + weixinServiceUtil.comPay("提现", txNo,Integer.parseInt((withdrawalCashDto.getAmount()*1000)+""), + loginUser.getOpenId(),loginUser.getCompanyId()); + */ + //记录收益流水 + ShopRevenueFlow invitationRevenueFlow=new ShopRevenueFlow(); + invitationRevenueFlow.setCompanyId(loginUser.getCompanyId()); + invitationRevenueFlow.setCreateBy(MatrixConstance.SYSTEM_USER); + invitationRevenueFlow.setUpdateBy(txNo); + invitationRevenueFlow.setCreateTime(new Date()); + invitationRevenueFlow.setUpdateTime(new Date()); + invitationRevenueFlow.setAmount(-withdrawalCashDto.getAmount()); + invitationRevenueFlow.setUserId(loginUser.getOpenId()); + invitationRevenueFlow.setRevenueContent("提现"); + shopRevenueFlowDao.insert(invitationRevenueFlow); + //扣除用户剩余提现金额 + loginUser.setWithdrawalCash(loginUser.getWithdrawalCash()-withdrawalCashDto.getAmount()); + bizUserDao.updateByModel(loginUser); + redisUserLoginUtils.updateUserInfo(loginUser); + + + return AjaxResult.buildSuccessInstance("提现成功"); + } + } + + + } + + + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java index f2c9a3a..ed74a5d 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java @@ -76,6 +76,20 @@ return ajaxResult; } + @ApiOperation(value = "查询分销商城开关", notes = "1开启分销,2关闭分销") + @GetMapping(value = "/getSalesMallSetting") + public AjaxResult getSalesMallSwith() { + BusParameterSettings fxSwith = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_SWITCH, HostInterceptor.getCompanyId()); + BusParameterSettings fxModel = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_MODEL, HostInterceptor.getCompanyId()); + AjaxResult ajaxResult = AjaxResult.buildSuccessInstance("查询成功"); + ajaxResult.putInMap("fxSwith",fxSwith.getParamValue()); + ajaxResult.putInMap("fxModel",fxModel.getParamValue()); + return ajaxResult; + } + + + + @ApiOperation(value = "申请成为推广员", notes = "传入参数invitationId 邀请人openId ,非必填 例: {invitationId:openId}") @ApiResponses({ @@ -86,10 +100,20 @@ public AjaxResult applyToBeAnSalesman(@RequestBody Map<String,String> param) { BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); String invitationId = param.get("invitationId"); + if(StringUtils.isNotBlank(invitationId)){ + BizUser invitationUser = bizUserDao.findByOpenId(invitationId); + if(invitationUser!=null && invitationUser.getOpenId().equals(loginUser.getOpenId())) { + return AjaxResult.buildFailInstance("不能邀请自己成为推广员"); + } + } + ShopSalesmanApply shopSalesmanApply= shopSalesmanApplyService.applyToBeAnSalesman(loginUser.getOpenId(),"",invitationId,ShopSalesmanApply.APPLY_WAY_SELF); loginUser=bizUserDao.selectById(loginUser.getUserId()); redisUserLoginUtils.updateUserInfo(loginUser); return AjaxResult.buildSuccessInstance(shopSalesmanApply); + + + } @@ -102,6 +126,7 @@ BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); QueryWrapper<ShopSalesmanApply> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("user_id",loginUser.getOpenId()); + queryWrapper.eq("apply_status",ShopSalesmanApply.APPLY_STATUS_DSH); ShopSalesmanApply shopSalesmanApply = salesmanApplyDao.selectOne(queryWrapper); return AjaxResult.buildSuccessInstance(shopSalesmanApply); } @@ -159,7 +184,7 @@ BufferedImage qrcordImgBuf = ImageIO.read(new File(qrcodeSavePath)); //获取海报 - BusParameterSettings posterSetting = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_POSTER, HostInterceptor.getCompanyId()); + BusParameterSettings posterSetting = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_POSTER, loginUser.getCompanyId()); String posterPath=baseSavePath+"wxacode" + File.separatorChar+MD5Util.strToMD5(loginUser.getOpenId())+"poster.png"; ImageUtil.downloadPicture(posterSetting.getParamValue(),posterPath); BufferedImage posterImgBuf = ImageIO.read(new File(posterPath)); @@ -173,7 +198,6 @@ BufferedImage backgroundImgBuf = new BufferedImage(700, 900, BufferedImage.TYPE_4BYTE_ABGR); //绘制背景+产品 Graphics2D g = backgroundImgBuf.createGraphics(); - //g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP, 1)); g.setColor(Color.WHITE); g.fillRect(0,0,700,900); g.drawImage(posterImgBuf,0,0,700, 700,null); diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WxUserAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java similarity index 81% rename from zq-erp/src/main/java/com/matrix/system/shopXcx/api/WxUserAction.java rename to zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java index 5c927d6..7a523f3 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/WxUserAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxUserAction.java @@ -1,7 +1,6 @@ -package com.matrix.system.shopXcx.api; +package com.matrix.system.shopXcx.api.action; import com.matrix.biz.bean.BizUser; -import com.matrix.biz.dao.BizUserDao; import com.matrix.biz.service.BizUserService; import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.component.tools.HttpCurlUtil; @@ -12,6 +11,7 @@ import com.matrix.core.web.BaseAction; import com.matrix.system.common.constance.AppConstance; import com.matrix.system.common.interceptor.HostInterceptor; +import com.matrix.system.shopXcx.api.WeChatApiTools; import net.sf.json.JSONObject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -39,8 +39,7 @@ @Autowired private RedisUserLoginUtils redisUserLoginUtils; - @Autowired - private BizUserDao bizUserDao; + @Autowired WeChatApiTools weChatApiTools; @@ -128,43 +127,12 @@ BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); String openId = loginUser.getOpenId(); BizUser bizUser = bizUserService.findByOpenId(openId); - - //处理用户当前所在店铺 - /* - if(bizUser.getStaff()!=null){ - //当前用户是员工账号 - bizUser.setBusiness(bussinesssDao.selectById(bizUser.getStaff().getBusinessId())); - bizUser.setRole(bizUser.getStaff().getRole()); - }else{ - //当前用户是boss账号 - bizUser.setBusiness(bussinesssDao.findByUserOpenId(bizUser.getOpenId())); - bizUser.setRole(AppConstance.User_ROLE_BOSS); - }*/ - AjaxResult res = new AjaxResult(); res.putInMap("userInfo", bizUser); res.setStatus(AjaxResult.STATUS_SUCCESS); return res; } - - /** - * 获取其他用户简化信息 - * @author JIANGYOUYAO - * @email 935090232@qq.com - * @date 2018年9月5日 - * @param openId - * @return - */ - @RequestMapping(value = "/getOtherUserInfo/{openId}") - public @ResponseBody - AjaxResult getOtherUserInfo(@PathVariable String openId) { - BizUser bizUser = bizUserService.findByOpenId(openId); - AjaxResult res = new AjaxResult(); - res.putInMap("userInfo", bizUser); - res.setStatus(AjaxResult.STATUS_SUCCESS); - return res; - } - + /** * 接收用户信息 diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/RevenueFlowDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/RevenueFlowDto.java new file mode 100644 index 0000000..6d81221 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/RevenueFlowDto.java @@ -0,0 +1,26 @@ +package com.matrix.system.shopXcx.api.dto; + +import com.matrix.core.pojo.BasePageQueryDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "RevenueFlowDto", description = "收益流水查询参数接收类") +public class RevenueFlowDto extends BasePageQueryDto { + + @NotNull(message = "查询月份不能为空") + @ApiModelProperty(value = "查询月份",example = "2021-03") + private String queryTime; + + + @ApiModelProperty(value = "收益类型 不传全部,1,收入,2支出", example = "1") + private Integer revenueType; + + @ApiModelProperty(hidden = true) + private String userId; + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/WithdrawalCashDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/WithdrawalCashDto.java new file mode 100644 index 0000000..0502904 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/WithdrawalCashDto.java @@ -0,0 +1,20 @@ +package com.matrix.system.shopXcx.api.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Data +@ApiModel(value = "WithdrawalCashDto", description = "提现参数接收类") +public class WithdrawalCashDto { + + @NotNull(message = "提现金额不能为空") + @ApiModelProperty(value = "提现金额", example = "1") + private Double amount; + + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java index 5b4c41c..5a9729d 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderDao.java @@ -78,4 +78,6 @@ public List<Map<String,Object>> selectOrderStatusCount(String openId); public int batchUpdateOrderStatus(@Param("list") List<ShopOrder> list); + + } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderV2Dao.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderV2Dao.java new file mode 100644 index 0000000..b68d63a --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/dao/ShopOrderV2Dao.java @@ -0,0 +1,19 @@ +package com.matrix.system.shopXcx.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.matrix.system.shopXcx.bean.ShopOrder; +import org.apache.ibatis.annotations.Param; + +/** + * @description 订单表 + */ +public interface ShopOrderV2Dao extends BaseMapper<ShopOrder> { + + /** 统计已收货订单数 */ + int selectReceivedOrderCount(String openId); + /** 统计已收货订单金额 */ + Double countOrderAmount(String openId); + + /** 统计是否消费过了指定产品 */ + int countBuyZdcp(@Param("openId") String openId, @Param("productIds")String productIds); +} \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java index b8adbf2..ea4bcd3 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java @@ -7,6 +7,7 @@ import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.StringUtils; import com.matrix.system.common.dao.BusParameterSettingsDao; +import com.matrix.system.fenxiao.dao.ShopRevenueFlowDao; import com.matrix.system.fenxiao.dao.ShopSalesmanGradeDao; import com.matrix.system.fenxiao.dao.ShopSalesmanOrderDao; import com.matrix.system.fenxiao.entity.ShopSalesmanGrade; @@ -82,6 +83,7 @@ @Autowired private ShopSalesmanGradeDao shopSalesmanGradeDao; + @Override @@ -176,6 +178,8 @@ invitationAmount=invitationAmount*zk; invitationOrder.setAmount(invitationAmount); shopSalesmanOrderDao.insert(invitationOrder); + + } } }else{ diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java index f75ff89..7d41aee 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java @@ -27,8 +27,12 @@ @ApiModelProperty(value = "可提现金额") private String withdrawalCash; + + @ApiModelProperty(value = "邀请订单数") + private String invitationOrderCount; + @ApiModelProperty(value = "推广订单数") - private String orderCount; + private String salesorderCount; @ApiModelProperty(value = "客户数") diff --git a/zq-erp/src/main/resources/config/application.properties b/zq-erp/src/main/resources/config/application.properties index fa3a268..a250611 100644 --- a/zq-erp/src/main/resources/config/application.properties +++ b/zq-erp/src/main/resources/config/application.properties @@ -1,4 +1,4 @@ -evn=dev +evn=jyy server.port=8080 diff --git a/zq-erp/src/main/resources/config/dev/system.properties b/zq-erp/src/main/resources/config/dev/system.properties index 015c690..088c4a6 100644 --- a/zq-erp/src/main/resources/config/dev/system.properties +++ b/zq-erp/src/main/resources/config/dev/system.properties @@ -19,11 +19,11 @@ maxUploadSize=10485760 #Matser\u7684ip\u5730\u5740 -redis.hostname=118.31.227.147 +redis.hostname=120.27.238.55 #\u7AEF\u53E3\u53F7 redis.port=6379 #\u5982\u679C\u6709\u5BC6\u7801 -redis.password=123456 +redis.password=xcong123 #\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000 redis.timeout=10000 redis.database=7 diff --git a/zq-erp/src/main/resources/config/prd/system.properties b/zq-erp/src/main/resources/config/prd/system.properties index b9d6102..9290b39 100644 --- a/zq-erp/src/main/resources/config/prd/system.properties +++ b/zq-erp/src/main/resources/config/prd/system.properties @@ -19,11 +19,11 @@ maxUploadSize=10485760 #Matser\u7684ip\u5730\u5740 -redis.hostname=118.31.227.147 +redis.hostname=120.27.238.55 #\u7AEF\u53E3\u53F7 redis.port=6379 #\u5982\u679C\u6709\u5BC6\u7801 -redis.password=123456 +redis.password=xcong123 #\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000 redis.timeout=10000 redis.database=1 diff --git a/zq-erp/src/main/resources/config/system.properties b/zq-erp/src/main/resources/config/system.properties index 6581031..ef96e05 100644 --- a/zq-erp/src/main/resources/config/system.properties +++ b/zq-erp/src/main/resources/config/system.properties @@ -23,11 +23,11 @@ maxUploadSize=10485760 #Matser\u7684ip\u5730\u5740 -redis.hostname=118.31.227.147 +redis.hostname=120.27.238.55 #\u7AEF\u53E3\u53F7 redis.port=6379 #\u5982\u679C\u6709\u5BC6\u7801 -redis.password=123456 +redis.password=xcong123 #\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000 redis.timeout=10000 redis.database=1 diff --git a/zq-erp/src/main/resources/config/test/system.properties b/zq-erp/src/main/resources/config/test/system.properties index 568731d..8731cd3 100644 --- a/zq-erp/src/main/resources/config/test/system.properties +++ b/zq-erp/src/main/resources/config/test/system.properties @@ -20,11 +20,11 @@ #Matser\u7684ip\u5730\u5740 -redis.hostname=118.31.227.147 +redis.hostname=120.27.238.55 #\u7AEF\u53E3\u53F7 redis.port=6379 #\u5982\u679C\u6709\u5BC6\u7801 -redis.password=123456 +redis.password=xcong123 #\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000 redis.timeout=10000 redis.database=1 diff --git a/zq-erp/src/main/resources/config/xcx/system.properties b/zq-erp/src/main/resources/config/xcx/system.properties index 12737b4..1a58898 100644 --- a/zq-erp/src/main/resources/config/xcx/system.properties +++ b/zq-erp/src/main/resources/config/xcx/system.properties @@ -20,11 +20,11 @@ #Matser\u7684ip\u5730\u5740 -redis.hostname=118.31.227.147 +redis.hostname=120.27.238.55 #\u7AEF\u53E3\u53F7 redis.port=6379 #\u5982\u679C\u6709\u5BC6\u7801 -redis.password=123456 +redis.password=xcong123 #\u5BA2\u6237\u7AEF\u8D85\u65F6\u65F6\u95F4\u5355\u4F4D\u662F\u6BEB\u79D2 \u9ED8\u8BA4\u662F2000 redis.timeout=10000 redis.database=1 diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopRevenueFlowDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopRevenueFlowDao.xml index 1f301ea..de6eae0 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopRevenueFlowDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopRevenueFlowDao.xml @@ -32,4 +32,18 @@ <result property="companyId" column="company_id" /> </resultMap> + + <select id="selectRevenuFlowList" resultType="com.matrix.system.shopXcx.vo.SalesOrderVo"> + select * from shop_revenue_flow + where user_id=#{record.userId} + and DATE_FORMAT(create_time,'%Y-%m')=#{record.queryTime} + <if test="record.revenueType==1"> + and amount>0 + </if> + <if test="record.revenueType==2"> + <![CDATA[ and amount<0 ]]> + </if> + order by create_time desc + </select> + </mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml index ae87aa8..173aff5 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml @@ -73,7 +73,7 @@ ( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order WHERE user_id = a.user_id AND order_status = 1 AND sales_user_id = a.user_id ) balance, g.NAME grade, - b.binding_parent_time createTime, + a.create_time createTime, a.apply_status applyStatus, a.apply_way applyWay FROM @@ -147,9 +147,7 @@ IFNULL(sum(IFNULL( b.amount, 0 )),0) FROM shop_salesman_order b - WHERE - b.user_id = a.open_id - and order_status=2 + WHERE order_status=2 AND b.sales_user_id = #{openId} ) AS totalRevenue, @@ -158,9 +156,7 @@ IFNULL(sum(IFNULL( b.amount, 0 )),0) FROM shop_salesman_order b - WHERE - b.user_id = a.open_id - and order_status=2 and revenue_type=1 + WHERE order_status=2 and revenue_type=1 AND b.sales_user_id = #{openId} ) AS salesRevenue, @@ -169,9 +165,7 @@ IFNULL(sum(IFNULL( b.amount, 0 )),0) FROM shop_salesman_order b - WHERE - b.user_id = a.open_id - and order_status=2 and revenue_type=2 + WHERE order_status=2 and revenue_type=2 AND b.sales_user_id = #{openId} ) AS invitationRevenue, @@ -181,13 +175,13 @@ IFNULL(sum(IFNULL( b.amount, 0 )),0) FROM shop_salesman_order b - WHERE - b.user_id = a.open_id - and order_status=1 + WHERE order_status=1 AND b.sales_user_id = #{openId} ) AS djsRevenue, - ( SELECT count( * ) FROM shop_salesman_order c WHERE c.user_id = a.open_id AND c.sales_user_id = #{openId} ) AS orderCount, + + ( SELECT count( * ) FROM shop_salesman_order c WHERE c.user_id = a.open_id AND c.sales_user_id = #{openId} and revenue_type =1 ) AS salesorderCount, + ( SELECT count( * ) FROM shop_salesman_order c WHERE c.user_id = a.open_id AND c.sales_user_id = #{openId} and revenue_type =2 ) AS invitationOrderCount, (select count(*) from biz_user where parent_open_id=#{openId} and is_sales=1) as invitationCount, (select count(*) from biz_user where parent_open_id=#{openId} and is_sales=2) as customerCount from biz_user a where @@ -212,7 +206,7 @@ WHERE user_id = a.user_id AND order_status = 2 AND sales_user_id = a.user_id ) totalRevenue, ( SELECT IFNULL(sum(IFNULL(amount, 0)), 0) FROM shop_salesman_order WHERE user_id = a.user_id AND order_status = 1 AND sales_user_id = a.user_id ) balance, - b.binding_parent_time createTime, + a.create_time createTime, a.apply_status applyStatus, a.apply_way applyWay FROM diff --git a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml index ead840d..2dd7257 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml @@ -64,4 +64,111 @@ </select> + <select id="selectFenxiaoOrderBasicByCompanyId" resultType="com.matrix.system.fenxiao.vo.LoadFenxiaoOrderBasicVo"> + SELECT + COUNT(*) num, + (SELECT IFNULL(sum(IFNULL(amount, 0)), 0) + FROM shop_salesman_order + WHERE order_status = 1 and company_id=#{companyId}) balance, + (SELECT COUNT(*) FROM + (SELECT DISTINCT user_id + FROM shop_salesman_order + WHERE order_status = 1 and company_id=#{companyId} ) a) waitNum, + (SELECT COUNT(*) + FROM shop_salesman_order + WHERE order_status = 1 and company_id=#{companyId}) waitOrderNum + FROM + shop_salesman_order + where company_id=#{companyId} + </select> + + <select id="findFenxiaoOrderList" resultType="com.matrix.system.fenxiao.vo.LoadFenxiaoOrderListVo"> + SELECT + a.id id, + d.order_no, + d.order_money actualBalance, + f.shop_name address, + d.order_status orderState, + b.nick_name custom, + b.open_id customUserId, + e.nick_name parentSale, + a.revenue_type profitType, + a.amount profitBalance, + a.order_status settleType, + c.order_no settleNo, + c.create_time settleTime, + g.su_name settler + FROM + shop_salesman_order a + LEFT JOIN biz_user b on a.user_id = b.open_id + LEFT JOIN shop_saleman_settlement c on a.settlement_id = c.id + LEFT JOIN shop_order d on d.id = a.order_id + LEFT JOIN biz_user e on a.sales_user_id = e.open_id + LEFT JOIN sys_shop_info f on f.id = d.store_id + LEFT JOIN sys_users g on c.user_id = g.su_id + <where> + a.company_id = #{record.companyId} + <if test="record.userName != null and record.userName != ''"> + and b.nick_name like concat('%',#{record.userName},'%') + </if> + <if test="record.ddType != null and record.ddType != ''"> + and d.order_status = #{record.ddType} + </if> + <if test="record.startTime != null "> + and a.create_time >= #{record.startTime} + </if> + <if test="record.endTime != null"> + and #{record.endTime} >= a.create_time + </if> + <if test="record.tgy != null and record.tgy != ''"> + and e.nick_name like concat('%',#{record.tgy},'%') + </if> + <if test="record.orderType != null and record.orderType != ''"> + and a.order_status = #{record.orderType} + </if> + <if test="record.jsbh != null and record.jsbh != ''"> + and c.order_no = #{record.jsbh} + </if> + <if test="record.ddh != null and record.ddh != ''"> + and d.order_no = #{record.ddh} + </if> + </where> + <if test="record.sort !=null"> + order by + a.${record.sort} ${record.order} + </if> + </select> + + <select id="findSetOrderList" resultType="com.matrix.system.fenxiao.vo.LoadSetOrderListDtoVo"> + select + a.id id, + a.order_no orderNo, + a.amount actualBalance, + a.order_count setNum, + a.man_count setManNum, + a.create_time setTime, + b.su_name setMan, + a.settlement_way settlementWay, + a.remark remark + from + shop_saleman_settlement a + left join sys_users b on a.user_id = b.su_id + <where> + a.company_id = #{record.companyId} + <if test="record.userName != null and record.userName != ''"> + and b.su_name like concat('%',#{record.userName},'%') + </if> + <if test="record.startTime != null "> + and a.create_time >= #{record.startTime} + </if> + <if test="record.endTime != null"> + and #{record.endTime} >= a.create_time + </if> + </where> + <if test="record.sort !=null"> + order by + a.${record.sort} ${record.order} + </if> + </select> + </mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderV2Dao.xml b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderV2Dao.xml new file mode 100644 index 0000000..04cba28 --- /dev/null +++ b/zq-erp/src/main/resources/mybatis/mapper/xcxShop/ShopOrderV2Dao.xml @@ -0,0 +1,24 @@ +<?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.matrix.system.shopXcx.dao.ShopOrderV2Dao"> + + <select id="selectReceivedOrderCount" resultType="java.lang.Integer"> + select count(*) from shop_order where user_id = #{openId} and order_status in (4,5) + </select> + + <select id="countOrderAmount" resultType="java.lang.Double"> + select IFNULL(sum(IFNULL( order_money, 0 )),0) from shop_order where user_id = #{openId} and order_status in (4,5) + </select> + + <select id="countBuyZdcp" resultType="java.lang.Integer"> + select count(*) from shop_order a + left join shop_order_details b on a.id=b.order_id + where a.user_id=#{openId} + and order_status in (4,5) + and find_in_set(b.p_id,#{productIds}) + </select> + + +</mapper> \ No newline at end of file diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html new file mode 100644 index 0000000..92aafbd --- /dev/null +++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-order.html @@ -0,0 +1,665 @@ +<!DOCTYPE HTML> +<html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> +<head> + <meta charset="utf-8"> + <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> + <meta name="renderer" content="webkit|ie-comp|ie-stand"> + <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> + <meta name="viewport" + content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> + <meta http-equiv="Cache-Control" content="no-siteapp"/> + <!-- 本框架基本脚本和样式 --> + <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script> + <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}"> + <link rel="stylesheet" th:href="@{/plugin/bootstrap-3.3.5/css/bootstrap.min.css}"> + <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/> + + <!-- 富文本编辑器 --> + <script type="text/javascript" charset="utf-8" + th:src="@{/plugin/beditor/ueditor.config.js}"></script> + <script type="text/javascript" charset="utf-8" + th:src="@{/plugin/beditor/ueditor.all.js}"> + </script> + <script type="text/javascript" charset="utf-8" + th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script> + <style> + .paginationStyle{ + background: #ffffff; + padding: 10px 10px; + margin: 0px 0px 10px 0px; + text-align: right; + } + </style> +</head> + +<body> +<div class="ibox-content" id="app" v-cloak> + <el-row style="padding: 10px;"> + <el-row :gutter="100"> + <el-col class="line" :span="8" style="text-align: center"> + <el-card class="box-card" style="background-color: #eee;border-radius: 30px;"> + <div>待计算金额</div> + <div style="padding: 5px;font-size: 30px;">¥{{basicdetail.balance}}</div> + </el-card > + </el-col> + <el-col class="line" :span="8" style="text-align: center"> + <el-card class="box-card" style="background-color: #eee;border-radius: 30px;"> + <div>待结算人数</div> + <div style="padding: 5px;font-size: 30px;">{{basicdetail.waitNum}}人</div> + </el-card > + </el-col> + <el-col class="line" :span="8" style="text-align: center"> + <el-card class="box-card" style="background-color: #eee;border-radius: 30px;"> + <div>待结算订单</div> + <div style="padding: 5px;font-size: 30px;">{{basicdetail.waitOrderNum}}笔</div> + </el-card > + </el-col> + </el-row> + </el-row> + <el-row> + <el-tabs v-model="activeName" > + <el-tab-pane label="分销订单" name="first"> + <el-row justify="space-between" type="flex"> + <el-col :span="6"> + <el-button type="primary" @click="setOrderDone()">批量结算</el-button> + </el-col> + <el-dialog title="本次结算分销订单" :visible.sync="dialogFormVisible"> + <el-form :model="formSelect"> + <el-form-item label="结算金额:" :label-width="formLabelWidth"> + <div style="font-size: 30px;color: #ff0000">¥{{formSelect.jsje}}</div> + </el-form-item> + <el-form-item label="结算订单:" :label-width="formLabelWidth"> + <div style="font-size: 20px;">{{formSelect.jsdds}}单</div> + </el-form-item> + <el-form-item label="结算人数:" :label-width="formLabelWidth"> + <div style="font-size: 20px;">{{formSelect.jsrs}}人</div> + </el-form-item> + <el-form-item label="结算方式:" :label-width="formLabelWidth"> + <el-radio-group v-model="formSelect.jsfs"> + <el-radio-button label="1">线下结算</el-radio-button> + <el-radio-button label="2">微信余额支付</el-radio-button> + </el-radio-group> + </el-form-item> + <el-form-item label="备注:" :label-width="formLabelWidth"> + <el-input type="textarea" :rows="3" v-model="formSelect.bz" autocomplete="off"></el-input> + </el-form-item> + </el-form> + <div slot="footer" class="dialog-footer"> + <el-button @click="dialogFormVisible = false">取 消</el-button> + <el-button type="primary" @click="updateSetOrderDone()">确 定</el-button> + </div> + </el-dialog> + + <el-col> + <el-form ref="form" :model="form" inline > + <el-form-item label="订单状态" prop="ddType"> + <el-select v-model="form.ddType" placeholder="订单状态"> + <el-option + v-for="item in ddTypeList" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item label="结算状态" prop="orderType"> + <el-select v-model="form.orderType" placeholder="结算状态"> + <el-option + v-for="item in orderTypeList" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> + </el-select> + </el-form-item> + <el-form-item prop="userName" > + <el-input v-model="form.userName" placeholder="请输入客户名称"></el-input> + </el-form-item> + <el-form-item prop="tgy" > + <el-input v-model="form.tgy" placeholder="请输入推广员名称"></el-input> + </el-form-item> + <el-form-item prop="ddsj" > + <el-date-picker + v-model="form.ddsj" + type="datetimerange" + :picker-options="pickerOptions" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + align="right"> + </el-date-picker> + </el-form-item> + <el-form-item prop="jsbh" > + <el-input v-model="form.jsbh" placeholder="请输入结算编号"></el-input> + </el-form-item> + <el-form-item prop="ddh" > + <el-input v-model="form.ddh" placeholder="请输入订单号"></el-input> + </el-form-item> + <el-button type="primary" @click="search" >搜索</el-button> + <el-button @click="resetForm('form')">重置</el-button> + </el-form> + </el-col> + </el-row> + + <el-row class="table-style" > + <el-table ref="multipleTable" + :data="fxyList.rows" + :height="height" + stripe:true + @sort-change="sortChange" + @selection-change="handleSelectionChange"> + <el-table-column + type="selection"> + </el-table-column> + <el-table-column + prop="orderNo" + label="订单编号"> + </el-table-column> + <el-table-column + prop="actualBalance" + label="实付金额(元)"> + </el-table-column> + <el-table-column + label="订单状态"> + <template slot-scope="scope"> + <span v-if="scope.row.orderState == 1">待付款</span> + <span v-if="scope.row.orderState == 2">待配送</span> + <span v-if="scope.row.orderState == 3">待收货</span> + <span v-if="scope.row.orderState == 4">待评价</span> + <span v-if="scope.row.orderState == 5">已评价</span> + <span v-if="scope.row.orderState == 6">申请退款</span> + <span v-if="scope.row.orderState == 7">退款成功</span> + <span v-if="scope.row.orderState == 8">退款拒绝</span> + <span v-if="scope.row.orderState == 9">已取消</span> + </template> + </el-table-column> + <el-table-column + prop="address" + label="下单门店"> + </el-table-column> + <el-table-column + prop="custom" + label="客户"> + </el-table-column> + <el-table-column + prop="parentSale" + label="推广员"> + </el-table-column> + <el-table-column + label="收益类型"> + <template slot-scope="scope"> + <span v-if="scope.row.profitType == 1">推广收益</span> + <span v-if="scope.row.profitType == 2">邀请收益</span> + </template> + </el-table-column> + <el-table-column + prop="profitBalance" + label="收益金额"> + </el-table-column> + <el-table-column + label="结算状态"> + <template slot-scope="scope"> + <span v-if="scope.row.settleType == 1">待结算</span> + <span v-if="scope.row.settleType == 2">已结算</span> + <span v-if="scope.row.settleType == 3">已退款</span> + </template> + </el-table-column> + <el-table-column + prop="settleNo" + label="结算编号" width="150"> + </el-table-column> + <el-table-column + prop="settleTime" + label="结算时间"> + </el-table-column> + <el-table-column + prop="settler" + label="结算人"> + </el-table-column> + <el-table-column label="操作"> + </el-table-column> + </el-table> + </el-row> + <el-row class="paginationStyle" > + <el-pagination background + @size-change="changePageSize" + @current-change="changeCurrentPage" + :current-page="fxyList.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="fxyList.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="fxyList.total"> + </el-pagination> + </el-row> + </el-tab-pane> + + <el-tab-pane label="结算记录" name="second"> + <el-row style="display:flex;align-items: center;text-align: right;"> + <el-col> + <el-form ref="formOrder" :model="formOrder" inline > + <el-form-item prop="jssj" > + <el-date-picker + v-model="formOrder.jssj" + type="datetimerange" + :picker-options="pickerOptions" + range-separator="至" + start-placeholder="开始日期" + end-placeholder="结束日期" + align="right"> + </el-date-picker> + </el-form-item> + <el-form-item prop="userName"> + <el-input v-model="formOrder.userName" placeholder="请输入结算人姓名"></el-input> + </el-form-item> + <el-button type="primary" @click="searchFormOrder" >搜索</el-button> + <el-button @click="resetFormOrder('formOrder')">重置</el-button> + </el-form> + </el-col> + </el-row> + <el-row class="table-style" > + <el-table :data="orderLevelList.rows" :height="height" stripe:true @sort-change="sortChange"> + <el-table-column + prop="orderNo" + label="结算编号"> + </el-table-column> + <el-table-column + prop="actualBalance" + label="结算金额"> + </el-table-column> + <el-table-column + prop="setNum" + label="结算订单数"> + </el-table-column> + <el-table-column + prop="setManNum" + label="结算人数"> + </el-table-column> + <el-table-column + prop="setTime" + label="结算时间"> + </el-table-column> + <el-table-column + prop="setMan" + label="结算人"> + </el-table-column> + <el-table-column + label="结算方式"> + <template slot-scope="scope"> + <span v-if="scope.row.settlementWay == 1">线下结算</span> + <span v-if="scope.row.settlementWay == 2">微信余额结算</span> + </template> + </el-table-column> + <el-table-column + prop="remark" + label="备注"> + </el-table-column> + </el-table> + </el-row> + <el-row class="paginationStyle" > + <el-pagination background + @size-change="changePageSizeOrder" + @current-change="changeCurrentPageOrder" + :current-page="orderLevelList.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="orderLevelList.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="orderLevelList.total"> + </el-pagination> + </el-row> + </el-tab-pane> + </el-tabs> + </el-row> +</div> +</body> +<script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> +<script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script> +<script type="text/javascript" th:src="@{/plugin/bootstrap-3.3.5/js/bootstrap.min.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script> +<script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script> +<script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> +<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script> +<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> + +<script> + //获取传输的USERID对象 + var userId = $.query.get("userId"); + var applyId = $.query.get("applyId"); + + var app = new Vue({ + el: '#app', + data: { + activeName: 'first', + height:'calc(100vh - 240px)', + //--基本数据 + basicdetail:{}, + //--时间选择 + pickerOptions: { + shortcuts: [{ + text: '最近一周', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); + picker.$emit('pick', [start, end]); + } + }, { + text: '最近一个月', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); + picker.$emit('pick', [start, end]); + } + }, { + text: '最近三个月', + onClick(picker) { + const end = new Date(); + const start = new Date(); + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); + picker.$emit('pick', [start, end]); + } + }] + }, + + //--批量审核选中操作 + multipleSelection: [], + orderIds:"", + orderNums:0, + orderNumsDones:0, + dialogFormVisible: false, + formSelect: { + jsje: '', + jsdds: '', + jsrs: '', + jsfs: 1, + bz: '' + }, + formLabelWidth: '120px', + //--分销订单 + // 条件查询结算状态 + orderTypeList:[ + {value:'',label:'全部'}, + {value:1,label:'待结算'}, + {value:2,label:'已结算'}, + {value:3,label:'已退款'} + ], + ddTypeList:[ + {value:'',label:'全部'}, + {value:1,label:'待付款'}, + {value:2,label:'待配送'}, + {value:3,label:'待收货'}, + {value:4,label:'待评价'}, + {value:5,label:'已评价'}, + {value:6,label:'申请退款'}, + {value:7,label:'退款成功'}, + {value:8,label:'退款拒绝'}, + {value:9,label:'已取消'} + ], + form:{ + userName:'', + orderType:'', + ddType:'', + ddsj: '', + tgy:'', + jsbh:'', + ddh:'', + order:'', + sort:'' + }, + fxyList:{ + rows:[], + total:0, + pageSize:10, + currentPage:1, + }, + //--结算记录 + formOrder:{ + userName:'', + jssj:'', + order:'', + sort:'' + }, + orderLevelList:{ + rows:[], + total:0, + pageSize:10, + currentPage:1, + }, + }, + created: function () { + this.loadInfo(); + }, + mounted: function () { + }, + methods: { + //加载分类 + loadInfo() { + let _this = this; + _this.loadFenxiaoOrderBasic(); + _this.loadFenxiaoOrderList(); + _this.loadSetOrderList(); + }, + //--基础数据 + loadFenxiaoOrderBasic() { + let _this = this; + let obj = {}; + AjaxProxy.requst({ + app: _this, + data:obj, + url: basePath + '/fenXiao/fenXiaoOrder/loadFenxiaoOrderBasic', + callback: function (data) { + _this.basicdetail = data.mapInfo.basicdetail; + } + }); + }, + //--结算记录 + loadSetOrderList() { + let _this = this; + let data=_this.getRequestParamOrder(); + data.pageSize=_this.orderLevelList.pageSize; + data.pageNum=_this.orderLevelList.currentPage; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/fenXiao/fenXiaoOrder/loadSetOrderList', + callback: function (data) { + _this.orderLevelList.rows = data.rows; + _this.orderLevelList.total = data.total; + } + }); + }, + //查询参数 + getRequestParamOrder(){ + let _this = this; + let startTime = ''; + let endTime = ''; + if(_this.formOrder.jssj.length > 0){ + startTime = _this.formOrder.jssj[0]; + endTime = _this.formOrder.jssj[1]; + } + return { + userName:_this.formOrder.userName, + startTime:startTime, + endTime:endTime, + order:_this.formOrder.order, + sort:_this.formOrder.sort, + } + }, + //查询 + searchFormOrder:function(){ + this.orderLevelList.currentPage=1; + this.loadSetOrderList(); + }, + //重置 + resetFormOrder(formName) { + this.$refs[formName].resetFields(); + }, + changePageSizeOrder(val) { + this.orderLevelList.pageSize = val; + this.loadSetOrderList(); + }, + changeCurrentPageOrder(val) { + this.orderLevelList.currentPage = val; + this.loadSetOrderList(); + }, + //--分销订单 + loadFenxiaoOrderList() { + let _this = this; + let data=_this.getRequestParam(); + data.pageSize=_this.fxyList.pageSize; + data.pageNum=_this.fxyList.currentPage; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/fenXiao/fenXiaoOrder/loadFenxiaoOrderList', + callback: function (data) { + _this.fxyList.rows = data.rows; + _this.fxyList.total = data.total; + } + }); + }, + //查询参数 + getRequestParam(){ + let _this = this; + let startTime = ''; + let endTime = ''; + if(_this.form.ddsj.length > 0){ + startTime = _this.form.ddsj[0]; + endTime = _this.form.ddsj[1]; + } + return { + orderType:_this.form.orderType, + ddType:_this.form.ddType, + tgy:_this.form.tgy, + userName:_this.form.userName, + jsbh:_this.form.jsbh, + startTime:startTime, + endTime:endTime, + ddh:_this.form.ddh, + order:_this.form.order, + sort:_this.form.sort, + } + }, + //查询 + search:function(){ + this.fxyList.currentPage=1; + this.loadFenxiaoOrderList(); + }, + //重置 + resetForm(formName) { + this.$refs[formName].resetFields(); + }, + changePageSize(val) { + this.fxyList.pageSize = val; + this.loadFenxiaoOrderList(); + }, + changeCurrentPage(val) { + this.fxyList.currentPage = val; + this.loadFenxiaoOrderList(); + }, + //排序 + sortChange:function (column){ + if(column.order){ + if(column.order.indexOf("desc")){ + this.form.order="desc"; + }else{ + this.form.order="asc"; + } + this.form.sort=column.prop; + this.loadInfo(); + } + }, + //选择 + handleSelectionChange(val) { + let _this = this; + _this.multipleSelection = val; + //拼接出一个逗号隔开的字符串 + let submitDate = ""; + let orderNum = 0; + let orderBalance = 0; + let orderNumsDone = 0; + let name = []; + for (let i = 0; i < _this.multipleSelection.length; i++) { + let order = _this.multipleSelection[i]; + //待审核的计算到弹出框 + let orderState = order.orderState; + if(orderState == 4 || orderState == 5){ + let orderId = order.id; + name.push(order.customUserId); + orderNum = orderNum + 1; + orderBalance = orderBalance + order.profitBalance; + submitDate = submitDate +orderId+","; + }else{ + orderNumsDone = orderNumsDone + 1; + } + } + _this.orderNumsDones = orderNumsDone; + _this.orderIds = submitDate; + _this.orderNums = orderNum; + _this.formSelect.jsdds = orderNum; + _this.formSelect.jsje = orderBalance; + _this.formSelect.jsrs = _this.distinctFunction(name).length; + }, + //去重 + distinctFunction(name){ + var arr = name, + result = [], + i, + j, + len = arr.length; + for(i = 0; i < len; i++){ + for(j = i + 1; j < len; j++){ + if(arr[i] === arr[j]){ + j = ++i; + } + } + result.push(arr[i]); + } + return result; + }, + //批量结算 + setOrderDone() { + if(this.orderNumsDones > 0){ + this.$message({ + message: '订单状态【待评价】和【已评价】才允许结算', + type: 'warning' + }); + }else if(this.orderNums > 0){ + this.dialogFormVisible = true; + }else{ + this.$message({ + message: '至少需要选中一条数据', + type: 'warning' + }); + } + }, + updateSetOrderDone(){ + let _this = this; + let obj = { + orderIds: _this.orderIds, + setType: _this.formSelect.jsfs, + manCount: _this.formSelect.jsrs, + orderCount: _this.formSelect.jsdds, + amount: _this.formSelect.jsje, + remark: _this.formSelect.bz, + } + AjaxProxy.requst({ + app: _this, + data:obj, + url: basePath + '/fenXiao/fenXiaoOrder/updateSetOrderDone', + callback: function (data) { + _this.$message.success(data.info); + _this.loadFenxiaoOrderList(); + _this.dialogFormVisible = false; + } + }); + }, + } + }) +</script> + +</body> +</html> \ No newline at end of file diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html index 7ac67c3..4b6da5c 100644 --- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html +++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-setting.html @@ -36,6 +36,7 @@ </template> </el-col> </el-row> + <el-row style="margin-top: 20px;"> <el-col> <template v-for="paramSettingTwo in fxms"> @@ -51,13 +52,14 @@ </template> </el-col> </el-row> + <el-row style="margin-top: 20px;"> <el-col> <template v-for="paramSettingThree in sqfs"> <el-form-item> <span slot="label">{{paramSettingThree.paramName}}</span> <el-col> - <el-radio-group v-model="paramSettingThree.paramValue"> + <el-radio-group v-model="paramSettingThree.paramValue" @change="sqfsChange"> <div style="margin-top: 12px;"><el-radio :label="'1'">无需申请满足条件自动成为分销员</el-radio></div> <div style="margin-top: 20px;"><el-radio :label="'2'">需要客户主动申请</el-radio></div> </el-radio-group> @@ -66,22 +68,8 @@ </template> </el-col> </el-row> - <el-row style="margin-top: 20px;"> - <el-col> - <template v-for="paramSettingFour in shfs"> - <el-form-item> - <span slot="label">{{paramSettingFour.paramName}}</span> - <el-col> - <el-radio-group v-model="paramSettingFour.paramValue"> - <div style="margin-top: 12px;"><el-radio :label="'1'">系统自动审核</el-radio></div> - <div style="margin-top: 20px;"><el-radio :label="'2'">人工审核</el-radio></div> - </el-radio-group> - </el-col> - </el-form-item > - </template> - </el-col> - </el-row> - <el-row style="margin-top: 20px;"> + + <el-row v-show="isShow" style="margin-top: 20px;"> <el-col> <template v-for="paramSettingFive in sqtj"> <el-form-item> @@ -111,6 +99,24 @@ </template> </el-col> </el-row> + + <el-row v-show="isShow" style="margin-top: 20px;"> + <el-col> + <template v-for="paramSettingFour in shfs"> + <el-form-item> + <span slot="label">{{paramSettingFour.paramName}}</span> + <el-col> + <el-radio-group v-model="paramSettingFour.paramValue"> + <div style="margin-top: 12px;"><el-radio :label="'1'">系统自动审核</el-radio></div> + <div style="margin-top: 20px;"><el-radio :label="'2'">人工审核</el-radio></div> + </el-radio-group> + </el-col> + </el-form-item > + </template> + </el-col> + </el-row> + + <el-drawer title="业绩设置" :visible.sync="drawer" @@ -274,6 +280,8 @@ //表格加载效果 loading: false, /******搜索表格数据END********/ + val:'', + isShow:true, fxkg:[], fxms:[], sqfs:[], @@ -292,6 +300,10 @@ let _this = this; _this.loadParamSetting(); }, + sqfsChange(val){ + let _this = this; + _this.isShow=(val==2)?true:false; + }, loadParamSetting() { let _this = this; //加载配置 @@ -303,6 +315,14 @@ _this.fxkg = data.mapInfo.fxkg; _this.fxms = data.mapInfo.fxms; _this.sqfs = data.mapInfo.sqfs; + if(_this.sqfs.length > 0){ + let paramssqfs = _this.sqfs[0].paramValue; + if(paramssqfs == 2){ + _this.isShow = true; + }else{ + _this.isShow = false; + } + } _this.shfs = data.mapInfo.shfs; _this.sqtj = data.mapInfo.sqtj; //_this.order.items = data.mapInfo.order; diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html index cc2ebb2..5ced92d 100644 --- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html +++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html @@ -399,7 +399,7 @@ }); }, handleAvatarSuccess(res, file) { - this.imageUrl = URL.createObjectURL(file.raw); + this.imageUrl = res.path; }, beforeAvatarUpload(file) { const isJPG = file.type === 'image/jpeg'; @@ -574,11 +574,11 @@ } }, changePageSize(val) { - this.table.pageSize = val; + this.fxyList.pageSize = val; this.loadParamSetting(); }, changeCurrentPage(val) { - this.table.currentPage = val; + this.fxyList.currentPage = val; this.loadParamSetting(); }, //时间格式化 diff --git a/zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html b/zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html index 04342bd..b0d1f09 100644 --- a/zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html +++ b/zq-erp/src/main/resources/templates/views/admin/shop/shopUser-list.html @@ -21,14 +21,7 @@ <div class="col-md-2 col-xs-12"> <!-- 功能按钮部分 --> <div class=""> - <button onclick="setUserSales('1')" type="button" - class="btn btn-success btn-sm" matrix:btn="shopUser-exchangeScore"> - <i class="fa fa-plus"></i>设为销售员 - </button> - <button onclick="setUserSales('0')" type="button" - class="btn btn-success btn-sm" matrix:btn="shopUser-exchangeScore"> - <i class="fa fa-minus-square"></i> 解除销售员 - </button> + </div> </div> <div class="col-md-10 col-xs-12"> @@ -199,63 +192,14 @@ function buildOperate(value, row, index){ var html = ""; html += '<div class="btn-group">' - if (row.userVip == 1) { - html += btns[0].replace('VALUE',value) - html += btns[1].replace('VALUE',value) - } html += '</div>'; return html; } - function exchangeScore(_userId) { - layer.open({ - type : 2, - title : "兑换积分", - area : [ MUI.SIZE_L, '400px' ], - maxmin : true, - content : [ basePath+'/admin/bizUserScore/intoExchangePage?userId=' + _userId] - }) - } - function getScoreFlow(_userId) { - layer.open({ - type : 2, - title : "积分流水", - area : [ MUI.SIZE_L, '400px' ], - maxmin : true, - content : [ basePath+'/admin/redirect/shop/user-score-flow?userId=' + _userId] - }) - } - //设置用户销售员身份 - function setUserSales(_status) { - var ids = myGrid.getSelectItemsIds("userId"); - if(ids.length < 1){ - layer.msg("请选择要操作的数据", { - icon : 5 - }); - return false; - } - var url = basePath + "/admin/bizUser/setUserSales?ids=" + ids + "&status=" + _status; - - if(_status == '1'){ - MTools.handleItem(url,"确认要将这" + ids.split(",").length + "个用户设置为销售员吗?",function(){ - myGrid.serchData(1) - }); - } else { - MTools.handleItem(url,"确认要取消这" + ids.split(",").length + "个用户的销售员身份吗?",function(){ - myGrid.serchData(1) - }); - } - } </script> -<!--权限按钮--> -<script matrix:btn="shopUser-exchangeScore"> - btns[0] = '<button type="button" class="btn btn-info mr10" onClick="exchangeScore(\'VALUE\')">兑换积分</button>' -</script> -<script matrix:btn="shopUser-scoreFlow"> - btns[1] = '<button type="button" class="btn btn-primary ml10" onClick="getScoreFlow(\'VALUE\')">查看流水</button>' -</script> + </body> </html> diff --git a/zq-erp/src/test/java/com/matrix/JyyTests.java b/zq-erp/src/test/java/com/matrix/JyyTests.java new file mode 100644 index 0000000..b2b3243 --- /dev/null +++ b/zq-erp/src/test/java/com/matrix/JyyTests.java @@ -0,0 +1,47 @@ +package com.matrix; + +import com.matrix.system.shopXcx.dao.ShopOrderV2Dao; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +/** + * 测试类示例 + * + * @author jiangyouyao + * @email 512061637@qq.com + * @date 2019年2月25日 + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {ZqErpApplication.class},webEnvironment =SpringBootTest.WebEnvironment.RANDOM_PORT) +public class JyyTests { + + + @Autowired + private ShopOrderV2Dao shopOrderV2Dao; + + + + /** + * + */ + @Test + public void testSelectReceivedOrderCount() throws InterruptedException { + System.out.println( shopOrderV2Dao.selectReceivedOrderCount("oJkRK4yelehsY4S7I6Ee1ydWtQMI")); + } + + @Test + public void testCountOrderAmount() throws InterruptedException { + System.out.println( shopOrderV2Dao.countOrderAmount("oJkRK4yelehsY4S7I6Ee1ydWtQMI")); + } + + + @Test + public void countBuyZdcp() throws InterruptedException { + System.out.println( shopOrderV2Dao.countBuyZdcp("oJkRK4yelehsY4S7I6Ee1ydWtQMI","1167,1263,1262")); + } + + +} -- Gitblit v1.9.1