yq 2 yıl önce
ebeveyn
işleme
f092d91156

+ 1 - 2
src/main/java/com/usky/dxtop/controller/web/business/DreOrderController.java

@@ -36,9 +36,8 @@ public class DreOrderController {
      * @param dreOrder
      * @return
      */
-    @RepeatSubmit
     @PostMapping
-    public ApiResult<Void> add(@Validated @RequestBody DreOrder dreOrder){
+    public ApiResult<Void> add(@RequestBody DreOrder dreOrder){
         dreOrderService.add(dreOrder);
         return ApiResult.success();
     }

+ 5 - 0
src/main/java/com/usky/dxtop/mapper/DreUserMapper.java

@@ -9,6 +9,7 @@ import com.usky.dxtop.service.vo.DreUserVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * <p>
@@ -23,4 +24,8 @@ public interface DreUserMapper extends BaseMapper<DreUser> {
     Page<DreUserVO> page(IPage<DreUserVO> page,
                          @Param("name") String name,
                          @Param("isSend") Boolean isSend);
+
+
+    List<DreUserVO> list(@Param("name") String name,
+                         @Param("isSend") Boolean isSend);
 }

+ 2 - 3
src/main/java/com/usky/dxtop/model/DreOrder.java

@@ -7,6 +7,7 @@ import java.util.Date;
 import java.util.List;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -47,7 +48,6 @@ public class DreOrder implements Serializable {
     /**
      * 下单人
      */
-    @NotBlank(message = "下单人不能为空")
     private String orderUserName;
 
     /**
@@ -63,13 +63,11 @@ public class DreOrder implements Serializable {
     /**
      * 订单地址
      */
-    @NotBlank(message = "订单地址不能为空")
     private String address;
 
     /**
      * 总金额
      */
-    @NotNull(message = "订单金额不能为空")
     private BigDecimal totalMoney;
 
     /**
@@ -80,6 +78,7 @@ public class DreOrder implements Serializable {
     /**
      * 餐别
      */
+    @JsonProperty("mType")
     private String mType;
 
     /**

+ 6 - 0
src/main/java/com/usky/dxtop/model/DreOrderDetail.java

@@ -3,6 +3,8 @@ package com.usky.dxtop.model;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -35,21 +37,25 @@ public class DreOrderDetail implements Serializable {
     /**
      * 名称
      */
+    @JsonProperty("mName")
     private String mName;
 
     /**
      * 单价
      */
+    @JsonProperty("mPrice")
     private BigDecimal mPrice;
 
     /**
      * 总金额
      */
+    @JsonProperty("totalPrice")
     private BigDecimal totalPrice;
 
     /**
      * 数量
      */
+    @JsonProperty("mCount")
     private Integer mCount;
 
 

+ 3 - 0
src/main/java/com/usky/dxtop/service/DreUserService.java

@@ -22,5 +22,8 @@ public interface DreUserService extends IService<DreUser> {
 
     CommonPage<DreUserVO> page(Integer current, Integer size,String name,Boolean isSend);
 
+
     void addList(List<DreUser> list);
+
+    List<DreUserVO> list(String name,Boolean isSend);
 }

+ 38 - 32
src/main/java/com/usky/dxtop/service/impl/DreOrderServiceImpl.java

@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil;
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.usky.dxtop.common.core.domain.model.LoginUser;
@@ -13,20 +14,14 @@ import com.usky.dxtop.common.utils.*;
 import com.usky.dxtop.common.utils.uuid.UUID;
 import com.usky.dxtop.model.*;
 import com.usky.dxtop.mapper.DreOrderMapper;
-import com.usky.dxtop.service.DreOrderDetailService;
-import com.usky.dxtop.service.DreOrderService;
+import com.usky.dxtop.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.usky.dxtop.service.ISysAsyncTaskService;
-import com.usky.dxtop.service.SysFileService;
 import com.usky.dxtop.service.api.WxApi;
 import com.usky.dxtop.service.emun.AsyncResultType;
 import com.usky.dxtop.service.emun.OrderPayType;
 import com.usky.dxtop.service.emun.OrderSceneCode;
 import com.usky.dxtop.service.emun.OrderStatus;
-import com.usky.dxtop.service.vo.DreOrderExport;
-import com.usky.dxtop.service.vo.DreOrderRequest;
-import com.usky.dxtop.service.vo.OrderExport;
-import com.usky.dxtop.service.vo.OrderRequest;
+import com.usky.dxtop.service.vo.*;
 import ma.glasnost.orika.MapperFacade;
 import ma.glasnost.orika.MapperFactory;
 import ma.glasnost.orika.impl.DefaultMapperFactory;
@@ -54,7 +49,7 @@ import java.util.stream.Collectors;
 public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> implements DreOrderService {
 
 
-    private static final String URL = "https://smartpark.caih.com/vuepay/#/record?id=2";
+    private static final String URL = "https://smartpark.caih.com/vuepay2/#/catering?id=";
 
     @Autowired
     private ISysAsyncTaskService sysAsyncTaskService;
@@ -68,6 +63,9 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
     @Autowired
     private WxApi wxApi;
 
+    @Autowired
+    private DreUserService dreUserService;
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean add(DreOrder dreOrder) {
@@ -75,6 +73,7 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
         dreOrder.setOrderNumber(orderNumber);
         this.save(dreOrder);
         dreOrderDetailService.insertList(dreOrder);
+        ((DreOrderServiceImpl) AopContext.currentProxy()).sendWxMessage(dreOrder);
         return true;
     }
 
@@ -97,6 +96,7 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
                 .eq(null != dreOrderRequest.getOrderUserId() && 0 != dreOrderRequest.getOrderUserId(),DreOrder::getOrderUserId,dreOrderRequest.getOrderUserId())
                 .eq(null != dreOrderRequest.getReceiveUserId() && 0 != dreOrderRequest.getReceiveUserId(),DreOrder::getReceiveUserId,dreOrderRequest.getReceiveUserId())
                 .eq(null != dreOrderRequest.getSendUserId() && 0 != dreOrderRequest.getSendUserId(),DreOrder::getSendUserId,dreOrderRequest.getSendUserId())
+                .in(CollectionUtils.isNotEmpty(dreOrderRequest.getStatusList()),DreOrder::getOrderStatus,dreOrderRequest.getStatusList())
                 .orderByDesc(DreOrder::getId);
         page = this.page(page,queryWrapper);
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
@@ -145,6 +145,7 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
                     log.error("===export spec=== 关闭workbook失败", e);
                 }
             }
+
         }
     }
 
@@ -187,30 +188,35 @@ public class DreOrderServiceImpl extends ServiceImpl<DreOrderMapper, DreOrder> i
     }
 
 
+    @Async
+    public void sendWxMessage(DreOrder dreOrder){
+        String url = String.format("%s%s",URL,dreOrder.getId());
+        List<DreUserVO> list = dreUserService.list(null, true);
+        list = list.stream().filter(dreUserVO -> StringUtils.isNotBlank(dreUserVO.getOpenId())).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(list)){
+            for (DreUserVO dreUserVO:list) {
+                String result = wxApi.sendMessageApi(dreUserVO.getOpenId(),getMessageData(dreOrder),wxApi.getToken(WxApi.APP_ID,WxApi.SECRET), WxApi.DISH_TEMPLATE_ID,url);
+                wxApi.againSendMessage(result,dreUserVO.getOpenId(), getMessageData(dreOrder), WxApi.DISH_TEMPLATE_ID, URL,WxApi.APP_ID,WxApi.SECRET);
+            }
+        }
+    }
 
+    public Map<String,Object> getMessageData(DreOrder dreOrder){
+        Map<String, Object> map = new HashMap<>();
+        map.put("first",getMap("您好,您有新订单",null));
+        map.put("keyword1",getMap(dreOrder.getOrderNumber(),null));
+        map.put("keyword2",getMap(dreOrder.getOrderUserName(),null));
+        map.put("keyword3",getMap(DateUtils.format(dreOrder.getOrderTime(),null),null));
+        map.put("keyword4",getMap(dreOrder.getAddress(),null));
+        map.put("keyword5",getMap(dreOrder.getMType(),null));
+        return map;
+    }
 
-//    private void sendWxMessage(){
-//        String result = wxApi.sendMessageApi(staff.getOpenId(),getMessageData(dish),wxApi.getToken(WxApi.APP_ID,WxApi.SECRET), WxApi.DISH_TEMPLATE_ID,URL);
-//        wxApi.againSendMessage(result,staff.getOpenId(), getMessageData(dish), WxApi.DISH_TEMPLATE_ID, URL,WxApi.APP_ID,WxApi.SECRET);
-//    }
-//
-//    public Map<String,Object> getMessageData(Dish dish){
-//        Map<String, Object> map = new HashMap<>();
-//        map.put("first",getMap("尊敬的客户,您的订单已支付成功",null));
-//        map.put("keyword1",getMap(dish.getSeq(),null));
-//        map.put("keyword2",getMap(dish.getShopName(),null));
-//        map.put("keyword3",getMap(String.format("%s%s", Arith.div(dish.getAmt().doubleValue(),1,2)," 元"),null));
-//        map.put("keyword4",getMap(DateUtils.format(dish.getCreateTime(),null),null));
-//        map.put("keyword5",getMap(DateUtils.format(dish.getCreateTime(),null),null));
-//        map.put("remark",getMap("如有疑问,请及时在线联系我们的客服!",null));
-//        return map;
-//    }
-//
-//    public Map<String,Object> getMap(Object value,String color){
-//        Map<String,Object> map = new HashMap<>();
-//        map.put("value",value);
-//        map.put("color",color);
-//        return map;
-//    }
+    public Map<String,Object> getMap(Object value,String color){
+        Map<String,Object> map = new HashMap<>();
+        map.put("value",value);
+        map.put("color",color);
+        return map;
+    }
 
 }

+ 5 - 0
src/main/java/com/usky/dxtop/service/impl/DreUserServiceImpl.java

@@ -56,4 +56,9 @@ public class DreUserServiceImpl extends ServiceImpl<DreUserMapper, DreUser> impl
             this.saveBatch(addList);
         }
     }
+
+    @Override
+    public List<DreUserVO> list(String name, Boolean isSend) {
+        return null;
+    }
 }

+ 6 - 0
src/main/java/com/usky/dxtop/service/vo/DreOrderRequest.java

@@ -4,6 +4,7 @@ import lombok.Data;
 import oshi.driver.windows.wmi.Win32Processor;
 
 import java.util.Date;
+import java.util.List;
 
 /**
  * @author yq
@@ -38,6 +39,11 @@ public class DreOrderRequest {
      */
     private Integer orderStatus;
 
+    /**
+     * 订单状态集合
+     */
+    private List<Integer> statusList;
+
     /**
      * 下单人
      */

+ 15 - 0
src/main/resources/mapper/DreUserMapper.xml

@@ -23,5 +23,20 @@
         </where>
         order by s.id desc
     </select>
+    <select id="list" resultType="com.usky.dxtop.service.vo.DreUserVO">
+        select s.*,d.name as deptName,tr.identity,tr.proportion,tr.id as radioId
+        from staff as s
+        inner join dre_user as du
+        on s.s_id = du.user_id
+        <where>
+            <if test="name !=null and name != ''">
+                and s.name like concat('%', #{name}, '%')
+            </if>
+            <if test="null != isSend">
+                and du.is_send = #{isSend}
+            </if>
+        </where>
+        order by s.id desc
+    </select>
 
 </mapper>