Selaa lähdekoodia

增加留言接口

FengChaoYu 2 viikkoa sitten
vanhempi
commit
4b3030fe62

+ 14 - 68
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/user/UserController.java

@@ -3,11 +3,8 @@ package com.gree.mall.miniapp.controller.user;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.gree.mall.miniapp.annotation.ApiNotAuth;
-import com.gree.mall.miniapp.bean.Page;
-import com.gree.mall.miniapp.bean.common.WxJsApiSignBean;
 import com.gree.mall.miniapp.bean.settle.OrderShareBean;
 import com.gree.mall.miniapp.bean.user.*;
-import com.gree.mall.miniapp.constant.Constant;
 import com.gree.mall.miniapp.exception.RemoteServiceException;
 import com.gree.mall.miniapp.helper.ResponseHelper;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
@@ -17,12 +14,10 @@ import com.gree.mall.miniapp.logic.user.UserLogic;
 import com.gree.mall.miniapp.plus.entity.SettleExpenseItem;
 import com.gree.mall.miniapp.plus.entity.User;
 import com.gree.mall.miniapp.plus.service.UserService;
-import com.gree.mall.miniapp.utils.CommonUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
-import me.chanjar.weixin.common.error.WxErrorException;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -49,12 +44,6 @@ public class UserController {
     @Autowired
     CommonLogic commonLogic;
 
-
-    @GetMapping("/qrcode/bind")
-    @ApiOperation(value = "获取业务员绑定小程序码")
-    public ResponseHelper bindQrCode(HttpServletRequest request) throws Exception {
-        return ResponseHelper.success(userLogic.bindQrCode(request));
-    }
     @GetMapping("/rank")
     @ApiOperation(value = "上月业绩排行榜")
     public ResponseHelper rank(HttpServletRequest request) throws Exception {
@@ -70,63 +59,6 @@ public class UserController {
     }
 
 
-    @ApiNotAuth
-    @PostMapping("/auth")
-    @ApiOperation(value = "微信授权")
-    public ResponseHelper<UserWxBean> auth(
-            @ApiParam(required = false,value="业务员用户id") @RequestParam(required = false) String serviceId,
-            @ApiParam(required = true, value = "授权openid登陆code") @RequestParam(required = true) String code,
-            @ApiParam(required = false, value = "获取验证手机号码code") @RequestParam(required = false) String phoneCode,
-            @ApiParam(required = false, value = "公众号openid") @RequestParam(required = false) String mpOpenId,
-            HttpServletRequest request
-    ) throws RemoteServiceException, WxErrorException, InterruptedException {
-        UserWxBean userWxBean = userLogic.addUser(code,phoneCode,serviceId,mpOpenId,request);
-        userLogic.addVisit(request, userWxBean.getUserId());
-        return ResponseHelper.success(userWxBean);
-    }
-
-    @ApiNotAuth
-    @PostMapping("/auth2")
-    @ApiOperation(value = "微信公众号授权")
-    public ResponseHelper<UserWxBean> auth2(
-            @ApiParam(required = false,value="业务员用户id") @RequestParam(required = false) String serviceId,
-            @ApiParam(required = true, value = "授权openid登陆code") @RequestParam(required = true) String code,
-            HttpServletRequest request
-    ) throws RemoteServiceException, WxErrorException, InterruptedException {
-        UserWxBean userWxBean = userLogic.addUser(code,serviceId,request);
-        userLogic.addVisit(request, userWxBean.getUserId());
-        return ResponseHelper.success(userWxBean);
-    }
-
-
-
-
-    @ApiNotAuth
-    @PostMapping("/pub/auth")
-    @ApiOperation(value = "公众号微信授权绑定小程序链接")
-    public ResponseHelper<String> pubAuth(
-            @ApiParam(required = false,value="公众号appid") @RequestParam(required = false) String pubAppId,
-            @ApiParam(required = true, value = "授权openid登陆code") @RequestParam(required = true) String code,
-            HttpServletRequest request
-    ) throws RemoteServiceException, WxErrorException, InterruptedException {
-        String url = wechatLogic.getPubAuthUrl(code, pubAppId);
-        return ResponseHelper.success(url);
-    }
-
-
-//    @ApiNotAuth
-//    @PostMapping("/mobile/grant")
-//    @ApiOperation(value = "授权手机号")
-//    public ResponseHelper<UserWxBean> grantMobile(
-//            @ApiParam(required = true, value = "iv") @RequestParam(required = true) String iv,
-//            @ApiParam(required = false, value = "encryptedData") @RequestParam(required = false) String encryptedData,
-//            @ApiParam(required = true, value = "用户id") @RequestParam(required = true) String userId,
-//            HttpServletRequest request
-//    ) throws Exception {
-//        UserWxBean wxMobile = userLogic.getWxMobile(iv, encryptedData, userId,request);
-//        return ResponseHelper.success(wxMobile);
-//    }
-
     @GetMapping("/user/detail")
     @ApiOperation(value = "个人信息")
     public ResponseHelper<UserWxBean> detail(
@@ -309,4 +241,18 @@ public class UserController {
         userLogic.uploadLocate(lng, lat);
         return ResponseHelper.success();
     }
+
+    @ApiNotAuth
+    @GetMapping("/leave/message")
+    @ApiOperation(value = "留言")
+    public ResponseHelper leaveMessage(
+            @ApiParam(value = "姓", required = true) @RequestParam String firstName,
+            @ApiParam(value = "名", required = true) @RequestParam String lastName,
+            @ApiParam(value = "公司名称", required = true) @RequestParam String companyName,
+            @ApiParam(value = "联系电话", required = true) @RequestParam String mobile,
+            @ApiParam(value = "留言", required = true) @RequestParam String message
+    ) throws Exception {
+        userLogic.leaveMessage(firstName, lastName, companyName, mobile, message);
+        return ResponseHelper.success();
+    }
 }

+ 11 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/user/UserLogic.java

@@ -836,4 +836,15 @@ public class UserLogic {
                 .eq(User::getUserId, currentCompanyWechat.getUserId())
                 .update();
     }
+
+    public void leaveMessage(String firstName, String lastName, String companyName, String mobile, String message) {
+        Message obj = new Message();
+        obj.setFirstName(firstName)
+                .setLastName(lastName)
+                .setCompanyName(companyName)
+                .setMobile(mobile)
+                .setMessage(message)
+                .setCreateTime(DateUtil.date())
+                .insert();
+    }
 }

+ 9 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/goods/GoodsApplyPurchaseController.java

@@ -70,4 +70,13 @@ public class GoodsApplyPurchaseController {
         goodsApplyPurchaseLogic.save(bean);
         return ResponseHelper.success(bean);
     }
+
+    @PostMapping("/examine")
+    @ApiOperation(value = "商品采购申请-审核")
+    public ResponseHelper examine(
+            @ApiParam(value = "object",required = true) @RequestBody GoodsApplyPurchaseBean bean
+    ) throws RemoteServiceException {
+        goodsApplyPurchaseLogic.examine(bean);
+        return ResponseHelper.success(bean);
+    }
 }

+ 95 - 2
mall-server-api/src/main/java/com/gree/mall/manager/logic/goods/GoodsApplyPurchaseLogic.java

@@ -2,6 +2,7 @@ package com.gree.mall.manager.logic.goods;
 
 
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -14,8 +15,11 @@ import com.gree.mall.manager.exception.RemoteServiceException;
 import com.gree.mall.manager.logic.common.CommonLogic;
 import com.gree.mall.manager.plus.entity.GoodsApplyPurchase;
 import com.gree.mall.manager.plus.entity.GoodsApplyPurchaseItem;
+import com.gree.mall.manager.plus.entity.GoodsPurchase;
+import com.gree.mall.manager.plus.entity.GoodsPurchaseItem;
 import com.gree.mall.manager.plus.service.GoodsApplyPurchaseItemService;
 import com.gree.mall.manager.plus.service.GoodsApplyPurchaseService;
+import com.gree.mall.manager.plus.service.GoodsPurchaseItemService;
 import com.gree.mall.manager.plus.service.WebsitVenderService;
 import com.gree.mall.manager.zfire.bean.ZfireParamBean;
 import com.gree.mall.manager.zfire.util.FieldUtils;
@@ -26,6 +30,8 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -41,6 +47,7 @@ public class GoodsApplyPurchaseLogic {
     private final GoodsApplyPurchaseService goodsApplyPurchaseService;
     private final GoodsApplyPurchaseItemService goodsApplyPurchaseItemService;
     private final WebsitVenderService websitVenderService;
+    private final GoodsPurchaseItemService goodsPurchaseItemService;
 
 
     public IPage<GoodsApplyPurchaseVO> page(ZfireParamBean zfireParamBean) {
@@ -83,12 +90,24 @@ public class GoodsApplyPurchaseLogic {
         final GoodsApplyPurchase old = goodsApplyPurchaseService.getById(bean.getId());
 
         if (Objects.nonNull(old)) {
+            if (old.getStatus().equals(ExamineStatusEnum.SUBMIT.getKey())) {
+                throw new RemoteServiceException("单据已提交不能再编辑");
+            }
             goodsApplyPurchaseItemService.lambdaUpdate()
                     .eq(GoodsApplyPurchaseItem::getGoodsApplyPurchaseId, old.getId())
                     .remove();
         } else {
-            bean.setId(IdWorker.getIdStr())
-                    .setStatus(ExamineStatusEnum.SAVE.getKey());
+            if (StringUtils.isNotBlank(bean.getStatus())
+                    && !(ExamineStatusEnum.SAVE.getKey() + ExamineStatusEnum.SUBMIT.getKey()).contains(bean.getStatus())) {
+                throw new RemoteServiceException("单据状态异常");
+            }
+            bean.setId(IdWorker.getIdStr());
+        }
+
+        // 提交时注入
+        if (bean.getStatus().equals(ExamineStatusEnum.SUBMIT.getKey())) {
+            bean.setSubmitBy(adminUser.getNickName())
+                    .setSubmitTime(DateUtil.date());
         }
 
         bean.setVenderId("0").setVenderName("格力");
@@ -96,7 +115,11 @@ public class GoodsApplyPurchaseLogic {
         // 检查商品信息唯一
         checkItemUnique(bean);
 
+        Integer totalQty = bean.getItems().stream().mapToInt(GoodsApplyPurchaseItem::getQty).sum();
+        double totalAmount = bean.getItems().stream().mapToDouble(v -> v.getAmount().doubleValue()).sum();
 
+        bean.setTotalQty(totalQty)
+                .setTotalAmount(BigDecimal.valueOf(totalAmount));
 
         goodsApplyPurchaseService.saveOrUpdate(bean);
         goodsApplyPurchaseItemService.saveBatch(bean.getItems());
@@ -112,4 +135,74 @@ public class GoodsApplyPurchaseLogic {
             }
         }
     }
+
+    @Transactional
+    public void examine(GoodsApplyPurchaseBean bean) {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        if (Objects.nonNull(adminUser.getAdminCompanyWechat())) {
+            throw new RemoteServiceException("权限受限");
+        }
+        GoodsApplyPurchase goodsApplyPurchase = goodsApplyPurchaseService.getById(bean.getId());
+        goodsApplyPurchase.setExamineBy(adminUser.getNickName())
+                .setExamineTime(DateUtil.date())
+                .setExamineRemark(bean.getExamineRemark());
+
+        // 审核通过
+        if (bean.getStatus().equals(ExamineStatusEnum.OK.getKey())) {
+            GoodsPurchase goodsPurchase = new GoodsPurchase();
+            goodsPurchase.setId(IdWorker.getIdStr());
+            goodsPurchase.setCompanyWechatId(goodsApplyPurchase.getCompanyWechatId());
+            goodsPurchase.setCompanyWechatName(goodsApplyPurchase.getCompanyWechatName());
+            goodsPurchase.setVenderId(goodsApplyPurchase.getVenderId());
+            goodsPurchase.setVenderName(goodsApplyPurchase.getVenderName());
+            goodsPurchase.setTotalQty(goodsApplyPurchase.getTotalQty());
+            goodsPurchase.setTotalAmount(goodsApplyPurchase.getTotalAmount());
+            goodsPurchase.setStatus(ExamineStatusEnum.SAVE.getKey());
+            goodsPurchase.setCreateBy(goodsApplyPurchase.getExamineBy());
+            goodsPurchase.setCreateTime(goodsApplyPurchase.getExamineTime());
+            goodsPurchase.setUpdateBy(goodsApplyPurchase.getExamineBy());
+            goodsPurchase.setUpdateTime(goodsApplyPurchase.getExamineTime());
+            goodsPurchase.setJoinCode("NUM");
+            goodsPurchase.setStorageId(goodsApplyPurchase.getStorageId());
+            goodsPurchase.setStorageName(goodsApplyPurchase.getStorageName());
+            goodsPurchase.setGoodsApplyPurchaseId(goodsApplyPurchase.getId());
+
+            final List<GoodsApplyPurchaseItem> applyPurchaseItems = goodsApplyPurchaseItemService.lambdaQuery()
+                    .eq(GoodsApplyPurchaseItem::getGoodsApplyPurchaseId, goodsApplyPurchase.getId())
+                    .list();
+
+            List<GoodsPurchaseItem> itemList = new ArrayList<>();
+            for (GoodsApplyPurchaseItem applyPurchaseItem : applyPurchaseItems) {
+                GoodsPurchaseItem item = new GoodsPurchaseItem();
+                item.setGoodsPurchaseId(goodsPurchase.getId());
+                item.setBrandId("0");
+                item.setBrandName("格力");
+                item.setMainId(applyPurchaseItem.getMainId());
+                item.setMainName(applyPurchaseItem.getMainName());
+                item.setSmallId(applyPurchaseItem.getSmallId());
+                item.setSmallName(applyPurchaseItem.getSmallName());
+                item.setGoodsMaterialId(applyPurchaseItem.getGoodsMaterialId());
+                item.setGoodsMaterialName(applyPurchaseItem.getGoodsMaterialName());
+                item.setSeriesName(applyPurchaseItem.getSeriesName());
+                item.setSpecsName(applyPurchaseItem.getSpecsName());
+                item.setUnit(applyPurchaseItem.getUnit());
+                item.setQty(applyPurchaseItem.getQty());
+                item.setInsideQty(applyPurchaseItem.getInsideQty());
+                item.setOutQty(applyPurchaseItem.getOutQty());
+                item.setPartsQty(applyPurchaseItem.getPartsQty());
+                item.setPrice(applyPurchaseItem.getPrice());
+                item.setAmount(applyPurchaseItem.getAmount());
+                item.setStockQty(0);
+                item.setInsideCodeQty(0);
+                item.setOutCodeQty(0);
+                item.setPartsCodeQty(0);
+                item.setOrigQty(applyPurchaseItem.getQty());
+
+                itemList.add(item);
+            }
+
+            goodsPurchase.insert();
+            goodsPurchaseItemService.saveBatch(itemList);
+        }
+    }
 }