From dfa29cdf223f2cb78184c4b15ab9f0824f3427c4 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 15 Mar 2021 20:10:29 +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/component/wechat/externalInterface/weixinUtil/WeixinServiceUtil.java | 1
zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopRevenueFlowDao.java | 6 +
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesmanAction.java | 3
zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesmanCenterInfo.java | 6 +
zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/RevenueFlowDto.java | 26 +++++
zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java | 4
zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesWithdrawalAction.java | 127 +++++++++++++++++++++++++
zq-erp/src/main/java/com/matrix/system/hive/service/imp/CodeServiceImpl.java | 19 +++
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopRevenueFlowDao.xml | 14 ++
zq-erp/src/main/java/com/matrix/core/tools/StringUtils.java | 17 +--
zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java | 2
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 | 12 +-
zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml | 5
14 files changed, 240 insertions(+), 22 deletions(-)
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/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/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/entity/ShopRevenueFlow.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/entity/ShopRevenueFlow.java
index 68a0b7d..9239bfd 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;
/**
@@ -23,36 +24,35 @@
/**
* 用户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/hive/service/CodeService.java b/zq-erp/src/main/java/com/matrix/system/hive/service/CodeService.java
index 896518f..094d971 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,6 +25,8 @@
*/
public String getOrderCode();
+ String get32LenNumberCode();
+
public String getFlowCode();
/**
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..cc94459 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,6 +96,23 @@
}
@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();
}
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..e94b42d 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
@@ -159,7 +159,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 +173,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/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/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/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..ae2981e 100644
--- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
+++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanApplyDao.xml
@@ -187,7 +187,10 @@
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
--
Gitblit v1.9.1