浏览代码

分享码验证通过

PLF 5 年之前
父节点
当前提交
1119e5ea07

+ 6 - 2
src/main/java/com/caimei/controller/order/OrderController.java

@@ -65,7 +65,8 @@ public class OrderController {
      */
      */
     @ResponseBody
     @ResponseBody
     @RequestMapping("/shareCode")
     @RequestMapping("/shareCode")
-    public WxJsonModel verifyShareCode(String shareCode, String code, Integer orderID, HttpServletRequest request) {
+    public WxJsonModel verifyShareCode(String shareCode, String code, Integer orderID, Integer userID,
+                                       Integer organizeID, HttpServletRequest request) {
         WxJsonModel model = WxJsonModel.newInstance();
         WxJsonModel model = WxJsonModel.newInstance();
         logger.info("Start get SessionKey");
         logger.info("Start get SessionKey");
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
@@ -101,7 +102,10 @@ public class OrderController {
             model.setCode("-1");
             model.setCode("-1");
             return model;
             return model;
         }
         }
-        WxJsonModel jsonModel = orderService.verifyShareCode(shareCode, openid, orderID);
+        if (orderID == null || userID == null || organizeID == null) {
+            model.error("参数异常");
+        }
+        WxJsonModel jsonModel = orderService.verifyShareCode(shareCode, openid, orderID, userID, organizeID);
         return jsonModel;
         return jsonModel;
     }
     }
 
 

+ 2 - 0
src/main/java/com/caimei/mapper/order/OrderMapper.java

@@ -40,4 +40,6 @@ public interface OrderMapper {
     List<CmLogisticsRecord> findLogisticsRecord(Integer shopOrderID);
     List<CmLogisticsRecord> findLogisticsRecord(Integer shopOrderID);
 
 
     CmMallShareCodeRecord findShareCodeRecord(@Param("openid") String openid, @Param("orderID") Integer orderID);
     CmMallShareCodeRecord findShareCodeRecord(@Param("openid") String openid, @Param("orderID") Integer orderID);
+
+    void saveShareCodeRecord(CmMallShareCodeRecord codeRecord);
 }
 }

+ 1 - 1
src/main/java/com/caimei/service/order/OrderService.java

@@ -15,5 +15,5 @@ public interface OrderService {
 
 
     WxJsonModel saveOrderInfo(WxJsonModel wxJsonModel, Integer userId, Integer organizeID, String cartType, Integer addressID, Object orderInfo, String balanceDeductionFlag, Double orderShouldPayFee, Integer cmOperationID);
     WxJsonModel saveOrderInfo(WxJsonModel wxJsonModel, Integer userId, Integer organizeID, String cartType, Integer addressID, Object orderInfo, String balanceDeductionFlag, Double orderShouldPayFee, Integer cmOperationID);
 
 
-    WxJsonModel verifyShareCode(String shareCode, String openid, Integer orderID);
+    WxJsonModel verifyShareCode(String shareCode, String openid, Integer orderID, Integer userID, Integer organizeID);
 }
 }

+ 25 - 2
src/main/java/com/caimei/service/order/impl/OrderServiceImpl.java

@@ -126,9 +126,32 @@ public class OrderServiceImpl implements OrderService {
     }
     }
 
 
     @Override
     @Override
-    public WxJsonModel verifyShareCode(String shareCode, String openid, Integer orderID) {
+    public WxJsonModel verifyShareCode(String shareCode, String openid, Integer orderID, Integer userID,
+                                       Integer organizeID) {
+        WxJsonModel model = WxJsonModel.newInstance();
+        CmOperationUser operationUser = loginMapper.doLogin(openid, organizeID);
+        if (operationUser != null && operationUser.getUserID() == userID) {
+            return model.success();
+        }
         CmMallShareCodeRecord shareCodeRecord = orderMapper.findShareCodeRecord(openid, orderID);
         CmMallShareCodeRecord shareCodeRecord = orderMapper.findShareCodeRecord(openid, orderID);
-        return null;
+        if (shareCodeRecord != null && shareCodeRecord.getExpiredTime().compareTo(new Date()) == 1) {
+            return model.success();
+        }
+        OrderShareCode orderShareCode = orderMapper.queryCode(orderID);
+        if (orderShareCode.getShareCode().equals(shareCode)) {
+            CmMallShareCodeRecord codeRecord = new CmMallShareCodeRecord();
+            codeRecord.setOpenid(openid);
+            codeRecord.setAddTime(new Date());
+            codeRecord.setOrderID(orderShareCode.getOrderID());
+            codeRecord.setDelFlag("0");
+            codeRecord.setShareCodeId(orderShareCode.getId());
+            orderMapper.saveShareCodeRecord(codeRecord);
+            return model.success();
+        } else if (orderShareCode.getExpiredTime().compareTo(new Date()) == -1) {
+            return model.error("分享码失效");
+        } else {
+            return model.error("分享码错误");
+        }
     }
     }
 
 
     @Override
     @Override

+ 1 - 1
src/main/java/com/caimei/service/user/impl/PersonalServiceImpl.java

@@ -140,7 +140,7 @@ public class PersonalServiceImpl implements PersonalService {
         UserInvoiceInfo invoiceInfo = personalMapper.findInvoice(userInvoiceInfo.getUserId());
         UserInvoiceInfo invoiceInfo = personalMapper.findInvoice(userInvoiceInfo.getUserId());
         if (invoiceInfo == null && userInvoiceInfo.getInvoiceTitle() != null) {
         if (invoiceInfo == null && userInvoiceInfo.getInvoiceTitle() != null) {
             personalMapper.invoice(userInvoiceInfo);
             personalMapper.invoice(userInvoiceInfo);
-        } else if (invoiceInfo != null) {
+        } else if (invoiceInfo != null && userInvoiceInfo.getInvoiceTitle() != null) {
             personalMapper.updateInvoice(userInvoiceInfo);
             personalMapper.updateInvoice(userInvoiceInfo);
         }
         }
         UserInvoiceInfo info = personalMapper.findInvoice(userInvoiceInfo.getUserId());
         UserInvoiceInfo info = personalMapper.findInvoice(userInvoiceInfo.getUserId());

+ 22 - 1
src/main/resources/mapper/OrderMapper.xml

@@ -199,6 +199,27 @@
     </select>
     </select>
 
 
     <select id="findShareCodeRecord" resultType="com.caimei.entity.CmMallShareCodeRecord">
     <select id="findShareCodeRecord" resultType="com.caimei.entity.CmMallShareCodeRecord">
-
+        SELECT
+          scr.*,
+          osc.expiredTime
+        FROM
+          cm_mall_share_code_record scr
+          LEFT JOIN cm_mall_order_share_code osc ON scr.shareCodeId = osc.id
+        WHERE
+          scr.openid = #{openid}
+          AND osc.orderID = #{orderID}
+          AND scr.delFlag = '0'
     </select>
     </select>
+
+    <insert id="saveShareCodeRecord" parameterType="com.caimei.entity.CmMallShareCodeRecord">
+        INSERT INTO cm_mall_share_code_record (
+          openid, orderID, shareCodeId, addTime,
+          delFlag
+        )
+        VALUES
+          (
+            #{openid}, #{orderID}, #{shareCodeId}, #{addTime},
+            #{delFlag}
+          )
+    </insert>
 </mapper>
 </mapper>