From 789c5301ba9c69f779cb0b29f22857299760a960 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Mon, 15 Mar 2021 15:51:23 +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 | 18 + zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SaleProductDto.java | 18 + zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml | 6 zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoUserAction.java | 84 +++++++ zq-erp/src/main/java/com/matrix/system/fenxiao/action/FenXiaoSettingAction.java | 3 zq-erp/src/main/java/com/matrix/system/fenxiao/dao/ShopSalesmanOrderDao.java | 4 zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgtpDto.java | 17 + zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java | 7 zq-erp/src/main/java/com/matrix/system/shopXcx/mqTask/SalesOrderTask.java | 1 zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/protocol/payComProtocol/JsApiPayComReqData.java | 82 +++--- zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgjhDto.java | 17 + zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html | 191 +++++++++++----- zq-erp/src/main/java/com/matrix/system/fenxiao/service/ShopSalesmanApplyService.java | 34 +++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java | 65 +++++ zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java | 12 zq-erp/src/test/java/com/matrix/SourceFlowTests.java | 13 + zq-erp/src/main/java/com/matrix/system/common/actions/TestActionBB.java | 33 +++ zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java | 2 18 files changed, 484 insertions(+), 123 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/protocol/payComProtocol/JsApiPayComReqData.java b/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/protocol/payComProtocol/JsApiPayComReqData.java index d38b928..45b726d 100644 --- a/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/protocol/payComProtocol/JsApiPayComReqData.java +++ b/zq-erp/src/main/java/com/matrix/component/wechat/externalInterface/protocol/payComProtocol/JsApiPayComReqData.java @@ -3,7 +3,6 @@ import com.matrix.component.wechat.externalInterface.common.RandomStringGenerator; import com.matrix.component.wechat.externalInterface.common.Signature; -import com.matrix.component.wechat.externalInterface.common.WechatConfigure; import java.lang.reflect.Field; import java.util.HashMap; @@ -21,31 +20,29 @@ /** * 商户号 */ - private String mch_id = ""; + private String mchid = ""; + + private String mch_appid = ""; + /** * 商户企业付款单号 */ private String partner_trade_no = ""; + /** * 随机字符串 */ private String nonce_str = ""; + + + private String check_name = ""; + + /** * 签名 */ private String sign = ""; - /** - * 收款方银行卡号 - */ - private String enc_bank_no = ""; - /** - * 收款方用户名 - */ - private String enc_true_name = ""; - /** - * 收款方开户行 - */ - private String bank_code = ""; + /** * 付款金额 RMB(分) */ @@ -54,6 +51,8 @@ * 备注 */ private String desc = ""; + + private String openid = ""; public JsApiPayComReqData() { @@ -66,58 +65,49 @@ * @param desc 描述 * @param outTradeNo 商户企业付款单号 * @param totalFee 付款金额 - * @param bankNo 银行卡号 - * @param bankTrueName 收款号姓名 * @param bankCode 收款号开户行 */ - public JsApiPayComReqData(String mchID,String paySecret ,String desc, String outTradeNo, int totalFee, String bankNo, String bankTrueName, String bankCode) { + public JsApiPayComReqData(String mchID,String mch_appid,String paySecret ,String desc, String outTradeNo, int totalFee, + String openid, String check_name, String bankCode) { + setMch_appid(mch_appid); //默认必须设置 - setMch_id(mchID); + setMchid(mchID); setDesc(desc); setPartner_trade_no(outTradeNo); setAmount(totalFee); + setOpenid(openid); + setCheck_name(check_name); //随机字符串,不长于32 位 setNonce_str(RandomStringGenerator.getRandomStringByLength(32)); //根据API给的签名规则进行签名 【 必须要放在本方法的最后】 String sign = Signature.getSign(toMap(),paySecret); setSign(sign);//把签名数据设置到Sign这个属性中 -// setEnc_bank_no(); -// setEnc_true_name(); -// setBank_code(); + } - - public String getMch_id() { - return mch_id; + public String getMch_appid() { + return mch_appid; } - public void setMch_id(String mch_id) { - this.mch_id = mch_id; + public void setMch_appid(String mch_appid) { + this.mch_appid = mch_appid; } - public String getEnc_bank_no() { - return enc_bank_no; + public String getCheck_name() { + return check_name; } - public void setEnc_bank_no(String enc_bank_no) { - this.enc_bank_no = enc_bank_no; + public void setCheck_name(String check_name) { + this.check_name = check_name; } - public String getEnc_true_name() { - return enc_true_name; + public String getMchid() { + return mchid; } - public void setEnc_true_name(String enc_true_name) { - this.enc_true_name = enc_true_name; - } - - public String getBank_code() { - return bank_code; - } - - public void setBank_code(String bank_code) { - this.bank_code = bank_code; + public void setMchid(String mchid) { + this.mchid = mchid; } public String getNonce_str() { @@ -144,6 +134,14 @@ this.partner_trade_no = partner_trade_no; } + public String getOpenid() { + return openid; + } + + public void setOpenid(String openid) { + this.openid = openid; + } + public int getAmount() { return amount; } 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 30c7d4d..5af497a 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 @@ -142,20 +142,32 @@ * @param openid * @return */ - public JsApiPayComResData comPay(String desc, String outTradeNo,int totalFee, String openid){ + 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 企业付款 - Long companyId=HostInterceptor.getCompanyId(); + BusParameterSettings mchID = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WECHARPAY_MCHID, companyId); + BusParameterSettings appId = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.MINIPROGRAM_APPID, companyId); BusParameterSettings paySecret = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WECHARPAY_SECRET, companyId); + BusParameterSettings certLocalPath = busParameterSettingsDao.selectCompanyParamByCode(AppConstance.WECHARPAY_CERTLOCAL_PATH, companyId); - JsApiPayComReqData jsApiPayComReqData=new JsApiPayComReqData(mchID.getParamValue(),paySecret.getParamValue(),"","",0,"","",""); + JsApiPayComReqData jsApiPayComReqData=new JsApiPayComReqData(mchID.getParamValue(), + appId.getParamValue(), + paySecret.getParamValue(), + desc,outTradeNo,totalFee,openid,"NO_CHECK",""); JsApiPayComService jsApiPayComService=new JsApiPayComService(); + + HttpsRequest2 request2= (HttpsRequest2) jsApiPayComService.getServiceRequest(); + request2.setCertLocalPath(certLocalPath.getParamValue()); + request2.setMchId(mchID.getParamValue()); + + result = jsApiPayBusiness.payComOrder(jsApiPayComService, jsApiPayComReqData); + LogUtil.info("#提现,企业付款到个人---result:{}",result); if (result.getResult_code().equals("SUCCESS")) { return result; diff --git a/zq-erp/src/main/java/com/matrix/system/common/actions/TestActionBB.java b/zq-erp/src/main/java/com/matrix/system/common/actions/TestActionBB.java new file mode 100644 index 0000000..b4b02ed --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/common/actions/TestActionBB.java @@ -0,0 +1,33 @@ +package com.matrix.system.common.actions; + +import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil; +import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.web.BaseAction; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * 测试一下 + */ +@RequestMapping(value = "/testb") +@Controller +public class TestActionBB extends BaseAction { + + @Autowired + WeixinServiceUtil weixinServiceUtil; + + + @GetMapping(value = "/testPay/{no}") + @ResponseBody + public AjaxResult hiveMobileLoginOut(@PathVariable String no) { + weixinServiceUtil.comPay("提现", no,1,"oJkRK4yelehsY4S7I6Ee1ydWtQMI",36L); + return AjaxResult.buildSuccessInstance(""); + } + + + +} \ No newline at end of file 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 cf487c7..3ab2680 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 @@ -100,9 +100,6 @@ } } } - - - return result; } 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 169a429..f0fe454 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 @@ -10,7 +10,10 @@ import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.StringUtils; import com.matrix.core.tools.WebUtil; +import com.matrix.system.common.bean.BusParameterSettings; import com.matrix.system.common.bean.SysUsers; +import com.matrix.system.common.dao.BusParameterSettingsDao; +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.*; @@ -22,9 +25,12 @@ import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @RestController @@ -39,6 +45,8 @@ private BizUserDao bizUserDao; @Autowired private ShopSalesmanGradeDao shopSalesmanGradeDao; + @Autowired + private BusParameterSettingsDao busParameterSettingsDao; /** * 分销员详情页面信息 @@ -102,6 +110,82 @@ } /** + *推广图片 + */ + @ApiOperation(value = "推广图片") + @PostMapping(value = "/updateTgtp") + public @ResponseBody + AjaxResult updateTgtp(@RequestBody UpdateTgtpDto updateTgtpDto) { + return shopSalesmanApplyService.updateTgtp(updateTgtpDto); + } + + /** + *推广图片 + */ + @RequestMapping(value = "/loadTgtpSetting") + public AjaxResult loadTgtpSetting() { + + AjaxResult result= AjaxResult.buildSuccessInstance("查询成功"); + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + Long companyId = user.getCompanyId(); + + //推广文案 + String[] FXKGCode={FenxiaoSettingConstant.FX_TG_POSTER}; + String[] FXKGName={"推广图片"}; + List<FenXiaoSettingVo> fxkgRuleSettingsVo = getRuleSettingsVo(FXKGCode,FXKGName,companyId); + result.putInMap("tgtp", fxkgRuleSettingsVo.get(0)); + return result; + } + + /** + *推广计划更新 + */ + @ApiOperation(value = "推广计划更新") + @PostMapping(value = "/updateTgjh") + public @ResponseBody + AjaxResult updateTgjh(@RequestBody UpdateTgjhDto updateTgjhDto) { + return shopSalesmanApplyService.updateTgjh(updateTgjhDto); + } + /** + *查询推广计划 + */ + @RequestMapping(value = "/loadTgwaSetting") + public AjaxResult loadTgwaSetting() { + + AjaxResult result= AjaxResult.buildSuccessInstance("查询成功"); + SysUsers user = WebUtil.getSessionAttribute(MatrixConstance.LOGIN_KEY); + Long companyId = user.getCompanyId(); + + //推广文案 + String[] FXKGCode={FenxiaoSettingConstant.FX_TG_PLAN}; + String[] FXKGName={"推广文案"}; + List<FenXiaoSettingVo> fxkgRuleSettingsVo = getRuleSettingsVo(FXKGCode,FXKGName,companyId); + result.putInMap("tgwa", fxkgRuleSettingsVo.get(0)); + return result; + } + + /** + *获取对应的规则设置数据 + * @param ArrayCode + * @param ArrayName + * @param companyId + * @return + */ + private List<FenXiaoSettingVo> getRuleSettingsVo(String[] ArrayCode,String[] ArrayName,Long companyId){ + List<BusParameterSettings> dataList = busParameterSettingsDao.selectByCodesAndCompanyId(Arrays.asList(ArrayCode), companyId); + List<FenXiaoSettingVo> scoreRuleSettingsVos=new ArrayList<FenXiaoSettingVo>(); + int index=0; + for (BusParameterSettings item:dataList){ + FenXiaoSettingVo paramVo=new FenXiaoSettingVo(); + BeanUtils.copyProperties(item,paramVo); + paramVo.setParamName(ArrayName[index]); + scoreRuleSettingsVos.add(paramVo); + index++; + } + return scoreRuleSettingsVos; + } + + /** * 分佣方案 */ @ApiOperation(value = "查询分佣方案") 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 964e9ec..ac3d1f6 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 @@ -6,7 +6,7 @@ import com.matrix.system.fenxiao.entity.ShopSalesmanOrder; import com.matrix.system.shopXcx.api.dto.SaleOrderDto; import com.matrix.system.shopXcx.vo.SalesOrderVo; -import io.lettuce.core.dynamic.annotation.Param; +import org.apache.ibatis.annotations.Param; /** * @description 分销订单 @@ -21,6 +21,6 @@ * @param saleOrderDto * @return */ - IPage<SalesOrderVo> selectSalesManOrder(Page<SalesOrderVo> page, @Param("record") SaleOrderDto saleOrderDto); + IPage<SalesOrderVo> selectSalesManOrder(Page<SalesOrderVo> page, @Param("record")SaleOrderDto saleOrderDto); } \ No newline at end of file diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgjhDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgjhDto.java new file mode 100644 index 0000000..bfb530c --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgjhDto.java @@ -0,0 +1,17 @@ +package com.matrix.system.fenxiao.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "UpdateTgjhDto", description = "参数") +public class UpdateTgjhDto { + + @ApiModelProperty(value = "方案名称") + private String tgfa; + + @ApiModelProperty(hidden = true) + private Long companyId; + +} diff --git a/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgtpDto.java b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgtpDto.java new file mode 100644 index 0000000..45c168d --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/fenxiao/dto/UpdateTgtpDto.java @@ -0,0 +1,17 @@ +package com.matrix.system.fenxiao.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +@ApiModel(value = "UpdateTgjhDto", description = "参数") +public class UpdateTgtpDto { + + @ApiModelProperty(value = "方案名称") + private String imageUrl; + + @ApiModelProperty(hidden = true) + private Long companyId; + +} 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 0530ac5..e13c1cc 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 @@ -26,6 +26,8 @@ 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.entity.ShopSalesmanApply; import com.matrix.system.fenxiao.entity.ShopSalesmanGrade; import com.matrix.system.fenxiao.vo.FyfaManageVo; @@ -326,6 +328,14 @@ if(StrUtil.isEmpty(name)) { return AjaxResult.buildFailInstance("请输入方案名称"); } + Double sealesCommission = updateFyfaDto.getSealesCommission(); + if(StrUtil.isEmpty(sealesCommission.toString())) { + return AjaxResult.buildFailInstance("请输入正确的推广提成"); + } + Double invitationCommission = updateFyfaDto.getInvitationCommission(); + if(StrUtil.isEmpty(invitationCommission.toString())) { + return AjaxResult.buildFailInstance("请输入正确的邀请提成"); + } //设置用户公司ID QueryUtil.setQueryLimitCom(updateFyfaDto); selectById.setCompanyId(updateFyfaDto.getCompanyId()); @@ -336,6 +346,30 @@ shopSalesmanGradeDao.updateById(selectById); return AjaxResult.buildFailInstance("操作成功"); } + + @Transactional(rollbackFor = Exception.class) + public AjaxResult updateTgjh(UpdateTgjhDto updateTgjhDto) { + //设置用户公司ID + QueryUtil.setQueryLimitCom(updateTgjhDto); + //获取推广计划的Param + Long companyId = updateTgjhDto.getCompanyId(); + BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_PLAN, companyId); + busParameterSettings.setParamValue3(updateTgjhDto.getTgfa()); + busParameterSettingsDao.updateByModel(busParameterSettings); + return AjaxResult.buildFailInstance("保存成功"); + } + + @Transactional(rollbackFor = Exception.class) + public AjaxResult updateTgtp(UpdateTgtpDto updateTgtpDto) { + //设置用户公司ID + QueryUtil.setQueryLimitCom(updateTgtpDto); + //获取推广计划的Param + Long companyId = updateTgtpDto.getCompanyId(); + BusParameterSettings busParameterSettings = busParameterSettingsDao.selectCompanyParamByCode(FenxiaoSettingConstant.FX_TG_POSTER, companyId); + busParameterSettings.setParamValue(updateTgtpDto.getImageUrl()); + busParameterSettingsDao.updateByModel(busParameterSettings); + return AjaxResult.buildFailInstance("保存成功"); + } diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java index fd85c73..87649b1 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesOrderAction.java @@ -18,6 +18,7 @@ import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import org.springframework.beans.factory.annotation.Autowired; +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; @@ -52,15 +53,15 @@ private ShopSalesmanOrderDao shopSalesmanOrderDao; - @ApiOperation(value = "获取下级列表", notes = "keywords=1 推广订单,keywords=2 邀请订单") + @ApiOperation(value = "获取推广订单", notes = "") @PostMapping(value = "/getOrderList") @ApiResponses({ @ApiResponse(code = 200, message = "ok", response = SalesOrderVo.class) }) - AjaxResult getInvitationuserList(@RequestBody SaleOrderDto saleOrderDto) { + AjaxResult getInvitationuserList(@RequestBody @Validated SaleOrderDto saleOrderDto) { BizUser loginUser = redisUserLoginUtils.getLoginUser(BizUser.class); Page<SalesOrderVo> page=new Page<>(saleOrderDto.getPageNum(),saleOrderDto.getPageSize()); - if(StringUtils.isNotBlank(saleOrderDto.getSort())){ + if(StringUtils.isBlank(saleOrderDto.getSort())){ saleOrderDto.setSort("create_time"); saleOrderDto.setOrder("desc"); } 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 new file mode 100644 index 0000000..bdd6dff --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxSalesProductAction.java @@ -0,0 +1,65 @@ +package com.matrix.system.shopXcx.api.action; + +import com.matrix.core.pojo.AjaxResult; +import com.matrix.system.common.constance.AppConstance; +import com.matrix.system.common.interceptor.HostInterceptor; +import com.matrix.system.shopXcx.api.dto.SaleProductDto; +import com.matrix.system.shopXcx.bean.ShopProduct; +import com.matrix.system.shopXcx.bean.ShopProductAttribute; +import com.matrix.system.shopXcx.dao.ShopProductAttributeDao; +import com.matrix.system.shopXcx.dao.ShopProductDao; +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.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.List; + +/** + * @author jyy + * @date 2021-03-10 + **/ +@Api(tags = "分销商品类") +@RestController +@RequestMapping(value = "/wxapi/salesProduct") +public class WxSalesProductAction { + + @Autowired + private ShopProductDao shopProductDao; + + @Autowired + private ShopProductAttributeDao shopProductAttributeDao; + + @ApiOperation(value = "查询推广商品", notes = "") + @PostMapping(value = "/getSalesProductList") + @ApiResponses({ + @ApiResponse(code = 200, message = "ok", response=SaleProductDto.class) + }) + public AjaxResult getShopProductShowList(@RequestBody @Validated SaleProductDto saleProductDto) { + ShopProduct shopProduct=new ShopProduct(); + + ShopProductAttribute fxsc = shopProductAttributeDao.selectByCode("fxsc", HostInterceptor.getCompanyId()); + shopProduct.setLimit(saleProductDto.getPageSize()); + shopProduct.setOffset(saleProductDto.getPageNum()* 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); + AjaxResult result = new AjaxResult(AjaxResult.STATUS_SUCCESS, shopProducts); + return result; + } + + + + + + + +} diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java index 6023fa5..3e3e4d5 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/action/WxShopProduct.java @@ -1,18 +1,15 @@ package com.matrix.system.shopXcx.api.action; -import com.matrix.core.pojo.AjaxResult; -import com.matrix.core.pojo.PaginationVO; -import com.matrix.core.tools.StringUtils; import com.matrix.biz.bean.BizUser; -import com.matrix.system.common.bean.CustomerDataDictionary; -import com.matrix.system.common.dao.CustomerDataDictionaryDao; import com.matrix.component.redis.RedisUserLoginUtils; +import com.matrix.core.pojo.AjaxResult; +import com.matrix.core.tools.StringUtils; import com.matrix.system.common.constance.AppConstance; - +import com.matrix.system.common.dao.CustomerDataDictionaryDao; import com.matrix.system.common.interceptor.HostInterceptor; +import com.matrix.system.shopXcx.api.service.WxShopCouponService; import com.matrix.system.shopXcx.bean.*; import com.matrix.system.shopXcx.dao.*; -import com.matrix.system.shopXcx.api.service.WxShopCouponService; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -93,7 +90,6 @@ List<ShopProductAttrRef> shopProductAttrRefs = shopProductAttrRefDao.selectByPid(id); List<ShopProductImg> shopProductImgs = shopProductImgDao.selectByPid(id); List<ShopSku> shopSkus = shopSkuDao.selectByPid(id); -// List<ShopSku> shopSkus = shopSkuDao.selectByPidAndShopid(id, shopId); List<ShopProductParamRef> shopProductParamRefs = shopProductParamRefDao.selectByPid(id); shopProduct.setAttrRefs(shopProductAttrRefs); shopProduct.setProductImgs(shopProductImgs); diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SaleProductDto.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SaleProductDto.java new file mode 100644 index 0000000..ffd1375 --- /dev/null +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/api/dto/SaleProductDto.java @@ -0,0 +1,18 @@ +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; + +@Data +@ApiModel(value = "SaleProductDto", description = "分销产品查询参数接收类") +public class SaleProductDto extends BasePageQueryDto { + + @ApiModelProperty(value = "产品分类", example = "1") + private Integer categoryId; + + + + +} 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 d7f846c..b8adbf2 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 @@ -93,6 +93,7 @@ ShopOrder order = shopOrderDao.selectById(Integer.valueOf(orderId)); //获取订单详情 List<ShopOrderDetails> orderDetails = shopOrderDetailsDao.selectByOrderId(Integer.valueOf(orderId)); + order.setDetails(orderDetails); //处理分销订单 handleExtensionOrder(order); diff --git a/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java index 8e837b5..69de0e7 100644 --- a/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java +++ b/zq-erp/src/main/java/com/matrix/system/shopXcx/vo/SalesOrderVo.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import javax.validation.constraints.NotNull; import java.util.Date; @Data @@ -34,6 +35,7 @@ @ApiModelProperty(value = "订单金额") private Double orderMoney; + @ApiModelProperty(value = " 收益类型1,推广收益,2邀请收益") private Integer revenueType; 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 be1fdff..ead840d 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/fenxiao/ShopSalesmanOrderDao.xml @@ -55,10 +55,12 @@ where a.sales_user_id=#{record.userId} and a.revenue_type=#{record.revenueType} - <if test="orderStatus!=null" > + <if test="record.orderStatus!=null" > and a.order_status=#{record.orderStatus} </if> - order by #{record.sort} #{record.order} + <if test="record.sort!=null and record.order!=null" > + order by ${record.sort} ${record.order} + </if> </select> 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 ddfd73b..cc2ebb2 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 @@ -29,6 +29,29 @@ margin: 0px 0px 10px 0px; text-align: right; } + .avatar-uploader .el-upload { + border: 1px dashed #d9d9d9; + border-radius: 6px; + cursor: pointer; + position: relative; + overflow: hidden; + } + .avatar-uploader .el-upload:hover { + border-color: #409EFF; + } + .avatar-uploader-icon { + font-size: 28px; + color: #8c939d; + width: 178px; + height: 178px; + line-height: 178px; + text-align: center; + } + .avatar { + width: 178px; + height: 178px; + display: block; + } </style> </head> @@ -76,7 +99,7 @@ type="selection"> </el-table-column> <el-table-column - label="分销员"> + label="分销员" width="120"> <template slot-scope="scope"> <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/> {{scope.row.nickname}} @@ -84,11 +107,11 @@ </el-table-column> <el-table-column prop="parentUser" - label="邀请人" width="100"> + label="邀请人"> </el-table-column> <el-table-column prop="lowerLevelNum" - label="下级客户数" width="100"> + label="下级客户数"> </el-table-column> <el-table-column prop="totalRevenue" @@ -164,14 +187,14 @@ prop="sealesCommission" label="推广提成 %"> <template slot-scope="scope"> - <el-input class="edit-input" v-model="scope.row.sealesCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="推广提成 %"></el-input> + <el-input class="edit-input" v-model="scope.row.sealesCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="推广提成"></el-input> </template> </el-table-column> <el-table-column prop="invitationCommission" label="邀请提成 %"> <template slot-scope="scope"> - <el-input class="edit-input" v-model="scope.row.invitationCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="邀请提成 %"></el-input> + <el-input class="edit-input" v-model="scope.row.invitationCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="邀请提成"></el-input> </template> </el-table-column> <el-table-column @@ -206,34 +229,32 @@ </el-tab-pane> <el-tab-pane label="推广文案" name="third"> - <el-row> - <script style="width: 100%; height: 500px" id="description" name="description" - type="text/plain"></script> + <p class="el-big-title">文案描述</p> + <el-row justify="center" type="flex"> + <script style="height: 400px;width: 375px;" id="description" name="description" + type="text/plain"> + </script> </el-row> <el-row justify="center" type="flex"> - <el-button type="primary" @click="submit()">保存</el-button> + <el-button type="primary" size="mini" @click="wamsSubmit()">保存</el-button> </el-row> </el-tab-pane> - <el-tab-pane label="分享图片上传" name="fourth"> - <el-row> - <div class="ibox-content"> - <form class="form-horizontal" id="dataform" - onsubmit="javascripr:return false;"> - <div class="form-group"> - <label class="col-sm-2 control-label">门店照片</label> - <div class="col-sm-8"> - <input autocomplete="off" v-model="fxtp.paramValue" name="shopImag" id="info6" - class="form-control upload-input" type="text" /> <a - class="btn btn-primary radius upload-a">选择图片 - </a> - </div> - </div> - <el-row justify="center" type="flex"> - <el-button type="primary" @click="submittp(paramValue)">保存</el-button> - </el-row> - </form> - </div> + <el-tab-pane label="推广图片" name="fourth"> + <p class="el-big-title">上传图片</p> + <el-row justify="center" type="flex"> + <el-upload + class="avatar-uploader" + action="/admin/multipleUploadFile/doUpload" + :show-file-list="false" + :on-success="handleAvatarSuccess" + :before-upload="beforeAvatarUpload"> + <img v-if="imageUrl" :src="imageUrl" class="avatar"> + <i v-else class="el-icon-plus avatar-uploader-icon"></i> + </el-upload> + </el-row> + <el-row justify="center" type="flex"> + <el-button type="primary" size="mini" @click="tgtpSubmit()">保存</el-button> </el-row> </el-tab-pane> @@ -253,20 +274,19 @@ <script> //百度编辑器 - MUI.initImgUpload(".upload-input"); - var ue = {}; + var ue = { + initialFrameWidth :750 + }; var app = new Vue({ el: '#app', data: { height:'calc(100vh - 240px)', - fxy:[], - fenxiaoGrade: "", - tgwa: "", activeName: 'first', - multipleSelection: [], - fxtp:{}, - mdjf:[], - scjf:[], + fenxiaoGrade: "", + //推广文案 + tgwa: {}, + //图片上传 + imageUrl: '', //分佣方案 fyfaList:{ rows:[], @@ -274,7 +294,6 @@ pageSize:10, currentPage:1, }, - //分销员管理 shenheAgreeType : 2, shenheDisagreeType : 3, @@ -300,16 +319,12 @@ pageSize:10, currentPage:1, }, - height:'calc(100vh - 240px)', }, - created: function () { this.loadInfo(); window.addEventListener("keydown", this.keydown); //初始化编辑器 ue = UE.getEditor('description'); - //百度编辑器 - MUI.initImgUpload(".upload-input"); }, mounted: function () { }, @@ -319,25 +334,84 @@ let _this = this; _this.loadParamSetting(); _this.loadFyfaSetting(); + _this.loadTgwaSetting(); + _this.loadTgtpSetting(); _this.getSalemanGradeList(); }, - submittp(paramValue) { - alert(paramValue); + //推广文案 + loadTgwaSetting() { + let _this = this; + AjaxProxy.requst({ + app: _this, + data:[], + url: basePath + '/fenXiao/fenXiaoUser/loadTgwaSetting', + callback: function (data) { + _this.tgwa = data.mapInfo.tgwa; + var ue = UE.getEditor('description'); + ue.ready(function() {//编辑器初始化完成再赋值 + ue.setContent(_this.tgwa.paramValue3); //赋值给UEditor + }); + } + }); }, - toggleSelection(rows) { - if (rows) { - rows.forEach(row => { - this.$refs.multipleTable.toggleRowSelection(row); - }); - } else { - this.$refs.multipleTable.clearSelection(); + wamsSubmit(){ + let _this = this; + let tgfa = ue.getContent(); + let data= { + tgfa:tgfa, + }; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/fenXiao/fenXiaoUser/updateTgjh', + callback: function (data) { + _this.$message.success(data.info); + _this.loadTgwaSetting(); + } + }); + }, + //图片上传 + loadTgtpSetting() { + let _this = this; + AjaxProxy.requst({ + app: _this, + data:[], + url: basePath + '/fenXiao/fenXiaoUser/loadTgtpSetting', + callback: function (data) { + _this.imageUrl = data.mapInfo.tgtp.paramValue; + } + }); + }, + tgtpSubmit(){ + let _this = this; + let imageUrl = _this.imageUrl; + let data= { + imageUrl:imageUrl, + }; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/fenXiao/fenXiaoUser/updateTgtp', + callback: function (data) { + _this.$message.success(data.info); + _this.loadTgtpSetting(); + } + }); + }, + handleAvatarSuccess(res, file) { + this.imageUrl = URL.createObjectURL(file.raw); + }, + beforeAvatarUpload(file) { + const isJPG = file.type === 'image/jpeg'; + const isLt2M = file.size / 1024 / 1024 < 2; + + if (!isJPG) { + this.$message.error('上传头像图片只能是 JPG 格式!'); } - }, - handleSelectionChange(val) { - this.multipleSelection = val; - }, - handleClick(row) { - console.log(row); + if (!isLt2M) { + this.$message.error('上传头像图片大小不能超过 2MB!'); + } + return isJPG && isLt2M; }, //分佣方案 loadFyfaSetting() { @@ -614,9 +688,6 @@ _this.loadParamSetting(); } }); - }, - - submit() { } } }) diff --git a/zq-erp/src/test/java/com/matrix/SourceFlowTests.java b/zq-erp/src/test/java/com/matrix/SourceFlowTests.java index 9d6d51a..11b72f6 100644 --- a/zq-erp/src/test/java/com/matrix/SourceFlowTests.java +++ b/zq-erp/src/test/java/com/matrix/SourceFlowTests.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.matrix.component.rabbitmq.RabiitMqTemplate; +import com.matrix.component.wechat.externalInterface.weixinUtil.WeixinServiceUtil; import com.matrix.config.RabbitMqConfig; import com.matrix.core.tools.StringUtils; import com.matrix.system.fenxiao.dao.ShopSalesmanApplyDao; @@ -54,6 +55,18 @@ @Autowired RabiitMqTemplate rabiitMqTemplate; +@Autowired +WeixinServiceUtil weixinServiceUtil; + + /** + * 企业付款到个人 + * @throws InterruptedException + */ + @Test + public void testPay() throws InterruptedException { + weixinServiceUtil.comPay("提现","TX123",1,"oJkRK4yelehsY4S7I6Ee1ydWtQMI",36L); + } + /** -- Gitblit v1.9.1