diff --git a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java index 588e48f5c..823342b38 100644 --- a/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java +++ b/mallinkPosApi/src/main/java/com/iformall/service/impl/PosServiceImpl.java @@ -302,7 +302,7 @@ public class PosServiceImpl implements PosService { String errMessage = "request params[verify_type] error."; throw new MallinkException(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), errMessage); } - if ((!verifyType.equalsIgnoreCase(WxPayConstant.VERIFY_INDEPENT) || verifyType.equalsIgnoreCase(WxPayConstant.VERIFY_PAY))) { + if (!(verifyType.equalsIgnoreCase(WxPayConstant.VERIFY_INDEPENT) || verifyType.equalsIgnoreCase(WxPayConstant.VERIFY_PAY))) { String errMessage = "request params[verify_type] only support independent or pay."; throw new MallinkException(ErrorCode.SYS_PARAMETER_CAST_ERROR.getCode(), errMessage); } @@ -732,7 +732,7 @@ public class PosServiceImpl implements PosService { } if (blVerify) { try { - doVerify(couponOrderCVo, wxCoupon, merchantId, buUserId, posOrderId, retMap); + doVerify(actionType, couponOrderCVo, wxCoupon, merchantId, buUserId, posOrderId, retMap); Integer remainAmount = posAmount - couponOrderCVo.getPrice(); if (remainAmount < 0) { remainAmount = 0; @@ -980,7 +980,7 @@ public class PosServiceImpl implements PosService { * @param buUserId * @param posOrderId */ - private void doVerify(WxCouponOrderCVo couponOrderCVo, WxCoupon coupon, Long merchantId, Long buUserId, Long posOrderId, Map retMap) { + private void doVerify(EnumVerifyActionType actionType, WxCouponOrderCVo couponOrderCVo, WxCoupon coupon, Long merchantId, Long buUserId, Long posOrderId, Map retMap) { int num = 0; // 1. insert posOrderId PosCouponOrderVerify posCouponOrderVerify = new PosCouponOrderVerify(); @@ -1007,9 +1007,15 @@ public class PosServiceImpl implements PosService { couponOrder.setId(couponOrderCVo.getId()); couponOrder.setTenantId(couponOrderCVo.getTenantId()); couponOrder.setCouponOrderStatus(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode()); //1核销 - couponOrder.setBUserId(buUserId); + if (actionType.equals(EnumVerifyActionType.VERIFY_PAY)) { + couponOrder.setBUserId(buUserId); + } couponOrder.setUpdateDate(new Date()); - num = couponOrderMapper.updateVerifyCouponOrderStatus(couponOrder); + if (actionType.equals(EnumVerifyActionType.VERIFY_INDEPENT)) { + num = couponOrderMapper.updateVerifyCouponOrder(couponOrder); + } else { + num = couponOrderMapper.updateVerifyCouponOrderStatus(couponOrder); + } } catch (Exception e) { logger.error("db failed: couponOrder-" + couponOrderCVo.getId() + ", e:" + e.getMessage()); throw new MallinkException(ErrorCode.DB_FAIL.getCode(), "DB FAILD " + e.getMessage()); diff --git a/mallinkPosApi/src/test/java/com/iformall/pos/test/PosAppTest.java b/mallinkPosApi/src/test/java/com/iformall/pos/test/PosAppTest.java index 5c86a202c..efe2bf301 100644 --- a/mallinkPosApi/src/test/java/com/iformall/pos/test/PosAppTest.java +++ b/mallinkPosApi/src/test/java/com/iformall/pos/test/PosAppTest.java @@ -18,7 +18,6 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; -import org.springframework.test.web.servlet.RequestBuilder; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultHandlers; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; @@ -41,9 +40,9 @@ public class PosAppTest { @Autowired private MockMvc mockMvc; - private static final String devId = "fmpos"; - private static final String devReqKey = "ZiGFLC4@3c5sTLZT"; - private static final String devResKey = "ugPAM7wd&%p6I0W8"; + private static final String devId = "neupos"; + private static final String devReqKey = "qVH2YDmXJ$ok4a95"; + private static final String devResKey = "VE#1fB2PhUe@&3Of"; private static final String tenantId = "456"; @@ -69,7 +68,8 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_ORDER_ID, ""); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - this.mockMvc.perform(MockMvcRequestBuilders.post("/checkCouponOrderForVerify") + this.mockMvc.perform( + MockMvcRequestBuilders.post("/checkCouponOrderForVerify") .contentType(MediaType.APPLICATION_JSON) .content(reqJsonStr) ) @@ -86,18 +86,19 @@ public class PosAppTest { reqObj.put(WxPayConstant.TENANT_ID, tenantId); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/getPosMemConfigStatus") - .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/getPosMemConfigStatus") + .contentType(MediaType.APPLICATION_JSON) + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); System.out.println("response sign: " + resSigned); - Assert.assertEquals(resSigned, true); + Assert.assertEquals(resSigned, true); } @Test @@ -107,17 +108,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.TENANT_ID, tenantId); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/getQrCode") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/getQrCode") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -133,17 +134,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_AMOUNT, "100"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/checkMem") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/checkMem") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -161,17 +162,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_AMOUNT, "100"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/checkCouponOrderForVerify") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/checkCouponOrderForVerify") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -189,17 +190,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_AMOUNT, "100"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/checkCouponOrderForVerify") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/checkCouponOrderForVerify") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -215,17 +216,18 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_ORDER_ID, "1"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/couponOrderIndependentVerify") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/couponOrderIndependentVerify") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -241,17 +243,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_ORDER_ID, "1"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/couponOrderVerifyCancel") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/couponOrderVerifyCancel") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -265,20 +267,20 @@ public class PosAppTest { reqObj.put(WxPayConstant.COUPON_ORDER_ID, "318978990426783744"); reqObj.put(WxPayConstant.NONCE_STR, "1"); reqObj.put(WxPayConstant.POS_ORDER_ID, "1"); - reqObj.put(WxPayConstant.POS_AMOUNT, "100"); + reqObj.put(WxPayConstant.POS_AMOUNT, "200"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/couponOrderPreVerify") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/couponOrderPreVerify") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -294,17 +296,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_ORDER_ID, "1"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/couponOrderPreVerifyCancel") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/couponOrderPreVerifyCancel") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -321,17 +323,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_AMOUNT, "200"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/couponOrderPayVerifyOne") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/couponOrderPayVerifyOne") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } @@ -348,17 +350,17 @@ public class PosAppTest { reqObj.put(WxPayConstant.POS_AMOUNT, "200"); reqObj.put(WxPayConstant.SIGN, WxPayment.createSignHMAC(reqObj, devReqKey)); String reqJsonStr = JSONObject.toJSONString(reqObj); - RequestBuilder request = MockMvcRequestBuilders.post("/couponOrderPayVerifyList") + MvcResult result = mockMvc.perform( + MockMvcRequestBuilders.post("/couponOrderPayVerifyList") .contentType(MediaType.APPLICATION_JSON) - .content(reqJsonStr); - MvcResult result = mockMvc.perform(request).andReturn(); + .content(reqJsonStr)) + .andExpect(MockMvcResultMatchers.status().isOk()) + .andDo(MockMvcResultHandlers.print()) + .andReturn(); String responseStr = result.getResponse().getContentAsString(); - System.out.println(responseStr); - ObjectMapper mapper = new ObjectMapper(); Map respMap = mapper.readValue(responseStr, Map.class); boolean resSigned = WxPayment.verifyNotifyHMAC(respMap, devResKey); - System.out.println("response sign: " + resSigned); Assert.assertEquals(resSigned, true); } }