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