src/main/java/cc/mrbird/febs/mall/dto/MallOrderInfoDto.java
@@ -23,6 +23,8 @@ private String name; private String phone; private Integer orderType; private String startTime; src/main/java/cc/mrbird/febs/mall/service/impl/AdminMallMemberServiceImpl.java
@@ -287,10 +287,10 @@ adminAgentLevelOptionTreeVo.setId(MemberLevelEnum.NORMAL.getType()); adminAgentLevelOptionTreeVo.setName("普通会员"); agentLevelOption.add(adminAgentLevelOptionTreeVo); AdminAgentLevelOptionTreeVo adminAgentLevelOptionTreeVos = new AdminAgentLevelOptionTreeVo(); adminAgentLevelOptionTreeVos.setId(MemberLevelEnum.V_DIRECTOR.getType()); adminAgentLevelOptionTreeVos.setName("董事"); agentLevelOption.add(adminAgentLevelOptionTreeVos); // AdminAgentLevelOptionTreeVo adminAgentLevelOptionTreeVos = new AdminAgentLevelOptionTreeVo(); // adminAgentLevelOptionTreeVos.setId(MemberLevelEnum.V_DIRECTOR.getType()); // adminAgentLevelOptionTreeVos.setName("董事"); // agentLevelOption.add(adminAgentLevelOptionTreeVos); return dataDictionaryCustomMapper.getAgentLevelOption(); } src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -51,26 +51,30 @@ List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids); for (MallMember parent : parentMembers) { //level为v6,升级董事,则看直属团队下有没有两个V6 List<MallMember> mallMemberChilds = memberMapper.selectByRefererId(parent.getInviteId()); if(CollUtil.isNotEmpty(mallMemberChilds)){ int directorSize = 0; for(MallMember mallMemberChild : mallMemberChilds){ List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(mallMemberChild.getInviteId()); if(CollUtil.isNotEmpty(mallMemberTeamMembers)){ List<MallMember> levelV6List = mallMemberTeamMembers.stream() .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType())) .collect(Collectors.toList()); if(CollUtil.isNotEmpty(levelV6List)){ directorSize = directorSize +1; } } } if(directorSize >= 2){ parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType()); parent.setDirector(AppContants.OPTION_YES); memberMapper.updateById(parent); continue; } // List<MallMember> mallMemberChilds = memberMapper.selectByRefererId(parent.getInviteId()); // if(CollUtil.isNotEmpty(mallMemberChilds)){ // int directorSize = 0; // for(MallMember mallMemberChild : mallMemberChilds){ // List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(mallMemberChild.getInviteId()); // if(CollUtil.isNotEmpty(mallMemberTeamMembers)){ // List<MallMember> levelV6List = mallMemberTeamMembers.stream() // .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType())) // .collect(Collectors.toList()); // if(CollUtil.isNotEmpty(levelV6List)){ // directorSize = directorSize +1; // } // } // } // if(directorSize >= 2){ // parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType()); // parent.setDirector(AppContants.OPTION_YES); // memberMapper.updateById(parent); // continue; // } // } //V6不能再升级了 if(parent.getLevel().equals(MemberLevelEnum.V6.getType())){ continue; } /** src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -254,6 +254,7 @@ } mallMemberVo.setLevelName(MemberLevelEnum.NORMAL.getLevelDescription(mallMember.getLevel())); mallMemberVo.setPartner(mallMember.getPartner()); mallMemberVo.setDirector(mallMember.getDirector()); MallMemberWallet wallet = mallMemberWalletMapper.selectWalletByMemberId(mallMemberVo.getId()); mallMemberVo.setBalance(wallet.getBalance()); mallMemberVo.setScore(wallet.getScore()); src/main/java/cc/mrbird/febs/pay/controller/PayCallBackController.java
@@ -2,11 +2,18 @@ import cc.mrbird.febs.pay.properties.AliPayProperties; import cc.mrbird.febs.pay.service.AliIPayService; import cc.mrbird.febs.pay.service.IPayService; import com.alipay.api.AlipayApiException; import com.alipay.api.internal.util.AlipaySignature; import com.github.binarywang.wxpay.bean.notify.WxPayNotifyResponse; import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult; import com.github.binarywang.wxpay.exception.WxPayException; import com.github.binarywang.wxpay.service.WxPayService; import com.ijpay.alipay.AliPayApi; import lombok.extern.slf4j.Slf4j; 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.RestController; @@ -28,6 +35,12 @@ @Resource private AliPayProperties aliPayProperties; @Autowired private WxPayService wxPayService; @Autowired private IPayService wechatPayService; @RequestMapping("/aliCallBack") public String aliPayCallBack(HttpServletRequest request){ @@ -55,4 +68,13 @@ return "failure"; } } @PostMapping(value = "/wxPayCallBack") public String wxPayCallBack(@RequestBody String xmlData) throws WxPayException { log.info("=======微信回调:{}========", xmlData); WxPayOrderNotifyResult notifyResult = this.wxPayService.parseOrderNotifyResult(xmlData); wechatPayService.payCallback(notifyResult.toMap()); return WxPayNotifyResponse.success("成功"); } } src/main/resources/application-test.yml
@@ -64,4 +64,4 @@ mchId: 1616647297 mchKey: wqri51aCfiG31o4IcdX3dW12qnX3u4hp keyPath: classpath:cert/apiclient_cert.p12 noticeUrl: http://120.27.238.55:8185/api/pay/wxPayCallBack noticeUrl: http://120.27.238.55:8186/api/pay/wxPayCallBack src/main/resources/mapper/modules/MallMemberMapper.xml
@@ -388,7 +388,8 @@ <where> 1=1 <if test="type == 1"> and level= 'V_DIRECTOR' -- and level= 'V_DIRECTOR' and director= 1 </if> <if test="type == 2"> and store_master = 1 src/main/resources/mapper/modules/MallOrderInfoMapper.xml
@@ -72,6 +72,9 @@ <if test="record.name != null and record.name != ''"> and b.name like CONCAT('%', CONCAT(#{record.name}, '%')) </if> <if test="record.phone != null and record.phone != ''"> and b.phone like CONCAT('%', CONCAT(#{record.phone}, '%')) </if> <if test="record.startTime != null and record.startTime != ''"> and a.order_time >= #{record.startTime} </if> src/main/resources/templates/febs/views/modules/mallMember/mallMemberList.html
@@ -272,6 +272,7 @@ } }, minWidth: 100,align:'center'}, // {field: 'storeMaster', title: '店长', templet:'#switchStoreMaster', minWidth: 100}, {field: 'director', title: '董事', templet:'#switchDirector', minWidth: 100}, {field: 'partner', title: '合伙人', templet:'#switchPartner', minWidth: 100}, {field: 'accountType', title: '账号类型', templet: function (d) { src/main/resources/templates/febs/views/modules/order/orderList.html
@@ -19,6 +19,12 @@ </div> </div> <div class="layui-inline"> <label class="layui-form-label">账号:</label> <div class="layui-input-inline"> <input type="text" placeholder="账号" name="phone" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-inline"> <label class="layui-form-label">商品信息:</label> <div class="layui-input-inline"> <input type="text" placeholder="商品信息" name="goodsName" autocomplete="off" class="layui-input"> @@ -340,6 +346,7 @@ startTime: $searchForm.find('input[name="startTime"]').val().trim(), endTime: $searchForm.find('input[name="endTime"]').val().trim(), name: $searchForm.find('input[name="name"]').val().trim(), phone: $searchForm.find('input[name="phone"]').val().trim(), orderNo: $searchForm.find('input[name="orderNo"]').val().trim(), goodsName: $searchForm.find('input[name="goodsName"]').val().trim(), status: $searchForm.find("select[name='status']").val(),