diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java index f3bd794..2f5ce80 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/MemberController.java @@ -1,12 +1,12 @@ package com.chaozhanggui.system.cashierservice.controller; import com.chaozhanggui.system.cashierservice.service.MemberService; +import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; import java.util.Map; @CrossOrigin(origins = "*") @@ -28,8 +28,8 @@ public class MemberController { @RequestParam("phone") String phone, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize - ){ - return memberService.queryMember(shopId,phone,page,pageSize); + ) { + return memberService.queryMember(shopId, phone, page, pageSize); } @@ -37,43 +37,46 @@ public class MemberController { public Result createMember(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestBody Map map - ){ + @RequestBody Map map + ) { return memberService.createMember(map); } @RequestMapping("memberScanPay") public Result memberScanPay( - @RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestBody Map map + @RequestHeader("token") String token, + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestBody Map map - ){ - return memberService.memberScanPay(map,token); + ) { + return memberService.memberScanPay(map, token); } - @GetMapping("queryScanPay") public Result queryScanPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("flowId") String flowId - ){ - return memberService.queryScanPay(flowId,token); + ) { + return memberService.queryScanPay(flowId, token); } - @RequestMapping("accountPay") - public Result accountPay( @RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestBody Map map - ){ - return memberService.memberAccountPay(map,token); + public Result accountPay(@RequestHeader("token") String token, + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestBody Map map + ) { + try { + return memberService.memberAccountPay(map, token); + } catch (Exception e) { + e.printStackTrace(); + } + return Result.fail(CodeEnum.SYS_EXCEPTION); } @@ -81,11 +84,22 @@ public class MemberController { public Result queryMemberAccount(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestParam("memberId") String memberId, + @RequestParam("memberId") String memberId, @RequestParam("page") int page, @RequestParam("pageSize") int pageSize - ){ - return memberService.queryMemberAccount(memberId,page,pageSize); + ) { + return memberService.queryMemberAccount(memberId, page, pageSize); } + + +// public Result returnFlow(@RequestHeader("token") String token, +// @RequestHeader("loginName") String loginName, +// @RequestHeader("clientType") String clientType, +// @RequestParam("flowId") String flowId +// ){ +// +// +// +// } } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopInfo.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopInfo.java index c311e8a..b1a62cc 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopInfo.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopInfo.java @@ -92,6 +92,24 @@ public class TbShopInfo implements Serializable { private String view; + + + private String isCustom; + + + private String isReturn; + + + private String isMemberIn; + + + private String isMemberReturn; + + + + + + private static final long serialVersionUID = 1L; public Integer getId() { @@ -445,4 +463,36 @@ public class TbShopInfo implements Serializable { public void setView(String view) { this.view = view == null ? null : view.trim(); } + + public String getIsCustom() { + return isCustom; + } + + public void setIsCustom(String isCustom) { + this.isCustom = isCustom; + } + + public String getIsReturn() { + return isReturn; + } + + public void setIsReturn(String isReturn) { + this.isReturn = isReturn; + } + + public String getIsMemberIn() { + return isMemberIn; + } + + public void setIsMemberIn(String isMemberIn) { + this.isMemberIn = isMemberIn; + } + + public String getIsMemberReturn() { + return isMemberReturn; + } + + public void setIsMemberReturn(String isMemberReturn) { + this.isMemberReturn = isMemberReturn; + } } \ No newline at end of file diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java index 5f7d1ea..f2b93d0 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/MemberService.java @@ -69,6 +69,10 @@ public class MemberService { RestTemplate restTemplate; @Autowired TbActivateMapper tbActivateMapper; + @Autowired + TbmerchantAccountMapper tbmerchantAccountMapper; + @Autowired + RabbitProducer producer; @Value("${gateway.url}") private String gateWayUrl; @Value("${thirdPay.payType}") @@ -110,12 +114,12 @@ public class MemberService { List tbShopUsers = tbShopUserMapper.selectByShopIdAndPhone(shopId, phone); - if (ObjectUtil.isNotEmpty(tbShopUsers)&&tbShopUsers.stream().filter(it->"1".equals(it.getIsVip().toString())).count()>0) { + if (ObjectUtil.isNotEmpty(tbShopUsers) && tbShopUsers.stream().filter(it -> "1".equals(it.getIsVip().toString())).count() > 0) { return Result.fail(CodeEnum.MEMBERHAVED); } - if(tbUserInfoMapper.selectCountByPhone(phone)>1){ + if (tbUserInfoMapper.selectCountByPhone(phone) > 1) { return Result.fail(CodeEnum.SAMEUSER); } @@ -142,7 +146,7 @@ public class MemberService { TbShopUser tbShopUser = new TbShopUser(); TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(phone); - if(tbUserInfo!=null){ + if (tbUserInfo != null) { tbShopUser.setUserId(tbUserInfo.getId().toString()); } tbShopUser.setAmount(BigDecimal.ZERO); @@ -165,23 +169,19 @@ public class MemberService { return Result.success(CodeEnum.SUCCESS); } - @Autowired - RabbitProducer producer; - @Transactional(rollbackFor = Exception.class) - public Result memberScanPay(Map map,String token) { + public Result memberScanPay(Map map, String token) { if (ObjectUtil.isEmpty(map) || map.size() <= 0 || !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId")) || !map.containsKey("memberId") || ObjectUtil.isEmpty(map.get("memberId")) || !map.containsKey("amount") || ObjectUtil.isEmpty(map.get("amount")) || !map.containsKey("authCode") || ObjectUtil.isEmpty(map.get("authCode")) + ) { return Result.fail(CodeEnum.PARAM); } - - String memberId = String.valueOf(map.get("memberId")); String shopId = String.valueOf(map.get("shopId")); @@ -191,6 +191,32 @@ public class MemberService { if (ObjectUtil.isEmpty(shopInfo) || shopInfo == null) { return Result.fail(CodeEnum.SHOPINFONOEXIST); } + + + if ("1".equals(shopInfo.getIsMemberIn())) { + if (!map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd"))) { + return Result.fail(CodeEnum.PARAM); + } + String pwd = map.get("pwd").toString(); + String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); + + + TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); + if (Objects.isNull(account)) { + return Result.fail(CodeEnum.ACCOUNTEIXST); + } + + + if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) { + return Result.fail(CodeEnum.PWDNOSET); + } + + if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) { + return Result.fail(CodeEnum.PWDERROE); + } + } + + TbShopUser shopUser = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId)); if (ObjectUtil.isEmpty(shopUser) || !"1".equals(shopUser.getIsVip().toString())) { return Result.fail(CodeEnum.MEMBERNOEXIST); @@ -200,25 +226,23 @@ public class MemberService { String qpay = null; String payTypeCode = authCode.substring(0, 2);// 判断收款码 - String wechatpay=""; + String wechatpay = ""; - - if(Integer.valueOf(payTypeCode)>=25&&Integer.valueOf(payTypeCode)<=30){ + if (Integer.valueOf(payTypeCode) >= 25 && Integer.valueOf(payTypeCode) <= 30) { qpay = "scanCode"; - }else if(Integer.valueOf(payTypeCode)>=10&&Integer.valueOf(payTypeCode)<=19){ + } else if (Integer.valueOf(payTypeCode) >= 10 && Integer.valueOf(payTypeCode) <= 19) { qpay = "scanCode"; - wechatpay="wxpay"; - }else if("62".equals(payTypeCode)){ + wechatpay = "wxpay"; + } else if ("62".equals(payTypeCode)) { return Result.fail(CodeEnum.ERRORQR); - }else if("01".equals(payTypeCode)){ + } else if ("01".equals(payTypeCode)) { return Result.fail(CodeEnum.ERRORQR); - }else { + } else { return Result.fail(CodeEnum.ERRORQR); } - int count = tbShopPayTypeMapper.countSelectByShopIdAndPayType(shopId, qpay); if (count < 1) { return Result.fail(CodeEnum.PAYTYPENOEXIST); @@ -366,7 +390,7 @@ public class MemberService { JSONObject jsonObject = new JSONObject(); jsonObject.put("token", token); jsonObject.put("type", "memberIn"); - jsonObject.put("amount",memberIn.getAmount()); + jsonObject.put("amount", memberIn.getAmount()); producer.putOrderCollect(jsonObject.toJSONString()); return Result.success(CodeEnum.SUCCESS, memberIn); @@ -390,7 +414,7 @@ public class MemberService { } - public Result queryScanPay(String flowId,String token) { + public Result queryScanPay(String flowId, String token) { if (ObjectUtil.isEmpty(flowId)) { return Result.fail(CodeEnum.PARAM); } @@ -525,45 +549,49 @@ public class MemberService { @Transactional(rollbackFor = Exception.class) - public Result memberAccountPay(Map map,String token) { + public Result memberAccountPay(Map map, String token) throws Exception { if (ObjectUtil.isEmpty(map) || map.size() <= 0 || !map.containsKey("shopId") || ObjectUtil.isEmpty(map.get("shopId")) || !map.containsKey("memberId") || ObjectUtil.isEmpty(map.get("memberId")) || !map.containsKey("amount") || ObjectUtil.isEmpty(map.get("amount")) - ||!map.containsKey("pwd")||ObjectUtil.isEmpty(map.get("pwd")) + || !map.containsKey("pwd") || ObjectUtil.isEmpty(map.get("pwd")) ) { return Result.fail(CodeEnum.PARAM); } - String accountId= TokenUtil.parseParamFromToken(token).getString("accountId"); - - TbmerchantAccount account= tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); - if(Objects.isNull(account)){ - return Result.fail(CodeEnum.ACCOUNTEIXST); - } - - - if(Objects.isNull(account.getPwd())||ObjectUtil.isEmpty(account.getPwd())){ - return Result.fail(CodeEnum.PWDNOSET); - } - - if(!account.getPwd().equals(MD5Util.encrypt(map.get("pwd").toString().concat(account.getAccount()).concat(account.getId().toString())))){ - return Result.fail(CodeEnum.PWDERROE); - } String memberId = String.valueOf(map.get("memberId")); String shopId = String.valueOf(map.get("shopId")); - Integer orderId = Integer.parseInt(String.valueOf(map.get("orderId"))); - TbOrderInfo orderInfo = tbOrderInfoMapper.selectById(orderId); - TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(shopId)); if (ObjectUtil.isEmpty(shopInfo) || shopInfo == null) { return Result.fail(CodeEnum.SHOPINFONOEXIST); } + + + if("1".equals(shopInfo.getIsMemberIn())){ + String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); + + TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); + if (Objects.isNull(account)) { + return Result.fail(CodeEnum.ACCOUNTEIXST); + } + + + if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) { + return Result.fail(CodeEnum.PWDNOSET); + } + + if (!account.getPwd().equals(MD5Util.encrypt(map.get("pwd").toString().concat(account.getAccount()).concat(account.getId().toString())))) { + return Result.fail(CodeEnum.PWDERROE); + } + + } + + TbShopUser shopUser = tbShopUserMapper.selectByPrimaryKey(Integer.valueOf(memberId)); if (ObjectUtil.isEmpty(shopUser) || !"1".equals(shopUser.getIsVip().toString())) { return Result.fail(CodeEnum.MEMBERNOEXIST); @@ -668,4 +696,15 @@ public class MemberService { } + + + + + + + + + + + } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java index 055226f..4ca5e06 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1022,22 +1022,9 @@ public class PayService { if (ObjectUtil.isEmpty(list) || list.size() <= 0) { return Result.fail(CodeEnum.PARAM); } -// -// String accountId= TokenUtil.parseParamFromToken(token).getString("accountId"); -// -// TbmerchantAccount account= tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); -// if(Objects.isNull(account)){ -// return Result.fail(CodeEnum.ACCOUNTEIXST); -// } -// -// -// if(Objects.isNull(account.getPwd())||ObjectUtil.isEmpty(account.getPwd())){ -// return Result.fail(CodeEnum.PWDNOSET); -// } -// -// if(!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))){ -// return Result.fail(CodeEnum.PWDERROE); -// } + + + Integer orderId = list.get(0).getOrderId(); @@ -1049,6 +1036,29 @@ public class PayService { return Result.fail(CodeEnum.ORDERSTATUSERROR); } + + + TbShopInfo shopInfo=tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(orderInfo.getShopId())); + + + if ("1".equals(shopInfo.getIsReturn())) { + if (ObjectUtil.isEmpty(pwd) ) { + return Result.fail(CodeEnum.PARAM); + } + String accountId = TokenUtil.parseParamFromToken(token).getString("accountId"); + + TbmerchantAccount account = tbmerchantAccountMapper.selectByPrimaryKey(Integer.valueOf(accountId)); + if (Objects.isNull(account)) { + return Result.fail(CodeEnum.ACCOUNTEIXST); + } + if (Objects.isNull(account.getPwd()) || ObjectUtil.isEmpty(account.getPwd())) { + return Result.fail(CodeEnum.PWDNOSET); + } + if (!account.getPwd().equals(MD5Util.encrypt(pwd.concat(account.getAccount()).concat(account.getId().toString())))) { + return Result.fail(CodeEnum.PWDERROE); + } + } + List orderDetails = tbOrderDetailMapper.selectAllByOrderIdAndStatus(list, orderId.toString()); @@ -1610,8 +1620,18 @@ public class PayService { return Result.success(SUCCESS,BigDecimal.ZERO); } + if("master".equals(staff.getType())){ + return Result.success(SUCCESS,new BigDecimal(0.1)); + } + if("0".equals(staff.getDiscountType())){ - staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN)); + + if(staff.getMaxDiscountAmount().compareTo(tbOrderInfo.getOrderAmount())>=0){ + staff.setMaxDiscountAmount(BigDecimal.ONE); + }else { + staff.setMaxDiscountAmount(staff.getMaxDiscountAmount().divide(tbOrderInfo.getOrderAmount()).setScale(2,BigDecimal.ROUND_DOWN)); + } + } return Result.success(SUCCESS,staff.getMaxDiscountAmount()); diff --git a/src/main/resources/mapper/TbShopInfoMapper.xml b/src/main/resources/mapper/TbShopInfoMapper.xml index 1fb35ee..47ed043 100644 --- a/src/main/resources/mapper/TbShopInfoMapper.xml +++ b/src/main/resources/mapper/TbShopInfoMapper.xml @@ -45,6 +45,12 @@ + + + + + + @@ -55,7 +61,7 @@ detail, lat, lng, mch_id, register_type, is_wx_ma_independent, address, city, type, industry, industry_name, business_time, post_time, post_amount_line, on_sale, settle_type, settle_time, enter_at, expire_at, status, average, order_wait_pay_minute, support_device_number, - distribute_level, created_at, updated_at, proxy_id + distribute_level, created_at, updated_at, proxy_id,is_custom,is_return,is_member_in,is_member_return view