diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java index 1bbec3e..b5e7178 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/PayController.java @@ -1,6 +1,7 @@ package com.chaozhanggui.system.cashierservice.controller; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; @@ -11,11 +12,14 @@ import com.alipay.api.request.AlipayUserInfoShareRequest; import com.alipay.api.response.AlipaySystemOauthTokenResponse; import com.alipay.api.response.AlipayUserInfoShareResponse; import com.chaozhanggui.system.cashierservice.annotation.LimitSubmit; +import com.chaozhanggui.system.cashierservice.dao.TbShopInfoMapper; import com.chaozhanggui.system.cashierservice.entity.TbOrderDetail; +import com.chaozhanggui.system.cashierservice.entity.TbShopInfo; import com.chaozhanggui.system.cashierservice.entity.dto.ReturnGroupOrderDto; import com.chaozhanggui.system.cashierservice.entity.dto.VipPayDTO; import com.chaozhanggui.system.cashierservice.model.PaymentReq; import com.chaozhanggui.system.cashierservice.service.PayService; +import com.chaozhanggui.system.cashierservice.service.ShopInfoService; import com.chaozhanggui.system.cashierservice.sign.CodeEnum; import com.chaozhanggui.system.cashierservice.sign.Result; import com.chaozhanggui.system.cashierservice.util.IpUtil; @@ -32,7 +36,9 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.time.LocalDate; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Objects; @CrossOrigin(origins = "*") @@ -40,26 +46,26 @@ import java.util.Objects; @Slf4j @RequestMapping("pay") public class PayController { - - @Autowired PayService payService; + @Autowired + private ShopInfoService shopInfoService; - + @Autowired + TbShopInfoMapper tbShopInfoMapper; @RequestMapping("queryPayType") - public Result queryPayType( @RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestParam("shopId") String shopId - - ){ + public Result queryPayType(@RequestHeader("token") String token, + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestParam("shopId") String shopId) { return payService.queryPayType(shopId); } /** * 扫码支付 + * * @param request * @param token * @param loginName @@ -72,56 +78,55 @@ public class PayController { @RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestBody PaymentReq paymentReq - ) { - return payService.scanPay(paymentReq.getOrderId(),paymentReq.getAuthCode(), IpUtil.getIpAddr(request),token,paymentReq.getPayAmount(),paymentReq.getDiscountAmount()); + @RequestBody PaymentReq paymentReq) { + return payService.scanPay(paymentReq.getOrderId(), paymentReq.getAuthCode(), IpUtil.getIpAddr(request), token, paymentReq.getPayAmount(), paymentReq.getDiscountAmount()); } /** * 储值卡支付 + * * @param token * @param loginName * @param clientType * @return */ - @RequestMapping("accountPay") @LimitSubmit(key = "accountPay:%s") public Result accountPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestBody PaymentReq paymentReq - ){ - return payService.accountPay(paymentReq.getOrderId(),paymentReq.getMemberId(),token,paymentReq.getMemberAccount(),paymentReq.getPayAmount(),paymentReq.getDiscountAmount()); + @RequestBody PaymentReq paymentReq) { + return payService.accountPay(paymentReq.getOrderId(), paymentReq.getMemberId(), token, paymentReq.getMemberAccount(), paymentReq.getPayAmount(), paymentReq.getDiscountAmount()); } /** * 快捷收款 + * * @param token * @param loginName * @param clientType * @param amount * @param authCode - * @param payType cash 现金 scanpay 扫码 + * @param payType cash 现金 scanpay 扫码 * @return */ @GetMapping("quickPay") @LimitSubmit(key = "quickPay:%s") public Result quickPay(@RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestParam("amount") String amount, - @RequestParam("authCode") String authCode, - @RequestParam("payType") String payType - ){ - return payService.quickPay(token,amount,authCode,payType); + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestParam("amount") String amount, + @RequestParam("authCode") String authCode, + @RequestParam("payType") String payType) { + return payService.quickPay(token, amount, authCode, payType); } /** * 查询快捷订单状态 + * * @param token * @param loginName * @param clientType @@ -129,16 +134,16 @@ public class PayController { */ @GetMapping("queryQuickPayStatus") public Result queryQuickPayStatus(@RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestParam("orderId") String orderId - ){ + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestParam("orderId") String orderId) { return payService.queryQuickPayStatus(orderId); } /** * 获取快捷收款信息 + * * @param token * @param loginName * @param clientType @@ -148,21 +153,16 @@ public class PayController { */ @GetMapping("queryQuickPay") public Result queryQuickPay(@RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestParam("page") Integer page, - @RequestParam("pageSize") Integer pageSize - ){ - return payService.queryQuickPay(token,page,pageSize); + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestParam("page") Integer page, + @RequestParam("pageSize") Integer pageSize) { + return payService.queryQuickPay(token, page, pageSize); } - - - - - /** * 会员扫码支付 + * * @param token * @param loginName * @param clientType @@ -171,17 +171,16 @@ public class PayController { @RequestMapping("memberScanPay") @LimitSubmit(key = "memberScanPay:%s") public Result memberScanPay(@RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestBody PaymentReq paymentReq - ){ - return payService.memberScanPay(paymentReq.getOrderId(),paymentReq.getMemberCode(),token,paymentReq.getPayAmount(),paymentReq.getDiscountAmount()); + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestBody PaymentReq paymentReq) { + return payService.memberScanPay(paymentReq.getOrderId(), paymentReq.getMemberCode(), token, paymentReq.getPayAmount(), paymentReq.getDiscountAmount()); } - /** * 现金支付 + * * @param token * @param loginName * @param clientType @@ -192,14 +191,14 @@ public class PayController { public Result cashPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestBody PaymentReq paymentReq){ + @RequestBody PaymentReq paymentReq) { Result result = payService.cashPay(paymentReq.getOrderId(), token, paymentReq.getPayAmount(), paymentReq.getDiscountAmount()); return result; } - /** * 会员支付 + * * @param token * @param loginName * @param clientType @@ -208,29 +207,23 @@ public class PayController { @PostMapping("vipPay") @LimitSubmit(key = "vipPay:%s") public Result vipPay(@RequestHeader("token") String token, - @RequestHeader("loginName") String loginName, - @RequestHeader("clientType") String clientType, - @RequestBody VipPayDTO vipPayDTO - ){ + @RequestHeader("loginName") String loginName, + @RequestHeader("clientType") String clientType, + @RequestBody VipPayDTO vipPayDTO) { if (vipPayDTO.getOrderId() == null || vipPayDTO.getVipUserId() == null) { return Result.fail("参数缺失"); } - if ( - (vipPayDTO.getPayAmount() != null && vipPayDTO.getPayAmount().compareTo(BigDecimal.ZERO) <= 0) || - (vipPayDTO.getDiscountAmount() != null && vipPayDTO.getDiscountAmount().compareTo(BigDecimal.ZERO) <= 0) - ) { + if ((vipPayDTO.getPayAmount() != null && vipPayDTO.getPayAmount().compareTo(BigDecimal.ZERO) <= 0) || + (vipPayDTO.getDiscountAmount() != null && vipPayDTO.getDiscountAmount().compareTo(BigDecimal.ZERO) <= 0)) { return Result.fail("折扣金额必须大于0"); } - return payService.vipPay(vipPayDTO.getOrderId(),token, vipPayDTO.getVipUserId(), vipPayDTO.getPayAmount(), vipPayDTO.getDiscountAmount()); + return payService.vipPay(vipPayDTO.getOrderId(), token, vipPayDTO.getVipUserId(), vipPayDTO.getPayAmount(), vipPayDTO.getDiscountAmount()); } - - - - /** * 银行卡支付 + * * @param token * @param loginName * @param clientType @@ -241,12 +234,10 @@ public class PayController { public Result bankPay(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestBody PaymentReq paymentReq){ - return payService.bankPay(paymentReq.getOrderId(),token,paymentReq.getPayAmount(),paymentReq.getDiscountAmount()); + @RequestBody PaymentReq paymentReq) { + return payService.bankPay(paymentReq.getOrderId(), token, paymentReq.getPayAmount(), paymentReq.getDiscountAmount()); } - - @RequestMapping("returnOrder") @LimitSubmit(key = "returnOrder:%s", limit = 10) public Result returnOrder(@RequestHeader("token") String token, @@ -254,12 +245,8 @@ public class PayController { @RequestHeader("clientType") String clientType, @RequestBody List list, @RequestParam("pwd") String pwd, - @RequestParam(defaultValue = "true") boolean isOnline - ){ - - - - return payService.returnOrder(list,token,pwd, isOnline); + @RequestParam(defaultValue = "true") boolean isOnline) { + return payService.returnOrder(list, token, pwd, isOnline); } @@ -267,55 +254,46 @@ public class PayController { public Result queryOrder(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, - @RequestParam("orderId") String orderId){ - return payService.queryOrder(orderId,token); + @RequestParam("orderId") String orderId) { + return payService.queryOrder(orderId, token); } @RequestMapping("returnGpOrder") - public Result returnOrder(@RequestBody ReturnGroupOrderDto param){ + public Result returnOrder(@RequestBody ReturnGroupOrderDto param) { return payService.returnGroupOrder(param); } - @RequestMapping("test") @LimitSubmit(key = "testOrder:%s") - public Result testOrder( @RequestParam("orderId") String orderId){ + public Result testOrder(@RequestParam("orderId") String orderId) { return Result.success(CodeEnum.SUCCESS); } - - @RequestMapping("getOrderDiscount") public Result getOrderDiscount(@RequestHeader("token") String token, @RequestHeader("loginName") String loginName, @RequestHeader("clientType") String clientType, @RequestParam("orderId") String orderId, - @RequestParam("staffId") String staffId - ){ + @RequestParam("staffId") String staffId) { return payService.getOrderDiscount(staffId, orderId, token); } - @RequestMapping("pcscanpay") @LimitSubmit(key = "pcscanpay:%s") - public Result pcscanpay(HttpServletRequest request,@RequestBody PaymentReq paymentReq){ + public Result pcscanpay(HttpServletRequest request, @RequestBody PaymentReq paymentReq) { try { - return payService.pcscanpay(paymentReq.getOrderId(),IpUtil.getIpAddr(request),paymentReq.getUserId(),paymentReq.getPayType()); + return payService.pcscanpay(paymentReq.getOrderId(), IpUtil.getIpAddr(request), paymentReq.getUserId(), paymentReq.getPayType()); } catch (Exception e) { e.printStackTrace(); } return Result.fail(CodeEnum.FAIL); } - - - - - @RequestMapping("createOrder") - public Result createOrder(HttpServletRequest request,@RequestBody PaymentReq paymentReq){ + public Result createOrder(HttpServletRequest request, @RequestBody PaymentReq paymentReq) { try { - return payService.createOrder(IpUtil.getIpAddr(request),paymentReq.getUserId(),paymentReq.getPayType(),paymentReq.getShopId(),paymentReq.getPayAmount()); + return payService.createOrder(IpUtil.getIpAddr(request), paymentReq.getUserId(), paymentReq.getPayType(), + paymentReq.getShopId(), paymentReq.getOrderId(), paymentReq.getPayAmount(), paymentReq.getRemark()); } catch (JsonProcessingException e) { e.printStackTrace(); } @@ -324,24 +302,16 @@ public class PayController { } @GetMapping("queryOrderPay") - public Result queryOrderPay(String orderId){ + public Result queryOrderPay(String orderId) { return payService.queryOrderPay(orderId); } - - - - - - @Value("${wx.ysk.appId}") private String appId; @Value("${wx.ysk.secrete}") private String secrete; - - @Value("${ali.appId}") private String aliAppId; @@ -352,39 +322,45 @@ public class PayController { private String publicKey; - /** * 获取支付宝或微信openId + * * @param code * @return */ @GetMapping("/openId") - public Result getOpenId( - @RequestParam String code, - @RequestParam String payType - ) throws AlipayApiException { + public Result getOpenId(@RequestParam String code, @RequestParam String payType, + @RequestParam String shopId) throws AlipayApiException { + if (StrUtil.isBlank(shopId)) { + return Result.fail("店铺ID不能为空"); + } - if("WECHAT".equals(payType)){ + // 查询店铺信息 + TbShopInfo shopInfo = tbShopInfoMapper.selectByPrimaryKey(Integer.valueOf(shopId)); + if (Objects.isNull(shopInfo)) { + return Result.fail("店铺不存在"); + } + + Map data = new HashMap<>(4); + data.put("shopId", shopInfo.getId()); + data.put("shopName", shopInfo.getShopName()); + data.put("shopImage", shopInfo.getCoverImg()); + + if ("WECHAT".equals(payType)) { JSONObject SessionKeyOpenId = WechatUtil.getSessionKeyOrOpenId(code, appId, secrete); - log.info("SessionKeyOpenId:{}",SessionKeyOpenId.toString()); + log.info("SessionKeyOpenId:{}", SessionKeyOpenId.toString()); String openid = SessionKeyOpenId.getString("openid"); - if(Objects.isNull(openid)){ + if (Objects.isNull(openid)) { return Result.fail("获取微信id失败"); } - return Result.success(CodeEnum.SUCCESS,openid); - }else if("ALIPAY".equals(payType)){ - - + data.put("openId", openid); + return Result.success(CodeEnum.SUCCESS, data); + } else if ("ALIPAY".equals(payType)) { // 初始化SDK AlipayClient alipayClient = new DefaultAlipayClient(getAlipayConfig()); - // 构造请求参数以调用接口 AlipaySystemOauthTokenRequest request = new AlipaySystemOauthTokenRequest(); - - // 设置刷新令牌 -// request.setRefreshToken("201208134b203fe6c11548bcabd8da5bb087a83b"); - // 设置授权码 request.setCode(code); @@ -400,15 +376,17 @@ public class PayController { return Result.fail("获取支付宝userId失败"); } - return Result.success(CodeEnum.SUCCESS, ObjectUtil.isNull(response.getUserId())?response.getOpenId():response.getUserId()); + String openid = ObjectUtil.isNull(response.getUserId()) ? response.getOpenId() : response.getUserId(); + data.put("openId", openid); + + return Result.success(CodeEnum.SUCCESS, data); } return Result.fail(CodeEnum.FAIL); } - - private AlipayConfig getAlipayConfig() { + private AlipayConfig getAlipayConfig() { AlipayConfig alipayConfig = new AlipayConfig(); alipayConfig.setServerUrl("https://openapi.alipay.com/gateway.do"); alipayConfig.setAppId(aliAppId); @@ -421,16 +399,12 @@ public class PayController { } - public static void main(String[] args){ - LocalDate date=LocalDate.now(); - if(date.isLeapYear()){ + public static void main(String[] args) { + LocalDate date = LocalDate.now(); + if (date.isLeapYear()) { System.out.println(); } } - - - - } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/controller/StaffPermissionController.java b/src/main/java/com/chaozhanggui/system/cashierservice/controller/StaffPermissionController.java new file mode 100644 index 0000000..98a2b89 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/controller/StaffPermissionController.java @@ -0,0 +1,25 @@ +package com.chaozhanggui.system.cashierservice.controller; + +import com.chaozhanggui.system.cashierservice.service.TbShopPermissionService; +import com.chaozhanggui.system.cashierservice.service.TbShopStaffPermissionService; +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.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Slf4j +@RequestMapping("staffPermission") +public class StaffPermissionController { + + @Autowired + private TbShopPermissionService permissionService; + + @GetMapping + public Result getStaffPermission(String staffId, String code) { + return permissionService.getStaffPermission(staffId, code); + } + +} diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopPermissionDao.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopPermissionDao.java new file mode 100644 index 0000000..664e64c --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopPermissionDao.java @@ -0,0 +1,15 @@ +package com.chaozhanggui.system.cashierservice.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbShopPermission; + +/** + * (TbShopPermission)表数据库访问层 + * + * @author makejava + * @since 2024-09-14 17:08:48 + */ +public interface TbShopPermissionDao extends BaseMapper { + +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopStaffPermissionDao.java b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopStaffPermissionDao.java new file mode 100644 index 0000000..a536686 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/dao/TbShopStaffPermissionDao.java @@ -0,0 +1,15 @@ +package com.chaozhanggui.system.cashierservice.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.chaozhanggui.system.cashierservice.entity.TbShopStaffPermission; + +/** + * 店铺员工权限关联表(TbShopStaffPermission)表数据库访问层 + * + * @author makejava + * @since 2024-09-14 17:07:33 + */ +public interface TbShopStaffPermissionDao extends BaseMapper { + +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopPermission.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopPermission.java new file mode 100644 index 0000000..380a643 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopPermission.java @@ -0,0 +1,129 @@ +package com.chaozhanggui.system.cashierservice.entity; + +import java.util.Date; + +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + * (TbShopPermission)表实体类 + * + * @author makejava + * @since 2024-09-14 17:08:48 + */ +@SuppressWarnings("serial") +public class TbShopPermission extends Model { + + private Integer id; + //权限类型:staff 员工, + private String type; + //权限名称 + private String label; + //权限code,为了区分采用汉语拼音 + private String code; + //层级 + private Integer level; + //上级ID + private Integer parentId; + //是否重要: 重要对应页面红色 + private Integer isImportant; + //排序 + private Integer sort; + + private Date createTime; + + private Date updateTime; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public Integer getLevel() { + return level; + } + + public void setLevel(Integer level) { + this.level = level; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public Integer getIsImportant() { + return isImportant; + } + + public void setIsImportant(Integer isImportant) { + this.isImportant = isImportant; + } + + public Integer getSort() { + return sort; + } + + public void setSort(Integer sort) { + this.sort = sort; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() { + return this.id; + } +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopStaffPermission.java b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopStaffPermission.java new file mode 100644 index 0000000..46c4a31 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/entity/TbShopStaffPermission.java @@ -0,0 +1,77 @@ +package com.chaozhanggui.system.cashierservice.entity; + +import com.baomidou.mybatisplus.extension.activerecord.Model; + +import java.io.Serializable; + +/** + * 店铺员工权限关联表(TbShopStaffPermission)表实体类 + * + * @author makejava + * @since 2024-09-14 17:07:33 + */ +@SuppressWarnings("serial") +public class TbShopStaffPermission extends Model { + + private Integer id; + //权限ID + private Integer permissionId; + //员工ID + private Integer staffId; + //店铺ID + private Integer shopId; + //用户ID + private Integer userId; + + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getPermissionId() { + return permissionId; + } + + public void setPermissionId(Integer permissionId) { + this.permissionId = permissionId; + } + + public Integer getStaffId() { + return staffId; + } + + public void setStaffId(Integer staffId) { + this.staffId = staffId; + } + + public Integer getShopId() { + return shopId; + } + + public void setShopId(Integer shopId) { + this.shopId = shopId; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + /** + * 获取主键值 + * + * @return 主键值 + */ + @Override + protected Serializable pkVal() { + return this.id; + } +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/model/PaymentReq.java b/src/main/java/com/chaozhanggui/system/cashierservice/model/PaymentReq.java index dc8b2df..221f695 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/model/PaymentReq.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/model/PaymentReq.java @@ -28,6 +28,5 @@ public class PaymentReq implements Serializable { private String shopId; - - + private String remark; } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java index 879a464..546ab2b 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/ConsService.java @@ -66,8 +66,8 @@ public class ConsService { List consInfoFlows=new ArrayList<>(); for (TbOrderDetail orderDetail : orderDetails) { -// List proskuCons= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(orderDetail.getProductSkuId(),orderDetail.getShopId(),orderDetail.getProductId()); - List proskuCons= tbProskuConMapper.selectByShopIdAndSkuIdAndProductIdAndCheck(orderDetail.getProductSkuId(),orderDetail.getShopId(),orderDetail.getProductId()); + List proskuCons= tbProskuConMapper.selectByShopIdAndSkuIdAndProductId(orderDetail.getProductSkuId(),orderDetail.getShopId(),orderDetail.getProductId()); +// List proskuCons= tbProskuConMapper.selectByShopIdAndSkuIdAndProductIdAndCheck(orderDetail.getProductSkuId(),orderDetail.getShopId(),orderDetail.getProductId()); if(Objects.isNull(proskuCons)||proskuCons.size()<=0){ log.info("耗材信息未配置或未开启校验:orderId:{},skuId:{},shopId:{},productId:{}",orderDetail.getOrderId(),orderDetail.getProductSkuId(),orderDetail.getShopId(),orderDetail.getProductId()); continue; 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 00373d7..30ce8d6 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/PayService.java @@ -1545,17 +1545,13 @@ public class PayService { if (ObjectUtil.isNotNull(orderstatus) && ObjectUtil.isNotEmpty(orderstatus)) { if ("000000".equals(orderstatus.getCode())) { if ("TRADE_SUCCESS".equals(orderstatus.getObjData().getState())) { - tbQuickPay.setStatus("0"); tbQuickPay.setUpdateTime(new Date()); tbQuickPayMapper.updateByPrimaryKeySelective(tbQuickPay); } - - } } } - } return Result.success(CodeEnum.SUCCESS, tbQuickPay); @@ -1858,12 +1854,12 @@ public class PayService { return "QR" + date + randomNum; } - public Result createOrder(String ip, String userId, String payType, String shopId, BigDecimal amount) throws JsonProcessingException { + public Result createOrder(String ip, String userId, String payType, String shopId, String orderId, + BigDecimal amount, String remark) throws JsonProcessingException { - if (ObjectUtil.isNull(userId) || ObjectUtil.isEmpty(userId) || ObjectUtil.isEmpty(payType) || ObjectUtil.isNull(payType) - - || ObjectUtil.isNull(shopId) || ObjectUtil.isEmpty(shopId) || ObjectUtil.isNull(shopId) || ObjectUtil.isNull(amount) || ObjectUtil.isEmpty(amount) - ) { + if (ObjectUtil.isNull(userId) || ObjectUtil.isEmpty(userId) || ObjectUtil.isEmpty(payType) || + ObjectUtil.isNull(payType) || ObjectUtil.isNull(shopId) || ObjectUtil.isEmpty(shopId) || + ObjectUtil.isNull(shopId) || ObjectUtil.isNull(amount) || ObjectUtil.isEmpty(amount)) { return Result.fail(CodeEnum.PARAM); } @@ -1873,32 +1869,44 @@ public class PayService { return Result.fail(CodeEnum.SHOPINFONOEXIST); } + TbOrderInfo orderInfo; - TbOrderInfo orderInfo = new TbOrderInfo(); + if (StrUtil.isNotBlank(orderId)) { + orderInfo = tbOrderInfoMapper.selectByPrimaryKey(Integer.valueOf(orderId)); + if (ObjectUtil.isNull(orderInfo)) { + return Result.fail(CodeEnum.ORDERNOEXIST); + } + if (StrUtil.isNotBlank(remark)) { + orderInfo.setRemark(remark); + tbOrderInfoMapper.updateByPrimaryKey(orderInfo); + } + } else { + orderInfo = new TbOrderInfo(); - String orderNo = generateOrderNumber(); - orderInfo.setOrderNo(orderNo); - orderInfo.setSettlementAmount(amount); - orderInfo.setPackFee(BigDecimal.ZERO); - orderInfo.setOriginAmount(amount); - orderInfo.setPayAmount(amount); - orderInfo.setAmount(amount); - orderInfo.setRefundAmount(BigDecimal.ZERO); - orderInfo.setPayType(payType); - orderInfo.setPayAmount(amount); - orderInfo.setOrderAmount(amount); - orderInfo.setSendType("QR"); - orderInfo.setStatus("WAIT_PAY"); - orderInfo.setMerchantId(shopInfo.getMerchantId()); - orderInfo.setShopId(shopId); - orderInfo.setRefundAble(Byte.valueOf("1")); - orderInfo.setSystemTime(System.currentTimeMillis()); - orderInfo.setCreatedAt(System.currentTimeMillis()); - orderInfo.setIsAccepted(Byte.valueOf("1")); - orderInfo.setTradeDay(DateUtils.getDay()); - - tbOrderInfoMapper.insert(orderInfo); + String orderNo = generateOrderNumber(); + orderInfo.setOrderNo(orderNo); + orderInfo.setSettlementAmount(amount); + orderInfo.setPackFee(BigDecimal.ZERO); + orderInfo.setOriginAmount(amount); + orderInfo.setPayAmount(amount); + orderInfo.setAmount(amount); + orderInfo.setRefundAmount(BigDecimal.ZERO); + orderInfo.setPayType(payType); + orderInfo.setPayAmount(amount); + orderInfo.setOrderAmount(amount); + orderInfo.setSendType("QR"); + orderInfo.setStatus("WAIT_PAY"); + orderInfo.setMerchantId(shopInfo.getMerchantId()); + orderInfo.setShopId(shopId); + orderInfo.setRefundAble(Byte.valueOf("1")); + orderInfo.setSystemTime(System.currentTimeMillis()); + orderInfo.setCreatedAt(System.currentTimeMillis()); + orderInfo.setIsAccepted(Byte.valueOf("1")); + orderInfo.setTradeDay(DateUtils.getDay()); + orderInfo.setRemark(remark); + tbOrderInfoMapper.insert(orderInfo); + } TbOrderPayment payment = tbOrderPaymentMapper.selectByOrderId(orderInfo.getId().toString()); if (ObjectUtil.isEmpty(payment) || payment == null) { @@ -1928,111 +1936,59 @@ public class PayService { } String reqbody = "店铺收款码"; + PublicResp publicResp = thirdPayService.jspay(url, thirdApply.getAppId(), thirdApply.getAppToken(), + reqbody, reqbody, orderInfo.getOrderAmount().multiply(new BigDecimal(100)).longValue(), + payType, thirdApply.getSmallAppid(), userId, ip, + DateUtils.getSsdfTimes(), thirdApply.getStoreId(), backUrl, backUrl); - if("WECHAT".equals(payType)){ - PublicResp publicResp = thirdPayService.jspay(url, thirdApply.getAppId(), thirdApply.getAppToken(), reqbody, reqbody, orderInfo.getOrderAmount().multiply(new BigDecimal(100)).longValue(), payType, "WECHAT".equals(payType) ? thirdApply.getSmallAppid() : null, userId, ip, DateUtils.getSsdfTimes(), thirdApply.getStoreId(), backUrl, backUrl); + if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { + if ("000000".equals(publicResp.getCode())) { + JspayResp scanpayResp = publicResp.getObjData(); + if ("TRADE_SUCCESS".equals(scanpayResp.getState())) { + + payment.setTradeNumber(scanpayResp.getPayOrderId()); + payment.setUpdatedAt(System.currentTimeMillis()); + tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); + + //处理支付成功的订单 + orderInfo.setStatus("closed"); + orderInfo.setPayOrderNo(scanpayResp.getPayOrderId()); + tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); - if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { - if ("000000".equals(publicResp.getCode())) { - JspayResp scanpayResp = publicResp.getObjData(); - if ("TRADE_SUCCESS".equals(scanpayResp.getState())) { + ObjectMapper mapper = new ObjectMapper(); + return Result.success(CodeEnum.SUCCESS, mapper.readTree(scanpayResp.getPayInfo())); - payment.setTradeNumber(scanpayResp.getPayOrderId()); - payment.setUpdatedAt(System.currentTimeMillis()); - tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); + } else if ("TRADE_AWAIT".equals(scanpayResp.getState())) { + orderInfo.setStatus("paying"); + orderInfo.setPayOrderNo(payment.getTradeNumber()); + tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); - //处理支付成功的订单 - orderInfo.setStatus("closed"); - orderInfo.setPayOrderNo(scanpayResp.getPayOrderId()); - tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); + payment.setTradeNumber(scanpayResp.getPayOrderId()); + payment.setUpdatedAt(System.currentTimeMillis()); + tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); - ObjectMapper mapper = new ObjectMapper(); - return Result.success(CodeEnum.SUCCESS, mapper.readTree(scanpayResp.getPayInfo())); - - } else if ("TRADE_AWAIT".equals(scanpayResp.getState())) { - orderInfo.setStatus("paying"); - orderInfo.setPayOrderNo(payment.getTradeNumber()); - tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); - - payment.setTradeNumber(scanpayResp.getPayOrderId()); - payment.setUpdatedAt(System.currentTimeMillis()); - tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); - - - if ("WECHAT".equals(scanpayResp.getPayType())) { - orderInfo.setPayType("WECHAT"); - } else if ("ALIPAY".equals(scanpayResp.getPayType())) { - orderInfo.setPayType("ALIPAY"); - } else if ("UNIONPAY".equals(scanpayResp.getPayType())) { - orderInfo.setPayType("UNIONPAY"); - } - - - ObjectMapper mapper = new ObjectMapper(); - - Map map=new HashMap<>(); - - map.put("orderInfo",orderInfo); - map.put("payInfo",mapper.readTree(scanpayResp.getPayInfo())); - return Result.success(CodeEnum.PAYING, map); + if ("WECHAT".equals(scanpayResp.getPayType())) { + orderInfo.setPayType("WECHAT"); + } else if ("ALIPAY".equals(scanpayResp.getPayType())) { + orderInfo.setPayType("ALIPAY"); + } else if ("UNIONPAY".equals(scanpayResp.getPayType())) { + orderInfo.setPayType("UNIONPAY"); } - } - } - }else if("ALIPAY".equals(payType)){ - PublicResp publicResp= thirdPayService.apppay(url,thirdApply.getAppId(),thirdApply.getAppToken(),reqbody,reqbody,orderInfo.getOrderAmount().multiply(new BigDecimal(100)).longValue(),payType,ip,DateUtils.getSsdfTimes(),thirdApply.getStoreId(),backUrl,backUrl); - - if (ObjectUtil.isNotNull(publicResp) && ObjectUtil.isNotEmpty(publicResp)) { - if ("000000".equals(publicResp.getCode())) { - ApppayResp scanpayResp = publicResp.getObjData(); - if ("TRADE_SUCCESS".equals(scanpayResp.getState())) { - - payment.setTradeNumber(scanpayResp.getPayOrderId()); - payment.setUpdatedAt(System.currentTimeMillis()); - tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); - - //处理支付成功的订单 - orderInfo.setStatus("closed"); - orderInfo.setPayOrderNo(scanpayResp.getPayOrderId()); - tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); - ObjectMapper mapper = new ObjectMapper(); - return Result.success(CodeEnum.SUCCESS, mapper.readTree(scanpayResp.getPayInfo())); + ObjectMapper mapper = new ObjectMapper(); - } else if ("TRADE_AWAIT".equals(scanpayResp.getState())) { - orderInfo.setStatus("paying"); - orderInfo.setPayOrderNo(payment.getTradeNumber()); - tbOrderInfoMapper.updateByPrimaryKeySelective(orderInfo); + Map map=new HashMap<>(); - payment.setTradeNumber(scanpayResp.getPayOrderId()); - payment.setUpdatedAt(System.currentTimeMillis()); - tbOrderPaymentMapper.updateByPrimaryKeySelective(payment); - - - if ("WECHAT".equals(scanpayResp.getPayType())) { - orderInfo.setPayType("WECHAT"); - } else if ("ALIPAY".equals(scanpayResp.getPayType())) { - orderInfo.setPayType("ALIPAY"); - } else if ("UNIONPAY".equals(scanpayResp.getPayType())) { - orderInfo.setPayType("UNIONPAY"); - } - - - ObjectMapper mapper = new ObjectMapper(); - - Map map=new HashMap<>(); - - map.put("orderInfo",orderInfo); - map.put("payInfo",mapper.readTree(scanpayResp.getPayInfo())); - return Result.success(CodeEnum.PAYING, map); - } + map.put("orderInfo",orderInfo); + map.put("payInfo",mapper.readTree(scanpayResp.getPayInfo())); + return Result.success(CodeEnum.PAYING, map); } } } - return Result.fail(CodeEnum.FAIL); } diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/TbShopPermissionService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/TbShopPermissionService.java new file mode 100644 index 0000000..9fb6a38 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/TbShopPermissionService.java @@ -0,0 +1,21 @@ +package com.chaozhanggui.system.cashierservice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chaozhanggui.system.cashierservice.entity.TbShopPermission; +import com.chaozhanggui.system.cashierservice.sign.Result; + +/** + * (TbShopPermission)表服务接口 + * + * @author makejava + * @since 2024-09-14 17:08:48 + */ +public interface TbShopPermissionService extends IService { + + /** + * 查询员工是否拥有某个权限 + */ + Result getStaffPermission(String staffId, String code); + +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/TbShopStaffPermissionService.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/TbShopStaffPermissionService.java new file mode 100644 index 0000000..e6da0ac --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/TbShopStaffPermissionService.java @@ -0,0 +1,15 @@ +package com.chaozhanggui.system.cashierservice.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.chaozhanggui.system.cashierservice.entity.TbShopStaffPermission; + +/** + * 店铺员工权限关联表(TbShopStaffPermission)表服务接口 + * + * @author makejava + * @since 2024-09-14 17:07:33 + */ +public interface TbShopStaffPermissionService extends IService { + +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopPermissionServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopPermissionServiceImpl.java new file mode 100644 index 0000000..686eac0 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopPermissionServiceImpl.java @@ -0,0 +1,46 @@ +package com.chaozhanggui.system.cashierservice.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chaozhanggui.system.cashierservice.dao.TbShopPermissionDao; +import com.chaozhanggui.system.cashierservice.entity.TbShopPermission; +import com.chaozhanggui.system.cashierservice.entity.TbShopStaffPermission; +import com.chaozhanggui.system.cashierservice.service.TbShopPermissionService; +import com.chaozhanggui.system.cashierservice.service.TbShopStaffPermissionService; +import com.chaozhanggui.system.cashierservice.sign.CodeEnum; +import com.chaozhanggui.system.cashierservice.sign.Result; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +/** + * (TbShopPermission)表服务实现类 + * + * @author makejava + * @since 2024-09-14 17:08:49 + */ +@Service +@Primary +public class TbShopPermissionServiceImpl extends ServiceImpl implements TbShopPermissionService { + + @Autowired + private TbShopStaffPermissionService shopStaffPermissionService; + + @Override + public Result getStaffPermission(String staffId, String code) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("code", code); + TbShopPermission permission = this.getOne(queryWrapper); + if (permission == null) { + return Result.fail("权限不存在"); + } + + QueryWrapper staffPermissionQueryWrapper = new QueryWrapper<>(); + staffPermissionQueryWrapper.eq("staff_id", staffId); + staffPermissionQueryWrapper.eq("permission_id", permission.getId()); + TbShopStaffPermission staffPermission = shopStaffPermissionService.getOne(staffPermissionQueryWrapper); + + return Result.success(CodeEnum.SUCCESS, staffPermission != null); + } +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopStaffPermissionServiceImpl.java b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopStaffPermissionServiceImpl.java new file mode 100644 index 0000000..19af549 --- /dev/null +++ b/src/main/java/com/chaozhanggui/system/cashierservice/service/impl/TbShopStaffPermissionServiceImpl.java @@ -0,0 +1,21 @@ +package com.chaozhanggui.system.cashierservice.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.chaozhanggui.system.cashierservice.dao.TbShopStaffPermissionDao; +import com.chaozhanggui.system.cashierservice.entity.TbShopStaffPermission; +import com.chaozhanggui.system.cashierservice.service.TbShopStaffPermissionService; +import org.springframework.context.annotation.Primary; +import org.springframework.stereotype.Service; + +/** + * 店铺员工权限关联表(TbShopStaffPermission)表服务实现类 + * + * @author makejava + * @since 2024-09-14 17:07:33 + */ +@Service +@Primary +public class TbShopStaffPermissionServiceImpl extends ServiceImpl implements TbShopStaffPermissionService { + +} + diff --git a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java index e588ff6..adc6d43 100644 --- a/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java +++ b/src/main/java/com/chaozhanggui/system/cashierservice/thirdpay/service/ThirdPayService.java @@ -197,9 +197,13 @@ public class ThirdPayService { * @param key * @return */ - public PublicResp returnOrder(String url,String appId, String mchRefundNo, String payOrderId, String mchOrderNo, String refundReason, Long refundAmount, String notifyUrl, String extParam,String key){ - OrderRefundReq req=new OrderRefundReq(mchRefundNo, payOrderId, mchOrderNo, refundReason, refundAmount, notifyUrl, extParam); - PublicParam param=new PublicParam(appId,null,SignTypeEnum.MD5.getValue(), null,DateUtils.getSdfTimes(), "1.0", String.valueOf(System.currentTimeMillis())); + public PublicResp returnOrder(String url,String appId, String mchRefundNo, String payOrderId, + String mchOrderNo, String refundReason, Long refundAmount, + String notifyUrl, String extParam,String key){ + OrderRefundReq req=new OrderRefundReq(mchRefundNo, payOrderId, mchOrderNo, refundReason, refundAmount, + notifyUrl, extParam); + PublicParam param=new PublicParam(appId,null,SignTypeEnum.MD5.getValue(), null,DateUtils.getSdfTimes(), + "1.0", String.valueOf(System.currentTimeMillis())); try { String str = JSONUtil.toJSONString(sortFields(req)); param.setBizData(str); diff --git a/src/test/java/com/chaozhanggui/system/cashierservice/StaffPermissionTest.java b/src/test/java/com/chaozhanggui/system/cashierservice/StaffPermissionTest.java new file mode 100644 index 0000000..302aed4 --- /dev/null +++ b/src/test/java/com/chaozhanggui/system/cashierservice/StaffPermissionTest.java @@ -0,0 +1,22 @@ +package com.chaozhanggui.system.cashierservice; + +import com.chaozhanggui.system.cashierservice.service.TbShopPermissionService; +import com.chaozhanggui.system.cashierservice.sign.Result; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +@ActiveProfiles("dev") +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class StaffPermissionTest { + @Autowired + private TbShopPermissionService tbShopPermissionService; + @Test + public void testStaffPermission() { + + Result yunXuTuiKuan = tbShopPermissionService.getStaffPermission("128", "yun_xu_tui_kuan2"); + System.out.println(yunXuTuiKuan); + + } +}