yanghui
2022-11-17 6e907cce72e42a349123800d697aa99f3360783e
Merge branch 'local_20221104' into huacheng_test

# Conflicts:
# springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
# springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
35个文件已添加
52个文件已修改
6426 ■■■■ 已修改文件
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopFlowerApi.java 343 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerEvaluateDTO.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerGoodsDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerOrderDeliveryDTO.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerRefundOrderDTO.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderDeliveryDTO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderListDTO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderRefundDTO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerEvaluateDTO.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointVO.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientMerchantVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsVO.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerEvaluateVO.java 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsVO.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryVO.java 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderGoodsVO.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderOperateVO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPageVO.java 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPreviewVO.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderStoreListVO.java 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderVO.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerRefundOrderVO.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderCountVO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java 287 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayConstants.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayUtil.java 297 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayXmlUtil.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ShopFlowerApi.java 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java 184 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopFlowerApi.java 592 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerEvaluateDAO.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDAO.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDeliveryDAO.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderGoodsDAO.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerRefundOrderDAO.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerUserAddressDAO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientElevatingPointDAO.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientGoodsCategoryDAO.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientMerchantDAO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDO.java 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDeliveryDO.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderGoodsDO.java 295 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderOperateDO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderPayDO.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerRefundOrderDO.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerUserAddressDO.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientMerchantDO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerEvaluateService.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderDeliveryService.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderService.java 201 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerRefundOrderService.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerUserAddressService.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientElevatingPointService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientGoodsCategoryService.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientMerchantService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerEvaluateServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java 48 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java 120 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java 1008 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerUserAddressServiceImpl.java 132 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientElevatingPointServiceImpl.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientGoodsCategoryServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MapDistance.java 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComConvenientElevatingPointMapper.xml 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerEvaluateDAO.xml 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsMapper.xml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDAO.xml 195 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDeliveryMapper.xml 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderGoodsDAO.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderPayDAO.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerRefundOrderDAO.xml 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientGoodsCategoryMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyRepairServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopFlowerApi.java
New file
@@ -0,0 +1,343 @@
package com.panzhihua.applets.api;
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.shop.*;
import com.panzhihua.common.model.vos.LoginUserInfoVO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.common.model.vos.shop.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.validated.PutGroup;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 商城模块API
 */
@Slf4j
@RestController
@RequestMapping("/shopFlower/")
@Api(tags = {"商城服务"})
public class ShopFlowerApi extends BaseController {
    @Resource
    private CommunityService communityService;
    @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class)
    @GetMapping("/merchant/getMerchantByUserId")
    public R getMerchant(@RequestParam("userId") Long userId) {
        return communityService.getMerchantByUserId(userId);
    }
    @ApiOperation(value = "编辑便民服务商家")
    @PutMapping("/merchant/put")
    public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
        convenientMerchantDTO.setUpdatedBy(this.getUserId());
        convenientMerchantDTO.setCreatedBy(this.getUserId());
        return communityService.putMerchant(convenientMerchantDTO);
    }
    @ApiOperation(value = "分页查询商品列表", response = ComShopFlowerGoodsVO.class)
    @PostMapping("pageShopGoods")
    public R pageShopGoods(@RequestBody ComShopFlowerGoodsDTO comShopGoodsDTO) {
        return communityService.pageShopFlowerGoodsByApp(comShopGoodsDTO);
    }
    @ApiOperation(value = "查询商品详情", response = ComShopFlowerGoodsVO.class)
    @PostMapping("shopGoodsDetail")
    @ApiImplicitParam(name = "goodsId", value = "商品id", required = true)
    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
        return communityService.shopFlowerGoodsDetail(goodsId);
    }
    @ApiOperation(value = "查询用户收货地址列表", response = ComShopUserAddressVO.class)
    @PostMapping("shopUserAddressList")
    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
        Long userId = this.getUserId();
        if (userId == null) {
            return R.fail("请重新登陆");
        }
        comShopAddressDTO.setUserId(userId);
        return communityService.shopFlowerUserAddressList(comShopAddressDTO);
    }
    @ApiOperation(value = "添加用户收货地址列表")
    @PostMapping("shopAddUserAddress")
    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
        Long userId = this.getUserId();
        if (userId == null) {
            return R.fail("请重新登陆");
        }
        comShopAddressDTO.setUserId(userId);
        return communityService.shopFlowerAddUserAddress(comShopAddressDTO);
    }
    @ApiOperation(value = "修改用户收货地址列表")
    @PostMapping("shopEditUserAddress")
    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
        Long userId = this.getUserId();
        if (userId == null) {
            return R.fail("请重新登陆");
        }
        comShopAddressDTO.setUserId(userId);
        return communityService.shopFlowerEditUserAddress(comShopAddressDTO);
    }
    @ApiOperation(value = "删除用户收货地址列表")
    @PostMapping("shopDelUserAddress")
    @ApiImplicitParam(name = "addressId", value = "收货地址id", required = true)
    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
        return communityService.shopFlowerDelUserAddress(addressId);
    }
    @ApiOperation(value = "订单预览", response = ComShopOrderPreviewVO.class)
    @PostMapping("orderPreview")
    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
        Long userId = this.getUserId();
        if (userId == null) {
            return R.fail("请重新登陆");
        }
        orderPreviewDTO.setUserId(userId);
        return communityService.orderPreviewFlower(orderPreviewDTO);
    }
    @ApiOperation(value = "创建订单", response = ComShopOrderVO.class)
    @PostMapping("orderCreate")
    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请重新登陆");
        }
        orderCreateDTO.setUserId(loginUserInfo.getUserId());
        orderCreateDTO.setPhone(loginUserInfo.getPhone());
        orderCreateDTO.setOpenId(loginUserInfo.getOpenid());
        return communityService.orderCreateFlower(orderCreateDTO);
    }
    @ApiOperation(value = "分页查询订单列表", response = ComShopOrderPageVO.class)
    @PostMapping("pageOrderList")
    public R pageOrderList(@RequestBody PageComFlowerOrderListDTO comOrderListDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请重新登陆");
        }
        comOrderListDTO.setUserId(loginUserInfo.getUserId());
        return communityService.pageOrderListFlower(comOrderListDTO);
    }
    @ApiOperation(value = "查询订单详情", response = ComShopOrderPageVO.class)
    @PostMapping("orderDetail")
    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
    public R orderDetail(@RequestParam("orderId") Long orderId) {
        return communityService.orderDetail(orderId);
    }
    @ApiOperation(value = "取消订单")
    @PostMapping("orderCancel")
    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请重新登陆");
        }
        return communityService.orderCancelFlower(comShopOrderQueryDTO);
    }
    @ApiOperation(value = "删除订单")
    @PostMapping("orderDelete")
    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
    public R orderDelete(@RequestParam("orderId") Long orderId) {
        return communityService.orderDelete(orderId);
    }
    @ApiOperation(value = "订单确认收货")
    @PostMapping("orderConfirm")
    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请重新登陆");
        }
        return communityService.orderConfirmFlower(comShopOrderQueryDTO);
    }
/*    @ApiOperation(value = "统计当前用户订单", response = OrderStatisticsVO.class)
    @PostMapping("orderStatistics")
    public R orderStatistics() {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请重新登陆");
        }
        return communityService.orderStatistics(loginUserInfo.getUserId());
    }*/
    @ApiOperation(value = "小程序微信调起支付")
    @PostMapping("wxpay")
    public R wxPay(@RequestBody OrderPayDTO orderPayDTO) {
        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
        if (loginUserInfo == null) {
            return R.fail("请重新登陆");
        }
        orderPayDTO.setOpenId(loginUserInfo.getOpenid());
        return communityService.wxPay(orderPayDTO);
    }
    /**
     * 获取当前商铺周围的自提点信息以及距离手机距离
     *
     * @param merchantId
     * @return
     */
    @ApiOperation(value = "获取自提点")
    @ApiImplicitParams({@ApiImplicitParam(name = "merchantId", value = "商家Id", required = true),
            @ApiImplicitParam(name = "lat", value = "经度", required = true), @ApiImplicitParam(name = "lng", value = "纬度", required = true)})
    @GetMapping("/point/findPointByMerchantId")
    public R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng) {
        return communityService.findPointByMerchantId(merchantId, lat, lng);
    }
    /**
     * 保存评价
     *
     * @param comShopFlowerEvaluateDTO
     * @return
     */
    @ApiOperation(value = "保存评价")
    @PostMapping("/saveEvaluate")
    public R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) {
        return communityService.saveEvaluate(comShopFlowerEvaluateDTO);
    }
    /**
     * 分页查询评价
     *
     * @param pageComShopFlowerEvaluateDTO
     * @return
     */
    @ApiOperation(value = "分页查询评价", response = ComShopFlowerEvaluateVO.class)
    @PostMapping("/pageEvaluate")
    public R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) {
        return communityService.pageEvaluate(pageComShopFlowerEvaluateDTO);
    }
    /**
     * 评价详情
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "评价详情")
    @GetMapping("/detailEvaluate")
    public R detailEvaluate(@RequestParam("id") Long id) {
        return communityService.detailEvaluate(id);
    }
    /**
     * 删除评价
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "删除评价")
    @DeleteMapping("deleteEvaluate")
    public R deleteEvaluate(@RequestParam("id") Long id) {
        return communityService.deleteEvaluate(id);
    }
    /**
     * 取货码
     *
     * @param orderId
     * @return
     */
    @ApiOperation(value = "取货码")
    @GetMapping("getQRCode")
    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
    public R getQRCode(@RequestParam("orderId") Long orderId) {
        return communityService.getQRCode(orderId);
    }
    /**
     * 保存配送单
     *
     * @param comShopFlowerOrderDeliveryDTO
     */
    @PostMapping("saveDelivery")
    @ApiOperation(value = "保存配送单")
    public R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        return communityService.saveDelivery(comShopFlowerOrderDeliveryDTO);
    }
    /**
     * 更新配送单
     *
     * @param comShopFlowerOrderDeliveryDTO
     */
    @PostMapping("updateDelivery")
    @ApiOperation(value = "更新配送单")
    public R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        return communityService.updateDelivery(comShopFlowerOrderDeliveryDTO);
    }
    /**
     * 已配送、已送达 分页查询
     *
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    @PostMapping("pageDelivery")
    @ApiOperation(value = "已配送、已送达 分页查询", response = ComShopFlowerOrderDeliveryVO.class)
    public R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
        return communityService.pageDelivery(pageComFlowerOrderDeliveryDTO);
    }
    /**
     * 未配送 分页查询
     *
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    @ApiOperation(value = "未配送 分页查询", response = ConvenientElevatingPointVO.class)
    @PostMapping("pageNoDelivery")
    public R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
        return communityService.pageNoDelivery(pageComFlowerOrderDeliveryDTO);
    }
    /**
     * 未配送-开始配送-订单列表
     *
     * @param pageComFlowerOrderListDTO
     * @return
     */
    @ApiOperation(value = "未配送-开始配送-订单列表", response = ComShopFlowerOrderPageVO.class)
    @PostMapping("pageNoDeliveryOrderList")
    public R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        return communityService.pageNoDeliveryOrderList(pageComFlowerOrderListDTO);
    }
    /**
     * 根据商家id查询商家的订单
     *
     * @param pageComFlowerOrderListDTO
     * @return
     */
    @ApiOperation(value = "根据商家id分页查询商家的订单", response = ComShopFlowerOrderStoreListVO.class)
    @PostMapping("pageOrderByStoreId")
    public R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        return communityService.pageOrderByStoreId(pageComFlowerOrderListDTO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -348,4 +348,74 @@
    public R settle(String settleDate){
        return R.ok(umfPayUtil.settle(settleDate));
    }
    @PostMapping("flowerWxNotify")
    public void flowerWxNotify(HttpServletRequest request, HttpServletResponse response) {
        log.error("微信支付回调start");
        String inputLine = "";
        String notityXml = "";
        try {
            while ((inputLine = request.getReader().readLine()) != null) {
                notityXml += inputLine;
            }
            // 关闭流
            request.getReader().close();
            log.error("微信回调内容信息:" + notityXml);
            // 解析成Json
            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
            if (StringUtils.isNotEmpty(xmlJson.toString())) {
                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
                // 成功支付订单
                if (resultData.getString("result_code").equals("SUCCESS")
                        && resultData.getString("return_code").equals("SUCCESS")) {
                    WxPayNotifyOrderDTO notifyOrderDTO = new WxPayNotifyOrderDTO();
                    // 订单号
                    String orderTradeNo = resultData.getString("out_trade_no");
                    notifyOrderDTO.setOrderTradeNo(orderTradeNo);
                    // 微信支付订单号
                    String wxTradeNo = resultData.getString("transaction_id");
                    notifyOrderDTO.setWxTradeNo(wxTradeNo);
                    // 订单金额
                    String totalFee = resultData.getString("total_fee");
                    notifyOrderDTO.setTotalFee(totalFee);
                    // 支付完成时间
                    String payTime = resultData.getString("time_end");
                    notifyOrderDTO.setPayTime(payTime);
                    // 现金支付金额
                    String cashFee = resultData.getString("cash_fee");
                    notifyOrderDTO.setCashFee(cashFee);
                    // 根据订单号修改订单信息
                    communityService.wxOrderPayNotify(notifyOrderDTO);
                    // 封装 返回值
                    StringBuffer buffer = new StringBuffer();
                    buffer.append("<xml>");
                    buffer.append("<return_code>SUCCESS</return_code>");
                    buffer.append("<return_msg>OK</return_msg>");
                    buffer.append("</xml>");
                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
                    PrintWriter writer = response.getWriter();
                    // 返回
                    writer.print(buffer.toString());
                } else {// 未成功支付订单
                    // 封装 返回值
                    StringBuffer buffer = new StringBuffer();
                    buffer.append("<xml>");
                    buffer.append("<return_code>FAIL</return_code>");
                    buffer.append("<return_msg>FAIL</return_msg>");
                    buffer.append("</xml>");
                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
                    PrintWriter writer = response.getWriter();
                    // 返回
                    writer.print(buffer.toString());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java
@@ -36,4 +36,19 @@
     * 电动车商城活动订单支付回调地址
     */
    public static final String BATTERY_STORE_ACTIVITY_PAY_NOTIFY_URL = "/api/huacheng-applets/wx/batteryActivityPayNotify";
    public static final String REFUND_URL = "https://api.mch.weixin.qq.com/secapi/pay/refund";
    /**
     * 微信支付返回支付成功的参数名字
     */
    public static final String RETURN_CODE_CODE = "return_code";
    /**
     * 微信退款接口返回成功的参数名称
     */
    public static final String RESULT_CODE_CODE = "result_code";
    /**
     * 微信退款接口请求key
     */
    public static final String REFUND_KEY= "GMWTEJ7NOVPQLL1FTMLT49H693LOUABJ";
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerEvaluateDTO.java
New file
@@ -0,0 +1,65 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @ClassName:  ComShopFlowerEvaluate
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: 评价表
 */
@Data
@ApiModel("评价信息")
public class ComShopFlowerEvaluateDTO{
    /**
     * 订单号
     */
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    private String goodsId;
    /**
     * 评价人id
     */
    @ApiModelProperty(value = "评价人id")
    private Long userId;
    /**
     * 评价时间
     */
    @ApiModelProperty(value = "评价时间")
    private Date evaluateTime;
    /**
     * 评价类型(1.非常满意 2.满意 3.一般 4.不满意 5.糟糕透了)
     */
    @ApiModelProperty(value = "评价类型(1.非常满意 2.满意 3.一般 4.不满意 5.糟糕透了)")
    private Integer evaluateType;
    /**
     * 评价内容
     */
    @ApiModelProperty(value = "评价内容")
    private String evaluateContent;
    /**
     * 评价图片
     */
    @ApiModelProperty(value = "评价图片")
    private String evaluatePic;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerGoodsDTO.java
@@ -33,4 +33,7 @@
    @ApiModelProperty(hidden = true)
    private Long userId;
    @ApiModelProperty("商品分类id")
    private Long categoriesId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerOrderDeliveryDTO.java
New file
@@ -0,0 +1,59 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * @auther lyq
 * @create 2021-04-14 15:02:14
 * @describe 购物车
 */
@Data
@ApiModel("配送单")
public class ComShopFlowerOrderDeliveryDTO {
    /**
     * id
     */
    @ApiModelProperty(value = "配送单id")
    private Long id;
    /**
     * 自提点id
     */
    @ApiModelProperty(value = "自提点id", required = true)
    private Long pointId;
    /**
     * 自提点id
     */
    @ApiModelProperty(value = "自提点名称", required = true)
    private String pointName;
    /**
     * 配送订单数量
     */
    @ApiModelProperty(value = "配送订单数量", required = true)
    private Integer deliveryOrderNum;
    /**
     * 配送商品数量
     */
    @ApiModelProperty(value = "配送商品数量", required = true)
    private Integer deliveryGoodsNum;
    /**
     * 价值
     */
    @ApiModelProperty(value = "价值", required = true)
    private BigDecimal deliveryAmount;
    @ApiModelProperty(value = "订单id集合", required = true)
    private List<Long> orderIds;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerRefundOrderDTO.java
New file
@@ -0,0 +1,86 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 退款申请
 */
@Data
@ApiModel("退款申请")
public class ComShopFlowerRefundOrderDTO {
    /**
     * 退款订单id
     */
    @ApiModelProperty(value = "退款订单id")
    private Long id;
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    private Long storeId;
    /**
     * 原始订单号
     */
    @ApiModelProperty(value = "原始订单号")
    private String orderNo;
    /**
     * 原始订单id
     */
    @ApiModelProperty(value = "原始订单id")
    private String orderId;
    /**
     * 支付总金额
     */
    @ApiModelProperty(value = "支付总金额")
    private BigDecimal payAmount;
    /**
     * 申请退款金额
     */
    @ApiModelProperty(value = "申请退款金额")
    private BigDecimal refundAmount;
    /**
     * 退款原因
     */
    @ApiModelProperty(value = "退款原因")
    private String refundReason;
    /**
     * 退款照片
     */
    @ApiModelProperty(value = "退款照片")
    private String refundPic;
    /**
     * 处理结果
     */
    @ApiModelProperty(value = "处理结果(1.同意 2.拒绝)")
    private String handleResult;
    /**
     * 商家备注
     */
    @ApiModelProperty(value = "商家备注")
    private String remark;
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id", hidden = true)
    private Long userId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java
@@ -27,6 +27,9 @@
    @ApiModelProperty(value = "用户收货地址id", required = true)
    private Long receiverId;
    @ApiModelProperty(value = "自提点地址id")
    private Long pointId;
    @ApiModelProperty(value = "订单备注")
    private String remark;
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderDeliveryDTO.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 分页查询配送单列表
 */
@Data
@ApiModel("花城分页查询配送单列表")
public class PageComFlowerOrderDeliveryDTO {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "配送单状态(1.配送中 2.已送达)")
    private Integer deliveryStatus;
    @ApiModelProperty(value = "配送单号")
    private String deliveryNo;
    @ApiModelProperty(value = "商家id")
    private Long storeId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderListDTO.java
New file
@@ -0,0 +1,32 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @auther lyq
 * @create 2021-04-14 15:02:14
 * @describe 分页查询订单列表
 */
@Data
@ApiModel("花城分页查询订单列表")
public class PageComFlowerOrderListDTO {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
    private Integer status;
    @ApiModelProperty(value = "自提点id")
    private Integer pointId;
    @ApiModelProperty(value = "商户id")
    private Long storeId;
    @ApiModelProperty(value = "用户id", hidden = true)
    private Long userId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderRefundDTO.java
New file
@@ -0,0 +1,29 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @auther lyq
 * @create 2021-04-14 15:02:14
 * @describe 分页查询订单列表
 */
@Data
@ApiModel("分页查询退款订单列表")
public class PageComOrderRefundDTO {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "订单状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)")
    private Integer status;
    @ApiModelProperty(value = "店铺id")
    private Long storeId;
    @ApiModelProperty(value = "用户id", hidden = true)
    private Long userId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerEvaluateDTO.java
New file
@@ -0,0 +1,32 @@
package com.panzhihua.common.model.dtos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @auther lyq
 * @create 2021-04-14 15:02:14
 * @describe 分页查询订单列表
 */
@Data
@ApiModel("评价查询")
public class PageComShopFlowerEvaluateDTO {
    @ApiModelProperty(value = "分页-当前页数", example = "1")
    private Long pageNum = 1L;
    @ApiModelProperty(value = "分页-每页记录数", example = "10")
    private Long pageSize = 10L;
    @ApiModelProperty(value = "商品id")
    private Long goodsId;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @ApiModelProperty(value = "订单id")
    private Long orderId;
    @ApiModelProperty(value = "评价类型(1.非常满意 2.满意 3.一般 4.不满意 5.糟糕透了)")
    private Integer evaluateType;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java
@@ -28,7 +28,7 @@
    private String goodsName;
    @ApiModelProperty(value = "店铺名称", example = "小二的店")
    private String storeName;
    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)", example = "1")
    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)", example = "1")
    private Integer status;
    @ApiModelProperty(value = "下单时间-开始", example = "2021-4-10 10:38:25")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@@ -46,4 +46,7 @@
    private Long storeId;
    @ApiModelProperty(hidden = true)
    private Long storeUserId;
    @ApiModelProperty("配送方式(1.自提  2.快递)")
    private Integer deliveryType;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java
@@ -244,6 +244,7 @@
    private Long bindingCheckUnitId;
    @ApiModelProperty("后台账号类型")
    private Integer backstageType;
@@ -256,4 +257,7 @@
    @ApiModelProperty("物业公司id")
    private Long propertyId;
    @ApiModelProperty("商家后台账号id")
    private Long backstageUserId;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointVO.java
@@ -86,4 +86,22 @@
     */
    @ApiModelProperty("已提货数量")
    private Long alreadyGoodsNum;
    /**
     * 距离手机定位距离
     */
    @ApiModelProperty("距离手机定位距离")
    private Double distance;
    /**
     * 配送订单数量
     */
    @ApiModelProperty(value = "配送订单数量")
    private Integer deliveryOrderNum;
    /**
     * 配送商品数量
     */
    @ApiModelProperty(value = "配送商品数量")
    private Integer deliveryGoodsNum;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientMerchantVO.java
@@ -1,5 +1,6 @@
package com.panzhihua.common.model.vos.community.convenient;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -112,6 +113,12 @@
    @ApiModelProperty("手机号")
    private String mobilePhone;
    @ApiModelProperty("店铺销量")
    private Integer sale;
    @ApiModelProperty("店铺销售额")
    private BigDecimal saleVolume;
    public void setPeriod(String period) {
        this.period = MerchantBusinessPeriod.valueOf(period);
    }
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsVO.java
@@ -8,6 +8,7 @@
import javax.validation.Valid;
import javax.validation.constraints.Digits;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import java.math.BigDecimal;
import java.util.List;
@@ -54,4 +55,8 @@
    @ApiModelProperty("商品规格")
    @Valid
    private List<AddShopFlowerGoodsAttrVO> goodsAttrVOList;
    @ApiModelProperty("商品分类")
    @NotEmpty(groups = {AddGroup.class}, message = "商品分类不能为空")
    private List<Long> categoryIds;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerEvaluateVO.java
New file
@@ -0,0 +1,68 @@
package com.panzhihua.common.model.vos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
/**
 * @ClassName:  ComShopFlowerEvaluate
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: 评价表
 */
@Data
@ApiModel("评价信息")
public class ComShopFlowerEvaluateVO{
    private static final long serialVersionUID = 1L;
    /**
     * ,主键
     */
    @ApiModelProperty("评价id")
    private Long id;
    /**
     * 订单号
     */
    @ApiModelProperty("订单号")
    private String orderNo;
    /**
     * 商品id
     */
    @ApiModelProperty("商品id")
    private String goodsId;
    /**
     * 评价人id
     */
    @ApiModelProperty("评价人id")
    private Long userId;
    /**
     * 评价时间
     */
    @ApiModelProperty("评价时间")
    private Date evaluateTime;
    /**
     * 评价类型(1.非常满意 2.满意 3.一般 4.不满意 5.糟糕透了)
     */
    @ApiModelProperty("评价类型(1.非常满意 2.满意 3.一般 4.不满意 5.糟糕透了)")
    private Integer evaluateType;
    /**
     * 评价内容
     */
    @ApiModelProperty("评价内容")
    private String evaluateContent;
    /**
     * 评价图片
     */
    @ApiModelProperty("评价图片")
    private String evaluatePic;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsVO.java
@@ -118,4 +118,16 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty("创建时间")
    private Date createAt;
    /**
     * 配送方式(1.商家配送 2.快递物流)
     */
    @ApiModelProperty("订单数量(拼单数量、买过数量)")
    private Integer orderNum;
    /**
     * 商品规格列表
     */
    @ApiModelProperty("评价列表,最新三条")
    private List<ComShopFlowerEvaluateVO> shopFlowerEvaluateVOList;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryVO.java
New file
@@ -0,0 +1,121 @@
package com.panzhihua.common.model.vos.shop;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @ClassName: ComShopFlowerOrderDelivery
 * @Author: yh
 * @Date: 2022/11/15 14:36
 * @Description: 花城订单配送表
 */
@Data
@ApiModel("订单配送表")
public class ComShopFlowerOrderDeliveryVO {
    /**
     * 配送单id
     */
    @ApiModelProperty(value = "配送单id")
    private Long id;
    /**
     * 店铺id
     */
    @ApiModelProperty(value = "店铺id")
    private Long storeId;
    /**
     * 配送单号
     */
    @ApiModelProperty(value = "配送单号")
    private String deliveryNo;
    /**
     * 配送单状态(1.配送中 2.已送达)
     */
    @ApiModelProperty(value = "配送单状态(1.配送中 2.已送达)")
    private Integer deliveryStatus;
    /**
     * 删除状态(1.未删除 2.已删除)
     */
    @ApiModelProperty(value = "删除状态(1.未删除 2.已删除)")
    private Integer deleteStatus;
    /**
     * 配送时间
     */
    @ApiModelProperty(value = "配送时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date deliveryTime;
    /**
     * 送达时间
     */
    @ApiModelProperty(value = "送达时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date serviceTime;
    /**
     * 配送方式(1.自提  2.快递)
     */
    @ApiModelProperty(value = " 配送方式(1.自提  2.快递)")
    private Integer deliveryType;
    /**
     * 自提点id
     */
    @ApiModelProperty(value = "自提点id")
    private Long pointId;
    /**
     * 自提点名称
     */
    @ApiModelProperty(value = "自提点名称")
    private Long pointName;
    /**
     * 配送订单数量
     */
    @ApiModelProperty(value = "配送订单数量")
    private Integer deliveryOrderNum;
    /**
     * 配送商品数量
     */
    @ApiModelProperty(value = "配送商品数量")
    private Integer deliveryGoodsNum;
    /**
     * 价值
     */
    @ApiModelProperty(value = "价值")
    private BigDecimal deliveryAmount;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateAt;
    @ApiModelProperty(value = "自提点信息")
    private ConvenientElevatingPointVO convenientElevatingPointVO;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderGoodsVO.java
New file
@@ -0,0 +1,75 @@
package com.panzhihua.common.model.vos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @auther lyq
 * @create 2021-04-14 15:02:14
 * @describe 订单预览商品参数
 */
@Data
@ApiModel("订单预览商品参数")
public class ComShopFlowerOrderGoodsVO {
    /**
     * 商品名称
     */
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    /**
     * 商品图片
     */
    @ApiModelProperty(value = "商品图片")
    private String goodsPic;
    /**
     * 商品价格
     */
    @ApiModelProperty(value = "商品价格")
    private BigDecimal price;
    /**
     * 商品数量
     */
    @ApiModelProperty(value = "商品数量")
    private Integer num;
    /**
     * 商品id
     */
    @ApiModelProperty(value = "商品id")
    private Long goodsId;
    /**
     * 商品规格id
     */
    @ApiModelProperty(value = "商品规格id")
    private Long goodsAttrId;
    /**
     * 商品规格
     */
    @ApiModelProperty(value = "商品规格")
    private String goodsAttr;
    /**
     * 商品状态(1.出售中 2.已下架 3.已删除)
     */
    @ApiModelProperty(value = "商品状态(1.出售中  2.已下架 3.已删除)")
    private Integer goodsStatus = 1;
    /**
     * 商品状态(1.出售中 2.已下架 3.已删除)
     */
    public interface goodsStatus {
        int csz = 1;
        int yxj = 2;
        int ysc = 3;
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderOperateVO.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.common.model.vos.shop;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@ApiModel("订单操作日志")
public class ComShopFlowerOrderOperateVO {
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "操作人")
    private String operationBy;
    @ApiModelProperty(value = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date operationTime;
    @ApiModelProperty(value = "操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)")
    private Integer operationType;
    @ApiModelProperty(value = "操作内容")
    private String operationContent;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPageVO.java
New file
@@ -0,0 +1,106 @@
package com.panzhihua.common.model.vos.shop;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@ApiModel("订单信息")
public class ComShopFlowerOrderPageVO {
    @ApiModelProperty(value = "订单id")
    private Long orderId;
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderTotal;
    @ApiModelProperty(value = "店铺id")
    private Long storeId;
    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
    private Integer status;
    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
    private Integer payStatus;
    @ApiModelProperty(value = "用户收货地址id")
    private Long receiverId;
    @ApiModelProperty(value = "支付金额")
    private BigDecimal payAmount;
    @ApiModelProperty(value = "配送方式")
    private Integer deliveryType;
    @ApiModelProperty(value = "订单备注")
    private String remark;
    @ApiModelProperty(value = "支付方式(1.微信支付)")
    private Integer payType;
    @ApiModelProperty(value = "支付时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date payTime;
    @ApiModelProperty(value = "订单发货状态(1.未发货  2.已发货)")
    private Integer deliveryStatus;
    @ApiModelProperty(value = "物流公司")
    private String logisticsCompany;
    @ApiModelProperty(value = "物流单号")
    private String logisticsNo;
    @ApiModelProperty(value = "下单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    @ApiModelProperty(value = "支付单号")
    private String payNo;
    @ApiModelProperty(value = "发货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date deliveryTime;
    @ApiModelProperty(value = "收货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date receivingTime;
    @ApiModelProperty(value = "订单下商品信息")
    private List<ComShopFlowerOrderGoodsVO> orderGoodsVOList;
    @ApiModelProperty(value = "订单下店铺信息")
    private ConvenientMerchantVO convenientMerchantVO;
    @ApiModelProperty(value = "用户收货地址id")
    private ComShopUserAddressVO userAddressVO;
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @ApiModelProperty(value = "订单日志")
    private List<ComShopFlowerOrderOperateVO> logs;
    @ApiModelProperty(value = "自提点信息")
    private ConvenientElevatingPointVO convenientElevatingPointVO;
    @ApiModelProperty(value = "评价")
    private ComShopFlowerEvaluateVO comShopFlowerEvaluateVO;
    @ApiModelProperty(value = "配送单id")
    private Long deliveryId;
    @ApiModelProperty(value = "配送单号")
    private String deliveryNo;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPreviewVO.java
New file
@@ -0,0 +1,44 @@
package com.panzhihua.common.model.vos.shop;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * @auther lyq
 * @create 2021-04-14 15:02:14
 * @describe 订单预览返回参数
 */
@Data
@ApiModel("订单预览返回参数")
public class ComShopFlowerOrderPreviewVO {
    /**
     * 用户默认收货地址
     */
    @ApiModelProperty(value = "用户默认收货地址")
    private ComShopUserAddressVO userAddressVO;
    /**
     * 店铺信息
     */
    @ApiModelProperty(value = "店铺信息")
    private ConvenientMerchantVO convenientMerchantVO;
    /**
     * 订单总金额
     */
    @ApiModelProperty(value = "订单总金额")
    private BigDecimal orderTotal;
    /**
     * 订单商品总数量
     */
    @ApiModelProperty(value = "订单商品总数量")
    private Integer orderGoodsTotal;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderStoreListVO.java
New file
@@ -0,0 +1,62 @@
package com.panzhihua.common.model.vos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("商家订单列表VO")
public class ComShopFlowerOrderStoreListVO {
    @ApiModelProperty(value = "订单id")
    private Long orderId;
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
    private Integer status;
    @ApiModelProperty(value = "配送方式")
    private Integer deliveryType;
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @ApiModelProperty(value = "规格名称")
    private String goodsAttrName;
    @ApiModelProperty(value = "购买数量")
    private Integer amount;
    @ApiModelProperty(value = "商品规格价格")
    private BigDecimal goodsAttrPrice;
    @ApiModelProperty(value = "商品规格图")
    private String goodsAttrPic;
    @ApiModelProperty(value = "订单金额")
    private BigDecimal totalAmount;
    @ApiModelProperty(value = "收货人名称")
    private String name;
    @ApiModelProperty(value = "发货时间")
    private String phone;
    @ApiModelProperty(value = "收货人省份名称")
    private String provinceName;
    @ApiModelProperty(value = "收货人城市名称")
    private String cityName;
    @ApiModelProperty(value = "收货人区县名称")
    private String districtName;
    @ApiModelProperty(value = "收货人详细地址")
    private String detailAddress;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderVO.java
New file
@@ -0,0 +1,25 @@
package com.panzhihua.common.model.vos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("订单创建返回参数")
public class ComShopFlowerOrderVO {
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "订单ID")
    private Long orderId;
    @ApiModelProperty(value = "订单金额")
    private BigDecimal orderTotal;
    @ApiModelProperty(value = "请求支付返回参数")
    private String payResult;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerRefundOrderVO.java
New file
@@ -0,0 +1,125 @@
package com.panzhihua.common.model.vos.shop;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @ClassName: ComShopFlowerRefundOrderVO
 * @Author: yh
 * @Date: 2022/11/16 15:05
 * @Description: TODO
 */
@Data
public class ComShopFlowerRefundOrderVO {
    /**
     * 订单id
     */
    @ApiModelProperty("退款订单id")
    private Long id;
    /**
     * 店铺id
     */
    @ApiModelProperty("店铺id")
    private Long storeId;
    /**
     * 用户id
     */
    @ApiModelProperty("用户id")
    private Long userId;
    /**
     * 原始订单号
     */
    @ApiModelProperty("原始订单号")
    private String orderNo;
    /**
     * 原始订单id
     */
    @ApiModelProperty("原始订单id")
    private String orderId;
    /**
     * 退款订单号
     */
    @ApiModelProperty("退款订单号")
    private String refundOrderNo;
    /**
     * 订单状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
     */
    @ApiModelProperty("订单状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)")
    private Integer status;
    /**
     * 删除状态(1.未删除 2.已删除)
     */
    @ApiModelProperty("删除状态(1.未删除 2.已删除)")
    private Integer deleteStatus;
    /**
     * 支付总金额
     */
    @ApiModelProperty("支付总金额")
    private BigDecimal payAmount;
    /**
     * 申请退款金额
     */
    @ApiModelProperty("申请退款金额")
    private BigDecimal refundAmount;
    /**
     * 退款原因
     */
    @ApiModelProperty("退款原因")
    private String refundReason;
    /**
     * 退款照片
     */
    @ApiModelProperty("退款照片")
    private String refundPic;
    /**
     * 申请时间
     */
    @ApiModelProperty("申请时间")
    private Date createAt;
    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private Date updateAt;
    /**
     * 处理时间
     */
    @ApiModelProperty("处理时间")
    private Date handleTime;
    /**
     * 退款时间
     */
    @ApiModelProperty("退款时间")
    private Date refundTime;
    /**
     * 处理结果
     */
    @ApiModelProperty("处理结果(1.同意 2.拒绝)")
    private String handleResult;
    /**
     * 商家备注
     */
    @ApiModelProperty("商家备注")
    private String remark;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderCountVO.java
New file
@@ -0,0 +1,31 @@
package com.panzhihua.common.model.vos.shop;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 统计订单数VO
 */
@Data
@ApiModel("统计订单数VO")
public class ComShopOrderCountVO {
    /**
     * 订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)
     */
    @ApiModelProperty("订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款 8.总订单)")
    private Integer status;
    /**
     * 订单数量
     */
    @ApiModelProperty("订单数量")
    private Integer amount;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java
@@ -94,4 +94,7 @@
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createAt;
    private String address;
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -35,6 +35,7 @@
import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
import com.panzhihua.common.model.vos.community.reserve.ComActReserveDangerAreaVO;
import com.panzhihua.common.model.vos.shop.AddShopFlowerGoodsVO;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.scheduling.annotation.Async;
@@ -2987,6 +2988,16 @@
     */
    @GetMapping("/shopFlower/changeShopGoodsStatus")
    R changeFlowerStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
    /**
     * 修改商品状态
     *
     * @param goodsId
     * @return
     */
    @PostMapping("/shopFlower/shopGoodsDetail")
    R shopFlowerGoodsDetail(@RequestParam("goodsId") Long goodsId);
    /**
@@ -6528,6 +6539,14 @@
     */
    @GetMapping("/convenient/merchant/get")
    R getMerchant(@RequestParam("merchantId") Long merchantId);
    /**
     * 获取便民服务商家详情
     * @param userId
     * @return
     */
    @GetMapping("/convenient/merchant/getMerchantByUserId")
    R getMerchantByUserId(@RequestParam("userId") Long userId);
    /**
     * 禁用/启用便民服务商家
@@ -10696,6 +10715,274 @@
    R noticeList(@RequestParam("page")Integer page,@RequestParam("size")Integer size,@RequestParam("propertyId")Long propertyId);
    /**
     * 获取所有商品分类
     * @return
     */
    @GetMapping("/goodsCategory/getAllGoodsCategories")
    R getAllGoodsCategories();
    /**
     * 分页查询用户收货地址列表
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 用户收货地址列表
     */
    @PostMapping("/shopFlower/shopUserAddressList")
    R shopFlowerUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO);
    /**
     * 用户添加收货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 添加结果
     */
    @PostMapping("/shopFlower/shopAddUserAddress")
    R shopFlowerAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
    /**
     * 用户修改收货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 修改结果
     */
    @PostMapping("/shopFlower/shopEditUserAddress")
    R shopFlowerEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
    /**
     * 用户删除收货地址
     *
     * @param addressId
     *            收货地址id
     * @return 删除结果
     */
    @PostMapping("/shopFlower/shopDelUserAddress")
    R shopFlowerDelUserAddress(@RequestParam("addressId") Long addressId);
    /**
     * 订单预览
     *
     * @param orderPreviewDTO 请求参数
     * @return 订单预览数据
     */
    @PostMapping("/shopFlower/orderPreview")
    R orderPreviewFlower(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO);
    /**
     * 创建订单
     *
     * @param orderCreateDTO 创建订单请求参数
     * @return 创建结果
     */
    @PostMapping("/shopFlower/orderCreate")
    R orderCreateFlower(@RequestBody ComShopOrderCreateDTO orderCreateDTO);
    /**
     * 分页查询用户订单列表
     *
     * @param comOrderListDTO 请求参数
     * @return 查询结果
     */
    @PostMapping("/shopFlower/pageOrderList")
    R pageOrderListFlower(@RequestBody PageComFlowerOrderListDTO comOrderListDTO);
    /**
     * 根据订单id查询订单详情
     *
     * @param orderId 订单id
     * @return 订单详情
     */
    @PostMapping("/shopFlower/orderDetail")
    R orderDetailFlower(@RequestParam("orderId") Long orderId);
    /**
     * 根据订单id取消订单
     *
     * @param comShopOrderQueryDTO 请求参数
     * @return 取消结果
     */
    @PostMapping("/shopFlower/orderCancel")
    R orderCancelFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
    /**
     * 根据订单id删除订单
     *
     * @param orderId 订单id
     * @return 删除结果
     */
    @PostMapping("/shopFlower/orderDelete")
    R orderDeleteFlower(@RequestParam("orderId") Long orderId);
    /**
     * 根据订单id确认收货
     *
     * @param comShopOrderQueryDTO 请求参数
     * @return 确认结果
     */
    @PostMapping("/shopFlower/orderConfirm")
    R orderConfirmFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
    /**
     * 分页查询 商家订单
     *
     * @param pageComShopOrderSearchDTO 分页数据
     * @return 分页订单
     */
    @PostMapping("/shopFlower/order/page")
    R pageShopOrderFlower(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
    /**
     * 订单发货
     *
     * @param orderShipDTO 发货信息
     * @return 发货结果
     */
    @PostMapping("/shopFlower/shipOrder")
    R shipOrderFlower(@RequestBody ComShopOrderShipDTO orderShipDTO);
    /**
     * 订单配送
     *
     * @param deliverDTO 订单ID
     * @return 配送结果
     */
    @PostMapping("/shopFlower/deliverOrder")
    R deliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO);
    /**
     * 订单配送
     *
     * @param deliverDTO 订单ID
     * @return 配送完成
     */
    @PostMapping("/shopFlower/finishDeliverOrder")
    R finishDeliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO);
    /**
     * 获取当前商铺周围的自提点信息以及距离手机距离
     *
     * @param merchantId
     * @return
     */
    @GetMapping("/convenient/point/findPointByMerchantId")
    R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng);
    /**
     * 保存评价
     * @param comShopFlowerEvaluateDTO
     * @return
     */
    @PostMapping("/shopFlower/saveEvaluate")
    R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO);
    /**
     * 分页查询评价
     * @param pageComShopFlowerEvaluateDTO
     * @return
     */
    @PostMapping("/pageEvaluate")
    R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO);
    /**
     * 评价详情
     * @param id
     * @return
     */
    @GetMapping("/shopFlower/detailEvaluate")
    R detailEvaluate(@RequestParam("id") Long id);
    /**
     * 删除评价
     * @param id
     * @return
     */
    @DeleteMapping("/shopFlower/deleteEvaluate")
    R deleteEvaluate(@RequestParam("id") Long id);
    /**
     * 取货码
     * @param id
     * @return
     */
    @ApiOperation(value = "取货码")
    @GetMapping("/shopFlower/getQRCode")
    R getQRCode(@RequestParam("id") Long id);
    /**
     * 保存配送单
     * @param comShopFlowerOrderDeliveryDTO
     */
    @PostMapping("/shopFlower/saveDelivery")
    R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
    /**
     * 更新配送单
     * @param comShopFlowerOrderDeliveryDTO
     */
    @PostMapping("/shopFlower/updateDelivery")
    R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
    /**
     * 已配送、已送达 分页查询
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    @PostMapping("/shopFlower/pageDelivery")
    R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
    /**
     * 未配送 分页查询
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    @PostMapping("/shopFlower/pageNoDelivery")
    R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
    /**
     * 未配送-开始配送-订单列表
     * @param pageComFlowerOrderListDTO
     * @return
     */
    @PostMapping("/shopFlower/pageNoDeliveryOrderList")
    R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
    /**
     * 根据商家id查询商家的订单
     * @param pageComFlowerOrderListDTO
     * @return
     */
    @PostMapping("/shopFlower/pageOrderByStoreId")
    R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
    /**
     * 微信支付订单回调
     *
     * @param wxPayNotifyOrderDTO
     *            订单支付回调参数
     */
    @PostMapping("/shopFlower/wxOrderPayNotify")
    void wxOrderPayNotifyFlower(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
    /**
     * 点击去支付订单
     *
     * @param orderPayDTO
     *            请求参数
     * @return 支付对象
     */
    @PostMapping("/shopFlower/wxPay")
    R wxPayFlower(@RequestBody OrderPayDTO orderPayDTO);
    /**
     * 统计查询订单数量
     * @param deliveryType
     * @return
     */
    @GetMapping("/shopFlower/selectCountByDeliveryType")
    R selectCountByDeliveryType(Integer deliveryType);
    /**
     * 获取社区动态置顶banner
     * @param communityId  社区id
     * */
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -4,27 +4,35 @@
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.security.KeyStore;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.apache.http.ssl.SSLContexts;
import org.apache.http.util.EntityUtils;
import org.springframework.util.ObjectUtils;
import com.panzhihua.common.constants.HttpConstant;
import lombok.extern.slf4j.Slf4j;
import javax.net.ssl.SSLContext;
/**
 * @program: springcloud_k8s_panzhihuazhihuishequ
@@ -332,4 +340,67 @@
        return in;
    }
    /**
     * 退款请求微信
     * @param url   请求地址
     * @param data  请求数据
     * @param mchId 商户id
     * @param isTest    是否是测试
     * @return  退款结果
     * @throws Exception    抛出异常
     */
    public static String doRefund(String url, String data,String mchId,Boolean isTest) throws Exception{
        KeyStore keyStore  = KeyStore.getInstance("PKCS12");
        //P12文件目录 证书路径,这里需要你自己修改,linux下还是windows下的根路径
        String filepath = "";
        if(isTest){
            filepath = "D:\\wx\\WXCertUtil\\cert\\";
        }else{
            filepath = "/mnt/data/refund/huacheng/";
        }
        System.out.println("filepath->"+filepath);
        FileInputStream instream = new FileInputStream(filepath+"apiclient_cert.p12");
        try {
            keyStore.load(instream, mchId.toCharArray());//这里写密码..默认是你的MCHID
        } finally {
            instream.close();
        }
        // Trust own CA and all self-signed certs
        SSLContext sslcontext = SSLContexts.custom()
                .loadKeyMaterial(keyStore, mchId.toCharArray())//这里也是写密码的
                .build();
        // Allow TLSv1 protocol only
        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
                sslcontext,
                SSLConnectionSocketFactory.getDefaultHostnameVerifier());
        CloseableHttpClient httpclient = HttpClients.custom()
                .setSSLSocketFactory(sslsf)
                .build();
        try {
            HttpPost httpost = new HttpPost(url); // 设置响应头信息
            httpost.addHeader("Connection", "keep-alive");
            httpost.addHeader("Accept", "*/*");
            httpost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            httpost.addHeader("Host", "api.mch.weixin.qq.com");
            httpost.addHeader("X-Requested-With", "XMLHttpRequest");
            httpost.addHeader("Cache-Control", "max-age=0");
            httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ");
            httpost.setEntity(new StringEntity(data, "UTF-8"));
            CloseableHttpResponse response = httpclient.execute(httpost);
            try {
                HttpEntity entity = response.getEntity();
                String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8");
                log.info("请求微信退款接口返回结果:" + JSONObject.toJSONString(jsonStr));
                EntityUtils.consume(entity);
                return jsonStr;
            } finally {
                response.close();
            }
        } finally {
            httpclient.close();
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java
@@ -8,7 +8,8 @@
    private static int sn = 0;
    // 防止创建类的实例
    private OrderNoUtils() {}
    private OrderNoUtils() {
    }
    public static String NextOrderNo(Long userId) {
        if (sn == 999)
@@ -17,7 +18,17 @@
            sn++;
        DateFormat df = new SimpleDateFormat("MMddHHmmss");
        return df.format(new Date()) + padRight(String.valueOf(userId), 5, '0') + padRight(String.valueOf(sn), 3, '0')
            + getRandomNumber();
                + getRandomNumber();
    }
    public static String nextDeliveryNo() {
        if (sn == 999)
            sn = 0;
        else
            sn++;
        DateFormat df = new SimpleDateFormat("MMddHHmmss");
        return "PS" + df.format(new Date()) + padRight(String.valueOf(sn), 3, '0')
                + getRandomNumber();
    }
    public static String padLeft(String src, int len, char ch) {
@@ -50,7 +61,7 @@
    /**
     * 获取三位随机数
     *
     *
     * @return 三位随机数
     */
    private static String getRandomNumber() {
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
@@ -1,10 +1,12 @@
package com.panzhihua.common.utlis;
import java.math.BigDecimal;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import com.panzhihua.common.utlis.wx.WXPayUtil;
import org.json.XML;
import com.alibaba.fastjson.JSON;
@@ -138,4 +140,31 @@
        return result.toJSONString();
    }
    public static String refund(String appid,String mchId,String orderNo,BigDecimal totalFee,BigDecimal refundFee,String refundNo,Boolean isTest) throws Exception {
        //创建请求地址
        String url = PayCpmstant.REFUND_URL;
        Map<String, String> paramMap = new LinkedHashMap<>();
        paramMap.put("appid",appid);
        paramMap.put("mch_id",mchId);
        paramMap.put("nonce_str", WXPayUtil.generateNonceStr());
        paramMap.put("out_refund_no",refundNo);
        paramMap.put("out_trade_no",orderNo);
        paramMap.put("refund_fee",String.valueOf(refundFee.multiply(BigDecimal.valueOf(100)).longValue()));
        paramMap.put("total_fee",String.valueOf(totalFee.multiply(BigDecimal.valueOf(100)).longValue()));
        paramMap.put("sign",WXPayUtil.generateSignature(paramMap,PayCpmstant.REFUND_KEY));
        log.info("微信退款请求参数:{},{},{},{}",url,WXPayUtil.mapToXml(paramMap),mchId,isTest);
        //接收请求返回值
        String content = HttpClientUtil.doRefund(url,WXPayUtil.mapToXml(paramMap),mchId,isTest);
        log.info("微信退款返回字符串:{}",content);
        Map<String, String> resultMap = WXPayUtil.xmlToMap(content);
        if (PayCpmstant.RETURN_CODE.equals(resultMap.get(PayCpmstant.RETURN_CODE_CODE))
                && PayCpmstant.RETURN_CODE.equals(resultMap.get(PayCpmstant.RESULT_CODE_CODE))) {
            log.info("调用微信退款申请接口成功");
            return JSONObject.toJSONString(resultMap);
        }else{
            log.error("调用微信退款申请接口失败");
            return "";
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayConstants.java
New file
@@ -0,0 +1,59 @@
package com.panzhihua.common.utlis.wx;
import org.apache.http.client.HttpClient;
/**
 * 常量
 */
public class WXPayConstants {
    public enum SignType {
        MD5, HMACSHA256
    }
    public static final String DOMAIN_API = "api.mch.weixin.qq.com";
    public static final String DOMAIN_API2 = "api2.mch.weixin.qq.com";
    public static final String DOMAIN_APIHK = "apihk.mch.weixin.qq.com";
    public static final String DOMAIN_APIUS = "apius.mch.weixin.qq.com";
    public static final String FAIL     = "FAIL";
    public static final String SUCCESS  = "SUCCESS";
    public static final String HMACSHA256 = "HMAC-SHA256";
    public static final String MD5 = "MD5";
    public static final String FIELD_SIGN = "sign";
    public static final String FIELD_SIGN_TYPE = "sign_type";
    public static final String WXPAYSDK_VERSION = "WXPaySDK/3.0.9";
    public static final String USER_AGENT = WXPAYSDK_VERSION +
            " (" + System.getProperty("os.arch") + " " + System.getProperty("os.name") + " " + System.getProperty("os.version") +
            ") Java/" + System.getProperty("java.version") + " HttpClient/" + HttpClient.class.getPackage().getImplementationVersion();
    public static final String MICROPAY_URL_SUFFIX     = "/pay/micropay";
    public static final String UNIFIEDORDER_URL_SUFFIX = "/pay/unifiedorder";
    public static final String ORDERQUERY_URL_SUFFIX   = "/pay/orderquery";
    public static final String REVERSE_URL_SUFFIX      = "/secapi/pay/reverse";
    public static final String CLOSEORDER_URL_SUFFIX   = "/pay/closeorder";
    public static final String REFUND_URL_SUFFIX       = "/secapi/pay/refund";
    public static final String REFUNDQUERY_URL_SUFFIX  = "/pay/refundquery";
    public static final String DOWNLOADBILL_URL_SUFFIX = "/pay/downloadbill";
    public static final String REPORT_URL_SUFFIX       = "/payitil/report";
    public static final String SHORTURL_URL_SUFFIX     = "/tools/shorturl";
    public static final String AUTHCODETOOPENID_URL_SUFFIX = "/tools/authcodetoopenid";
    // sandbox
    public static final String SANDBOX_MICROPAY_URL_SUFFIX     = "/sandboxnew/pay/micropay";
    public static final String SANDBOX_UNIFIEDORDER_URL_SUFFIX = "/sandboxnew/pay/unifiedorder";
    public static final String SANDBOX_ORDERQUERY_URL_SUFFIX   = "/sandboxnew/pay/orderquery";
    public static final String SANDBOX_REVERSE_URL_SUFFIX      = "/sandboxnew/secapi/pay/reverse";
    public static final String SANDBOX_CLOSEORDER_URL_SUFFIX   = "/sandboxnew/pay/closeorder";
    public static final String SANDBOX_REFUND_URL_SUFFIX       = "/sandboxnew/secapi/pay/refund";
    public static final String SANDBOX_REFUNDQUERY_URL_SUFFIX  = "/sandboxnew/pay/refundquery";
    public static final String SANDBOX_DOWNLOADBILL_URL_SUFFIX = "/sandboxnew/pay/downloadbill";
    public static final String SANDBOX_REPORT_URL_SUFFIX       = "/sandboxnew/payitil/report";
    public static final String SANDBOX_SHORTURL_URL_SUFFIX     = "/sandboxnew/tools/shorturl";
    public static final String SANDBOX_AUTHCODETOOPENID_URL_SUFFIX = "/sandboxnew/tools/authcodetoopenid";
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayUtil.java
New file
@@ -0,0 +1,297 @@
package com.panzhihua.common.utlis.wx;
import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.StringWriter;
import java.security.MessageDigest;
import java.security.SecureRandom;
import java.util.*;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.panzhihua.common.utlis.wx.WXPayConstants.SignType;
public class WXPayUtil {
    private static final String SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    private static final Random RANDOM = new SecureRandom();
    /**
     * XML格式字符串转换为Map
     *
     * @param strXML XML字符串
     * @return XML数据转换后的Map
     * @throws Exception
     */
    public static Map<String, String> xmlToMap(String strXML) throws Exception {
        try {
            Map<String, String> data = new HashMap<String, String>();
            DocumentBuilder documentBuilder = WXPayXmlUtil.newDocumentBuilder();
            InputStream stream = new ByteArrayInputStream(strXML.getBytes("UTF-8"));
            org.w3c.dom.Document doc = documentBuilder.parse(stream);
            doc.getDocumentElement().normalize();
            NodeList nodeList = doc.getDocumentElement().getChildNodes();
            for (int idx = 0; idx < nodeList.getLength(); ++idx) {
                Node node = nodeList.item(idx);
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    org.w3c.dom.Element element = (org.w3c.dom.Element) node;
                    data.put(element.getNodeName(), element.getTextContent());
                }
            }
            try {
                stream.close();
            } catch (Exception ex) {
                // do nothing
            }
            return data;
        } catch (Exception ex) {
            WXPayUtil.getLogger().warn("Invalid XML, can not convert to map. Error message: {}. XML content: {}", ex.getMessage(), strXML);
            throw ex;
        }
    }
    /**
     * 将Map转换为XML格式的字符串
     *
     * @param data Map类型数据
     * @return XML格式的字符串
     * @throws Exception
     */
    public static String mapToXml(Map<String, String> data) throws Exception {
        org.w3c.dom.Document document = WXPayXmlUtil.newDocument();
        org.w3c.dom.Element root = document.createElement("xml");
        document.appendChild(root);
        for (String key: data.keySet()) {
            String value = data.get(key);
            if (value == null) {
                value = "";
            }
            value = value.trim();
            org.w3c.dom.Element filed = document.createElement(key);
            filed.appendChild(document.createTextNode(value));
            root.appendChild(filed);
        }
        TransformerFactory tf = TransformerFactory.newInstance();
        Transformer transformer = tf.newTransformer();
        DOMSource source = new DOMSource(document);
        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        StringWriter writer = new StringWriter();
        StreamResult result = new StreamResult(writer);
        transformer.transform(source, result);
        String output = writer.getBuffer().toString(); //.replaceAll("\n|\r", "");
        try {
            writer.close();
        }
        catch (Exception ex) {
        }
        return output;
    }
    /**
     * 生成带有 sign 的 XML 格式字符串
     *
     * @param data Map类型数据
     * @param key API密钥
     * @return 含有sign字段的XML
     */
    public static String generateSignedXml(final Map<String, String> data, String key) throws Exception {
        return generateSignedXml(data, key, SignType.MD5);
    }
    /**
     * 生成带有 sign 的 XML 格式字符串
     *
     * @param data Map类型数据
     * @param key API密钥
     * @param signType 签名类型
     * @return 含有sign字段的XML
     */
    public static String generateSignedXml(final Map<String, String> data, String key, SignType signType) throws Exception {
        String sign = generateSignature(data, key, signType);
        data.put(WXPayConstants.FIELD_SIGN, sign);
        return mapToXml(data);
    }
    /**
     * 判断签名是否正确
     *
     * @param xmlStr XML格式数据
     * @param key API密钥
     * @return 签名是否正确
     * @throws Exception
     */
    public static boolean isSignatureValid(String xmlStr, String key) throws Exception {
        Map<String, String> data = xmlToMap(xmlStr);
        if (!data.containsKey(WXPayConstants.FIELD_SIGN) ) {
            return false;
        }
        String sign = data.get(WXPayConstants.FIELD_SIGN);
        return generateSignature(data, key).equals(sign);
    }
    /**
     * 判断签名是否正确,必须包含sign字段,否则返回false。使用MD5签名。
     *
     * @param data Map类型数据
     * @param key API密钥
     * @return 签名是否正确
     * @throws Exception
     */
    public static boolean isSignatureValid(Map<String, String> data, String key) throws Exception {
        return isSignatureValid(data, key, SignType.MD5);
    }
    /**
     * 判断签名是否正确,必须包含sign字段,否则返回false。
     *
     * @param data Map类型数据
     * @param key API密钥
     * @param signType 签名方式
     * @return 签名是否正确
     * @throws Exception
     */
    public static boolean isSignatureValid(Map<String, String> data, String key, SignType signType) throws Exception {
        if (!data.containsKey(WXPayConstants.FIELD_SIGN) ) {
            return false;
        }
        String sign = data.get(WXPayConstants.FIELD_SIGN);
        return generateSignature(data, key, signType).equals(sign);
    }
    /**
     * 生成签名
     *
     * @param data 待签名数据
     * @param key API密钥
     * @return 签名
     */
    public static String generateSignature(final Map<String, String> data, String key) throws Exception {
        return generateSignature(data, key, SignType.MD5);
    }
    /**
     * 生成签名. 注意,若含有sign_type字段,必须和signType参数保持一致。
     *
     * @param data 待签名数据
     * @param key API密钥
     * @param signType 签名方式
     * @return 签名
     */
    public static String generateSignature(final Map<String, String> data, String key, SignType signType) throws Exception {
        Set<String> keySet = data.keySet();
        String[] keyArray = keySet.toArray(new String[keySet.size()]);
        Arrays.sort(keyArray);
        StringBuilder sb = new StringBuilder();
        for (String k : keyArray) {
            if (k.equals(WXPayConstants.FIELD_SIGN)) {
                continue;
            }
            if (data.get(k).trim().length() > 0) // 参数值为空,则不参与签名
                sb.append(k).append("=").append(data.get(k).trim()).append("&");
        }
        sb.append("key=").append(key);
        if (SignType.MD5.equals(signType)) {
            return MD5(sb.toString()).toUpperCase();
        }
        else if (SignType.HMACSHA256.equals(signType)) {
            return HMACSHA256(sb.toString(), key);
        }
        else {
            throw new Exception(String.format("Invalid sign_type: %s", signType));
        }
    }
    /**
     * 获取随机字符串 Nonce Str
     *
     * @return String 随机字符串
     */
    public static String generateNonceStr() {
        char[] nonceChars = new char[32];
        for (int index = 0; index < nonceChars.length; ++index) {
            nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
        }
        return new String(nonceChars);
    }
    /**
     * 生成 MD5
     *
     * @param data 待处理数据
     * @return MD5结果
     */
    public static String MD5(String data) throws Exception {
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] array = md.digest(data.getBytes("UTF-8"));
        StringBuilder sb = new StringBuilder();
        for (byte item : array) {
            sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
        }
        return sb.toString().toUpperCase();
    }
    /**
     * 生成 HMACSHA256
     * @param data 待处理数据
     * @param key 密钥
     * @return 加密结果
     * @throws Exception
     */
    public static String HMACSHA256(String data, String key) throws Exception {
        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
        SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256");
        sha256_HMAC.init(secret_key);
        byte[] array = sha256_HMAC.doFinal(data.getBytes("UTF-8"));
        StringBuilder sb = new StringBuilder();
        for (byte item : array) {
            sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
        }
        return sb.toString().toUpperCase();
    }
    /**
     * 日志
     * @return
     */
    public static Logger getLogger() {
        Logger logger = LoggerFactory.getLogger("wxpay java sdk");
        return logger;
    }
    /**
     * 获取当前时间戳,单位秒
     * @return
     */
    public static long getCurrentTimestamp() {
        return System.currentTimeMillis()/1000;
    }
    /**
     * 获取当前时间戳,单位毫秒
     * @return
     */
    public static long getCurrentTimestampMs() {
        return System.currentTimeMillis();
    }
}
springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayXmlUtil.java
New file
@@ -0,0 +1,30 @@
package com.panzhihua.common.utlis.wx;
import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
/**
 * 2018/7/3
 */
public final class WXPayXmlUtil {
    public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        documentBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
        documentBuilderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
        documentBuilderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
        documentBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
        documentBuilderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
        documentBuilderFactory.setXIncludeAware(false);
        documentBuilderFactory.setExpandEntityReferences(false);
        return documentBuilderFactory.newDocumentBuilder();
    }
    public static Document newDocument() throws ParserConfigurationException {
        return newDocumentBuilder().newDocument();
    }
}
springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ShopFlowerApi.java
@@ -3,9 +3,10 @@
import com.panzhihua.common.controller.BaseController;
import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopFlowerGoodsDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.AddShopFlowerGoodsVO;
import com.panzhihua.common.model.vos.shop.PageShopGoodsVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.common.model.vos.shop.*;
import com.panzhihua.common.service.community.CommunityService;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.common.validated.AddGroup;
@@ -49,6 +50,12 @@
    private UserService userService;
    @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class)
    @GetMapping("/merchant/getMerchantByUserId")
    public R getMerchant(@RequestParam("userId") Long userId) {
        return communityService.getMerchantByUserId(userId);
    }
    @ApiOperation(value = "编辑便民服务商家")
    @PutMapping("/merchant/put")
    public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
@@ -91,22 +98,31 @@
        return communityService.changeFlowerStatus(id, status);
    }
    /*@ApiOperation(value = "订单_分页列表", response = ComShopOrderSearchVO.class)
    @ApiOperation(value = "商品分类")
    @GetMapping("/goodsCategory/getAllGoodsCategories")
    public R getAllGoodsCategories() {
        return communityService.getAllGoodsCategories();
    }
    @GetMapping("/order/selectCountByDeliveryType")
    public R selectCountByDeliveryType(Integer deliveryType){
        return communityService.selectCountByDeliveryType(deliveryType);
    }
    @ApiOperation(value = "商家查询 订单_分页列表", response = ComShopOrderSearchVO.class)
    @PostMapping("/order/page")
    public R page(@RequestBody @Validated PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
        // pageComShopOrderSearchDTO.setUserId(this.getUserId());
        ClazzUtils.setIfStringIsEmpty(pageComShopOrderSearchDTO);
        return communityService.pageShopOrder(pageComShopOrderSearchDTO);
         pageComShopOrderSearchDTO.setStoreUserId(this.getUserId());
        return communityService.pageShopOrderFlower(pageComShopOrderSearchDTO);
    }
    @ApiOperation(value = "订单_详细", response = ComShopOrderPageVO.class)
    @ApiOperation(value = "订单_详细", response = ComShopFlowerOrderPageVO.class)
    @GetMapping("/order/detail")
    @ShopOperLog(operType = 11)
    public R detail(@RequestParam("orderId") Long orderId) {
        return communityService.orderDetail(orderId);
        return communityService.orderDetailFlower(orderId);
    }
    @ApiOperation(value = "订单_导出表格")
    /*@ApiOperation(value = "订单_导出表格")
    @PostMapping("/order/export")
    @ShopOperLog(operType = 12)
    public R export(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO) {
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java
@@ -1,34 +1,17 @@
package com.panzhihua.service_community.api;
import java.time.Instant;
import java.util.List;
import javax.annotation.Resource;
import javax.validation.Valid;
import com.panzhihua.common.model.dtos.community.*;
import com.panzhihua.common.model.dtos.community.convenient.*;
import com.panzhihua.service_community.service.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.panzhihua.common.model.dtos.community.ComCvtBusinessDTO;
import com.panzhihua.common.model.dtos.community.ComCvtCategoryDTO;
import com.panzhihua.common.model.dtos.community.ComCvtServeDTO;
import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO;
import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO;
import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO;
import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.service_community.service.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
/**
 * @description: 便民服务接口
@@ -70,8 +53,7 @@
    /**
     * 社区后台分页查询便民服务商家
     *
     * @param pageComCvtBusinessDTO
     *            查询参数
     * @param pageComCvtBusinessDTO 查询参数
     * @return 返回结果
     */
    @PostMapping("/business/page")
@@ -82,8 +64,7 @@
    /**
     * 小程序通过便民服务区域分页查询便民服务商家
     *
     * @param comCvtBusinessAppletsDTO
     *            查询参数
     * @param comCvtBusinessAppletsDTO 查询参数
     * @return 返回结果
     */
    @PostMapping("/business/area/page")
@@ -94,8 +75,7 @@
    /**
     * 新增便民服务商家
     *
     * @param comCvtBusinessDTO
     *            商家参数
     * @param comCvtBusinessDTO 商家参数
     * @return 返回结果
     */
    @PostMapping("/business/add")
@@ -106,8 +86,7 @@
    /**
     * 编辑便民服务商家
     *
     * @param comCvtBusinessDTO
     *            商家参数
     * @param comCvtBusinessDTO 商家参数
     * @return 返回结果
     */
    @PutMapping("/business/put")
@@ -118,8 +97,7 @@
    /**
     * 查询便民服务商家详情
     *
     * @param id
     *            商家主键
     * @param id 商家主键
     * @return 返回结果
     */
    @GetMapping("/business/get")
@@ -130,8 +108,7 @@
    /**
     * 删除便民服务商家信息
     *
     * @param id
     *            商家主键
     * @param id 商家主键
     * @return 返回结果
     */
    @DeleteMapping("/business/delete")
@@ -142,8 +119,7 @@
    /**
     * 社区后台分页查询便民服务分类
     *
     * @param pageComCvtCategoryDTO
     *            查询参数
     * @param pageComCvtCategoryDTO 查询参数
     * @return 返回结果
     */
    @PostMapping("/category/page")
@@ -153,7 +129,7 @@
    /**
     * 便民服务分类下拉,所有分类
     *
     *
     * @return 返回结果
     */
    @PostMapping("/category/all")
@@ -164,8 +140,7 @@
    /**
     * 新增便民服务分类
     *
     * @param comCvtCategoryDTO
     *            分类参数
     * @param comCvtCategoryDTO 分类参数
     * @return 返回结果
     */
    @PostMapping("/category/add")
@@ -176,8 +151,7 @@
    /**
     * 编辑便民服务分类
     *
     * @param comCvtCategoryDTO
     *            分类参数
     * @param comCvtCategoryDTO 分类参数
     * @return 返回结果
     */
    @PutMapping("/category/put")
@@ -188,8 +162,7 @@
    /**
     * 查询便民服务分类详情
     *
     * @param id
     *            分类主键
     * @param id 分类主键
     * @return 返回结果
     */
    @GetMapping("/category/get")
@@ -200,8 +173,7 @@
    /**
     * 删除便民服务分类信息
     *
     * @param id
     *            分类主键
     * @param id 分类主键
     * @return 返回结果
     */
    @DeleteMapping("/category/delete")
@@ -212,8 +184,7 @@
    /**
     * 社区后台分页查询便民服务
     *
     * @param pageComCvtServeDTO
     *            查询参数
     * @param pageComCvtServeDTO 查询参数
     * @return 返回结果
     */
    @PostMapping("/serve/page")
@@ -224,8 +195,7 @@
    /**
     * 新增便民服务
     *
     * @param comCvtServeDTO
     *            参数
     * @param comCvtServeDTO 参数
     * @return 返回结果
     */
    @PostMapping("/serve/add")
@@ -236,8 +206,7 @@
    /**
     * 编辑便民服务
     *
     * @param comCvtServeDTO
     *            分类参数
     * @param comCvtServeDTO 分类参数
     * @return 返回结果
     */
    @PutMapping("/serve/put")
@@ -248,8 +217,7 @@
    /**
     * 查询便民服务详情
     *
     * @param id
     *            服务主键
     * @param id 服务主键
     * @return 返回结果
     */
    @GetMapping("/serve/get")
@@ -260,8 +228,7 @@
    /**
     * 删除便民服务信息
     *
     * @param id
     *            服务主键
     * @param id 服务主键
     * @return 返回结果
     */
    @DeleteMapping("/serve/delete")
@@ -271,9 +238,8 @@
    /**
     * 小程序便民服务商家详情
     *
     * @param id
     *            商家ID
     *
     * @param id 商家ID
     * @return
     */
    @GetMapping("/business/serve/get")
@@ -283,18 +249,18 @@
    /**
     * 批量新增商家服务
     *
     * @param list
     *            服务集合
     *
     * @param list 服务集合
     */
    @PostMapping("/serve/import")
    public R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list,
        @RequestParam(value = "communityId", required = false) Long communityId) {
                                            @RequestParam(value = "communityId", required = false) Long communityId) {
        return comCvtServeService.listSaveConvenientServeExcelVO(list, communityId);
    }
    /**
     * 便民服务新增分类
     *
     * @param convenientServiceCategoryDTO
     * @return
     */
@@ -305,6 +271,7 @@
    /**
     * 便民服务分类编辑
     *
     * @param convenientServiceCategoryDTO
     * @return
     */
@@ -315,6 +282,7 @@
    /**
     * 便民服务分类删除
     *
     * @param categoryId
     * @return
     */
@@ -325,6 +293,7 @@
    /**
     * 获取便民服务分类详情
     *
     * @param categoryId
     * @return
     */
@@ -335,6 +304,7 @@
    /**
     * 分页查询便民服务分类
     *
     * @param pageConvenientServiceCategoryDTO
     * @return
     */
@@ -345,6 +315,7 @@
    /**
     * 便民服务新增商家
     *
     * @param convenientMerchantDTO
     * @return
     */
@@ -355,6 +326,7 @@
    /**
     * 编辑便民服务商家
     *
     * @param convenientMerchantDTO
     * @return
     */
@@ -365,6 +337,7 @@
    /**
     * 删除便民服务商家
     *
     * @param merchantId
     * @return
     */
@@ -375,6 +348,7 @@
    /**
     * 分页查询便民服务商家 运营后台
     *
     * @param pageConvenientMerchantDTO
     * @return
     */
@@ -385,6 +359,7 @@
    /**
     * 获取便民服务商家详情
     *
     * @param merchantId
     * @return
     */
@@ -394,7 +369,19 @@
    }
    /**
     * 获取便民服务商家详情
     *
     * @param userId
     * @return
     */
    @GetMapping("/merchant/getMerchantByUserId")
    public R getMerchantByUserId(@RequestParam("userId") Long userId) {
        return convenientMerchantService.getMerchantByUserId(userId);
    }
    /**
     * 禁用/启用便民服务商家
     *
     * @param disableOrEnableConvenientMerchantDTO
     * @return
     */
@@ -405,6 +392,7 @@
    /**
     * 重置便民服务商家账号密码
     *
     * @param resetPasswordConvenientMerchantDTO
     * @return
     */
@@ -415,6 +403,7 @@
    /**
     * 获取所有便民服务分类
     *
     * @return
     */
    @GetMapping("/service-category/all")
@@ -424,6 +413,7 @@
    /**
     * 获取用户便民服务商家详情
     *
     * @param account 商家绑定账号
     * @return
     */
@@ -434,6 +424,7 @@
    /**
     * 获取商便民服务商家信息
     *
     * @param userId
     * @return
     */
@@ -444,6 +435,7 @@
    /**
     * 新增便民服务产品分类信息
     *
     * @param convenientProductCategoryDTO
     * @return
     */
@@ -454,6 +446,7 @@
    /**
     * 编辑便民服务产品分类信息
     *
     * @param convenientProductCategoryDTO
     * @return
     */
@@ -464,6 +457,7 @@
    /**
     * 删除便民服务产品分类信息
     *
     * @param categoryId
     * @param operator
     * @return
@@ -475,6 +469,7 @@
    /**
     * 获取便民服务产品分类详情
     *
     * @param categoryId
     * @return
     */
@@ -485,6 +480,7 @@
    /**
     * 分页查询便民服务产品分类信息
     *
     * @param pageConvenientProductCategoryDTO
     * @return
     */
@@ -495,6 +491,7 @@
    /**
     * 便民服务商家后台新增产品
     *
     * @param convenientProductDTO
     * @return
     */
@@ -505,6 +502,7 @@
    /**
     * 便民服务商家后台编辑产品
     *
     * @param convenientProductDTO
     * @return
     */
@@ -515,6 +513,7 @@
    /**
     * 便民服务商家后台获取产品详情
     *
     * @param productId
     * @return
     */
@@ -525,6 +524,7 @@
    /**
     * 便民服务商家后台分页获取产品信息
     *
     * @param pageConvenientProductDTO
     * @return
     */
@@ -535,6 +535,7 @@
    /**
     * 便民服务商家后台删除产品信息
     *
     * @param deleteConvenientProductDTO
     * @return
     */
@@ -545,6 +546,7 @@
    /**
     * 便民服务商家后台上架/下架产品
     *
     * @param onShelfOrOffShelfProductDTO
     * @return
     */
@@ -555,8 +557,9 @@
    /**
     * 获取所有产品分类
     * @return
     *
     * @param merchantId
     * @return
     */
    @GetMapping("/product-category/all")
    public R getAllProductCategory(@RequestParam("merchantId") Long merchantId) {
@@ -565,16 +568,18 @@
    /**
     * 获取该社区商家数量大于0的分类
     *
     * @param communityId
     * @return
     */
    @GetMapping("/service-category/suitable")
    public R getSuitableServiceCategories(@RequestParam("communityId") Long communityId,@RequestParam("areaCode")String areaCode) {
        return convenientServiceCategoryService.getSuitableServiceCategories(communityId,areaCode);
    public R getSuitableServiceCategories(@RequestParam("communityId") Long communityId, @RequestParam("areaCode") String areaCode) {
        return convenientServiceCategoryService.getSuitableServiceCategories(communityId, areaCode);
    }
    /**
     * 获取该社区下的热门商家
     *
     * @param pagePopularMerchantDTO
     * @return
     */
@@ -585,6 +590,7 @@
    /**
     * 分页获取服务类型下商家信息
     *
     * @param pageClassifyMerchantDTO
     * @return
     */
@@ -595,6 +601,7 @@
    /**
     * 小程序获取商家详情
     *
     * @param merchantId
     * @return
     */
@@ -605,6 +612,7 @@
    /**
     * 小程序获取商家产品
     *
     * @param merchantId
     * @return
     */
@@ -615,6 +623,7 @@
    /**
     * 获取产品详情
     *
     * @param productId
     * @return
     */
@@ -625,6 +634,7 @@
    /**
     * 搜索商家信息
     *
     * @param pageSearchDTO
     * @return
     */
@@ -635,6 +645,7 @@
    /**
     * 搜索商品信息
     *
     * @param pageSearchDTO
     * @return
     */
@@ -645,6 +656,7 @@
    /**
     * 增加商家店铺咨询量
     *
     * @param merchantId
     * @return
     */
@@ -655,6 +667,7 @@
    /**
     * 增加商家店铺浏览量
     *
     * @param merchantId
     * @return
     */
@@ -665,6 +678,7 @@
    /**
     * 增加产品浏览量
     *
     * @param productId
     * @return
     */
@@ -675,6 +689,7 @@
    /**
     * 获取商家导出数据
     *
     * @param exportMerchantDTO
     * @return
     */
@@ -685,6 +700,7 @@
    /**
     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
     *
     * @return
     */
    @PostMapping("/timedTaskWriteDataToMerchantJobHandler")
@@ -694,6 +710,7 @@
    /**
     * 获取商家上下架产品数量
     *
     * @param merchantId
     * @return
     */
@@ -705,6 +722,7 @@
    /**
     * 分页查询自提点 运营后台
     *
     * @param pageConvenientElevatingPointDTO
     * @return
     */
@@ -715,6 +733,7 @@
    /**
     * 便民服务新增 自提点
     *
     * @param convenientElevatingPointDTO
     * @return
     */
@@ -725,6 +744,7 @@
    /**
     * 编辑便民服务 自提点
     *
     * @param convenientElevatingPointDTO
     * @return
     */
@@ -735,17 +755,19 @@
    /**
     * 删除便民服务 自提点
     *
     * @param pointId
     * @param operator
     * @return
     */
    @DeleteMapping("/point/delete")
    public R deletePoint(@RequestParam("pointId") Long pointId, @RequestParam("operator") Long operator) {
        return convenientElevatingPointService.deletePoint(pointId,operator);
        return convenientElevatingPointService.deletePoint(pointId, operator);
    }
    /**
     * 便民服务详情 自提点
     *
     * @param pointId
     * @return
     */
@@ -756,6 +778,7 @@
    /**
     * 新增商品分类
     *
     * @param convenientGoodsCategoryDTO
     * @return
     */
@@ -766,6 +789,7 @@
    /**
     * 编辑
     *
     * @param convenientGoodsCategoryDTO
     * @return
     */
@@ -776,6 +800,7 @@
    /**
     * 删除商品分类
     *
     * @param categoryId
     * @return
     */
@@ -786,6 +811,7 @@
    /**
     * 获取商品分类详情
     *
     * @param categoryId
     * @return
     */
@@ -796,6 +822,7 @@
    /**
     * 分页查询商品分类
     *
     * @param pageConvenientGoodsCategoryDTO
     * @return
     */
@@ -803,4 +830,25 @@
    public R pageGoodsCategory(@RequestBody PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO) {
        return convenientGoodsCategoryService.pageGoodsCategory(pageConvenientGoodsCategoryDTO);
    }
    /**
     * 获取所有商品分类
     *
     * @return
     */
    @GetMapping("/goodsCategory/getAllGoodsCategories")
    public R getAllGoodsCategories() {
        return convenientGoodsCategoryService.getAllGoodsCategories();
    }
    /**
     * 获取当前商铺周围的自提点信息以及距离手机距离
     *
     * @param merchantId
     * @return
     */
    @GetMapping("/point/findPointByMerchantId")
    public R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng) {
        return convenientElevatingPointService.findPointByMerchantId(merchantId, lat, lng);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopFlowerApi.java
@@ -1,12 +1,11 @@
package com.panzhihua.service_community.api;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerGoodsDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopFlowerGoodsDTO;
import com.panzhihua.common.model.dtos.shop.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.AddShopFlowerGoodsVO;
import com.panzhihua.common.service.user.UserService;
import com.panzhihua.service_community.service.ComShopFlowerGoodsService;
import com.panzhihua.service_community.service.ConvenientMerchantService;
import com.panzhihua.service_community.service.*;
import com.panzhihua.service_community.util.QRCodeUtil;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
@@ -20,19 +19,21 @@
    @Resource
    private ComShopFlowerGoodsService comShopFlowerGoodsService;
//    @Resource
    //    @Resource
//    private ComShopOperLogService comShopOperLogService;
//    @Resource
//    private ComShopOrderService comShopOrderService;
//    @Resource
    @Resource
    private ComShopFlowerOrderService comShopFlowerOrderService;
    //    @Resource
//    private ComShopCartService comShopCartService;
//    @Resource
//    private ComShopUserAddressService comShopUserAddressService;
    @Resource
    private ComShopFlowerUserAddressService comShopUserAddressService;
    @Resource
    private ConvenientMerchantService convenientMerchantService;
    @Resource
    private UserService userService;
    private ComShopFlowerEvaluateService comShopFlowerEvaluateService;
    @Resource
    private ComShopFlowerOrderDeliveryService comShopFlowerOrderDeliveryService;
    /**
@@ -93,6 +94,17 @@
    }
    /**
     * 根据商品id查询商品详情
     *
     * @param goodsId 商品id
     * @return 商品信息
     */
    @PostMapping("shopGoodsDetail")
    public R shopFlowerGoodsDetail(@RequestParam("goodsId") Long goodsId) {
        return comShopFlowerGoodsService.shopFlowerGoodsDetail(goodsId);
    }
    /**
     * 修改商品状态
     *
     * @param id
@@ -103,20 +115,339 @@
        return comShopFlowerGoodsService.changeStatus(id, status);
    }
    /*
     *//**
     * 分页查询 商家订单
    /**
     * 查询用户收货地址列表
     *
     * @param pageComShopOrderSearchDTO
     *            分页数据
     * @return 分页订单
     *//*
    @PostMapping("/order/page")
    public R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
        return comShopOrderService.pageShopOrder(pageComShopOrderSearchDTO);
     * @param comShopAddressDTO 请求参数
     * @return 用户收获地址列表
     */
    @PostMapping("shopUserAddressList")
    public R shopFlowerUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
        return comShopUserAddressService.shopUserAddressList(comShopAddressDTO);
    }
    *//**
    /**
     * 用户添加书货地址
     *
     * @param comShopAddressDTO 请求参数
     * @return 添加结果
     */
    @PostMapping("shopAddUserAddress")
    public R shopFlowerAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
        return comShopUserAddressService.shopAddUserAddress(comShopAddressDTO);
    }
    /**
     * 用户修改收货地址
     *
     * @param comShopAddressDTO 请求参数
     * @return 修改结果
     */
    @PostMapping("shopEditUserAddress")
    public R shopFlowerEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
        return comShopUserAddressService.shopEditUserAddress(comShopAddressDTO);
    }
    /**
     * 用户删除收货地址
     *
     * @param addressId 收货地址id
     * @return 删除结果
     */
    @PostMapping("shopDelUserAddress")
    public R shopFlowerDelUserAddress(@RequestParam("addressId") Long addressId) {
        return comShopUserAddressService.shopDelUserAddress(addressId);
    }
    /**
     * 订单预览
     *
     * @param orderPreviewDTO 请求参数
     * @return 订单预览数据
     */
    @PostMapping("orderPreview")
    public R orderPreviewFlower(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
        return comShopFlowerOrderService.orderPreview(orderPreviewDTO);
    }
    /**
     * 创建订单
     *
     * @param orderCreateDTO 创建订单请求参数
     * @return 创建结果
     */
    @PostMapping("orderCreate")
    public R orderCreateFlower(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
        return comShopFlowerOrderService.orderCreate(orderCreateDTO);
    }
    /**
     * 分页查询用户订单列表
     *
     * @param comOrderListDTO 请求参数
     * @return 查询结果
     */
    @PostMapping("pageOrderList")
    public R pageOrderListFlower(@RequestBody PageComFlowerOrderListDTO comOrderListDTO) {
        return comShopFlowerOrderService.pageOrderList(comOrderListDTO);
    }
    /**
     * 根据订单id查询订单详情
     *
     * @param orderId 订单id
     * @return 订单详情
     */
    @PostMapping("orderDetail")
    public R orderDetailFlower(@RequestParam("orderId") Long orderId) {
        return comShopFlowerOrderService.orderDetail(orderId);
    }
    /**
     * 根据订单id取消订单
     *
     * @param comShopOrderQueryDTO 请求参数
     * @return 取消结果
     */
    @PostMapping("orderCancel")
    public R orderCancelFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
        return comShopFlowerOrderService.orderCancel(comShopOrderQueryDTO);
    }
    /**
     * 根据订单id删除订单
     *
     * @param orderId 订单id
     * @return 删除结果
     */
    @PostMapping("orderDelete")
    public R orderDeleteFlower(@RequestParam("orderId") Long orderId) {
        return comShopFlowerOrderService.orderDelete(orderId);
    }
    /**
     * 根据订单id确认收货
     *
     * @param comShopOrderQueryDTO 请求参数
     * @return 确认结果
     */
    @PostMapping("orderConfirm")
    public R orderConfirmFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
        return comShopFlowerOrderService.orderConfirm(comShopOrderQueryDTO.getOrderId(), comShopOrderQueryDTO.getPhone());
    }
    /**
     * 分页查询 商家订单
     *
     * @param pageComShopOrderSearchDTO 分页数据
     * @return 分页订单
     */
    @PostMapping("/order/page")
    public R pageShopOrderFlower(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
        return comShopFlowerOrderService.pageShopOrder(pageComShopOrderSearchDTO);
    }
    /**
     * 订单发货
     *
     * @param orderShipDTO 发货信息
     * @return 发货结果
     */
    @PostMapping("/shipOrder")
    public R shipOrderFlower(@RequestBody ComShopOrderShipDTO orderShipDTO) {
        return comShopFlowerOrderService.shipOrder(orderShipDTO);
    }
    /**
     * 订单配送
     *
     * @param deliverDTO 订单ID
     * @return 配送结果
     */
    @PostMapping("/deliverOrder")
    public R deliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
        return comShopFlowerOrderService.deliverOrder(deliverDTO);
    }
    /**
     * 订单配送
     *
     * @param deliverDTO 订单ID
     * @return 配送完成
     */
    @PostMapping("/finishDeliverOrder")
    public R finishDeliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
        return comShopFlowerOrderService.finishDeliverOrder(deliverDTO);
    }
    /**
     * 保存评价
     *
     * @param comShopFlowerEvaluateDTO
     * @return
     */
    @PostMapping("/saveEvaluate")
    public R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) {
        return comShopFlowerEvaluateService.saveEvaluate(comShopFlowerEvaluateDTO);
    }
    /**
     * 分页查询评价
     *
     * @param pageComShopFlowerEvaluateDTO
     * @return
     */
    @PostMapping("/pageEvaluate")
    public R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) {
        return comShopFlowerEvaluateService.pageEvaluate(pageComShopFlowerEvaluateDTO);
    }
    /**
     * 评价详情
     *
     * @param id
     * @return
     */
    @GetMapping("/detailEvaluate")
    public R detailEvaluate(@RequestParam("id") Long id) {
        return comShopFlowerEvaluateService.detailEvaluate(id);
    }
    /**
     * 删除评价
     *
     * @param id
     * @return
     */
    @DeleteMapping("deleteEvaluate")
    public R deleteEvaluate(@RequestParam("id") Long id) {
        return comShopFlowerEvaluateService.deleteEvaluate(id);
    }
    /**
     * 取货码
     *
     * @param id
     * @return
     */
    @ApiOperation(value = "取货码")
    @GetMapping("getQRCode")
    public R getQRCode(@RequestParam("id") Long id) {
        return R.ok(QRCodeUtil.getBase64QRCode(id.toString()));
    }
    /**
     * 保存配送单
     *
     * @param comShopFlowerOrderDeliveryDTO
     */
    @PostMapping("saveDelivery")
    public R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        return comShopFlowerOrderDeliveryService.saveDelivery(comShopFlowerOrderDeliveryDTO);
    }
    /**
     * 更新配送单
     *
     * @param comShopFlowerOrderDeliveryDTO
     */
    @PostMapping("updateDelivery")
    public R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        return comShopFlowerOrderDeliveryService.updateDelivery(comShopFlowerOrderDeliveryDTO);
    }
    /**
     * 已配送、已送达 分页查询
     *
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    @PostMapping("pageDelivery")
    public R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
        return comShopFlowerOrderDeliveryService.pageDelivery(pageComFlowerOrderDeliveryDTO);
    }
    /**
     * 未配送 分页查询
     *
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    @PostMapping("pageNoDelivery")
    public R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
        return comShopFlowerOrderDeliveryService.pageNoDelivery(pageComFlowerOrderDeliveryDTO);
    }
    /**
     * 未配送-开始配送-订单列表
     *
     * @param pageComFlowerOrderListDTO
     * @return
     */
    @PostMapping("pageNoDeliveryOrderList")
    public R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        return comShopFlowerOrderDeliveryService.pageNoDeliveryOrderList(pageComFlowerOrderListDTO);
    }
    /**
     * 根据商家id查询商家的订单
     *
     * @param pageComFlowerOrderListDTO
     * @return
     */
    @PostMapping("pageOrderByStoreId")
    public R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        return comShopFlowerOrderService.pageOrderByStoreId(pageComFlowerOrderListDTO);
    }
    /**
     * 微信支付订单回调
     *
     * @param wxPayNotifyOrderDTO
     *            订单支付回调参数
     */
    @PostMapping("/wxOrderPayNotify")
    public void wxOrderPayNotifyFlower(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
        comShopFlowerOrderService.wxOrderPayNotify(wxPayNotifyOrderDTO);
    }
    /**
     * 点击去支付订单
     *
     * @param orderPayDTO
     *            请求参数
     * @return 支付对象
     */
    @PostMapping("/wxPay")
    public R wxPayFlower(@RequestBody OrderPayDTO orderPayDTO) {
        return comShopFlowerOrderService.wxPay(orderPayDTO);
    }
    @GetMapping("/selectCountByDeliveryType")
    public R selectCountByDeliveryType(Integer deliveryType){
        return comShopFlowerOrderService.selectCountByDeliveryType(deliveryType);
    }
    /**
     * 统计用户订单数量
     *
     * @param userId
     *            用户id
     * @return 统计结果
     */
/*    @PostMapping("orderStatistics")
    public R orderStatistics(@RequestParam("userId") Long userId) {
        return comShopOrderService.orderStatistics(userId);
    }*/
    /*
     *//**
     * 根据店铺id查询店铺详情
     *
     * @param comShopStoreDTO
@@ -128,186 +459,7 @@
        return comShopStoreService.shopStoreDetail(comShopStoreDTO);
    }
    *//**
     * 分页查询商品列表
     *
     * @param comShopGoodsDTO
     *            请求参数
     * @return 商品列表
     *//*
    @PostMapping("/pageShopGoods")
    public R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO) {
        return comShopFlowerGoodsService.pageShopGoods(comShopGoodsDTO);
    }
    *//**
     * 根据商品id查询商品详情
     *
     * @param goodsId
     *            商品id
     * @return 商品信息
     *//*
    @PostMapping("shopGoodsDetail")
    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
        return comShopFlowerGoodsService.shopGoodsDetail(goodsId);
    }
    *//**
     * 根据用户id查询购物车列表
     *
     * @param userId
     *            用户id
     * @return 购物车列表信息
     *//*
    @PostMapping("shopCartList")
    public R shopCartList(@RequestParam("userId") Long userId) {
        return comShopCartService.shopCartList(userId);
    }
    *//**
     * 查询用户收货地址列表
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 用户收获地址列表
     *//*
    @PostMapping("shopUserAddressList")
    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
        return comShopUserAddressService.shopUserAddressList(comShopAddressDTO);
    }
    *//**
     * 用户添加书货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 添加结果
     *//*
    @PostMapping("shopAddUserAddress")
    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
        return comShopUserAddressService.shopAddUserAddress(comShopAddressDTO);
    }
    *//**
     * 用户修改收货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 修改结果
     *//*
    @PostMapping("shopEditUserAddress")
    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
        return comShopUserAddressService.shopEditUserAddress(comShopAddressDTO);
    }
    *//**
     * 用户删除收货地址
     *
     * @param addressId
     *            收货地址id
     * @return 删除结果
     *//*
    @PostMapping("shopDelUserAddress")
    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
        return comShopUserAddressService.shopDelUserAddress(addressId);
    }
    *//**
     * 订单预览
     *
     * @param orderPreviewDTO
     *            请求参数
     * @return 订单预览数据
     *//*
    @PostMapping("orderPreview")
    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
        return comShopOrderService.orderPreview(orderPreviewDTO);
    }
    *//**
     * 创建订单
     *
     * @param orderCreateDTO
     *            创建订单请求参数
     * @return 创建结果
     *//*
    @PostMapping("orderCreate")
    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
        return comShopOrderService.orderCreate(orderCreateDTO);
    }
    *//**
     * 分页查询用户订单列表
     *
     * @param comOrderListDTO
     *            请求参数
     * @return 查询结果
     *//*
    @PostMapping("pageOrderList")
    public R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO) {
        return comShopOrderService.pageOrderList(comOrderListDTO);
    }
    *//**
     * 根据订单id查询订单详情
     *
     * @param orderId
     *            订单id
     * @return 订单详情
     *//*
    @PostMapping("orderDetail")
    public R orderDetail(@RequestParam("orderId") Long orderId) {
        return comShopOrderService.orderDetail(orderId);
    }
    *//**
     * 根据订单id取消订单
     *
     * @param comShopOrderQueryDTO
     *            请求参数
     * @return 取消结果
     *//*
    @PostMapping("orderCancel")
    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
        return comShopOrderService.orderCancel(comShopOrderQueryDTO);
    }
    *//**
     * 根据订单id删除订单
     *
     * @param orderId
     *            订单id
     * @return 删除结果
     *//*
    @PostMapping("orderDelete")
    public R orderDelete(@RequestParam("orderId") Long orderId) {
        return comShopOrderService.orderDelete(orderId);
    }
    *//**
     * 根据订单id确认收货
     *
     * @param comShopOrderQueryDTO
     *            请求参数
     * @return 确认结果
     *//*
    @PostMapping("orderConfirm")
    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
        return comShopOrderService.orderConfirm(comShopOrderQueryDTO.getOrderId(), comShopOrderQueryDTO.getPhone());
    }
    *//**
     * 统计用户订单数量
     *
     * @param userId
     *            用户id
     * @return 统计结果
     *//*
    @PostMapping("orderStatistics")
    public R orderStatistics(@RequestParam("userId") Long userId) {
        return comShopOrderService.orderStatistics(userId);
    }
@@ -322,41 +474,7 @@
        return comShopOrderService.capitalDetailByStore(id);
    }
    *//**
     * 订单发货
     *
     * @param orderShipDTO
     *            发货信息
     * @return 发货结果
     *//*
    @PostMapping("/shipOrder")
    R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO) {
        return comShopOrderService.shipOrder(orderShipDTO);
    }
    *//**
     * 订单配送
     *
     * @param deliverDTO
     *            订单ID
     * @return 配送结果
     *//*
    @PostMapping("/deliverOrder")
    R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
        return comShopOrderService.deliverOrder(deliverDTO);
    }
    *//**
     * 订单配送
     *
     * @param deliverDTO
     *            订单ID
     * @return 配送完成
     *//*
    @PostMapping("/finishDeliverOrder")
    R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
        return comShopOrderService.finishDeliverOrder(deliverDTO);
    }
    *//**
     * 订单导出信息
@@ -489,4 +607,6 @@
        Boolean isMcsValid = userService.checkUserIsValid(userId, 11);
        return R.ok(isShopValid || isConvenientValid || isMcsValid);
    }*/
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerEvaluateDAO.java
@@ -1,15 +1,41 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.shop.PageComShopFlowerEvaluateDTO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO;
import com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * @ClassName:  ComShopFlowerEvaluateMapper
 * @ClassName: ComShopFlowerEvaluateMapper
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: TODO
 * @Description: 评价
 */
@Mapper
public interface ComShopFlowerEvaluateDAO extends BaseMapper<ComShopFlowerEvaluateDO> {
    /**
     * 分页查询评价
     *
     * @param page
     * @param pageComShopFlowerEvaluateDTO
     * @return
     */
    IPage<ComShopFlowerEvaluateVO> pageEvaluate(@Param("page") Page page, @Param("pageComShopFlowerEvaluateDTO") PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO);
    List<ComShopFlowerEvaluateVO> selectListLimit(@Param("goodsId") Long goodsId);
    /**
     * 根据订单id查询评价
     *
     * @param orderNo
     * @return
     */
    ComShopFlowerEvaluateVO selectByOrderNo(@Param("orderNo") String orderNo);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDAO.java
@@ -1,15 +1,69 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderStoreListVO;
import com.panzhihua.common.model.vos.shop.ComShopOrderCountVO;
import com.panzhihua.common.model.vos.shop.ComShopOrderSearchVO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
/**
 * @ClassName:  ComShopFlowerOrderMapper
 * @ClassName: ComShopFlowerOrderMapper
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: TODO
 */
@Mapper
public interface ComShopFlowerOrderDAO extends BaseMapper<ComShopFlowerOrderDO> {
    IPage<ComShopFlowerOrderPageVO> pageOrderList(@Param("page") Page page, @Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
    IPage<ComShopFlowerOrderPageVO> pageOrderListNoDelivery(@Param("page") Page page, @Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
    IPage<ComShopOrderSearchVO> pageOrderBy(@Param("page") Page page,
                                            @Param("pageComShopOrderSearchDTO") PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
    /**
     * 修改配送中状态
     *
     * @param orderIds
     * @param deliveryId
     * @param status
     * @param deliveryTime
     */
    void updateOrder(@Param("orderIds") List<Long> orderIds,
                     @Param("deliveryId") Long deliveryId,
                     @Param("deliveryNo") String deliveryNo,
                     @Param("status") int status,
                     @Param("deliveryTime") Date deliveryTime);
    /**
     * 自提送达后修改配送状态和时间
     *
     * @param deliveryId
     * @param serviceTime
     * @param status
     */
    void updateOrderStatus(@Param("deliveryId") Long deliveryId, @Param("serviceTime") Date serviceTime, @Param("status") int status);
    IPage<ComShopFlowerOrderStoreListVO> pageOrderByStoreId(@Param("page") Page page,@Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
    /**
     * 根据类型统计订单数量
     * @param deliveryType
     * @return
     */
    List<ComShopOrderCountVO>  selectCountByDeliveryType(@Param("deliveryType") Integer deliveryType);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDeliveryDAO.java
New file
@@ -0,0 +1,31 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * @ClassName: ComShopFlowerOrderDeliveryMapper
 * @Author: yh
 * @Date: 2022/11/15 14:36
 * @Description: TODO
 */
@Mapper
public interface ComShopFlowerOrderDeliveryDAO extends BaseMapper<ComShopFlowerOrderDeliveryDO> {
    /**
     * 分页查询配送单
     *
     * @param page
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    IPage<ComShopFlowerOrderDeliveryVO> pageDelivery(@Param("page") Page page, @Param("pageComFlowerOrderDeliveryDTO") PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderGoodsDAO.java
@@ -3,13 +3,21 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderGoodsDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * @ClassName:  ComShopFlowerOrderGoodsMapper
 * @ClassName: ComShopFlowerOrderGoodsMapper
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: TODO
 */
@Mapper
public interface ComShopFlowerOrderGoodsDAO extends BaseMapper<ComShopFlowerOrderGoodsDO> {
    /**
     * 统计商店的总销量
     *
     * @param storeId
     * @return
     */
    Integer selectSumAmount(@Param("storeId") Long storeId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerRefundOrderDAO.java
@@ -1,15 +1,29 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO;
import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
 * @ClassName:  ComShopFlowerRefundOrderMapper
 * @ClassName: ComShopFlowerRefundOrderMapper
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: TODO
 */
@Mapper
public interface ComShopFlowerRefundOrderDAO extends BaseMapper<ComShopFlowerRefundOrderDO> {
    /**
     * 分页查询
     * @param page
     * @param pageComOrderRefundDTO
     * @return
     */
    IPage<ComShopFlowerRefundOrderVO> pageRefundOrder(@Param("page") Page page, @Param("pageComOrderRefundDTO") PageComOrderRefundDTO pageComOrderRefundDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerUserAddressDAO.java
@@ -1,8 +1,14 @@
package com.panzhihua.service_community.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
import com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * @ClassName: ComShopFlowerUserAddressMapper
@@ -12,4 +18,11 @@
 */
@Mapper
public interface ComShopFlowerUserAddressDAO extends BaseMapper<ComShopFlowerUserAddressDO> {
    @Select("select id,`name`,phone,province_code,province_name,city_code,city_name"
            + ",district_code,district_name,detail_address,is_default "
            + " from com_shop_flower_user_address where delete_status = 2 and user_id = #{userId} order by create_at desc")
    List<ComShopUserAddressVO> pageUserAddressList(Page page, @Param("userId") Long userId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientElevatingPointDAO.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.panzhihua.common.model.dtos.community.convenient.PageConvenientElevatingPointDTO;
import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
@@ -37,4 +38,12 @@
     * @return
     */
    int deletePointById(@Param("pointId") Long pointId, @Param("operator") Long operator);
    /**
     * 分页查询未配送的自提点
     * @param page
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    IPage<ConvenientElevatingPointVO> pageNoDelivery(@Param("page") Page page, @Param("pageComFlowerOrderDeliveryDTO") PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientGoodsCategoryDAO.java
@@ -31,6 +31,19 @@
            PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO);
    /**
     * 创建商品、分类关系
     * @param id
     * @param goodsId
     * @param goodsCategoryId
     * @param goodsCategoryName
     * @param createdBy
     * @return
     */
    int createGoodsCategoryRelation(@Param("id")Long id,@Param("goodsId") Long goodsId, @Param("goodsCategoryId") Long goodsCategoryId,
                                      @Param("goodsCategoryName") String goodsCategoryName, @Param("createdBy") Long createdBy);
    /**
     * 删除商家服务类型关系
     * @param goodsId
     * @return
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientMerchantDAO.java
@@ -55,6 +55,13 @@
     */
    ConvenientMerchantVO selectMerchantById(@Param("merchantId") Long merchantId);
    /**
     * 根据后台用户id查询
     * @param userId
     * @return
     */
    ConvenientMerchantVO selectMerchantByUserId(@Param("userId") Long userId);
    List<ConvenientMerchantVO> selectMerchantByName(@Param("communityId") Long communityId, @Param("currentMon") String currentMon);
    /**
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDO.java
@@ -174,4 +174,104 @@
    @TableField(value = "refund_time")
    private Date refundTime;
    /**
     * 自提点id
     */
    private Long pointId;
    /**
     * 配送单id
     */
    private Long deliveryId;
    /**
     * 配送单号
     */
    private String deliveryNo;
    /**
     * 订单状态(0.待付款 1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)
     */
    public interface status {
        int dfk = 0;
        int ddps = 1;
        int psz = 2;
        int dsh = 3;
        int dpj = 4;
        int ywc = 5;
        int yqx = 6;
        int ytk = 7;
    }
    /**
     * 支付状态(1.未支付 2.已支付)
     */
    public interface payStatus {
        int no = 1;
        int yes = 2;
    }
    /**
     * 删除状态(1.未删除 2.已删除)
     */
    public interface deleteStatus {
        int no = 1;
        int yes = 2;
    }
    /**
     * 支付方式(1.微信支付)
     */
    public interface payType {
        int wx = 1;
    }
    /**
     * 配送方式(1.商家配送 2.快递物流)
     */
    public interface deliveryType {
        int store = 1;
        int express = 2;
    }
    /**
     * 订单发货状态(1.未发货 2.已发货)
     */
    public interface deliveryStatus {
        int no = 1;
        int yes = 2;
    }
    @Override
    public String toString() {
        return "ComShopFlowerOrderDO{" +
                "id=" + id +
                ", storeId=" + storeId +
                ", userId=" + userId +
                ", orderNo='" + orderNo + '\'' +
                ", payNo='" + payNo + '\'' +
                ", wxTardeNo='" + wxTardeNo + '\'' +
                ", status=" + status +
                ", payStatus=" + payStatus +
                ", receiverId=" + receiverId +
                ", deleteStatus=" + deleteStatus +
                ", totalAmount=" + totalAmount +
                ", discountAmount=" + discountAmount +
                ", payAmount=" + payAmount +
                ", payType=" + payType +
                ", payTime=" + payTime +
                ", deliveryType=" + deliveryType +
                ", deliveryStatus=" + deliveryStatus +
                ", remark='" + remark + '\'' +
                ", logisticsCompany='" + logisticsCompany + '\'' +
                ", logisticsNo='" + logisticsNo + '\'' +
                ", createAt=" + createAt +
                ", updateAt=" + updateAt +
                ", deliveryTime=" + deliveryTime +
                ", serviceTime=" + serviceTime +
                ", receivingTime=" + receivingTime +
                ", refundTime=" + refundTime +
                '}';
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDeliveryDO.java
New file
@@ -0,0 +1,125 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @ClassName: ComShopFlowerOrderDelivery
 * @Author: yh
 * @Date: 2022/11/15 14:36
 * @Description: 花城订单配送表
 */
@TableName(value = "com_shop_flower_order_delivery")
@Data
public class ComShopFlowerOrderDeliveryDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 配送单id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 店铺id
     */
    @TableField(value = "store_id")
    private Long storeId;
    /**
     * 配送单号
     */
    @TableField(value = "delivery_no")
    private String deliveryNo;
    /**
     * 配送单状态(1.配送中 2.已送达)
     */
    @TableField(value = "delivery_status")
    private Integer deliveryStatus;
    /**
     * 删除状态(1.未删除 2.已删除)
     */
    @TableField(value = "delete_status")
    private Integer deleteStatus;
    /**
     * 配送时间
     */
    @TableField(value = "delivery_time")
    private Date deliveryTime;
    /**
     * 送达时间
     */
    @TableField(value = "service_time")
    private Date serviceTime;
    /**
     * 配送方式(1.自提  2.快递)
     */
    @TableField(value = "delivery_type")
    private Integer deliveryType;
    /**
     * 自提点id
     */
    @TableField(value = "point_id")
    private Long pointId;
    /**
     * 自提点名称
     */
    @TableField(value = "point_name")
    private Long pointName;
    /**
     * 配送订单数量
     */
    @TableField(value = "delivery_order_num")
    private Integer deliveryOrderNum;
    /**
     * 配送商品数量
     */
    @TableField(value = "delivery_goods_num")
    private Integer deliveryGoodsNum;
    /**
     * 价值
     */
    @TableField(value = "delivery_amount")
    private BigDecimal deliveryAmount;
    /**
     * 创建时间
     */
    @TableField(value = "create_at", fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 修改时间
     */
    @TableField(value = "update_at", fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
     * 配送单状态(1.配送中 2.已送达)
     */
    public interface deliveryStatus {
        int psz = 1;
        int ysd = 2;
    }
    /**
     * 删除状态(1.未删除 2.已删除)
     */
    public interface deleteStatus {
        int wsc = 1;
        int ysc = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderGoodsDO.java
@@ -1,9 +1,6 @@
package com.panzhihua.service_community.model.dos;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
@@ -113,294 +110,6 @@
    /**
     * 创建时间
     */
    @TableField(value = "create_at")
    @TableField(value = "create_at",fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 获取订单商品id
     *
     * @return id - 订单商品id
     */
    public Long getId() {
        return id;
    }
    /**
     * 设置订单商品id
     *
     * @param id 订单商品id
     */
    public void setId(Long id) {
        this.id = id;
    }
    /**
     * 获取店铺id
     *
     * @return store_id - 店铺id
     */
    public Long getStoreId() {
        return storeId;
    }
    /**
     * 设置店铺id
     *
     * @param storeId 店铺id
     */
    public void setStoreId(Long storeId) {
        this.storeId = storeId;
    }
    /**
     * 获取订单id
     *
     * @return order_id - 订单id
     */
    public Long getOrderId() {
        return orderId;
    }
    /**
     * 设置订单id
     *
     * @param orderId 订单id
     */
    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }
    /**
     * 获取用户id
     *
     * @return user_id - 用户id
     */
    public Long getUserId() {
        return userId;
    }
    /**
     * 设置用户id
     *
     * @param userId 用户id
     */
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    /**
     * 获取订单号
     *
     * @return order_no - 订单号
     */
    public String getOrderNo() {
        return orderNo;
    }
    /**
     * 设置订单号
     *
     * @param orderNo 订单号
     */
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    /**
     * 获取商品id
     *
     * @return goods_id - 商品id
     */
    public Long getGoodsId() {
        return goodsId;
    }
    /**
     * 设置商品id
     *
     * @param goodsId 商品id
     */
    public void setGoodsId(Long goodsId) {
        this.goodsId = goodsId;
    }
    /**
     * 获取商品规格id
     *
     * @return goods_attr_id - 商品规格id
     */
    public Long getGoodsAttrId() {
        return goodsAttrId;
    }
    /**
     * 设置商品规格id
     *
     * @param goodsAttrId 商品规格id
     */
    public void setGoodsAttrId(Long goodsAttrId) {
        this.goodsAttrId = goodsAttrId;
    }
    /**
     * 获取规格名称
     *
     * @return goods_attr_name - 规格名称
     */
    public String getGoodsAttrName() {
        return goodsAttrName;
    }
    /**
     * 设置规格名称
     *
     * @param goodsAttrName 规格名称
     */
    public void setGoodsAttrName(String goodsAttrName) {
        this.goodsAttrName = goodsAttrName;
    }
    /**
     * 获取购买数量
     *
     * @return amount - 购买数量
     */
    public Integer getAmount() {
        return amount;
    }
    /**
     * 设置购买数量
     *
     * @param amount 购买数量
     */
    public void setAmount(Integer amount) {
        this.amount = amount;
    }
    /**
     * 获取商品规格价格
     *
     * @return goods_attr_price - 商品规格价格
     */
    public BigDecimal getGoodsAttrPrice() {
        return goodsAttrPrice;
    }
    /**
     * 设置商品规格价格
     *
     * @param goodsAttrPrice 商品规格价格
     */
    public void setGoodsAttrPrice(BigDecimal goodsAttrPrice) {
        this.goodsAttrPrice = goodsAttrPrice;
    }
    /**
     * 获取商品规格图
     *
     * @return goods_attr_pic - 商品规格图
     */
    public String getGoodsAttrPic() {
        return goodsAttrPic;
    }
    /**
     * 设置商品规格图
     *
     * @param goodsAttrPic 商品规格图
     */
    public void setGoodsAttrPic(String goodsAttrPic) {
        this.goodsAttrPic = goodsAttrPic;
    }
    /**
     * 获取原价(划线价)
     *
     * @return price - 原价(划线价)
     */
    public BigDecimal getPrice() {
        return price;
    }
    /**
     * 设置原价(划线价)
     *
     * @param price 原价(划线价)
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }
    /**
     * 获取包邮价
     *
     * @return free_shipping_price - 包邮价
     */
    public BigDecimal getFreeShippingPrice() {
        return freeShippingPrice;
    }
    /**
     * 设置包邮价
     *
     * @param freeShippingPrice 包邮价
     */
    public void setFreeShippingPrice(BigDecimal freeShippingPrice) {
        this.freeShippingPrice = freeShippingPrice;
    }
    /**
     * 获取拼单价
     *
     * @return collate_price - 拼单价
     */
    public BigDecimal getCollatePrice() {
        return collatePrice;
    }
    /**
     * 设置拼单价
     *
     * @param collatePrice 拼单价
     */
    public void setCollatePrice(BigDecimal collatePrice) {
        this.collatePrice = collatePrice;
    }
    /**
     * 获取商品名称
     *
     * @return goods_name - 商品名称
     */
    public String getGoodsName() {
        return goodsName;
    }
    /**
     * 设置商品名称
     *
     * @param goodsName 商品名称
     */
    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }
    /**
     * 获取创建时间
     *
     * @return create_at - 创建时间
     */
    public Date getCreateAt() {
        return createAt;
    }
    /**
     * 设置创建时间
     *
     * @param createAt 创建时间
     */
    public void setCreateAt(Date createAt) {
        this.createAt = createAt;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderOperateDO.java
@@ -58,5 +58,14 @@
    @TableField(value = "create_at",fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)
     */
    public interface operationType {
        int create = 1;
        int cancel = 2;
        int pay = 3;
        int deliver = 4;
        int complete = 5;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderPayDO.java
@@ -8,14 +8,14 @@
import java.util.Date;
/**
 * @ClassName:  ComShopFlowerOrderPay
 * @ClassName: ComShopFlowerOrderPay
 * @Author: yh
 * @Date: 2022/11/9 16:46
 * @Description: 花城订单支付记录表
 */
@TableName(value = "com_shop_flower_order_pay")
@Data
public class ComShopFlowerOrderPayDO  implements Serializable {
public class ComShopFlowerOrderPayDO implements Serializable {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
@@ -68,13 +68,66 @@
    /**
     * 创建时间
     */
    @TableField(value = "create_at",fill = FieldFill.INSERT)
    @TableField(value = "create_at", fill = FieldFill.INSERT)
    private Date createAt;
    /**
     * 修改时间
     */
    @TableField(value = "update_at",fill = FieldFill.UPDATE)
    @TableField(value = "update_at", fill = FieldFill.UPDATE)
    private Date updateAt;
    /**
     * 商家id
     */
    private Long storeId;
    /**
     * 配送方式(1.自提  2.快递)
     */
    private Integer deliveryType;
    /**
     * 原始订单id
     */
    private Long orderId;
    /**
     * 退款订单号
     */
    private String refundOrderNo;
    /**
     * 退款状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
     */
    private Integer refundStatus;
    /**
     * 类型(1.支付 2.退款 3.取消)
     */
    private Integer payType;
    /**
     * 支付状态(1.未支付 2.已支付)
     */
    public interface payStatus {
        int no = 1;
        int yes = 2;
    }
    /**
     * 退款状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
     */
    public interface refundStatus {
        int clz = 1;
        int tkcg = 2;
        int tksb = 3;
        int yqx = 4;
        int tkz = 5;
    }
    /**
     * 类型(1.支付 2.退款 3.取消)
     */
    public interface payType {
        int zf = 1;
        int tk = 2;
        int qx = 3;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerRefundOrderDO.java
@@ -114,7 +114,7 @@
    private Date refundTime;
    /**
     * 处理结果
     * 处理结果(1.同意 2.拒绝)
     */
    @TableField(value = "handle_result")
    private String handleResult;
@@ -125,4 +125,31 @@
    @TableField(value = "remark")
    private String remark;
    /**
     * 订单状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
     */
    public interface status{
        int clz = 1;
        int tkcg = 2;
        int tksb = 3;
        int yqx = 4;
        int kkz = 5;
    }
    /**
     * 删除状态(1.未删除 2.已删除)
     */
    public interface deleteStatus {
        int no = 1;
        int yes = 2;
    }
    /**
     * 处理结果(1.同意 2.拒绝)
     */
    public interface  handleResult{
        String agree = "1";
        String refuse = "2";
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerUserAddressDO.java
@@ -106,4 +106,12 @@
    @TableField(value = "delete_status")
    private Integer deleteStatus;
    /**
     * 是否是默认地址(1.是 2.否)
     */
    public interface isDefault {
        int yes = 1;
        int no = 2;
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientMerchantDO.java
@@ -4,6 +4,7 @@
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -131,4 +132,14 @@
     * 手机号
     */
    private String mobilePhone;
    /**
     * 店铺销量
     */
    private Integer sale;
    /**
     * 店铺销售额
     */
    private BigDecimal saleVolume;
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerEvaluateService.java
New file
@@ -0,0 +1,44 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerEvaluateDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopFlowerEvaluateDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO;
import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 商品评价
 */
public interface ComShopFlowerEvaluateService extends IService<ComShopFlowerEvaluateDO> {
    /**
     * 保存评价
     * @param comShopFlowerEvaluateDTO
     * @return
     */
    R saveEvaluate(ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO);
    /**
     * 分页查询评价
     * @param pageComShopFlowerEvaluateDTO
     * @return
     */
    R pageEvaluate(PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO);
    /**
     * 评价详情
     * @param id
     * @return
     */
    R detailEvaluate(Long id);
    /**
     * 删除评价
     * @param id
     * @return
     */
    R deleteEvaluate(Long id);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderDeliveryService.java
New file
@@ -0,0 +1,50 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
/**
 * @auther YH
 * @create 2022-11-08 17:25:45
 * @describe 配送单
 */
public interface ComShopFlowerOrderDeliveryService extends IService<ComShopFlowerOrderDeliveryDO> {
    /**
     * 保存配送单
     * @param comShopFlowerOrderDeliveryDTO
     */
    R saveDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
    /**
     * 保存配送单
     * @param comShopFlowerOrderDeliveryDTO
     */
    R updateDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
    /**
     * 已配送、已送达 分页查询
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    R pageDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
    /**
     * 未配送 分页查询
     * @param pageComFlowerOrderDeliveryDTO
     * @return
     */
    R pageNoDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
    /**
     * 未配送-开始配送-订单列表
     * @param pageComFlowerOrderListDTO
     * @return
     */
    R pageNoDeliveryOrderList(PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderService.java
New file
@@ -0,0 +1,201 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.shop.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
import com.panzhihua.service_community.model.dos.ComShopOrderDO;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 订单表服务类
 */
public interface ComShopFlowerOrderService extends IService<ComShopFlowerOrderDO> {
    /**
     * 分页搜索订单记录
     *
     * @param pageComShopOrderSearchDTO
     *            分页数据
     * @return 分页订单
     */
    R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
    /**
     * 订单预览
     *
     * @param orderPreviewDTO
     *            请求参数
     * @return 订单预览数据
     */
    R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO);
    /**
     * 创建订单
     *
     * @param orderCreateDTO
     *            创建订单请求参数
     * @return 创建结果
     */
    R orderCreate(ComShopOrderCreateDTO orderCreateDTO);
    /**
     * 分页查询用户订单列表
     *
     * @param comOrderListDTO
     *            请求参数
     * @return 查询结果
     */
    R pageOrderList(PageComFlowerOrderListDTO comOrderListDTO);
    /**
     * 根据订单id查询订单详情
     *
     * @param orderId
     *            订单id
     * @return 订单详情
     */
    R orderDetail(Long orderId);
    /**
     * 根据订单id取消订单
     *
     * @param comShopOrderQueryDTO
     *            订单信息
     * @return 取消结果
     */
    R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO);
    /**
     * 根据订单id删除订单
     *
     * @param orderId
     *            订单id
     * @return 删除结果
     */
    R orderDelete(Long orderId);
    /**
     * 根据订单id确认收货
     *
     * @param orderId
     *            订单id
     * @param phone
     *            手机号
     * @return 确认结果
     */
    R orderConfirm(Long orderId, String phone);
    /**
     * 统计用户订单数量
     *
     * @param userId
     *            用户id
     * @return 统计结果
     */
    R orderStatistics(Long userId);
    /**
     * 商家资金的订单详情
     *
     * @param id
     *            订单id
     * @return
     */
    R capitalDetailByStore(Long id);
    /**
     * 订单发货
     *
     * @param orderShipDTO
     *            订单发货信息
     * @return 发货结果
     */
    R shipOrder(ComShopOrderShipDTO orderShipDTO);
    /**
     * 订单配送
     *
     * @param orderDeliverDTO
     *            订单信息
     * @return 配送结果
     */
    R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO);
    /**
     * 订单完成配送
     *
     * @param orderDeliverDTO
     *            订单信息
     * @return 完成配送结果
     */
    R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO);
    /**
     * 获取订单导出数据
     *
     * @param comShopOrderExportDTO
     *            订单导出参数
     * @return 订单数据
     */
    R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO);
    /**
     * 获取资金导出数据
     *
     * @param comShopFundsExportDTO
     *            资金导出参数
     * @return 资金数据
     */
    R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO);
    /**
     * 获取用户资金信息
     *
     * @param userId
     *            用户ID
     * @return 统计结果
     */
    R getFundsStat(Long userId);
    /**
     * 获取分页 资金订单数据
     *
     * @param pageComShopFundsSearchDTO
     *            资金导出参数
     * @return 资金订单数据
     */
    R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO);
    /**
     * 微信支付订单回调
     *
     * @param wxPayNotifyOrderDTO
     *            订单支付回调参数
     */
    void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
    /**
     * 用户点击去支付
     *
     * @param orderPayDTO
     *            请求参数
     * @return 返回支付对象
     */
    R wxPay(OrderPayDTO orderPayDTO);
    /**
     * 商户分页查询快递订单
     * @param pageComFlowerOrderListDTO
     * @return
     */
    R pageOrderByStoreId(PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
    /**
     * 查询订单总数
     * @param deliveryType
     * @return
     */
    R selectCountByDeliveryType(Integer deliveryType);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerRefundOrderService.java
New file
@@ -0,0 +1,37 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO;
import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO;
/**
 * @ClassName: ComShopFlowerRefundOrderService
 * @Author: yh
 * @Date: 2022/11/16 14:35
 * @Description: 退款订单
 */
public interface ComShopFlowerRefundOrderService extends IService<ComShopFlowerRefundOrderDO> {
    /**
     * 创建退款订单
     * @param comShopFlowerRefundOrderDTO
     * @return
     */
    R createRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO);
    /**
     * 分页查询
     * @param pageComOrderRefundDTO
     * @return
     */
    R pageRefundOrder(PageComOrderRefundDTO pageComOrderRefundDTO);
    /**
     * 修改退款订单
     * @param comShopFlowerRefundOrderDTO
     * @return
     */
    R updateRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerUserAddressService.java
New file
@@ -0,0 +1,53 @@
package com.panzhihua.service_community.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO;
import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 用户收货地址表服务类
 */
public interface ComShopFlowerUserAddressService extends IService<ComShopFlowerUserAddressDO> {
    /**
     * 查询用户收获地址列表
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 用户收货地址列表
     */
    R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO);
    /**
     * 用户添加书货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 添加结果
     */
    R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO);
    /**
     * 用户修改收货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 修改结果
     */
    R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO);
    /**
     * 用户删除收货地址
     *
     * @param addressId
     *            收货地址id
     * @return 删除结果
     */
    R shopDelUserAddress(Long addressId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientElevatingPointService.java
@@ -49,4 +49,11 @@
     * @return
     */
    R detailPoint(Long pointId);
    /**
     * 根据商家查询范围内的提货点
     * @param merchantId
     * @return
     */
    R findPointByMerchantId(Long merchantId,String lat,String lng);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientGoodsCategoryService.java
@@ -15,7 +15,7 @@
 */
public interface ConvenientGoodsCategoryService extends IService<ConvenientGoodsCategoryDO> {
    /**
     * 便民服务新增分类
     * 商品分类新增
     *
     * @param convenientGoodsCategoryDTO
     * @return 新增结果
@@ -23,7 +23,7 @@
    R addGoodsCategory(ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO);
    /**
     * 便民服务分类编辑
     * 商品分类编辑
     *
     * @param convenientGoodsCategoryDTO
     * @return 修改结果
@@ -31,7 +31,7 @@
    R putGoodsCategory(ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO);
    /**
     * 便民服务分类删除
     * 商品分类删除
     *
     * @param categoryId 便民服务分类id
     * @param operator   操作人员
@@ -40,7 +40,7 @@
    R deleteGoodsCategoryById(Long categoryId, Long operator);
    /**
     * 获取便民服务分类详情
     * 获取商品分类详情
     *
     * @param categoryId 便民服务分类id
     * @return 分类详情
@@ -48,7 +48,7 @@
    R getGoodsCategoryById(Long categoryId);
    /**
     * 分页查询便民服务分类
     * 分页查询商品分类
     *
     * @param pageConvenientGoodsCategoryDTO
     * @return 分类详情
@@ -56,15 +56,10 @@
    R pageGoodsCategory(PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO);
    /**
     * 获取所有便民服务分类
     * 获取所有商品分类
     *
     * @return
     */
    R getAllGoodsCategories(String areaCode);
    R getAllGoodsCategories();
    /**
     * 获取该社区商家数量大于0的分类
     * @param communityId
     * @return
     */
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientMerchantService.java
@@ -146,4 +146,11 @@
     * @return
     */
    Boolean checkStoreIsValid(Long userId);
    /**
     * 根据后台用户id查询
     * @param userId
     * @return
     */
    R getMerchantByUserId(Long userId);
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerEvaluateServiceImpl.java
New file
@@ -0,0 +1,56 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerEvaluateDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopFlowerEvaluateDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO;
import com.panzhihua.service_community.dao.ComShopFlowerEvaluateDAO;
import com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO;
import com.panzhihua.service_community.service.ComShopFlowerEvaluateService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 商品评价
 */
@Slf4j
@Service
public class ComShopFlowerEvaluateServiceImpl extends ServiceImpl<ComShopFlowerEvaluateDAO, ComShopFlowerEvaluateDO>
    implements ComShopFlowerEvaluateService {
    @Override
    public R saveEvaluate(ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) {
        ComShopFlowerEvaluateDO comShopFlowerEvaluateDO = new ComShopFlowerEvaluateDO();
        BeanUtils.copyProperties(comShopFlowerEvaluateDO,comShopFlowerEvaluateDTO);
        //评价时间
        comShopFlowerEvaluateDO.setEvaluateTime(new Date());
        this.baseMapper.insert(comShopFlowerEvaluateDO);
        return R.ok();
    }
    @Override
    public R pageEvaluate(PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) {
        Page page = new Page<>(pageComShopFlowerEvaluateDTO.getPageNum(),pageComShopFlowerEvaluateDTO.getPageSize());
        IPage<ComShopFlowerEvaluateVO> comShopFlowerEvaluateVOIPage = this.baseMapper.pageEvaluate(page,pageComShopFlowerEvaluateDTO);
        return R.ok(comShopFlowerEvaluateVOIPage);
    }
    @Override
    public R detailEvaluate(Long id) {
        return R.ok(this.baseMapper.selectById(id));
    }
    @Override
    public R deleteEvaluate(Long id) {
        return R.ok(this.baseMapper.deleteById(id));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java
@@ -1,5 +1,6 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -13,9 +14,9 @@
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.common.model.vos.shop.*;
import com.panzhihua.common.utlis.DifferentLongListUtil;
import com.panzhihua.service_community.dao.ComShopFlowerGoodsAttrDAO;
import com.panzhihua.service_community.dao.ComShopFlowerGoodsDAO;
import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComShopFlowerGoodsAttrService;
import com.panzhihua.service_community.service.ComShopFlowerGoodsService;
@@ -27,6 +28,8 @@
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static java.util.Objects.nonNull;
/**
 * @ClassName: ComShopFlowerGoodsServiceImpl
@@ -44,6 +47,12 @@
    private ComShopFlowerGoodsAttrDAO shopFlowerGoodsAttrDAO;
    @Resource
    private ConvenientMerchantDAO convenientMerchantDAO;
    @Resource
    private ConvenientGoodsCategoryDAO convenientGoodsCategoryDAO;
    @Resource
    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
    @Resource
    private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
    @Override
    public R saveShopFlowerGoods(AddShopFlowerGoodsVO addShopFlowerGoodsVO) {
@@ -62,6 +71,8 @@
        shopGoodsDO.setDetails(addShopFlowerGoodsVO.getDetails());
        int goodsId = this.baseMapper.insert(shopGoodsDO);
        if (goodsId > 0) {
            //保存规格
            ArrayList<ComShopFlowerGoodsAttrDO> goodsAttrDOS = Lists.newArrayList();
            ComShopFlowerGoodsDO goodDO = this.baseMapper.selectById(shopGoodsDO.getId());
            addShopFlowerGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> {
@@ -86,7 +97,21 @@
            if (goodsAttrDOS.size() > 0) {
                comShopFlowerGoodsAttrService.saveBatch(goodsAttrDOS);
            }
            //保存商品分类
            Long goodId = shopGoodsDO.getId();
            if (nonNull(goodId)) {
                //添加分类
                List<Long> categoryIds = addShopFlowerGoodsVO.getCategoryIds();
                categoryIds.forEach(categoryId -> {
                    ConvenientGoodsCategoryDO convenientGoodsCategoryDO = convenientGoodsCategoryDAO.selectById(categoryId);
                    convenientGoodsCategoryDAO.createGoodsCategoryRelation(Snowflake.getId(),goodId, categoryId,
                            convenientGoodsCategoryDO.getName(), convenientGoodsCategoryDO.getCreatedBy());
                });
            }
        }
        return R.ok();
    }
@@ -114,6 +139,9 @@
                    goodsAttrVOList.add(goodsAttrVO);
                }
                shopGoods.setGoodsAttrs(goodsAttrVOList);
                if (CollUtil.isNotEmpty(goodsAttrDOs)){
                    shopGoods.setGoodsPic(goodsAttrDOs.get(0).getAttrPic());
                }
            });
        }
        return R.ok(comShopStoreVOIPage);
@@ -132,15 +160,16 @@
        IPage<ComShopFlowerGoodsVO> goodsVOIPage = this.baseMapper.pageShopGoodByApps(page, comShopFlowerGoodsDTO);
        if (!goodsVOIPage.getRecords().isEmpty()) {
            goodsVOIPage.getRecords().forEach(goodsVo -> {
                List<ComShopFlowerGoodsAttrVO> goodsAttrList = shopFlowerGoodsAttrDAO.getGoodsAttr(goodsVo.getId());
                Long goodsId = goodsVo.getId();
                List<ComShopFlowerGoodsAttrVO> goodsAttrList = shopFlowerGoodsAttrDAO.getGoodsAttr(goodsId);
                if (!goodsAttrList.isEmpty()) {
                    ComShopFlowerGoodsAttrVO comShopFlowerGoodsAttrVO = goodsAttrList.get(0);
                    goodsVo.setGoodsAttrList(goodsAttrList);
                    goodsVo.setGoodsPic(comShopFlowerGoodsAttrVO.getAttrPic());
                    goodsVo.setOriginalPrice(comShopFlowerGoodsAttrVO.getPrice());
                    goodsVo.setPrice(comShopFlowerGoodsAttrVO.getCollatePrice());
                }
            });
        }
        return R.ok(goodsVOIPage);
@@ -161,11 +190,15 @@
        List<ComShopFlowerGoodsAttrVO> goodsAttrList = new ArrayList<>();
        List<ComShopFlowerGoodsAttrDO> goodsAttrDOS =
                shopFlowerGoodsAttrDAO.selectList(new QueryWrapper<ComShopFlowerGoodsAttrDO>().eq("goods_id", goodsId));
        List<String> images = new ArrayList<>();
        goodsAttrDOS.forEach(attrDO -> {
            ComShopFlowerGoodsAttrVO goodsAttrVO = new ComShopFlowerGoodsAttrVO();
            BeanUtils.copyProperties(attrDO, goodsAttrVO);
            String attrPic = attrDO.getAttrPic();
            images.add(attrPic);
            goodsAttrList.add(goodsAttrVO);
        });
        // 查询商品店铺信息
        ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(goodsDO.getStoreId());
@@ -177,6 +210,11 @@
        BeanUtils.copyProperties(goodsDO, shopGoods);
        shopGoods.setGoodsAttrList(goodsAttrList);
        shopGoods.setConvenientMerchantVO(convenientMerchantVO);
        shopGoods.setImages(StringUtils.join(images,","));
        Integer orderNum = comShopFlowerOrderGoodsDAO.selectCount(new LambdaQueryWrapper<ComShopFlowerOrderGoodsDO>().eq(ComShopFlowerOrderGoodsDO::getGoodsId, goodsId));
        shopGoods.setOrderNum(orderNum);
        List<ComShopFlowerEvaluateVO> comShopFlowerEvaluateVOList = comShopFlowerEvaluateDAO.selectListLimit(goodsId);
        shopGoods.setShopFlowerEvaluateVOList(comShopFlowerEvaluateVOList);
        return R.ok(shopGoods);
    }
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java
New file
@@ -0,0 +1,120 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO;
import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO;
import com.panzhihua.common.utlis.OrderNoUtils;
import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
import com.panzhihua.service_community.dao.ComShopFlowerOrderDeliveryDAO;
import com.panzhihua.service_community.dao.ConvenientElevatingPointDAO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
import com.panzhihua.service_community.service.ComShopFlowerOrderDeliveryService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.List;
import java.util.Objects;
import static java.util.Objects.nonNull;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 配送单
 */
@Slf4j
@Service
public class ComShopFlowerOrderDeliveryServiceImpl extends ServiceImpl<ComShopFlowerOrderDeliveryDAO, ComShopFlowerOrderDeliveryDO>
        implements ComShopFlowerOrderDeliveryService {
    @Resource
    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
    @Resource
    private ConvenientElevatingPointDAO convenientElevatingPointDAO;
    @Override
    public R saveDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = new ComShopFlowerOrderDeliveryDO();
        BeanUtils.copyProperties(comShopFlowerOrderDeliveryDTO,comShopFlowerOrderDeliveryDO);
        //创建配送单号
        String deliveryNo = OrderNoUtils.nextDeliveryNo();
        comShopFlowerOrderDeliveryDO.setDeliveryNo(deliveryNo);
        comShopFlowerOrderDeliveryDO.setDeliveryTime(new Date());
        comShopFlowerOrderDeliveryDO.setDeleteStatus(ComShopFlowerOrderDeliveryDO.deliveryStatus.psz);
        comShopFlowerOrderDeliveryDO.setDeleteStatus(ComShopFlowerOrderDeliveryDO.deleteStatus.wsc);
        int insert = this.baseMapper.insert(comShopFlowerOrderDeliveryDO);
        if (insert > 0){
            Long deliveryId = comShopFlowerOrderDeliveryDO.getId();
            List<Long> orderIds = comShopFlowerOrderDeliveryDTO.getOrderIds();
            if (CollUtil.isNotEmpty(orderIds)){
                comShopFlowerOrderDAO.updateOrder(orderIds,deliveryId,comShopFlowerOrderDeliveryDO.getDeliveryNo(), ComShopFlowerOrderDO.status.psz,comShopFlowerOrderDeliveryDO.getDeliveryTime());
            }
        }
        return R.ok();
    }
    @Override
    public R updateDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
        Long id = comShopFlowerOrderDeliveryDTO.getId();
        if (null == id){
            return R.fail("配送单id不能为空");
        }
        ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = this.baseMapper.selectById(id);
        if (Objects.isNull(comShopFlowerOrderDeliveryDO)){
            return R.fail("不存在该配送单");
        }
        comShopFlowerOrderDeliveryDO.setServiceTime(new Date());
        comShopFlowerOrderDeliveryDO.setDeleteStatus(ComShopFlowerOrderDeliveryDO.deliveryStatus.ysd);
        int update = this.baseMapper.updateById(comShopFlowerOrderDeliveryDO);
        if (update > 0){
            comShopFlowerOrderDAO.updateOrderStatus(comShopFlowerOrderDeliveryDO.getId(),comShopFlowerOrderDeliveryDO.getServiceTime(),ComShopFlowerOrderDO.status.dsh);
        }
        return  R.ok();
    }
    @Override
    public R pageDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
        Page page = new Page<>(pageComFlowerOrderDeliveryDTO.getPageNum(),pageComFlowerOrderDeliveryDTO.getPageSize());
        IPage<ComShopFlowerOrderDeliveryVO> page1 = this.baseMapper.pageDelivery(page, pageComFlowerOrderDeliveryDTO);
        for (ComShopFlowerOrderDeliveryVO record : page1.getRecords()) {
            Long pointId = record.getPointId();
            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
            BeanUtils.copyProperties(convenientElevatingPointDO,convenientElevatingPointVO);
            record.setConvenientElevatingPointVO(convenientElevatingPointVO);
        }
        return R.ok(page1);
    }
    @Override
    public R pageNoDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
        Page page = new Page<>(pageComFlowerOrderDeliveryDTO.getPageNum(),pageComFlowerOrderDeliveryDTO.getPageSize());
        IPage<ConvenientElevatingPointVO> page1 = convenientElevatingPointDAO.pageNoDelivery(page, pageComFlowerOrderDeliveryDTO);
        return R.ok(page1);
    }
    @Override
    public R pageNoDeliveryOrderList(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        Page page = new Page<>(pageComFlowerOrderListDTO.getPageNum(),pageComFlowerOrderListDTO.getPageSize());
        IPage<ComShopFlowerOrderPageVO> iPage = comShopFlowerOrderDAO.pageOrderListNoDelivery(page, pageComFlowerOrderListDTO);
        return R.ok(iPage);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java
New file
@@ -0,0 +1,1008 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.shop.*;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
import com.panzhihua.common.model.vos.shop.*;
import com.panzhihua.common.utlis.DateUtils;
import com.panzhihua.common.utlis.OrderNoUtils;
import com.panzhihua.common.utlis.StringUtils;
import com.panzhihua.common.utlis.WxPayUtils;
import com.panzhihua.common.utlis.wx.WXPayUtil;
import com.panzhihua.service_community.dao.*;
import com.panzhihua.service_community.model.dos.*;
import com.panzhihua.service_community.service.ComShopFlowerOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import static java.util.Objects.nonNull;
/**
 * @auther lyq
 * @create 2021-04-14 15:03:01
 * @describe 订单表服务实现类
 */
@Slf4j
@Service
public class ComShopFlowerOrderServiceImpl extends ServiceImpl<ComShopFlowerOrderDAO, ComShopFlowerOrderDO>
        implements ComShopFlowerOrderService {
    @Resource
    private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO;
    @Resource
    private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO;
    @Resource
    private ComShopCartDAO comShopCartDAO;
    @Resource
    private ConvenientMerchantDAO convenientMerchantDAO;
    @Resource
    private ComShopFlowerUserAddressDAO comShopFlowerUserAddressDAO;
    @Resource
    private ComShopFlowerOrderOperateDAO comShopFlowerOrderOperateDAO;
    @Resource
    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
    @Resource
    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
    @Resource
    private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO;
    @Resource
    private ConvenientElevatingPointDAO convenientElevatingPointDAO;
    @Resource
    private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
    @Value("${hcMin.app.isTest}")
    private Boolean isTest;
    @Value("${hcMin.app.appid}")
    private String appid;
    @Value("${hcMin.app.payKey}")
    private String payKey;
    @Value("${hcMin.app.mchId}")
    private String mchId;
    @Value("${hcMin.app.notifyUrl}")
    private String notifyUrl;
    /**
     * 订单预览
     *
     * @param orderPreviewDTO 请求参数
     * @return 订单预览数据
     */
    @Override
    public R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO) {
        // 返回参数
        ComShopFlowerOrderPreviewVO orderPreviewVO = new ComShopFlowerOrderPreviewVO();
        // 返回商品列表
        List<ComShopOrderGoodsVO> orderGoodsList = new ArrayList<>();
        Long storeId = 0L;
        BigDecimal orderTotal = BigDecimal.ZERO;
        Integer orderGoodsTotal = 0;
        // 判断提交方式
        if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.details)) {// 详情页提交
            // 查询商品信息
            ComShopFlowerGoodsDO goodsDO =
                    comShopFlowerGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", orderPreviewDTO.getGoodsId())
                            .eq("status", ComShopGoodsDO.status.sell).eq("delete_status", ComShopGoodsDO.deleteStatus.no));
            if (goodsDO == null) {
                return R.fail("商品已下架或已删除");
            }
            // 设置店铺id
            storeId = goodsDO.getStoreId();
            // 查询商品规格信息
            ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderPreviewDTO.getGoodsAttrId());
            if (goodsAttrDO == null) {
                return R.fail("商品规格不存在");
            }
            if (goodsAttrDO.getSale() < orderPreviewDTO.getBuyNum()) {
                return R.fail("该规格库存不足,无法下单");
            }
            orderTotal = goodsAttrDO.getPrice().multiply(BigDecimal.valueOf(orderPreviewDTO.getBuyNum()));
            orderGoodsTotal = orderPreviewDTO.getBuyNum();
            // 商品信息赋值
            ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
            orderGoodsVO.setGoodsName(goodsDO.getName());
            orderGoodsVO.setGoodsId(goodsDO.getId());
            orderGoodsVO.setGoodsAttrId(goodsAttrDO.getId());
            orderGoodsVO.setGoodsPic(goodsAttrDO.getAttrPic());
            orderGoodsVO.setPrice(goodsAttrDO.getPrice());
            orderGoodsVO.setNum(orderPreviewDTO.getBuyNum());
            orderGoodsList.add(orderGoodsVO);
        } else if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.cart)) {// 购物车提交
            List<ComShopCartDO> cartList = comShopCartDAO.selectBatchIds(orderPreviewDTO.getCartIds());
            if (cartList.isEmpty()) {
                return R.fail("未找到购物车商品信息");
            }
            // 设置店铺id
            storeId = cartList.get(0).getStoreId();
            // 循环遍历购物车商品信息
            for (ComShopCartDO cartDO : cartList) {
                // 商品信息赋值
                ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
                orderGoodsVO.setGoodsId(cartDO.getGoodsId());
                orderGoodsVO.setGoodsAttrId(cartDO.getGoodsAttrId());
                orderGoodsVO.setGoodsPic(cartDO.getGoodsAttrPic());
                orderGoodsVO.setNum(cartDO.getAmount());
                orderGoodsVO.setGoodsName(cartDO.getGoodsName());
                // 查询商品规格
                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(cartDO.getGoodsAttrId());
                if (goodsAttrDO != null) {
                    orderGoodsVO.setPrice(goodsAttrDO.getPrice());
                } else {
                    orderGoodsVO.setPrice(BigDecimal.ZERO);
                }
                orderTotal = orderTotal.add(orderGoodsVO.getPrice().multiply(BigDecimal.valueOf(cartDO.getAmount())));
                orderGoodsTotal += cartDO.getAmount();
                orderGoodsList.add(orderGoodsVO);
            }
        }
        orderPreviewVO.setOrderTotal(orderTotal);
        orderPreviewVO.setOrderGoodsTotal(orderGoodsTotal);
        // 查询店铺信息
        ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(storeId);
        if (convenientMerchantDO != null) {
            ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
            BeanUtils.copyProperties(convenientMerchantDO, shopStoreVO);
            orderPreviewVO.setConvenientMerchantVO(shopStoreVO);
        }
        // 查询默认收货地址
        ComShopFlowerUserAddressDO userDefaultAddressDO =
                comShopFlowerUserAddressDAO.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>().eq("delete_status", 2)
                        .eq("user_id", orderPreviewDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes));
        // 查询用户收货地址中的默认地址
        if (userDefaultAddressDO != null) {
            ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
            BeanUtils.copyProperties(userDefaultAddressDO, userAddressVO);
            orderPreviewVO.setUserAddressVO(userAddressVO);
        } else {
            // 查询上次购买记录的收货地址
            // 查询到用户上一笔订单
            List<ComShopFlowerOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopFlowerOrderDO>()
                    .eq("delete_status", 2).eq("user_id", orderPreviewDTO.getUserId()).orderByDesc("create_at"));
            if (shopOrders != null && shopOrders.size() > 0) {
                ComShopFlowerUserAddressDO userAddressDO =
                        comShopFlowerUserAddressDAO.selectById(shopOrders.get(0).getReceiverId());
                if (userAddressDO != null) {
                    ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
                    BeanUtils.copyProperties(userAddressDO, userAddressVO);
                    orderPreviewVO.setUserAddressVO(userAddressVO);
                }
            }
        }
        return R.ok(orderPreviewVO);
    }
    /**
     * 创建订单
     *
     * @param orderCreateDTO 创建订单请求参数
     * @return 创建结果
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R orderCreate(ComShopOrderCreateDTO orderCreateDTO) {
        // 创建返回参数
        ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO();
        // 查询用户收货地址
        ComShopFlowerUserAddressDO userAddressDO = comShopFlowerUserAddressDAO.selectById(orderCreateDTO.getReceiverId());
        if (userAddressDO == null || userAddressDO.getDeleteStatus() != 2) {
            return R.fail("收货地址不存在");
        }
        // 用户id
        Long userId = orderCreateDTO.getUserId();
        // 店铺id
        Long storeId = 0L;
        // 生成订单号
        String orderNo = OrderNoUtils.NextOrderNo(userId);
        // 配送方式
        Integer deliveryType = 0;
        // 订单总金额
        BigDecimal orderTotal = BigDecimal.ZERO;
        // 创建订单商品信息
        List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = new ArrayList<>();
        if (!orderCreateDTO.getOrderGoodsList().isEmpty()) {
            for (ComShopOrderCreateGoodsDTO createGoodsDTO : orderCreateDTO.getOrderGoodsList()) {
                // 查询当前商品信息
                ComShopFlowerGoodsDO goodsDO =
                        comShopFlowerGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", createGoodsDTO.getGoodsId())
                                .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
                if (goodsDO == null) {
                    log.error("未查询到商品信息,商品已下架活已删除,商品id" + createGoodsDTO.getGoodsId());
                    continue;
                }
                storeId = goodsDO.getStoreId();
                deliveryType = goodsDO.getDeliveryType();
                ComShopFlowerOrderGoodsDO orderGoodsDO = new ComShopFlowerOrderGoodsDO();
                orderGoodsDO.setGoodsId(goodsDO.getId());
                orderGoodsDO.setGoodsName(goodsDO.getName());
                orderGoodsDO.setStoreId(storeId);
                orderGoodsDO.setUserId(userId);
                orderGoodsDO.setAmount(createGoodsDTO.getNum());
                orderGoodsDO.setOrderNo(orderNo);
                // 查询当前商品规格
                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(createGoodsDTO.getGoodsAttrId());
                if (goodsAttrDO == null) {
                    log.error(
                            "未查询到商品规格信息,商品id" + createGoodsDTO.getGoodsId() + "商品规格id:" + createGoodsDTO.getGoodsAttrId());
                    continue;
                }
                if (goodsAttrDO.getSale() < createGoodsDTO.getNum()) {
                    return R.fail("该规格库存不足,无法下单");
                }
                orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId());
                orderGoodsDO.setGoodsAttrPrice(goodsAttrDO.getPrice());
                orderGoodsDO.setPrice(goodsAttrDO.getPrice());
                orderGoodsDO.setCollatePrice(goodsAttrDO.getCollatePrice());
                orderGoodsDO.setFreeShippingPrice(goodsAttrDO.getFreeShippingPrice());
                orderGoodsDO.setGoodsAttrPic(goodsAttrDO.getAttrPic());
                orderGoodsDOList.add(orderGoodsDO);
                // 将商品金额计算到订单总金额
                orderTotal = orderTotal
                        .add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount())));
            }
        }
        // 如果是购物车提交,需要将购物车内商品移除
        /*if (orderCreateDTO.getSubmitType().equals(ComShopOrderCreateDTO.submitType.cart)) {
            comShopCartDAO.deleteBatchIds(orderCreateDTO.getCartIds());
        }*/
        // 创建订单信息
        ComShopFlowerOrderDO shopOrderDO = new ComShopFlowerOrderDO();
        shopOrderDO.setOrderNo(orderNo);
        shopOrderDO.setStoreId(storeId);
        shopOrderDO.setUserId(userId);
        shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dfk);
        shopOrderDO.setPayStatus(ComShopFlowerOrderDO.payStatus.no);
        shopOrderDO.setReceiverId(orderCreateDTO.getReceiverId());
        shopOrderDO.setDeleteStatus(ComShopFlowerOrderDO.deleteStatus.no);
        shopOrderDO.setTotalAmount(orderTotal);
        shopOrderDO.setDiscountAmount(BigDecimal.ZERO);
        shopOrderDO.setDeliveryType(deliveryType);
        shopOrderDO.setPointId(orderCreateDTO.getPointId());
        if (StringUtils.isNotEmpty(orderCreateDTO.getRemark())) {
            shopOrderDO.setRemark(orderCreateDTO.getRemark());
        }
        this.baseMapper.insert(shopOrderDO);
        if (!orderGoodsDOList.isEmpty()) {
            orderGoodsDOList.forEach(orderGoods -> {
                orderGoods.setOrderId(shopOrderDO.getId());
                comShopFlowerOrderGoodsDAO.insert(orderGoods);
            });
        }
        // 创建订单操作记录
        ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
        orderOperateDO.setOrderNo(orderNo);
        orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.create);
        orderOperateDO.setOperationTime(new Date());
        if (StringUtils.isNotEmpty(orderCreateDTO.getPhone())) {
            orderOperateDO.setOperationContent("用户" + orderCreateDTO.getPhone() + "下单");
            orderOperateDO.setOperationBy("用户" + orderCreateDTO.getPhone());
        } else {
            orderOperateDO.setOperationContent("用户下单");
            orderOperateDO.setOperationBy("用户");
        }
        comShopFlowerOrderOperateDAO.insert(orderOperateDO);
        shopOrderVO.setOrderNo(orderNo);
        shopOrderVO.setOrderTotal(orderTotal);
        shopOrderVO.setOrderId(shopOrderDO.getId());
        try {
            BigDecimal money = orderTotal;
            if (isTest) {
                money = BigDecimal.valueOf(0.01);
            }
            // 调用wx支付
            String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderCreateDTO.getOpenId(),
                    orderNo, money, null);
            log.info("微信支付返回参数:" + xml);
            shopOrderVO.setPayResult(xml);
        } catch (Exception e) {
            log.error("调用微信支付异常,异常原因:" + e.getMessage());
        }
        return R.ok(shopOrderVO);
    }
    /**
     * 分页查询用户订单列表
     *
     * @param comOrderListDTO 请求参数
     * @return 查询结果
     */
    @Override
    public R pageOrderList(PageComFlowerOrderListDTO comOrderListDTO) {
        Page page = new Page<>(comOrderListDTO.getPageNum(), comOrderListDTO.getPageSize());
        IPage<ComShopFlowerOrderPageVO> orderPageVOIPage = this.baseMapper.pageOrderList(page, comOrderListDTO);
        if (!orderPageVOIPage.getRecords().isEmpty()) {
            orderPageVOIPage.getRecords().forEach(orderVo -> {
                List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
                // 查询订单下商品信息
                List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
                        .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", orderVo.getOrderNo()));
                if (!orderGoodsDOList.isEmpty()) {
                    orderGoodsDOList.forEach(orderGoods -> {
                        ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
                        BeanUtils.copyProperties(orderGoods, orderGoodsVO);
                        // 根据商品规格id查询商品规格
                        ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
                        if (goodsAttrDO != null) {
                            orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName());
                        }
                        orderGoodsVO.setNum(orderGoods.getAmount());
                        orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
                        orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
                        orderGoodsVOS.add(orderGoodsVO);
                    });
                }
                orderVo.setOrderGoodsVOList(orderGoodsVOS);
                ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
                // 查询店铺信息
                ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(orderVo.getStoreId());
                if (convenientMerchantDO != null) {
                    BeanUtils.copyProperties(convenientMerchantDO, shopStoreVO);
                }
                orderVo.setConvenientMerchantVO(shopStoreVO);
            });
        }
        return R.ok(orderPageVOIPage);
    }
    /**
     * 根据订单id查询订单详情
     *
     * @param orderId 订单id
     * @return 订单详情
     */
    @Override
    public R orderDetail(Long orderId) {
        ComShopFlowerOrderPageVO orderVO = new ComShopFlowerOrderPageVO();
        // 查询订单信息
        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
        if (shopOrderDO == null) {
            return R.fail("未查询到订单");
        }
        BeanUtils.copyProperties(shopOrderDO, orderVO);
        orderVO.setOrderTotal(shopOrderDO.getTotalAmount());
        ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
        // 查询店铺信息
        ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId());
        if (shopStoreDO != null) {
            BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
        }
        orderVO.setConvenientMerchantVO(shopStoreVO);
        List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
        // 查询订单下商品信息
        List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
                .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo()));
        StringBuilder sbr = new StringBuilder();
        if (!orderGoodsDOList.isEmpty()) {
            orderGoodsDOList.forEach(orderGoods -> {
                ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
                BeanUtils.copyProperties(orderGoods, orderGoodsVO);
                orderGoodsVO.setNum(orderGoods.getAmount());
                orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
                orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
                // 查询商品信息判断商品状态
                ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId());
                if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes)
                        || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) {
                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc);
                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.lower)) {
                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.yxj);
                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) {
                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.csz);
                }
                // 根据商品规格id查询商品规格
                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
                if (goodsAttrDO != null) {
                    orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName());
                }
                orderGoodsVOS.add(orderGoodsVO);
                sbr.append(orderGoods.getGoodsName()).append(" ");
            });
        }
        orderVO.setOrderGoodsVOList(orderGoodsVOS);
        orderVO.setGoodsName(sbr.toString());
        ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
        // 查询用户收货地址
        ComShopFlowerUserAddressDO userAddressDO = comShopFlowerUserAddressDAO.selectById(shopOrderDO.getReceiverId());
        if (userAddressDO != null) {
            BeanUtils.copyProperties(userAddressDO, userAddressVO);
            orderVO.setUserAddressVO(userAddressVO);
        }
        // 操作日志
        List<ComShopFlowerOrderOperateDO> listOperLog =
                comShopFlowerOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>()
                        .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo()));
        List<ComShopFlowerOrderOperateVO> listOperLogVO = new ArrayList<>(listOperLog.size());
        listOperLog.forEach(logDO -> {
            ComShopFlowerOrderOperateVO copyVO = new ComShopFlowerOrderOperateVO();
            BeanUtils.copyProperties(logDO, copyVO);
            listOperLogVO.add(copyVO);
        });
        orderVO.setLogs(listOperLogVO);
        Long pointId = shopOrderDO.getPointId();
        if (null != pointId) {
            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
            BeanUtils.copyProperties(convenientElevatingPointVO, convenientElevatingPointDO);
            orderVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
        }
        //已完成、已退款才有评论
        if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()) {
            ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(shopOrderDO.getOrderNo());
            if (nonNull(comShopFlowerEvaluateVO)) {
                orderVO.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO);
            }
        }
        return R.ok(orderVO);
    }
    /**
     * 根据订单id取消订单
     *
     * @param comShopOrderQueryDTO 订单信息
     * @return 取消结果
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO) {
        // 查询订单
        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(comShopOrderQueryDTO.getOrderId());
        if (shopOrderDO == null) {
            return R.fail("未查询到订单");
        }
        if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ddps)) {
            return R.fail("已配送订单不可取消");
        }
        // 取消订单
        shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx);
        //退款
        String refundNo = WXPayUtil.generateNonceStr();
        try {
            String refundStr = WxPayUtils.refund(appid, mchId, shopOrderDO.getWxTardeNo(), shopOrderDO.getPayAmount(),
                    shopOrderDO.getPayAmount(), refundNo, isTest);
            log.info("退款请求接口返回参数:{}", refundStr);
            Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr);
            if (CollUtil.isNotEmpty(mapResult)) {
                String return_code = (String) mapResult.get("return_code");
                String result_code = (String) mapResult.get("result_code");
                String return_msg = mapResult.get("return_msg");
                ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO();
                orderPayDO.setOrderNo(shopOrderDO.getOrderNo());
                orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount());
                orderPayDO.setPayTime(new Date());
                orderPayDO.setStoreId(shopOrderDO.getStoreId());
                orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType());
                orderPayDO.setOrderId(shopOrderDO.getId());
                orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.qx);
                if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) {
                    //退款成功
                    // 添加订单支付记录表
                    orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
                    orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg);
                } else {
                    //退款失败
                    // 添加订单支付记录表
                    orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no);
                    orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb);
                    shopOrderDO.setRemark(shopOrderDO.getRemark() + "_" + return_msg);
                }
                comShopFlowerOrderPayDAO.insert(orderPayDO);
            }
        } catch (Exception e) {
            log.error("申请退款失败," + e.getMessage());
            e.printStackTrace();
        }
        if (this.baseMapper.updateById(shopOrderDO) > 0) {
            // 添加订单操作记录
            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel);
            orderOperateDO.setOperationTime(new Date());
            if (comShopOrderQueryDTO.getIsAdmin()) {
                orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单");
                orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount());
            } else {
                orderOperateDO.setOperationContent("用户取消订单");
                orderOperateDO.setOperationBy("用户");
            }
            comShopFlowerOrderOperateDAO.insert(orderOperateDO);
            return R.ok();
        } else {
            return R.fail("取消订单失败");
        }
    }
    /**
     * 根据订单id删除订单
     *
     * @param orderId 订单id
     * @return 删除结果
     */
    @Override
    public R orderDelete(Long orderId) {
        // 查询订单
        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
        if (shopOrderDO == null) {
            return R.fail("未查询到订单");
        }
        if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ywc)
                && !shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.yqx)) {
            return R.fail("该订单状态不可删除");
        }
        shopOrderDO.setDeleteStatus(ComShopFlowerOrderDO.deleteStatus.yes);
        if (this.baseMapper.updateById(shopOrderDO) > 0) {
            return R.ok();
        } else {
            return R.fail("取消订单失败");
        }
    }
    /**
     * 根据订单id确认收货
     *
     * @param orderId 订单id
     * @param phone   手机号
     * @return 确认结果
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public R orderConfirm(Long orderId, String phone) {
        // 查询订单
        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
        if (shopOrderDO == null) {
            return R.fail("未查询到订单");
        }
        if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.dsh)) {
            return R.fail("该订单状态不可确认收货");
        }
        // 订单确认收货
        shopOrderDO.setStatus(ComShopOrderDO.status.ywc);
        shopOrderDO.setReceivingTime(new Date());
        if (this.baseMapper.updateById(shopOrderDO) > 0) {
            // 添加订单操作记录
            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
            orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.operationType.complete);
            orderOperateDO.setOperationTime(new Date());
            if (StringUtils.isNotEmpty(phone)) {
                orderOperateDO.setOperationContent("用户" + phone + "确认收货");
                orderOperateDO.setOperationBy("用户" + phone);
            } else {
                orderOperateDO.setOperationContent("用户确认收货");
                orderOperateDO.setOperationBy("用户");
            }
            comShopFlowerOrderOperateDAO.insert(orderOperateDO);
            return R.ok();
        } else {
            return R.fail("确认收货失败");
        }
    }
    /**
     * 统计用户订单数量
     *
     * @param userId 用户id
     * @return 统计结果
     */
    @Override
    public R orderStatistics(Long userId) {
        /*OrderStatisticsVO orderStatisticsVO = new OrderStatisticsVO();
        // 待付款订单数
        Integer paymentNum = 0;
        // 待发货订单数
        Integer deliverNum = 0;
        // 待收货订单数
        Integer receivingNum = 0;
        List<ComShopOrderDO> shopOrderList = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>()
            .eq("user_id", userId).eq("delete_status", ComShopOrderDO.deleteStatus.no));
        if (!shopOrderList.isEmpty()) {
            for (ComShopOrderDO orderDO : shopOrderList) {
                if (orderDO.getStatus().equals(ComShopOrderDO.status.dfk)) {
                    paymentNum++;
                } else if (orderDO.getStatus().equals(ComShopOrderDO.status.dfh)) {
                    deliverNum++;
                } else if (orderDO.getStatus().equals(ComShopOrderDO.status.dsh)) {
                    receivingNum++;
                }
            }
        }
        orderStatisticsVO.setPaymentNum(paymentNum);
        orderStatisticsVO.setDeliverNum(deliverNum);
        orderStatisticsVO.setReceivingNum(receivingNum);
        return R.ok(orderStatisticsVO);*/
        return R.ok();
    }
    /**
     * 订单发货
     *
     * @param orderShipDTO 订单发货信息
     * @return 发货结果
     */
    @Override
    public R shipOrder(ComShopOrderShipDTO orderShipDTO) {
        ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderShipDTO.getOrderId());
        if (comShopOrderDO == null) {
            return R.fail("订单不存在");
        }
        if (!(comShopOrderDO.getStatus() == 1) || !(comShopOrderDO.getDeliveryStatus() == 1)) {
            return R.fail("订单发货失败,订单状态不允许发货");
        }
      /*  ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(comShopOrderDO.getStoreId());
        if (convenientMerchantDO.getDeliveryType() != 2) {
            return R.fail("该商家不支持通过快递物流发货");
        }*/
        comShopOrderDO.setDeliveryStatus(2);
        comShopOrderDO.setDeliveryType(2);
        comShopOrderDO.setStatus(3);
        comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime());
        comShopOrderDO.setLogisticsCompany(orderShipDTO.getLogisticsCompany());
        comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo());
        int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
        if (updated == 1) {
            // 创建订单操作记录
            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
            orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.operationType.deliver);
            orderOperateDO.setOperationTime(new Date());
            if (orderShipDTO.getIsAdmin()) {
                orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货");
                orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount());
            } else {
                orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货");
                orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount());
            }
            int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO);
            if (inserted != 1) {
                log.error("订单发货日志保存错误");
            }
            return R.ok("发货成功");
        }
        return R.fail("发货失败!");
    }
    @Override
    public R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) {
        ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderDeliverDTO.getOrderId());
        if (comShopOrderDO == null) {
            return R.fail("订单不存在");
        }
        if (!(comShopOrderDO.getStatus() == 2) || !(comShopOrderDO.getDeliveryStatus() == 1)) {
            return R.fail("当前订单不能配送");
        }
        /*ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId());
        if (storeDO.getDeliveryType() != 1) {
            return R.fail("该商家不支持通过商家配送");
        }*/
        comShopOrderDO.setDeliveryStatus(4);
        comShopOrderDO.setDeliveryType(1);
        comShopOrderDO.setStatus(3);
        comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime());
        int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
        if (updated == 1) {
            // 创建订单操作记录
            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver);
            orderOperateDO.setOperationTime(new Date());
            if (orderDeliverDTO.getIsAdmin()) {
                orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货");
                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
            } else {
                orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货");
                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
            }
            int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO);
            if (inserted != 1) {
                log.error("订单发货日志保存错误");
            }
            return R.ok("开始配送");
        }
        return R.fail("操作失败!");
    }
    @Override
    public R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) {
        ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderDeliverDTO.getOrderId());
        if (comShopOrderDO == null) {
            return R.fail("订单不存在");
        }
        if (comShopOrderDO.getDeliveryStatus() != 4 && comShopOrderDO.getDeliveryStatus() != 3) {
            return R.fail("订单还未开始配送");
        }
        if (!(comShopOrderDO.getStatus() == 3)) {
            return R.fail("订单还未发货");
        }
        // comShopOrderDO.setStatus(4);
        comShopOrderDO.setDeliveryStatus(5);
        int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
        if (updated == 1) {
            // 创建订单操作记录
            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete);
            orderOperateDO.setOperationTime(new Date());
            if (orderDeliverDTO.getIsAdmin()) {
                orderOperateDO.setOperationContent("订单已完成");
                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
            } else {
                orderOperateDO.setOperationContent("订单已完成");
                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
            }
            int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO);
            if (inserted != 1) {
                log.error("订单发货日志保存错误");
            }
            return R.ok("配送完成");
        }
        return R.fail("操作失败!");
    }
    @Override
    public R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO) {
//        Page page = new Page();
//        page.setSize(10000);
//        page.setCurrent(1);
//        IPage<ExcelShopOrderDTO> excelShopOrderDTO = comShopOrderDAO.selectOrderExport(page, comShopOrderExportDTO);
        return R.ok();
    }
    @Override
    public R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO) {
//        Page page = new Page();
//        page.setSize(10000);
//        page.setCurrent(1);
//        IPage<ExcelShopFundsDTO> excelShopFundsDTO = comShopOrderDAO.selectFundsExport(page, comShopFundsExportDTO);
        return R.ok(null);
    }
    @Override
    public R getFundsStat(Long userId) {
       /* ComShopFundsVO comShopFundsVO = comShopOrderDAO.queryStatis(userId);
        if (comShopFundsVO == null) {
            comShopFundsVO = new ComShopFundsVO();
            comShopFundsVO.setMonthTotal(new BigDecimal(0));
            comShopFundsVO.setTodayTotal(new BigDecimal(0));
            comShopFundsVO.setWeekTotal(new BigDecimal(0));
        }*/
        return R.ok();
    }
    @Override
    public R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
        /*Long pageNum = pageComShopFundsSearchDTO.getPageNum();
        Long pageSize = pageComShopFundsSearchDTO.getPageSize();
        Page page = new Page();
        if (pageNum == null || 0 == pageNum.longValue()) {
            pageNum = 1l;
        }
        if (pageSize == null || 0 == pageSize.longValue()) {
            pageSize = 10l;
        }
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        IPage<ComShopFundsOrderVO> comShopFundsOrderVOIPage =
            comShopOrderDAO.pageShopFunds(page, pageComShopFundsSearchDTO);*/
        return R.ok();
    }
    @Override
    public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
        Long pageNum = pageComShopOrderSearchDTO.getPageNum();
        Long pageSize = pageComShopOrderSearchDTO.getPageSize();
        Page page = new Page();
        page.setCurrent(pageNum);
        page.setSize(pageSize);
        if (pageNum == null || 0 == pageNum.longValue()) {
            page.setCurrent(1l);
        }
        if (pageSize == null || 0 == pageSize.longValue()) {
            page.setSize(10l);
        }
        IPage<ComShopOrderSearchVO> ipage = this.baseMapper.pageOrderBy(page, pageComShopOrderSearchDTO);
        return R.ok(ipage);
    }
    @Override
    public R capitalDetailByStore(Long id) {
        /*if (id == null) {
            R.fail("订单号不能为空!");
        }
        CapitalDetailVO vo = this.baseMapper.capitalDetailByStore(id);*/
        return R.ok();
    }
    /**
     * 微信支付订单回调
     *
     * @param wxPayNotifyOrderDTO 订单支付回调参数
     */
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
        log.info("微信订单支付回调开始处理逻辑");
        if (StringUtils.isEmpty(wxPayNotifyOrderDTO.getOrderTradeNo())) {
            log.error("微信支付回调失败,订单号为空");
            return;
        }
        log.info("微信订单支付回调开始查询订单");
        // 查询订单
        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerOrderDO>().lambda()
                .eq(ComShopFlowerOrderDO::getOrderNo, wxPayNotifyOrderDTO.getOrderTradeNo()));
        if (shopOrderDO == null) {
            log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo());
            return;
        }
        shopOrderDO.setStatus(ComShopFlowerOrderDO.status.ddps);
        shopOrderDO.setPayType(ComShopFlowerOrderDO.payType.wx);
        shopOrderDO.setPayStatus(ComShopFlowerOrderDO.payStatus.yes);
        shopOrderDO.setPayAmount(BigDecimal.valueOf(Double.valueOf(wxPayNotifyOrderDTO.getCashFee()) / 100));
        shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo());
        shopOrderDO.setPayTime(
                DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss")));
        this.baseMapper.updateById(shopOrderDO);
        // 查询订单商品
        List<ComShopFlowerOrderGoodsDO> orderGoodsList =
                comShopFlowerOrderGoodsDAO.selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().lambda()
                        .eq(ComShopFlowerOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo()));
        if (!orderGoodsList.isEmpty()) {
            int goodsNub = 0;
            for (ComShopFlowerOrderGoodsDO orderGood : orderGoodsList) {
                goodsNub += orderGood.getAmount();
                // 更新商品信息
                ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGood.getGoodsId());
                if (goodsDO != null) {
                    goodsDO.setSale(goodsDO.getSale() + orderGood.getAmount());
                    comShopFlowerGoodsDAO.updateById(goodsDO);
                }
                // 更新商品规格
                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGood.getGoodsAttrId());
                if (goodsAttrDO != null) {
                    goodsAttrDO.setSale(goodsAttrDO.getSale() + orderGood.getAmount());
                    //减库存
                    goodsAttrDO.setStock(goodsAttrDO.getStock() - orderGood.getAmount());
                    comShopFlowerGoodsAttrDAO.updateById(goodsAttrDO);
                }
            }
            // 更新店铺销量以及销售额
            ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId());
            if (storeDO != null) {
                storeDO.setSale(storeDO.getSale() + goodsNub);
                storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount()));
                convenientMerchantDAO.updateById(storeDO);
            }
        }
        // 添加订单操作记录
        ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
        orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
        orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.operationType.pay);
        orderOperateDO.setOperationTime(new Date());
        orderOperateDO.setOperationContent("用户支付订单");
        orderOperateDO.setOperationBy("用户");
        comShopFlowerOrderOperateDAO.insert(orderOperateDO);
        // 添加订单支付记录表
        ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO();
        orderPayDO.setOrderNo(shopOrderDO.getOrderNo());
        orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount());
        orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo());
        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
        orderPayDO.setPayAmount(shopOrderDO.getPayAmount());
        orderPayDO.setPayTime(shopOrderDO.getPayTime());
        orderPayDO.setStoreId(shopOrderDO.getStoreId());
        orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType());
        orderPayDO.setOrderId(shopOrderDO.getId());
        orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.zf);
        comShopFlowerOrderPayDAO.insert(orderPayDO);
    }
    /**
     * 订单去支付
     *
     * @param orderPayDTO 请求参数
     * @return 支付对象
     */
    public R wxPay(OrderPayDTO orderPayDTO) {
        // 创建返回参数
        ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO();
        // 查询订单
        ComShopFlowerOrderDO orderDO = comShopFlowerOrderDAO.selectOne(
                new QueryWrapper<ComShopFlowerOrderDO>().lambda().eq(ComShopFlowerOrderDO::getOrderNo, orderPayDTO.getOrderNo()));
        if (orderDO == null) {
            return R.fail("订单不存在");
        }
        try {
            BigDecimal money = orderDO.getTotalAmount();
            if (isTest) {
                money = BigDecimal.valueOf(0.01);
            }
            // 调用wx支付
            String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderPayDTO.getOpenId(),
                    orderDO.getOrderNo(), money, null);
            log.info("微信支付返回参数:" + xml);
            shopOrderVO.setPayResult(xml);
        } catch (Exception e) {
            log.error("调用微信支付异常,异常原因:" + e.getMessage());
        }
        shopOrderVO.setOrderId(orderDO.getId());
        shopOrderVO.setOrderNo(orderDO.getOrderNo());
        shopOrderVO.setOrderTotal(orderDO.getTotalAmount());
        return R.ok(shopOrderVO);
    }
    @Override
    public R pageOrderByStoreId(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
        Page page = new Page(pageComFlowerOrderListDTO.getPageNum(), pageComFlowerOrderListDTO.getPageSize());
        IPage<ComShopFlowerOrderStoreListVO> ipage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO);
        return R.ok(ipage);
    }
    @Override
    public R selectCountByDeliveryType(Integer deliveryType) {
        List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountByDeliveryType(deliveryType);
        Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount));
        ComShopOrderCountVO comShopOrderCountVO = new ComShopOrderCountVO();
        comShopOrderCountVO.setStatus(8);
        comShopOrderCountVO.setAmount(0);
        for (int i = 1; i < 8; i++) {
            if (collect.containsKey(i)) {
                Integer amount = collect.get(i);
                comShopOrderCountVO.setAmount(amount + comShopOrderCountVO.getAmount());
            }else {
                collect.put(i,0);
            }
        }
        collect.put(comShopOrderCountVO.getStatus(),comShopOrderCountVO.getAmount());
        return R.ok(collect);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java
New file
@@ -0,0 +1,144 @@
package com.panzhihua.service_community.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO;
import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO;
import com.panzhihua.common.utlis.OrderNoUtils;
import com.panzhihua.common.utlis.WxPayUtils;
import com.panzhihua.common.utlis.wx.WXPayUtil;
import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
import com.panzhihua.service_community.dao.ComShopFlowerOrderPayDAO;
import com.panzhihua.service_community.dao.ComShopFlowerRefundOrderDAO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
import com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO;
import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO;
import com.panzhihua.service_community.service.ComShopFlowerRefundOrderService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
/**
 * @ClassName: ComShopFlowerRefundOrderServiceImpl
 * @Author: yh
 * @Date: 2022/11/16 14:36
 * @Description: 退款订单
 */
@Slf4j
@Service
public class ComShopFlowerRefundOrderServiceImpl extends ServiceImpl<ComShopFlowerRefundOrderDAO, ComShopFlowerRefundOrderDO>
        implements ComShopFlowerRefundOrderService {
    @Value("${hcMin.app.isTest}")
    private Boolean isTest;
    @Value("${hcMin.app.appid}")
    private String appid;
    @Value("${hcMin.app.payKey}")
    private String payKey;
    @Value("${hcMin.app.mchId}")
    private String mchId;
    @Value("${hcMin.app.notifyUrl}")
    private String notifyUrl;
    @Resource
    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
    @Resource
    private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO;
    @Override
    public R createRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = new ComShopFlowerRefundOrderDO();
        BeanUtils.copyProperties(comShopFlowerRefundOrderDTO, comShopFlowerRefundOrderDO);
        // 生成退款订单号
        String refundOrderNo = OrderNoUtils.NextOrderNo(comShopFlowerRefundOrderDTO.getUserId());
        comShopFlowerRefundOrderDO.setRefundOrderNo(refundOrderNo);
        comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.clz);
        comShopFlowerRefundOrderDO.setDeleteStatus(ComShopFlowerRefundOrderDO.deleteStatus.no);
        this.baseMapper.insert(comShopFlowerRefundOrderDO);
        return R.ok();
    }
    @Override
    public R pageRefundOrder(PageComOrderRefundDTO pageComOrderRefundDTO) {
        Page page = new Page<>(pageComOrderRefundDTO.getPageNum(), pageComOrderRefundDTO.getPageSize());
        IPage<ComShopFlowerRefundOrderVO> pages = this.baseMapper.pageRefundOrder(page, pageComOrderRefundDTO);
        return R.ok(pages);
    }
    @Override
    public R updateRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = this.baseMapper.selectById(comShopFlowerRefundOrderDTO.getId());
        if (Objects.isNull(comShopFlowerRefundOrderDO)) {
            return R.fail("不存在该退款订单");
        }
        if (ComShopFlowerRefundOrderDO.handleResult.agree.equals(comShopFlowerRefundOrderDTO.getHandleResult())) {
            //处理退款事宜
            comShopFlowerRefundOrderDO.setRefundTime(new Date());
            comShopFlowerRefundOrderDO.setHandleTime(new Date());
            comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.agree);
            //微信处理退款
            try {
                String refundNo = WXPayUtil.generateNonceStr();
                ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId());
                String refundStr = WxPayUtils.refund(appid, mchId, comShopFlowerOrderDO.getWxTardeNo(), comShopFlowerRefundOrderDO.getPayAmount(),
                        comShopFlowerRefundOrderDO.getRefundAmount(), refundNo, isTest);
                log.info("退款请求接口返回参数:{}" , refundStr);
                Map<String, String> mapResult  = WXPayUtil.xmlToMap(refundStr);
                if (CollUtil.isNotEmpty(mapResult)) {
                    String return_code = (String) mapResult.get("return_code");
                    String result_code = (String) mapResult.get("result_code");
                    String return_msg = mapResult.get("return_msg");
                    ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO();
                    orderPayDO.setOrderNo(comShopFlowerOrderDO.getOrderNo());
                    orderPayDO.setOrderAmount(comShopFlowerOrderDO.getTotalAmount());
                    orderPayDO.setPayTime(new Date());
                    orderPayDO.setStoreId(comShopFlowerOrderDO.getStoreId());
                    orderPayDO.setDeliveryType(comShopFlowerOrderDO.getDeliveryType());
                    orderPayDO.setOrderId(comShopFlowerOrderDO.getId());
                    orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.tk);
                    orderPayDO.setRefundOrderNo(comShopFlowerRefundOrderDO.getRefundOrderNo());
                    orderPayDO.setPayAmount(comShopFlowerRefundOrderDO.getRefundAmount());
                    if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) {
                        //退款成功
                        comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tkcg);
                        // 添加订单支付记录表
//                        orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo());
                        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
                        orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg);
                    }else {
                        //退款失败
                        comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb);
                        comShopFlowerRefundOrderDO.setRemark(comShopFlowerRefundOrderDO.getRemark() + "_"+return_msg);
                        // 添加订单支付记录表
                        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no);
                        orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb);
                    }
                    comShopFlowerOrderPayDAO.insert(orderPayDO);
                }
            } catch (Exception e) {
                log.error("申请退款失败,"+e.getMessage());
                e.printStackTrace();
            }
        } else if (ComShopFlowerRefundOrderDO.handleResult.refuse.equals(comShopFlowerRefundOrderDTO.getHandleResult())) {
            comShopFlowerRefundOrderDO.setHandleTime(new Date());
            comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb);
            comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.refuse);
        }
        this.baseMapper.updateById(comShopFlowerRefundOrderDO);
        return R.ok();
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerUserAddressServiceImpl.java
New file
@@ -0,0 +1,132 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.service_community.dao.ComShopFlowerUserAddressDAO;
import com.panzhihua.service_community.dao.ComShopUserAddressDAO;
import com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO;
import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
import com.panzhihua.service_community.service.ComShopFlowerUserAddressService;
import com.panzhihua.service_community.service.ComShopUserAddressService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
 * @auther yh
 * @create 2022-11-08 17:25:45
 * @describe 用户收货地址表服务实现类
 */
@Slf4j
@Service
public class ComShopFlowerUserAddressServiceImpl extends ServiceImpl<ComShopFlowerUserAddressDAO, ComShopFlowerUserAddressDO>
    implements ComShopFlowerUserAddressService {
    /**
     * 查询用户收获地址列表
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 用户收货地址列表
     */
    @Override
    public R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO) {
        Page page = new Page<>(comShopAddressDTO.getPageNum(), comShopAddressDTO.getPageSize());
        return R.ok(this.baseMapper.pageUserAddressList(page, comShopAddressDTO.getUserId()));
    }
    /**
     * 用户添加收货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 添加结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO) {
        ComShopFlowerUserAddressDO userAddressDO = new ComShopFlowerUserAddressDO();
        BeanUtils.copyProperties(comShopAddressDTO, userAddressDO);
        // 如果新增的地址为默认地址,需要修改原来的默认地址为不默认
        if (userAddressDO.getIsDefault().equals(ComShopFlowerUserAddressDO.isDefault.yes)) {
            ComShopFlowerUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>()
                .eq("user_id", comShopAddressDTO.getUserId()).eq("is_default", ComShopFlowerUserAddressDO.isDefault.yes));
            if (oldUserAddressDO != null) {
                oldUserAddressDO.setIsDefault(ComShopFlowerUserAddressDO.isDefault.no);
                this.baseMapper.updateById(oldUserAddressDO);
            }
        }
        if (this.baseMapper.insert(userAddressDO) > 0) {
            return R.ok();
        } else {
            return R.fail("添加收货地址失败");
        }
    }
    /**
     * 用户修改收货地址
     *
     * @param comShopAddressDTO
     *            请求参数
     * @return 修改结果
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO) {
        // 查询用户收货地址
        ComShopFlowerUserAddressDO userAddressDO = this.baseMapper.selectById(comShopAddressDTO.getAddressId());
        if (userAddressDO == null) {
            return R.fail("未查询到用户收货地址信息");
        }
        BeanUtils.copyProperties(comShopAddressDTO, userAddressDO);
        // 如果要修改的地址为默认地址,需要修改原来的默认地址为不默认
        if (comShopAddressDTO.getIsDefault().equals(ComShopFlowerUserAddressDO.isDefault.yes)) {
            ComShopFlowerUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>()
                .eq("user_id", comShopAddressDTO.getUserId()).eq("is_default", ComShopFlowerUserAddressDO.isDefault.yes));
            if (oldUserAddressDO != null) {
                // 判断当前要修改的默认地址是否本来就是默认地址
                if (!oldUserAddressDO.getId().equals(userAddressDO.getId())) {
                    oldUserAddressDO.setIsDefault(ComShopFlowerUserAddressDO.isDefault.no);
                    this.baseMapper.updateById(oldUserAddressDO);
                }
            }
        }
        if (this.baseMapper.updateById(userAddressDO) > 0) {
            return R.ok();
        } else {
            return R.fail("添加收货地址失败");
        }
    }
    /**
     * 用户删除收货地址
     *
     * @param addressId
     *            收货地址id
     * @return 删除结果
     */
    public R shopDelUserAddress(Long addressId) {
        // 查询用户收货地址
        ComShopFlowerUserAddressDO userAddressDO = this.baseMapper.selectById(addressId);
        if (userAddressDO == null) {
            return R.fail("未查询到用户收货地址信息");
        }
        userAddressDO.setDeleteStatus(1);
        if (this.baseMapper.updateById(userAddressDO) > 0) {
            return R.ok();
        } else {
            return R.fail("删除收货地址失败");
        }
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientElevatingPointServiceImpl.java
@@ -1,33 +1,33 @@
package com.panzhihua.service_community.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.panzhihua.common.model.dtos.community.convenient.ConvenientElevatingPointDTO;
import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
import com.panzhihua.common.model.dtos.community.convenient.PageConvenientElevatingPointDTO;
import com.panzhihua.common.model.vos.R;
import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
import com.panzhihua.common.utlis.Snowflake;
import com.panzhihua.service_community.dao.ComActDAO;
import com.panzhihua.service_community.dao.ConvenientElevatingPointDAO;
import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
import com.panzhihua.service_community.model.dos.ComActDO;
import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
import com.panzhihua.service_community.model.dos.ConvenientMerchantDO;
import com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO;
import com.panzhihua.service_community.service.ConvenientElevatingPointService;
import com.panzhihua.service_community.util.MapDistance;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
/**
 * @ClassName: ConvenientElevatingPointServiceImpl
@@ -40,9 +40,12 @@
public class ConvenientElevatingPointServiceImpl extends ServiceImpl<ConvenientElevatingPointDAO, ConvenientElevatingPointDO> implements ConvenientElevatingPointService {
    @Resource
    private ComActDAO comActDAO;
    @Resource
    private ConvenientMerchantDAO convenientMerchantDAO;
    /**
     * 分页查询
     *
     * @param pageConvenientElevatingPointDTO
     * @return
     */
@@ -57,6 +60,7 @@
    /**
     * 新增
     *
     * @param convenientElevatingPointDTO
     * @return
     */
@@ -64,11 +68,11 @@
    @Transactional(rollbackFor = Exception.class)
    public R addPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO) {
        ConvenientElevatingPointDO convenientElevatingPointDO = new ConvenientElevatingPointDO();
        BeanUtils.copyProperties(convenientElevatingPointDTO,convenientElevatingPointDO);
        BeanUtils.copyProperties(convenientElevatingPointDTO, convenientElevatingPointDO);
        String communityId = convenientElevatingPointDTO.getCommunityId();
        if (nonNull(communityId)) {
            ComActDO comActDO = comActDAO.selectById(Long.parseLong(communityId.substring(communityId.lastIndexOf(",")+1)));
            if(comActDO!=null){
            ComActDO comActDO = comActDAO.selectById(Long.parseLong(communityId.substring(communityId.lastIndexOf(",") + 1)));
            if (comActDO != null) {
                convenientElevatingPointDO.setCommunityName(comActDO.getName());
            }
        }
@@ -78,6 +82,7 @@
    /**
     * 修改
     *
     * @param convenientElevatingPointDTO
     * @return
     */
@@ -91,8 +96,8 @@
        }
        String communityId = convenientElevatingPointDTO.getCommunityId();
        if (nonNull(communityId)) {
            ComActDO comActDO = comActDAO.selectById(Long.parseLong(communityId.substring(communityId.lastIndexOf(",")+1)));
            if(comActDO!=null){
            ComActDO comActDO = comActDAO.selectById(Long.parseLong(communityId.substring(communityId.lastIndexOf(",") + 1)));
            if (comActDO != null) {
                convenientElevatingPointDO.setCommunityName(comActDO.getName());
            }
        }
@@ -105,7 +110,7 @@
    @Override
    public R deletePoint(Long pointId, Long operator) {
        ConvenientElevatingPointDO convenientElevatingPointDO = this.baseMapper.selectById(pointId);
        if (convenientElevatingPointDO.getPrepareGoodsNum() > 0){
        if (convenientElevatingPointDO.getPrepareGoodsNum() > 0) {
            return R.fail("该提货点暂时无法删除!若想删除需保证待提货数量为0");
        }
        int result = this.baseMapper.deletePointById(pointId, operator);
@@ -120,4 +125,32 @@
        ConvenientElevatingPointDO convenientElevatingPointDO = this.baseMapper.selectById(pointId);
        return R.ok(convenientElevatingPointDO);
    }
    public R findPointByMerchantId(Long merchantId, String lat, String lng) {
        ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(merchantId);
        //服务最远距离 km
        Integer serviceRange = convenientMerchantDO.getServiceRange();
        Map<Object, Object> around = MapDistance.getAround(convenientMerchantDO.getLat(), convenientMerchantDO.getLon(), serviceRange * 1000 + "");
        String maxLat = around.get("maxLat").toString();
        String minLat = around.get("minLat").toString();
        String minLng = around.get("minLng").toString();
        String maxLng = around.get("maxLng").toString();
        List<ConvenientElevatingPointDO> convenientElevatingPointDOS = this.baseMapper.selectList(
                new LambdaQueryWrapper<ConvenientElevatingPointDO>()
                        .ge(ConvenientElevatingPointDO::getLat, minLng)
                        .le(ConvenientElevatingPointDO::getLat, maxLng)
                        .ge(ConvenientElevatingPointDO::getLon, minLat)
                        .le(ConvenientElevatingPointDO::getLon, maxLat));
        List<ConvenientElevatingPointVO> convenientElevatingPointVOS = new ArrayList<>();
        convenientElevatingPointDOS.forEach(f -> {
            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
            BeanUtils.copyProperties(f, convenientElevatingPointVO);
            Double distance = MapDistance.distanceOfTwoPoints(lng, lat, f.getLon(), f.getLat());
            convenientElevatingPointVO.setDistance(distance);
            convenientElevatingPointVOS.add(convenientElevatingPointVO);
        });
        return R.ok(convenientElevatingPointVOS);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientGoodsCategoryServiceImpl.java
@@ -110,10 +110,10 @@
    }
    @Override
    public R getAllGoodsCategories(String areaCode) {
    public R getAllGoodsCategories() {
        List<ConvenientGoodsCategoryVO> categoryVOList = new ArrayList<>();
        List<ConvenientGoodsCategoryDO> categoryDOS = this.baseMapper.selectList(new QueryWrapper<ConvenientGoodsCategoryDO>()
                .lambda().eq(ConvenientGoodsCategoryDO::getAreaCode,areaCode).orderByDesc(ConvenientGoodsCategoryDO::getWeight));
                .lambda().eq(ConvenientGoodsCategoryDO::getIsDel,0).orderByDesc(ConvenientGoodsCategoryDO::getWeight));
        if (!ObjectUtils.isEmpty(categoryDOS)) {
            categoryDOS.forEach(categoryDO -> {
                ConvenientGoodsCategoryVO categoryVO = new ConvenientGoodsCategoryVO();
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java
@@ -469,4 +469,14 @@
        }
        return true;
    }
    @Override
    public R getMerchantByUserId(Long userId) {
        ConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantByUserId(userId);
        if (nonNull(convenientMerchantVO)){
            List<Long> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(convenientMerchantVO.getId());
            convenientMerchantVO.setServiceIds(serviceIds);
        }
        return R.ok(convenientMerchantVO);
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MapDistance.java
New file
@@ -0,0 +1,123 @@
package com.panzhihua.service_community.util;
import java.util.HashMap;
import java.util.Map;
/**
 * @ClassName: MapDistance
 * @Author: yh
 * @Date: 2022/11/11 15:21
 * @Description: 经纬度处理
 */
public class MapDistance {
    private static double EARTH_RADIUS = 6378.137;
    private static double rad(double d) {
        return d * Math.PI / 180.0;
    }
    private static final double EARTH_RADIUS1 = 6370996.81;
    // 弧度
    private static double radian(double d) {
        return d * Math.PI / 180.0;
    }
    public static Double distanceOfTwoPoints(String lat1Str, String lng1Str, String lat2Str, String lng2Str) {
        Double lat1 = Double.parseDouble(lat1Str);
        Double lng1 = Double.parseDouble(lng1Str);
        Double lat2 = Double.parseDouble(lat2Str);
        Double lng2 = Double.parseDouble(lng2Str);
        double radLat1 = radian(lat1);
        double radLat2 = radian(lat2);
        double a = radLat1 - radLat2;
        double b = radian(lng1) - radian(lng2);
        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
                + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
        s = s * EARTH_RADIUS1;
        s = Math.round(s * 10000) / 10000;
        return s;
    }
    /**
     * 根据两个位置的经纬度,来计算两地的距离(单位为KM)
     * 参数为String类型
     * @return
     */
    public static String getDistance(String lat1Str, String lng1Str, String lat2Str, String lng2Str) {
        Double lat1 = Double.parseDouble(lat1Str);
        Double lng1 = Double.parseDouble(lng1Str);
        Double lat2 = Double.parseDouble(lat2Str);
        Double lng2 = Double.parseDouble(lng2Str);
        double patm = 2;
        double radLat1 = rad(lat1);
        double radLat2 = rad(lat2);
        double difference = radLat1 - radLat2;
        double mdifference = rad(lng1) - rad(lng2);
        double distance = patm * Math.asin(Math.sqrt(Math.pow(Math.sin(difference / patm), patm)
                + Math.cos(radLat1) * Math.cos(radLat2)
                * Math.pow(Math.sin(mdifference / patm), patm)));
        distance = distance * EARTH_RADIUS;
        String distanceStr = String.valueOf(distance);
        return distanceStr;
    }
    /**
     * 获取当前用户一定距离以内的经纬度值
     * 单位米 return minLat
     * 最小经度 minLng
     * 最小纬度 maxLat
     * 最大经度 maxLng
     * 最大纬度 minLat
     */
    public static Map<Object,Object> getAround(String latStr, String lngStr, String raidus) {
        Map<Object,Object> map = new HashMap<Object,Object>();
        Double latitude = Double.parseDouble(latStr);// 传值给经度
        Double longitude = Double.parseDouble(lngStr);// 传值给纬度
        Double degree = (24901 * 1609) / 360.0; // 获取每度
        double raidusMile = Double.parseDouble(raidus);
        Double mpdLng = Double.parseDouble((degree * Math.cos(latitude * (Math.PI / 180))+"").replace("-", ""));
        Double dpmLng = 1 / mpdLng;
        Double radiusLng = dpmLng * raidusMile;
        //获取最小经度
        Double minLat = longitude - radiusLng;
        // 获取最大经度
        Double maxLat = longitude + radiusLng;
        Double dpmLat = 1 / degree;
        Double radiusLat = dpmLat * raidusMile;
        // 获取最小纬度
        Double minLng = latitude - radiusLat;
        // 获取最大纬度
        Double maxLng = latitude + radiusLat;
        map.put("minLat", minLat+"");
        map.put("maxLat", maxLat+"");
        map.put("minLng", minLng+"");
        map.put("maxLng", maxLng+"");
        return map;
    }
    public static void main(String[] args) {
        //济南国际会展中心经纬度:117.11811  36.68484
        //趵突泉:117.00999000000002  36.66123
        //103.962128,30.57568
        //103.957232,30.636726
        System.out.println(getDistance("30.57568","103.962128","30.636726","103.957232"));
        //103.842654,30.560987
        System.out.println(getAround("103.842654", "30.560987", "5000"));
        //117.01028712333508(Double), 117.22593287666493(Double),
        //36.44829619896034(Double), 36.92138380103966(Double)
        distanceOfTwoPoints("30.57568","103.962128","30.636726","103.957232");
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComConvenientElevatingPointMapper.xml
@@ -51,4 +51,19 @@
    <update id="deletePointById">
        UPDATE com_convenient_elevating_point SET is_del = 1, updated_by = #{operator} WHERE id = #{pointId}
    </update>
    <select id="pageNoDelivery"
            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO">
        SELECT ccep.*,count(csfo.id) delivery_order_num ,sum(og.amount) delivery_goods_num
        FROM com_convenient_elevating_point ccep
        LEFT JOIN com_shop_flower_order ON ccep.id = csfo.point_id
        LEFT JOIN com_shop_flower_order_goods og ON og.order_id = csfo.id
        WHERE
        csfo.`status` = 1
        <if test="pageComFlowerOrderDeliveryDTO.storeId != null">
            and csfo.store_id = #{pageComFlowerOrderDeliveryDTO.storeId}
        </if>
        GROUP BY ccep.id
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml
@@ -1113,7 +1113,7 @@
        FROM
            com_street
        WHERE
            area_code = '510423'
            area_code = '510423' and app_id = 'wx0cef797390444b75'
        ORDER BY
            create_at DESC
    </select>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerEvaluateDAO.xml
@@ -1,22 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComShopFlowerEvaluateDAO">
  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO">
    <!--@mbg.generated-->
    <!--@Table com_shop_flower_evaluate-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
    <result column="goods_id" jdbcType="VARCHAR" property="goodsId" />
    <result column="user_id" jdbcType="BIGINT" property="userId" />
    <result column="evaluate_time" jdbcType="TIMESTAMP" property="evaluateTime" />
    <result column="evaluate_type" jdbcType="TINYINT" property="evaluateType" />
    <result column="evaluate_content" jdbcType="VARCHAR" property="evaluateContent" />
    <result column="evaluate_pic" jdbcType="VARCHAR" property="evaluatePic" />
    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, order_no, goods_id, user_id, evaluate_time, evaluate_type, evaluate_content,
    evaluate_pic, create_at
  </sql>
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO">
        <!--@mbg.generated-->
        <!--@Table com_shop_flower_evaluate-->
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="order_no" jdbcType="VARCHAR" property="orderNo"/>
        <result column="goods_id" jdbcType="BIGINT" property="goodsId"/>
        <result column="user_id" jdbcType="BIGINT" property="userId"/>
        <result column="evaluate_time" jdbcType="TIMESTAMP" property="evaluateTime"/>
        <result column="evaluate_type" jdbcType="TINYINT" property="evaluateType"/>
        <result column="evaluate_content" jdbcType="VARCHAR" property="evaluateContent"/>
        <result column="evaluate_pic" jdbcType="VARCHAR" property="evaluatePic"/>
        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id, order_no, goods_id, user_id, evaluate_time, evaluate_type, evaluate_content,
        evaluate_pic, create_at
    </sql>
    <select id="pageEvaluate" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO">
        select * from com_shop_flower_evaluate where 1=1
        <if test="pageComShopFlowerEvaluateDTO.goodsId != null">
            and goods_id = #{pageComShopFlowerEvaluateDTO.goodsId}
        </if>
        <if test="pageComShopFlowerEvaluateDTO.orderId != null">
            and order_no = #{pageComShopFlowerEvaluateDTO.orderId}
        </if>
        <if test="pageComShopFlowerEvaluateDTO.userId != null">
            and user_id = #{pageComShopFlowerEvaluateDTO.userId}
        </if>
        <if test="pageComShopFlowerEvaluateDTO.evaluateType != null">
            and evaluate_type = #{pageComShopFlowerEvaluateDTO.evaluateType}
        </if>
    </select>
    <select id="selectListLimit" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO">
        SELECT * FROM com_shop_flower_evaluate WHERE goods_id = #{goodsId} ORDER BY create_at LIMIT 3
    </select>
    <select id="selectByOrderNo" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO">
        SELECT * FROM com_shop_flower_evaluate WHERE order_no = #{orderNo}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsMapper.xml
@@ -60,8 +60,12 @@
    </select>
    <select id="pageShopGoodByApps" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerGoodsVO">
        select csg.id,csg.`name`,csg.store_id,csg.goods_pic,csg.images,csg.`status`,csg.sale,csg.original_price
        ,csg.price,csg.unit,csg.`order`,csg.stock,csg.details,csg.delivery_type, csg.create_at from com_shop_flower_goods as
        csg left join com_convenient_merchants as css on css.id = csg.store_id where 1=1 and csg.delete_status = 1 and
        ,csg.price,csg.unit,csg.`order`,csg.stock,csg.details,csg.delivery_type, csg.create_at,
        (SELECT count(fog.id) FROM com_shop_flower_order_goods as fog WHERE fog.goods_id = 1) as order_num
        from com_shop_flower_goods as csg
        left join com_convenient_merchants as css on css.id = csg.store_id
        left join  com_convenient_goods_scope as cgs on cgs.goods_id = csg.id
        where 1=1 and csg.delete_status = 1 and
        css.`business_status` = 0
        <if test='comShopFlowerGoodsDTO.name != null and comShopFlowerGoodsDTO.name !=&quot;&quot;'>
            AND csg.`name` like concat('%',#{comShopFlowerGoodsDTO.name},'%')
@@ -70,6 +74,7 @@
        <if test='comShopFlowerGoodsDTO.storeId != null '>AND csg.store_id = #{comShopFlowerGoodsDTO.storeId}</if>
        <if test='comShopFlowerGoodsDTO.status != null '>AND csg.status = #{comShopFlowerGoodsDTO.status}</if>
        <if test='comShopFlowerGoodsDTO.deliveryType != null '>AND csg.delivery_type = #{comShopFlowerGoodsDTO.deliveryType}</if>
        <if test='comShopFlowerGoodsDTO.categoriesId != null '>AND cgs.goods_category_id = #{comShopFlowerGoodsDTO.categoriesId}</if>
        order by sale desc,create_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDAO.xml
@@ -1,41 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComShopFlowerOrderDAO">
  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO">
    <!--@mbg.generated-->
    <!--@Table com_shop_flower_order-->
    <id column="id" jdbcType="BIGINT" property="id" />
    <result column="store_id" jdbcType="BIGINT" property="storeId" />
    <result column="user_id" jdbcType="BIGINT" property="userId" />
    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
    <result column="pay_no" jdbcType="VARCHAR" property="payNo" />
    <result column="wx_tarde_no" jdbcType="VARCHAR" property="wxTardeNo" />
    <result column="status" jdbcType="TINYINT" property="status" />
    <result column="pay_status" jdbcType="TINYINT" property="payStatus" />
    <result column="receiver_id" jdbcType="BIGINT" property="receiverId" />
    <result column="delete_status" jdbcType="TINYINT" property="deleteStatus" />
    <result column="total_amount" jdbcType="DECIMAL" property="totalAmount" />
    <result column="discount_amount" jdbcType="DECIMAL" property="discountAmount" />
    <result column="pay_amount" jdbcType="DECIMAL" property="payAmount" />
    <result column="pay_type" jdbcType="TINYINT" property="payType" />
    <result column="pay_time" jdbcType="TIMESTAMP" property="payTime" />
    <result column="delivery_type" jdbcType="TINYINT" property="deliveryType" />
    <result column="delivery_status" jdbcType="TINYINT" property="deliveryStatus" />
    <result column="remark" jdbcType="VARCHAR" property="remark" />
    <result column="logistics_company" jdbcType="VARCHAR" property="logisticsCompany" />
    <result column="logistics_no" jdbcType="VARCHAR" property="logisticsNo" />
    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
    <result column="update_at" jdbcType="TIMESTAMP" property="updateAt" />
    <result column="delivery_time" jdbcType="TIMESTAMP" property="deliveryTime" />
    <result column="service_time" jdbcType="TIMESTAMP" property="serviceTime" />
    <result column="receiving_time" jdbcType="TIMESTAMP" property="receivingTime" />
    <result column="refund_time" jdbcType="TIMESTAMP" property="refundTime" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
    id, store_id, user_id, order_no, pay_no, wx_tarde_no, `status`, pay_status, receiver_id,
    delete_status, total_amount, discount_amount, pay_amount, pay_type, pay_time, delivery_type,
    delivery_status, remark, logistics_company, logistics_no, create_at, update_at, delivery_time,
    service_time, receiving_time, refund_time
  </sql>
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO">
        <!--@mbg.generated-->
        <!--@Table com_shop_flower_order-->
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="store_id" jdbcType="BIGINT" property="storeId"/>
        <result column="user_id" jdbcType="BIGINT" property="userId"/>
        <result column="order_no" jdbcType="VARCHAR" property="orderNo"/>
        <result column="pay_no" jdbcType="VARCHAR" property="payNo"/>
        <result column="wx_tarde_no" jdbcType="VARCHAR" property="wxTardeNo"/>
        <result column="status" jdbcType="TINYINT" property="status"/>
        <result column="pay_status" jdbcType="TINYINT" property="payStatus"/>
        <result column="receiver_id" jdbcType="BIGINT" property="receiverId"/>
        <result column="delete_status" jdbcType="TINYINT" property="deleteStatus"/>
        <result column="total_amount" jdbcType="DECIMAL" property="totalAmount"/>
        <result column="discount_amount" jdbcType="DECIMAL" property="discountAmount"/>
        <result column="pay_amount" jdbcType="DECIMAL" property="payAmount"/>
        <result column="pay_type" jdbcType="TINYINT" property="payType"/>
        <result column="pay_time" jdbcType="TIMESTAMP" property="payTime"/>
        <result column="delivery_type" jdbcType="TINYINT" property="deliveryType"/>
        <result column="delivery_status" jdbcType="TINYINT" property="deliveryStatus"/>
        <result column="remark" jdbcType="VARCHAR" property="remark"/>
        <result column="logistics_company" jdbcType="VARCHAR" property="logisticsCompany"/>
        <result column="logistics_no" jdbcType="VARCHAR" property="logisticsNo"/>
        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
        <result column="update_at" jdbcType="TIMESTAMP" property="updateAt"/>
        <result column="delivery_time" jdbcType="TIMESTAMP" property="deliveryTime"/>
        <result column="service_time" jdbcType="TIMESTAMP" property="serviceTime"/>
        <result column="receiving_time" jdbcType="TIMESTAMP" property="receivingTime"/>
        <result column="refund_time" jdbcType="TIMESTAMP" property="refundTime"/>
        <result column="delivery_id" jdbcType="TIMESTAMP" property="deliveryId"/>
        <result column="delivery_no" jdbcType="TIMESTAMP" property="deliveryNo"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id, store_id, user_id, order_no, pay_no, wx_tarde_no, `status`, pay_status, receiver_id,
        delete_status, total_amount, discount_amount, pay_amount, pay_type, pay_time, delivery_type,
        delivery_status, remark, logistics_company, logistics_no, create_at, update_at, delivery_time,
        service_time, receiving_time, refund_time,point_id,delivery_id,delivery_no
    </sql>
    <select id="pageOrderList" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO">
        select id as orderId,order_no,store_id,`status`,pay_status,receiver_id,total_amount as
        orderTotal,pay_amount,delivery_type,remark,create_at from com_shop_flower_order as cso where 1=1 and
        cso.delete_status = 1
        and cso.user_id = #{comOrderListDTO.userId} <if test='comOrderListDTO.status != null'>AND cso.status =
        #{comOrderListDTO.status}
    </if>   order by create_at desc
    </select>
    <select id="pageOrderListNoDelivery" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO">
        select id as orderId,order_no,store_id,`status`,pay_status,receiver_id,total_amount as
        orderTotal,pay_amount,delivery_type,remark,create_at from com_shop_flower_order as cso where 1=1 and
        cso.delete_status = 1 and cso.status = 1 and cso.delivery_type = 1
        <if test='comOrderListDTO.pointId != null'>AND cso.point_id = #{comOrderListDTO.pointId}
        </if>
        order by create_at desc
    </select>
    <select id="pageOrderBy" resultType="com.panzhihua.common.model.vos.shop.ComShopOrderSearchVO">
        SELECT distinct sr.id, sr.store_id, sr.user_id, su.phone AS userName , sr.order_no, sr.pay_no,
        sr.wx_tarde_no, sr.status, sr.pay_status, sr.receiver_id,
        sr.total_amount, sr.discount_amount, sr.pay_amount, sr.pay_type,
        sr.pay_time, sr.delivery_type, sr.delivery_status, sr.logistics_company,
        sr.logistics_no, sr.create_at, uad.name as receiver_name, uad.phone as receiver_phone,
        group_concat(og.goods_name)
        as goodsName, ss.name as store_name ,ccep.adress
        FROM com_shop_flower_order sr LEFT JOIN com_shop_flower_order_goods og ON sr.id = og.order_id
        LEFT JOIN com_shop_flower_goods_attr ga ON og.goods_attr_id = ga.id
        LEFT JOIN sys_user su ON sr.user_id = su.user_id
        LEFT JOIN com_shop_flower_user_address uad ON sr.receiver_id = uad.id
        LEFT JOIN com_convenient_merchants ss ON sr.store_id = ss.id
        LEFT JOIN  com_convenient_elevating_point ccep on ccep.id = sr.point_id
        WHERE sr.delete_status = 1
        <if test='pageComShopOrderSearchDTO.userId != null'>
            AND sr.user_id = #{pageComShopOrderSearchDTO.userId}
        </if>
        <if test='pageComShopOrderSearchDTO.createAtStart != null'>
            AND #{pageComShopOrderSearchDTO.createAtStart} <![CDATA[<=]]>  sr.create_at
        </if>
        <if test='pageComShopOrderSearchDTO.createAtEnd != null'>
            AND sr.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd}
        </if>
        <if test='pageComShopOrderSearchDTO.orderNo != null  '>
            AND sr.order_no like concat('%',#{pageComShopOrderSearchDTO.orderNo}, '%')
        </if>
        <if test='pageComShopOrderSearchDTO.userAccount != null  '>
            AND su.phone like concat('%',#{pageComShopOrderSearchDTO.userAccount}, '%')
        </if>
        <if test='pageComShopOrderSearchDTO.receiverAccount != null  '>
            AND uad.name like concat('%',#{pageComShopOrderSearchDTO.receiverAccount}, '%')
        </if>
        <if test='pageComShopOrderSearchDTO.receiverPhone != null '>
            AND uad.phone like concat('%',#{pageComShopOrderSearchDTO.receiverPhone}, '%')
        </if>
        <if test='pageComShopOrderSearchDTO.goodsName != null'>
            AND og.goods_name like concat('%',#{pageComShopOrderSearchDTO.goodsName}, '%')
        </if>
        <if test='pageComShopOrderSearchDTO.status != null '>
            AND sr.status = #{pageComShopOrderSearchDTO.status}
        </if>
        <if test='pageComShopOrderSearchDTO.storeName != null '>
            AND ss.name like concat('%',#{pageComShopOrderSearchDTO.storeName}, '%')
        </if>
        <if test='pageComShopOrderSearchDTO.storeId != null '>
            AND ss.id = #{pageComShopOrderSearchDTO.storeId}
        </if>
        <if test='pageComShopOrderSearchDTO.storeUserId != null '>
            AND ss.sys_user_id = #{pageComShopOrderSearchDTO.storeUserId}
        </if>
        <if test='pageComShopOrderSearchDTO.deliveryType != null '>
            AND sr.delivery_type = #{pageComShopOrderSearchDTO.deliveryType}
        </if>
        GROUP BY sr.id ORDER BY sr.create_at DESC
    </select>
    <update id="updateOrder">
        update com_shop_flower_order set delivery_time = #{deliveryTime},status = #{status},delivery_id =
        #{deliveryId},delivery_no = #{deliveryNo}
        where id in
        <foreach item='id' index='index' collection='orderIds' open='(' separator=',' close=')'>
            #{id}
        </foreach>
    </update>
    <update id="updateOrderStatus">
         update com_shop_flower_order set service_time = #{serviceTime},status = #{status} where delivery_id =#{deliveryId}
    </update>
    <select id="pageOrderByStoreId" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderStoreListVO">
        SELECT
            o.id order_id,
            o.order_no,
            o.delivery_type,
            o.`status`,
            g.goods_name,
            g.goods_attr_name,
            g.amount,
            g.goods_attr_price,
            g.goods_attr_pic,
            o.total_amount,
            a.`name`,
            a.phone,
            a.province_name,
            a.city_name,
            a.district_name,
            a.detail_address
            FROM
                com_shop_flower_order o
                LEFT JOIN com_shop_flower_order_goods g ON o.id = g.order_id
                LEFT JOIN com_shop_flower_user_address a ON a.id = o.receiver_id
            WHERE 1=1 and o.delivery_type = 2
        <if test="comOrderListDTO.storeId != null">
            and o.store_id = #{comOrderListDTO.storeId}
        </if>
    </select>
    <select id="selectCountByDeliveryType"
            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderCountVO">
        SELECT count(1) amount , `status` FROM com_shop_flower_order WHERE delivery_type = #{deliveryType} GROUP BY `status`
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDeliveryMapper.xml
New file
@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.panzhihua.service_community.dao.ComShopFlowerOrderDeliveryDAO">
    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO">
        <!--@mbg.generated-->
        <!--@Table com_shop_flower_order_delivery-->
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="store_id" jdbcType="BIGINT" property="storeId"/>
        <result column="delivery_no" jdbcType="VARCHAR" property="deliveryNo"/>
        <result column="delivery_status" jdbcType="TINYINT" property="deliveryStatus"/>
        <result column="delete_status" jdbcType="TINYINT" property="deleteStatus"/>
        <result column="delivery_time" jdbcType="TIMESTAMP" property="deliveryTime"/>
        <result column="service_time" jdbcType="TIMESTAMP" property="serviceTime"/>
        <result column="delivery_type" jdbcType="TINYINT" property="deliveryType"/>
        <result column="point_id" jdbcType="BIGINT" property="pointId"/>
        <result column="point_name" jdbcType="BIGINT" property="pointName"/>
        <result column="delivery_order_num" jdbcType="INTEGER" property="deliveryOrderNum"/>
        <result column="delivery_goods_num" jdbcType="INTEGER" property="deliveryGoodsNum"/>
        <result column="delivery_amount" jdbcType="DECIMAL" property="deliveryAmount"/>
        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
        <result column="update_at" jdbcType="TIMESTAMP" property="updateAt"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id, store_id, delivery_no, delivery_status, delete_status, delivery_time, service_time,
        delivery_type, point_id, point_name, delivery_order_num, delivery_goods_num, delivery_amount,
        create_at, update_at
    </sql>
    <select id="pageDelivery" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO">
        select * from com_shop_flower_order_delivery where 1=1
        <if test="pageComFlowerOrderDeliveryDTO.deliveryNo != null and pageComFlowerOrderDeliveryDTO.deliveryNo != ''">
            and delivery_no like concat(#{pageComFlowerOrderDeliveryDTO.deliveryNo}, '%' )
        </if>
        <if test="pageComFlowerOrderDeliveryDTO.deliveryStatus != null">
            and delivery_status = #{pageComFlowerOrderDeliveryDTO.deliveryStatus}
        </if>
        order by update_at desc
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderGoodsDAO.xml
@@ -27,4 +27,7 @@
    amount, goods_attr_price, goods_attr_pic, price, free_shipping_price, collate_price, 
    goods_name, create_at
  </sql>
    <select id="selectSumAmount" resultType="java.lang.Integer">
     SELECT sum(amount) FROM `com_shop_flower_order_goods`  WHERE store_id = #{storeId}
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderPayDAO.xml
@@ -14,6 +14,12 @@
    <result column="pay_time" jdbcType="TIMESTAMP" property="payTime" />
    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
    <result column="update_at" jdbcType="TIMESTAMP" property="updateAt" />
    <result column="store_id"  property="storeId" />
    <result column="delivery_type"  property="deliveryType" />
    <result column="order_id"  property="orderId" />
    <result column="refund_order_no"  property="refundOrderNo" />
    <result column="refund_status"  property="refundStatus" />
    <result column="pay_type"  property="payType" />
  </resultMap>
  <sql id="Base_Column_List">
    <!--@mbg.generated-->
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerRefundOrderDAO.xml
@@ -29,4 +29,16 @@
    pay_amount, refund_amount, refund_reason, refund_pic, create_at, update_at, handle_time, 
    refund_time, handle_result, remark
  </sql>
    <select id="pageRefundOrder" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO">
      select * from com_shop_flower_refund_order where  1=1
      <if test="pageComOrderRefundDTO.status != null">
        and status = #{pageComOrderRefundDTO.status}
      </if>
      <if test="pageComOrderRefundDTO.storeId != null">
        and store_id = #{pageComOrderRefundDTO.storeId}
      </if>
      <if test="pageComOrderRefundDTO.userId != null">
        and user_id = #{pageComOrderRefundDTO.userId}
      </if>
    </select>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientGoodsCategoryMapper.xml
@@ -47,5 +47,9 @@
    <select id="checkCategoryIsUsing" resultType="java.lang.Integer">
        SELECT COUNT(1) FROM com_convenient_goods_scope WHERE goods_category_id = #{categoryId}
    </select>
    <insert id="createGoodsCategoryRelation">
        INSERT INTO com_convenient_goods_scope (id,goods_id, goods_category_id, goods_category_name, created_by, created_at)
        VALUES (#{id},#{goodsId}, #{goodsCategoryId}, #{goodsCategoryName}, #{createdBy}, NOW())
    </insert>
</mapper>
springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml
@@ -75,6 +75,13 @@
        WHERE ccm.id = #{merchantId}
    </select>
    <select id="selectMerchantByUserId" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
        SELECT ccm.*, su.account, su.status AS accountStatus
        FROM  com_convenient_merchants ccm
        LEFT JOIN sys_user su ON ccm.user_id = su.user_id
        WHERE ccm.user_id = #{userId}
    </select>
    <select id="selectMerchantByName" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
        SELECT
            temp.id,
springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyRepairServiceImpl.java
@@ -46,7 +46,7 @@
        }
        IPage<ComPropertyRepairVO> list = comPropertyRepairDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()), commonPage);
        for (ComPropertyRepairVO record : list.getRecords()) {
            record.setRepairName(DesensitizedUtil.mobilePhone(record.getRepairPhone()));
            record.setRepairPhone(DesensitizedUtil.mobilePhone(record.getRepairPhone()));
            record.setRepairName(DesensitizedUtil.chineseName(record.getRepairName()));
            record.setFeedback(DesensitizedUtil.chineseName(record.getFeedback()));
        }
@@ -68,4 +68,8 @@
    }
    public static void main(String[] args) {
        System.out.println(DesensitizedUtil.mobilePhone("13980594622"));
    }
}
springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -331,6 +331,14 @@
            return R.fail();
        }
        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
        //获取后台商家user
        SysUserDO sysUser = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 5).eq(SysUserDO::getPhone, sysUserDO.getPhone()).eq(SysUserDO::getAppId, appId));
        //判断是否是商家账号
        if (nonNull(sysUser)){
            loginUserInfoVO.setBackstageUserId(sysUser.getUserId());
            loginUserInfoVO.setBackstageType(5);
        }
        if (nonNull(sysUserDO.getStreetId())){
            loginUserInfoVO.setStreetId(sysUserDO.getStreetId());
        }
@@ -532,6 +540,14 @@
                loginUserInfoVO.setIsDpcMember(1);
            }
        }
        //获取后台商家user
        SysUserDO sysUser = userDao.selectOne(
                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 5).eq(SysUserDO::getPhone, sysUserDO.getPhone()).eq(SysUserDO::getAppId, "wx118de8a734d269f0"));
        //判断是否是商家账号
        if (nonNull(sysUser)){
            loginUserInfoVO.setBackstageUserId(sysUser.getUserId());
            loginUserInfoVO.setBackstageType(5);
        }
        //是否为物业公司账号
        if (nonNull(sysUserDO.getPhone())){
            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());