Sfoglia il codice sorgente

提交还原微信端

qiubo 4 anni fa
parent
commit
77498c54f8
60 ha cambiato i file con 2085 aggiunte e 1763 eliminazioni
  1. 9 8
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/bo/CustomerDetails.java
  2. 1 1
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/config/MyBatisConfig.java
  3. 41 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/config/WxMaConfiguration.java
  4. 0 46
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/BasePositionManageController.java
  5. 0 33
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CarbonStatisticsController.java
  6. 0 64
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CollectiveFarmerManageController.java
  7. 0 74
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CompanyManageController.java
  8. 0 16
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CustomerController.java
  9. 0 215
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CustomerInfoController.java
  10. 0 129
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/FarmerInfoManageController.java
  11. 0 157
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/GoodsInfoManageController.java
  12. 0 28
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/OrderDetailManageController.java
  13. 0 320
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/OrderInfoManagerController.java
  14. 0 49
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayApplyManageController.java
  15. 0 119
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayApplyManagerController.java
  16. 0 88
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayOrderManagerController.java
  17. 0 32
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayVoucherManageController.java
  18. 0 69
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PovertyAreaManageController.java
  19. 0 159
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/ProductInfoManageController.java
  20. 0 94
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/ProductTypeManageController.java
  21. 0 45
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/WebIndexController.java
  22. 231 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/CustomerController.java
  23. 124 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/FarmerManagerController.java
  24. 378 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/GoodsManagerController.java
  25. 336 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/OrderManagerController.java
  26. 355 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/WechatAppController.java
  27. 485 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/WechatManagerController.java
  28. 4 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/dao/CustomerInfoMapper.java
  29. 3 2
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/CustomerCacheService.java
  30. 4 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/CustomerInfoService.java
  31. 4 3
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/CustomerService.java
  32. 4 3
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/impl/CustomerCacheServiceImpl.java
  33. 43 0
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/impl/CustomerInfoServiceImpl.java
  34. 21 6
      carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/impl/CustomerServiceImpl.java
  35. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/BasePositionMapper.xml
  36. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CarbonCalculateRuleMapper.xml
  37. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CarbonStatisticsMapper.xml
  38. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CollectiveFarmerMapper.xml
  39. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CustomerChannelMapper.xml
  40. 1 1
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CustomerCompanyInfoMapper.xml
  41. 17 1
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CustomerInfoMapper.xml
  42. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/FarmerInfoMapper.xml
  43. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsCredentialInfoMapper.xml
  44. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsDetailMapper.xml
  45. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsInfoMapper.xml
  46. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsOrderDetailMapper.xml
  47. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsOrderInfoMapper.xml
  48. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsPayOrderMapper.xml
  49. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsSaleInfoMapper.xml
  50. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/OrderPayApplyMapper.xml
  51. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/OrderPayVoucherMapper.xml
  52. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/PovertyAreaMapper.xml
  53. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductBelongMapper.xml
  54. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductExpansionMapper.xml
  55. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductInfoMapper.xml
  56. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductTypeExpansionMapper.xml
  57. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductTypeMapper.xml
  58. 0 0
      carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/WebIndexService.xml
  59. 22 0
      common-core/src/main/java/com/hcloud/microserver/commoncore/base/BaseController.java
  60. 2 1
      common-core/src/main/java/com/hcloud/microserver/commoncore/enums/ResultEnum.java

+ 9 - 8
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/bo/CustomerDetails.java

@@ -2,6 +2,7 @@ package com.hcloud.microserver.bank.bo;
 
 
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
@@ -14,10 +15,10 @@ import java.util.Collection;
  * Created by macro on 2018/8/3.
  */
 public class CustomerDetails implements UserDetails {
-    private CustomerInfo customerInfo;
+    private CustomerInfoForm customerInfoForm;
 
-    public CustomerDetails(CustomerInfo customerInfo) {
-        this.customerInfo = customerInfo;
+    public CustomerDetails(CustomerInfoForm customerInfoForm) {
+        this.customerInfoForm = customerInfoForm;
     }
 
     @Override
@@ -28,12 +29,12 @@ public class CustomerDetails implements UserDetails {
 
     @Override
     public String getPassword() {
-        return customerInfo.getPasswd();
+        return customerInfoForm.getPasswd();
     }
 
     @Override
     public String getUsername() {
-        return customerInfo.getAccount();
+        return customerInfoForm.getAccount();
     }
 
     @Override
@@ -53,10 +54,10 @@ public class CustomerDetails implements UserDetails {
 
     @Override
     public boolean isEnabled() {
-        return customerInfo.getState() == 1;
+        return customerInfoForm.getState() == 1;
     }
 
-    public CustomerInfo getCustomerInfo() {
-        return customerInfo;
+    public CustomerInfoForm getCustomerInfo() {
+        return customerInfoForm;
     }
 }

+ 1 - 1
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/config/MyBatisConfig.java

@@ -10,6 +10,6 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
  */
 @Configuration
 @EnableTransactionManagement
-@MapperScan({"com.hcloud.microserver.bank.dao","com.hcloud.microserver.sys.service.dao"})
+@MapperScan({"com.hcloud.microserver.bank.dao"})
 public class MyBatisConfig {
 }

+ 41 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/config/WxMaConfiguration.java

@@ -0,0 +1,41 @@
+package com.hcloud.microserver.bank.config;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ConditionalOnClass(WxMaService.class)
+public class WxMaConfiguration {
+
+    /**
+     * 设置微信小程序的appid
+     */
+    @Value("${wx.ma.appId}")
+    private String appId;
+
+    /**
+     * 设置微信小程序的app secret
+     */
+    @Value("${wx.ma.secret}")
+
+    private String secret;
+
+
+
+    @Bean
+    @ConditionalOnMissingBean
+    public WxMaService wxMaService() {
+        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+        config.setAppid(appId);
+        config.setSecret(secret);
+        WxMaService wxMaService = new WxMaServiceImpl();
+        wxMaService.setWxMaConfig(config);
+        return wxMaService;
+    }
+}

+ 0 - 46
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/BasePositionManageController.java

@@ -1,46 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.hcloud.microserver.bank.service.BasePositionService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-
-import com.hcloud.microserver.facade.carbon.entity.BasePosition;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-/**
- * @author xiezt
- */
-@Slf4j
-@RestController
-@RequestMapping("/basePosition")
-public class BasePositionManageController extends BaseController {
-
-    @Autowired
-    private BasePositionService basePositionService;
-
-    @PostMapping("/findByCodeAndLevel")
-    public ResultVO findByCodeAndLevel(@RequestBody BasePosition basePosition) {
-        List<BasePosition> positionList = this.basePositionService.queryByCodeAndLevel(basePosition);
-        return success(positionList);
-    }
-
-    @PostMapping("/findByCodes")
-    public ResultVO findByCodes(@RequestBody List<String> codes) {
-        log.info("list string codes ===============> {}", codes);
-        List<BasePosition> positionList = this.basePositionService.queryByCodes(codes);
-        return success(positionList);
-    }
-
-    @PostMapping("/findChongqingArea")
-    public ResultVO findChongqingArea(@RequestBody(required = false) BasePosition basePosition) {
-        List<BasePosition> positionList = this.basePositionService.queryByChongqingArea(basePosition);
-        return success(positionList);
-    }
-}

+ 0 - 33
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CarbonStatisticsController.java

@@ -1,33 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.CarbonStatisticsService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.facade.carbon.entity.CarbonPlatformStatiticsNum;
-import com.hcloud.microserver.facade.carbon.entity.CarbonStatisticsBuyTrend;
-import com.hcloud.microserver.facade.carbon.forms.CarbonTrendForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-@RequestMapping("/statistics")
-public class CarbonStatisticsController extends BaseController {
-    @Autowired
-    private CarbonStatisticsService carbonStatisticsService;
-    @GetMapping("/carbon/statistics/total")
-    public ResultVO<CarbonPlatformStatiticsNum> carbonPlatformStatitics(){
-        CarbonPlatformStatiticsNum carbonPlatformStatiticsNum = carbonStatisticsService.carbonPlatformTotal();
-        return success(carbonPlatformStatiticsNum);
-    }
-
-    @PostMapping("/carbon/buy/amont")
-    public ResultVO buyAmont(CarbonTrendForm form){
-        PageInfo<CarbonStatisticsBuyTrend> info = carbonStatisticsService.carbonStatisticsBuyTrend(form);
-        return success(info.getList(),info.getTotal());
-    }
-}

+ 0 - 64
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CollectiveFarmerManageController.java

@@ -1,64 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.CollectiveFarmerService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.facade.carbon.forms.CollectiveFarmerForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/collectiveFarmer")
-public class CollectiveFarmerManageController extends BaseController {
-
-    @Autowired
-    private CollectiveFarmerService collectiveFarmerService;
-
-
-    @PostMapping("/save")
-    public ResultVO save(@RequestBody CollectiveFarmerForm collectiveFarmerForm) {
-        int success = this.collectiveFarmerService.save(collectiveFarmerForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/delete")
-    public ResultVO delete(@RequestBody CollectiveFarmerForm collectiveFarmerForm) {
-        int success = this.collectiveFarmerService.softRemove(collectiveFarmerForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/update")
-    public ResultVO update(@RequestBody CollectiveFarmerForm collectiveFarmerForm) {
-        int success = this.collectiveFarmerService.modify(collectiveFarmerForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(@RequestBody CollectiveFarmerForm collectiveFarmerForm) {
-        PageInfo pageInfo = this.collectiveFarmerService.queryListByPage(collectiveFarmerForm);
-        if (Objects.isNull(pageInfo)){ return success(null, 0);}
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-}

+ 0 - 74
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CompanyManageController.java

@@ -1,74 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.alibaba.fastjson.JSONObject;
-import com.hcloud.microserver.bank.service.CompanyService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.util.BeanCopyUtil;
-import com.hcloud.microserver.facade.carbon.entity.CustomerCompanyInfo;
-import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
-import com.hcloud.microserver.facade.carbon.forms.CustomerCompanyInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-@Slf4j
-@RestController
-@RequestMapping("/company")
-public class CompanyManageController extends BaseController {
-
-    @Autowired
-    private CompanyService companyService;
-
-
-    @PostMapping("/add")
-    public ResultVO addCompany(@RequestBody JSONObject jsonObject) {
-        log.info("前端的参数: {}", jsonObject.toJSONString());
-        CustomerInfoForm customerInfoForm = jsonObject.getObject("customerInfoForm", CustomerInfoForm.class);
-        CustomerCompanyInfoForm customerCompanyInfoForm = jsonObject.getObject("customerCompanyInfoForm", CustomerCompanyInfoForm.class);
-
-        CustomerInfo customerInfo = BeanCopyUtil.convertBean(customerInfoForm, CustomerInfo.class);
-        CustomerCompanyInfo customerCompanyInfo = BeanCopyUtil.convertBean(customerCompanyInfoForm, CustomerCompanyInfo.class);
-
-        int success = this.companyService.saveCompany(customerInfo, customerCompanyInfo);
-        if (success >= 1)
-            return success();
-        return failure();
-    }
-
-
-    @PostMapping("/update")
-    public ResultVO updateCompany(@RequestBody JSONObject jsonObject) {
-        log.info("前端的参数: {}", jsonObject.toJSONString());
-        CustomerInfoForm customerInfoForm = jsonObject.getObject("customerInfoForm", CustomerInfoForm.class);
-        CustomerCompanyInfoForm customerCompanyInfoForm = jsonObject.getObject("customerCompanyInfoForm", CustomerCompanyInfoForm.class);
-
-        CustomerInfo customerInfo = BeanCopyUtil.convertBean(customerInfoForm, CustomerInfo.class);
-        CustomerCompanyInfo customerCompanyInfo = BeanCopyUtil.convertBean(customerCompanyInfoForm, CustomerCompanyInfo.class);
-
-        int success = this.companyService.modifyCompany(customerInfo, customerCompanyInfo);
-        if (success >= 1)
-            return success();
-        return failure();
-    }
-
-
-    @PostMapping("/delete")
-    public ResultVO deleteCompany(@RequestBody JSONObject jsonObject) {
-        log.info("前端的参数: {}", jsonObject.toJSONString());
-        CustomerInfoForm customerInfoForm = jsonObject.getObject("customerInfoForm", CustomerInfoForm.class);
-        CustomerCompanyInfoForm customerCompanyInfoForm = jsonObject.getObject("customerCompanyInfoForm", CustomerCompanyInfoForm.class);
-
-        CustomerInfo customerInfo = BeanCopyUtil.convertBean(customerInfoForm, CustomerInfo.class);
-        CustomerCompanyInfo customerCompanyInfo = BeanCopyUtil.convertBean(customerCompanyInfoForm, CustomerCompanyInfo.class);
-
-        int success = this.companyService.removeCompany(customerInfo, customerCompanyInfo);
-        if (success >= 1)
-            return success();
-        return failure();
-    }
-}

+ 0 - 16
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CustomerController.java

@@ -1,16 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/wap/customer")
-@Api(description = "H5端客户服务")
-public class CustomerController {
-
-
-}

+ 0 - 215
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/CustomerInfoController.java

@@ -1,215 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.CustomerCompanyInfoService;
-import com.hcloud.microserver.bank.service.CustomerInfoService;
-import com.hcloud.microserver.bank.service.OrderPayVoucherService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.commoncore.util.Md5Util;
-import com.hcloud.microserver.commoncore.util.TracedCodeUtils;
-import com.hcloud.microserver.facade.carbon.forms.CustomerCompanyInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.OrderPayVoucherForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/customer")
-public class CustomerInfoController extends BaseController{
-
-    /**
-     * 默认初始密码
-     */
-    private static final String DEFAULT_PWD="000000";
-
-    @Autowired
-    private CustomerInfoService customerInfoService;
-
-    @Autowired
-    private CustomerCompanyInfoService customerCompanyInfoService;
-
-    @Autowired
-    private OrderPayVoucherService orderPayVoucherService;
-
-    /**
-     * 分页查询爱心用户信息
-     *
-     * @param customerInfoForm
-     * @return
-     */
-    @PostMapping("/searchCustomerByPage")
-    public ResultVO searchCustomerInfoByPage(@RequestBody CustomerInfoForm customerInfoForm) {
-        PageInfo pageInfo = customerInfoService.searchCustomerByPage(customerInfoForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 查询爱心用户明细
-     *
-     * @param guid
-     * @return
-     */
-    @GetMapping("/getCustomerInfoById")
-    public ResultVO getCustomerInfoById(@RequestParam("guid") String guid) {
-        CustomerInfoForm customerInfoForm = customerInfoService.getCustomerInfoById(guid);
-        return success(customerInfoForm);
-    }
-
-    /**
-     * 保存爱心用户信息
-     *
-     * @param customerInfoForm
-     * @return
-     */
-    @PostMapping("/saveCustomerInfo")
-    public ResultVO saveCustomerInfo(@RequestBody CustomerInfoForm customerInfoForm) {
-        customerInfoForm.setAccount(TracedCodeUtils.getCommonRandomCode());
-        //customerInfoForm.setPasswd(Md5Util.toMD5(CodeUtil.getSearchId()));
-        customerInfoForm.setPasswd(Md5Util.toMD5(DEFAULT_PWD));
-        int i = customerInfoService.saveCustomerInfoByChannelInfo(customerInfoForm);
-        if(i==0){return failure();}
-        return success(customerInfoForm);
-    }
-
-    /**
-     * 修改爱心用户信息
-     *
-     * @param customerInfoForm
-     * @return
-     */
-    @PostMapping("/updateCustomerInfo")
-    public ResultVO modifiedCustomerInfo(@RequestBody CustomerInfoForm customerInfoForm) {
-        int i = customerInfoService.modifyByPrimaryKeySelective(customerInfoForm);
-        if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 通过登录账号查询爱心用户信息
-     * @param account
-     * @return
-     */
-    @GetMapping("/getCustomerInfoByAccount")
-    public ResultVO getCustomerInfoByAccount(@RequestParam("account") String account) {
-        CustomerInfoForm customerInfoForm = customerInfoService.getCustomerInfoByAccount(account);
-        if(customerInfoForm==null){return new ResultVO(ResultEnum.LOGIN_ACCOUNT_MISS);}
-        return success(customerInfoForm);
-    }
-
-    /**
-     * 多条件查询爱心用户信息
-     * @param queryStr
-     * @return
-     */
-    @GetMapping("/getCustomerInfoByInfo")
-    public ResultVO getCustomerInfoByInfo(@RequestParam("queryStr") String queryStr) {
-       CustomerInfoForm customerInfo =  customerInfoService.getCustomerInfoByInfo(queryStr);
-       if(Objects.nonNull(customerInfo)){
-           return success(customerInfo);
-       }
-        return failure();
-    }
-
-    /**
-     * 通过爱心用户ID,查询爱心用户企业认证信息
-     * @param customerId
-     * @return
-     */
-    @GetMapping("/getCustomerCompanyInfo")
-    public ResultVO getCustomerCompanyInfo(@RequestParam("customerId") String customerId) {
-       CustomerCompanyInfoForm customerCompanyInfoForm =  customerCompanyInfoService.getCustomerCompanyInfoByCustomerId(customerId);
-        return success(customerCompanyInfoForm);
-    }
-
-    /**
-     * 通过登录渠道编码查询用户信息
-     * @param type
-     * @param threeCode
-     * @return
-     */
-    @GetMapping("/getCustomerInfoByChannel")
-    public ResultVO getCustomerInfoByChannelInfo(@RequestParam("channelType") Integer type, @RequestParam("code") String threeCode) {
-        CustomerInfoForm customerInfoForm = customerInfoService.getCustomerInfoByChannelInfo(type,threeCode);
-        return success(customerInfoForm);
-    }
-
-    /**
-     * 获取离线支付凭证通过用户信息
-     * @param customerId
-     * @return
-     */
-    @GetMapping("/getOfflinePayVoucherById")
-    public ResultVO getOfflinePayVoucherById(@RequestParam("customerId") String customerId) {
-       List<OrderPayVoucherForm> list =  orderPayVoucherService.getPayVoucherInfoByOrderId(customerId);
-        return success(list);
-    }
-
-    /**
-     * 企业分页
-     * @param customerCompanyInfoForm
-     * @return
-     */
-    @PostMapping("/searchCompanyByPage")
-    public ResultVO searchCompanyByPage(@RequestBody CustomerCompanyInfoForm customerCompanyInfoForm) {
-        PageInfo pageInfo = this.customerCompanyInfoService.queryListByPage(customerCompanyInfoForm);
-        if (Objects.isNull(pageInfo)){ return success(null, 0);}
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-    /**
-     * 验证爱心用户企业认证信息
-     * @param customerCompanyInfoForm
-     * @return
-     */
-    @PostMapping("/validateCompanyInfo")
-    public ResultVO validateCustomerCompany(@RequestBody CustomerCompanyInfoForm customerCompanyInfoForm) {
-        int i =customerCompanyInfoService.validateCompanyInfo(customerCompanyInfoForm);
-        if (i==0){return failure();}
-        return success();
-    }
-
-    @PostMapping("/resetPassword")
-    public ResultVO resetPassword(@RequestBody CustomerInfoForm customerInfoForm) {
-        int i = this.customerInfoService.resetPassword(customerInfoForm);
-        if (i > 0){ return success();}
-        return failure();
-    }
-
-    /**
-     * 更新用户信息(微信登录渠道及用户信息内的微信支付信息)
-     *
-     * @param customerInfoForm
-     * @return
-     */
-    @PostMapping("/updateCustomerInfoForWeChat")
-    public ResultVO updateCustomerInfoForWeChat(@RequestBody CustomerInfoForm customerInfoForm) {
-        int i =customerInfoService.updateCustomerInfoForWeChat(customerInfoForm);
-        if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 绑定用户手机号,并合并订单相同手机号的订单信息
-     *
-     * @param customerId
-     * @param phone
-     * @return
-     */
-    @GetMapping("/bindCustomerPhone")
-    public ResultVO bindCustomerPhone(@RequestParam("customerId") String customerId,
-                                      @RequestParam("phone") String phone) {
-        if(null!=phone && !"".equals(phone)){
-            int i = customerInfoService.bindCustomerPhone(customerId,phone);
-            if(i==0){return failure();}
-        }
-        return success();
-    }
-}

+ 0 - 129
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/FarmerInfoManageController.java

@@ -1,129 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.FarmerInfoService;
-import com.hcloud.microserver.bank.service.PovertyAreaService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.facade.carbon.entity.FarmerInfo;
-import com.hcloud.microserver.facade.carbon.forms.FarmerInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.PovertyAreaForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/farmer")
-public class FarmerInfoManageController extends BaseController {
-
-
-    @Autowired
-    private FarmerInfoService farmerInfoService;
-
-    @Autowired
-    private PovertyAreaService povertyAreaService;
-
-    @PostMapping("/save")
-    public ResultVO save(@RequestBody FarmerInfoForm farmerInfoForm) {
-        int success = this.farmerInfoService.save(farmerInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-    @PostMapping("/delete")
-    public ResultVO delete(@RequestBody FarmerInfoForm farmerInfoForm) {
-        int success = this.farmerInfoService.softRemove(farmerInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-    @PostMapping("/update")
-    public ResultVO update(@RequestBody FarmerInfoForm farmerInfoForm) {
-        int success = this.farmerInfoService.modify(farmerInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(@RequestBody FarmerInfoForm farmerInfoForm) {
-        PageInfo pageInfo = this.farmerInfoService.queryListByPage(farmerInfoForm);
-        if (Objects.isNull(pageInfo)){ return success(null, 0);}
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-    /**
-     * 查询贫困区域(分页查询)
-     *
-     * @param povertyAreaForm
-     * @return
-     */
-    @PostMapping("/searchAreaByPage")
-    public ResultVO searchPovertyAreaByPage(@RequestBody PovertyAreaForm povertyAreaForm) {
-       PageInfo pageInfo = povertyAreaService.queryListByPage(povertyAreaForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 通过贫困区域询贫困户信息
-     *
-     * @param farmerInfoForm
-     * @return
-     */
-    @PostMapping("/getFarmerInfoByAreaId")
-    public ResultVO getFarmerInfoByAreaId(@RequestBody FarmerInfoForm farmerInfoForm) {
-       PageInfo pageInfo =  farmerInfoService.searchFarmerInfoByPovertyArea(farmerInfoForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 查询贫困区域明细信息(含贫困户统计信息,贫困区域贫困户列表,贫困区域基本信息)
-     *
-     * @param areaId
-     * @return
-     */
-    @GetMapping("/getPovertyAreaById")
-    public ResultVO getPovertyAreaById(@RequestParam("areaId") String areaId) {
-       PovertyAreaForm povertyAreaForm =povertyAreaService.getFullPovertyAreaInfoById(areaId);
-       if(povertyAreaForm==null){return new ResultVO(ResultEnum.FAILURE);}
-        return success(povertyAreaForm);
-    }
-
-    @PostMapping("/searchByProductGuid")
-    public ResultVO searchByProductGuid(@RequestParam(name = "productGuid") String productGuid) {
-        List<FarmerInfo> farmerInfos = this.farmerInfoService.queryByProductGuid(productGuid);
-        return success(farmerInfos);
-    }
-
-    /**
-     * 获取农户明细信息
-     *
-     * @param farmerId
-     * @return
-     */
-    @GetMapping("/getFarmerInfoById")
-    public ResultVO getFarmerInfoById(@RequestParam("guid") String farmerId) {
-        FarmerInfo farmerInfo = farmerInfoService.queryByPrimaryKey(farmerId);
-        if(Objects.nonNull(farmerInfo)){
-            return success(farmerInfo);
-        }
-        return failure();
-    }
-
-    @PostMapping("/searchByCollectiveId")
-    public ResultVO searchByCollectiveId(@RequestParam(name = "collectiveId") String collectiveId) {
-        List<FarmerInfo> farmerInfos = this.farmerInfoService.queryByCollectiveId(collectiveId);
-        return success(farmerInfos);
-    }
-}

+ 0 - 157
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/GoodsInfoManageController.java

@@ -1,157 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.bo.GoodsInfoBO;
-import com.hcloud.microserver.bank.service.GoodsInfoService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.commoncore.service.RedisUtils;
-import com.hcloud.microserver.facade.carbon.entity.GoodsInfo;
-import com.hcloud.microserver.facade.carbon.entity.GoodsSaleInfo;
-import com.hcloud.microserver.facade.carbon.entity.ProductInfo;
-import com.hcloud.microserver.facade.carbon.forms.FarmerInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.GoodsInfoForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/goods")
-public class GoodsInfoManageController extends BaseController {
-
-
-
-    @Autowired
-    private GoodsInfoService goodsInfoService;
-
-
-    @Autowired
-    private RedisUtils redisUtils;
-
-
-    @PostMapping("/shelves")
-    public ResultVO shelves(@RequestBody List<GoodsInfoForm> goodsInfoForms) {
-        int success = this.goodsInfoService.batchShelves(goodsInfoForms);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/delete")
-    public ResultVO delete(@RequestBody GoodsInfoForm goodsInfoForm) {
-        int success = this.goodsInfoService.remove(goodsInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/update")
-    public ResultVO update(@RequestBody GoodsInfoForm goodsInfoForm) {
-        int success = this.goodsInfoService.modify(goodsInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(@RequestBody GoodsInfoForm goodsInfoForm) {
-        PageInfo pageInfo = this.goodsInfoService.queryListByPage(goodsInfoForm);
-        if (Objects.isNull(pageInfo)){ return success(null, 0);}
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-    @PostMapping("/searchJoinListByPage")
-    public ResultVO searchJoinListByPage(@RequestBody GoodsInfoForm goodsInfoForm) {
-        PageInfo pageInfo = this.goodsInfoService.queryJoinListByPage(goodsInfoForm);
-        if (Objects.isNull(pageInfo)){ return success(null, 0);}
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-    /**
-     * 分页查询商品类型信息(移动端展示)
-     *
-     * @param goodsInfoForm
-     * @return
-     */
-    @PostMapping("/searchGoodsInfoByPage")
-    public ResultVO searchGoodsInfoByPage(@RequestBody GoodsInfoForm goodsInfoForm) {
-        PageInfo pageInfo = goodsInfoService.searchGoodsInfoByPage(goodsInfoForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 获取商品详情
-     * @param goodsId
-     * @return
-     */
-    @GetMapping("/getGoodsInfoById")
-    public ResultVO getGoodsInfoById(@RequestParam("goodsId") String goodsId) {
-        GoodsInfoBO goodsInfoBO = goodsInfoService.getGoodsInfoByGuid(goodsId);
-        return success(goodsInfoBO);
-    }
-
-    /**
-     * 根据需求碳汇量计算商品列表
-     *
-     * @param carbon
-     * @return
-     */
-    @GetMapping("/getGoodsInfoByCarbon")
-    public ResultVO getGoodsInfoByCarbon(@RequestParam("carbon") String carbon) {
-        List<GoodsInfoForm> goodsList = goodsInfoService.getGoodsInfoByCarbon(carbon);
-        return success(goodsList);
-    }
-
-    @PostMapping("/updateGoods")
-    public ResultVO updateGoods(@RequestBody JSONObject jsonObject) {
-        JSONArray jsonArray = jsonObject.getJSONArray("productInfos");
-        List<ProductInfo> productInfos = JSONObject.parseArray(jsonArray.toJSONString(), ProductInfo.class);
-        GoodsInfoForm goodsInfoForm = jsonObject.getObject("goodsInfoForm", GoodsInfoForm.class);
-        boolean cond1 = Objects.nonNull(productInfos) && productInfos.size() > 0;
-        boolean cond2 = Objects.nonNull(goodsInfoForm);
-        if (cond1 && cond2) {
-            GoodsInfo goodsInfo = new GoodsInfo();
-            GoodsSaleInfo goodsSaleInfo = new GoodsSaleInfo();
-            goodsInfo.setGuid(goodsInfoForm.getGuid());
-            goodsInfo.setCarbonVal(goodsInfoForm.getCarbonVal());
-            goodsInfo.setPrice(goodsInfoForm.getPrice());
-            goodsInfo.setGoodsSaleDate(goodsInfoForm.getGoodsSaleDate());
-            goodsInfo.setGoodsUse(goodsInfoForm.getGoodsUse());
-            goodsSaleInfo.setSaleTargets(goodsInfoForm.getSaleTargets());
-            goodsSaleInfo.setSaleType(goodsInfoForm.getSaleType());
-            int success = this.goodsInfoService.modifyGoods(goodsInfo, goodsSaleInfo, productInfos);
-            if (success > 0) {
-                return success();
-            }
-        }
-
-        return failure();
-    }
-
-    /**
-     * 通过农户Id查询所属商品
-     *
-     * @param farmerInfoForm
-     * @return
-     */
-    @PostMapping("/getGoodsInfoByFarmerId")
-    public ResultVO getGoodsInfoByFarmerId(@RequestBody FarmerInfoForm farmerInfoForm) {
-       PageInfo pageInfo = goodsInfoService.searchGoodsInfoByFarmerId(farmerInfoForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-}

+ 0 - 28
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/OrderDetailManageController.java

@@ -1,28 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.hcloud.microserver.bank.service.OrderDetailInfoService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.facade.carbon.entity.GoodsOrderDetail;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/orderDetail")
-public class OrderDetailManageController extends BaseController {
-
-    @Autowired
-    private OrderDetailInfoService orderDetailInfoService;
-
-
-    @PostMapping("/searchByOrderGuid")
-    public ResultVO searchByOrderGuid(@RequestParam(name = "orderGuid") String orderGuid) {
-        List<GoodsOrderDetail> goodsOrderDetails = this.orderDetailInfoService.findByGoodsOrderInfoGuid(orderGuid);
-        return success(goodsOrderDetails);
-    }
-}

+ 0 - 320
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/OrderInfoManagerController.java

@@ -1,320 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.google.common.collect.Lists;
-import com.hcloud.microserver.bank.bo.CredentialInfoBO;
-import com.hcloud.microserver.bank.service.*;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.commoncore.util.BeanCopyUtil;
-import com.hcloud.microserver.facade.carbon.entity.GoodsInfo;
-import com.hcloud.microserver.facade.carbon.forms.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.math.BigDecimal;
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/order")
-
-public class OrderInfoManagerController extends BaseController {
-
-    @Autowired
-    private OrderInfoService orderInfoService;
-
-    @Autowired
-    private OrderDetailInfoService orderDetailInfoService;
-
-    @Autowired
-    private CredentialInfoService credentialInfoService;
-
-    @Autowired
-    private CustomerInfoService customerInfoService;
-
-    @Autowired
-    private GoodsInfoService goodsInfoService;
-
-    /**
-     * 分页查询订单信息
-     *
-     * @param goodsOrderInfoForm
-     * @return
-     */
-    @PostMapping("/searchOrderInfoPage")
-
-    public ResultVO searchOrderInfoByPage(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm) {
-        PageInfo pageInfo = orderInfoService.searchOrderInfoByPage(goodsOrderInfoForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 分页获取爱心用户订单信息
-     *
-     * @param goodsOrderInfoForm
-     * @return
-     */
-    @PostMapping("/getOrderInfoByCustomerId")
-
-    public ResultVO getOrderInfoByCustomerId(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm) {
-        PageInfo pageInfo =orderInfoService.searchOrderInfoByCustomerId(goodsOrderInfoForm);
-        List list = pageInfo.getList();
-        if(null!=list && list.size()>0){
-            List<GoodsOrderInfoForm> orderInfoFormList = BeanCopyUtil.convertList(list,GoodsOrderInfoForm.class);
-            for (GoodsOrderInfoForm form:orderInfoFormList) {
-                String guid = form.getGuid();
-                List<GoodsOrderDetailForm> detailFormList =orderDetailInfoService.getOrderDetailListByOrderId(guid);
-                form.setGoodsOrderDetailForm(detailFormList);
-            }
-            return success(orderInfoFormList,pageInfo.getTotal());
-        }
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 查询订单明细信息
-     *
-     * @param orderId
-     * @return
-     */
-    @GetMapping("/getOrderDetail")
-
-    public ResultVO getOrderDetailInfoByOrderId(@RequestParam("orderId") String orderId) {
-        List<GoodsOrderDetailForm> list =  orderDetailInfoService.getOrderDetailListByOrderId(orderId);
-        return success(list);
-    }
-
-    /**
-     * 获取某订单基本信息
-     *
-     * @param orderId
-     * @return
-     */
-    @GetMapping("/getOrderInfoById")
-
-    public ResultVO getOrderInfoById(@RequestParam("guid") String orderId) {
-       GoodsOrderInfoForm goodsOrderInfoForm =  orderInfoService.getOrderInfoById(orderId);
-        return success(goodsOrderInfoForm);
-    }
-
-    /**
-     * 删除订单信息
-     *
-     * @param orderId
-     * @return
-     */
-    @GetMapping("/delOderInfoById")
-
-    public ResultVO delOrderInfo(@RequestParam("guid") String orderId) {
-        GoodsOrderInfoForm goodsOrderInfoForm = orderInfoService.getOrderInfoById(orderId);
-        if(Objects.nonNull(goodsOrderInfoForm)){
-            Integer orderStatus = goodsOrderInfoForm.getOrderStatus();
-            if(orderStatus==1){
-                int i = orderInfoService.rollbackOrderInfo(orderId);
-                if(i==0){return failure();}
-            }else {
-                int j = orderInfoService.delOrderInfoByLogical(orderId);
-                if(j==0){return failure();}
-            }
-        }
-        return success();
-    }
-
-    /**
-     * 更新订单信息
-     *
-     * @param goodsOrderInfoForm
-     * @return
-     */
-    @PostMapping("/modifiedOrderInfo")
-
-    public ResultVO updateOrderInfo(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm) {
-        int i = orderInfoService.modifyByPrimaryKeySelective(goodsOrderInfoForm);
-        if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 统一下单生成商品订单,并生成支付订单。返回支付订单信息
-     *
-     * @param goodsOrderInfoForm
-     * @return
-     */
-    @PostMapping("/insertOrderInfoForPay")
-
-    public ResultVO saveOrderInfoAndPayOrderInfo(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm) {
-        int i = convertOrderInfoForm(goodsOrderInfoForm);
-        if(i==1){
-            String orderId = orderInfoService.saveFullOrderInfo(goodsOrderInfoForm);
-            if(orderId==null){return failure();}
-            return success(goodsOrderInfoForm);
-        }else if(i==-1){
-            return new ResultVO(ResultEnum.GOODS_BUY_AUTH);
-        }
-        return failure();
-    }
-
-    /**
-     * 转换客户订单信息,用于生成客户订单(含快照信息)
-     * @param goodsOrderInfoForm
-     * @return
-     */
-    private int convertOrderInfoForm(GoodsOrderInfoForm goodsOrderInfoForm){
-        //生成订单信息的类别
-        List<GoodsInfoForm> goodsList = goodsOrderInfoForm.getGoodsList();
-        CustomerInfoForm customerInfoForm = customerInfoService.getCustomerInfoById(goodsOrderInfoForm.getFkCustomerGuid());
-        if(Objects.nonNull(customerInfoForm)){
-            Integer customerType = customerInfoForm.getCustomerType();
-            String  typeName = "个人账户";
-            if(customerType==2){
-                typeName="履约企业";
-            }else if(customerType==3) {
-                typeName="普通履约企业";
-            }
-            goodsOrderInfoForm.setCustomerName(customerInfoForm.getCustomerName());
-            goodsOrderInfoForm.setCustomerType(typeName);
-            goodsOrderInfoForm.setOrderStatus(1);
-            //计算碳汇量及碳汇销售总价,生成订单详情列表
-            List<GoodsOrderDetailForm> goodsOrderDetailList = Lists.newArrayList();
-            Double amountMoney = 0d;
-            Double carbonAmount = 0d;
-            if(null!=goodsList && goodsList.size()>0){
-                for (GoodsInfoForm bean:goodsList) {
-                    BigDecimal carbon = bean.getCarbonSkin();
-                    String goodsId = bean.getGuid();
-                    Integer goodsUse =Integer.valueOf(bean.getGoodsUse()) ;
-                    //判断用户类型是否超出购买权限,如果超出购买权限将不允许直接购买
-                    if(customerType==1 && goodsUse==1){
-                        return -1;
-                    }
-                    //有非法商品数量,不生成订单详情
-                    if(carbon.intValue()==0 || Objects.isNull(carbon)){continue;}
-                    GoodsOrderDetailForm detailForm = new GoodsOrderDetailForm();
-                    GoodsInfo goodsInfo = goodsInfoService.queryByPrimaryKey(goodsId);
-                    BigDecimal detailMoney = goodsInfo.getPrice().multiply(carbon);
-                    detailForm.setFkGoodsGuid(goodsId);
-                    detailForm.setAmount(detailMoney);
-                    detailForm.setSaleNum(carbon);
-                    detailForm.setGoodsName(goodsInfo.getGoodsName());
-                    detailForm.setGoodsPrice(goodsInfo.getPrice());
-                    carbonAmount+=carbon.doubleValue();
-                    amountMoney+=detailMoney.doubleValue();
-                    goodsOrderDetailList.add(detailForm);
-                }
-                goodsOrderInfoForm.setOrderAmount(BigDecimal.valueOf(amountMoney));
-                goodsOrderInfoForm.setOrderCarbonAmount(BigDecimal.valueOf(carbonAmount));
-                goodsOrderInfoForm.setGoodsOrderDetailForm(goodsOrderDetailList);
-                return 1;
-            }
-        }
-        return 0;
-    }
-
-    /**
-     * 支付回调后,统一更新订单信息及支付订单信息
-     *
-     * @param payOrderNO
-     * @return
-     */
-    @GetMapping("/modifiedOrderInfoForPay")
-
-    public ResultVO updateOrderInfoAndPayOrderInfo(@RequestParam("payNo") String payOrderNO) {
-        int i = orderInfoService.updateFullOrderInfo(payOrderNO,2);
-        if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 获取用户证书列表
-     *
-     * @param goodsCredentialInfoForm
-     * @return
-     */
-    @PostMapping("/getCustomerCredentialList")
-
-    public ResultVO getCustomerCredentialList(@RequestBody GoodsCredentialInfoForm goodsCredentialInfoForm) {
-        PageInfo pageInfo = credentialInfoService.searchCredentialByPage(goodsCredentialInfoForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 订单支付超时取消
-     *
-     * @param orderId
-     * @return
-     */
-    @GetMapping("/callbackOrderInfo")
-
-    public ResultVO callbackOrderInfo(@RequestParam("orderId") String orderId) {
-        int i = orderInfoService.rollbackOrderInfo(orderId);
-        if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 通过订单编号查询订单信息
-     *
-     * @param orderNo
-     * @return
-     */
-    @GetMapping("/getOrderInfoByNo")
-
-    public ResultVO getOrderInfoByOrderNo(@RequestParam("orderNo") String orderNo) {
-      GoodsOrderInfoForm goodsOrderInfoForm =  orderInfoService.getOrderInfoByNo(orderNo);
-      if(Objects.nonNull(goodsOrderInfoForm)){
-          success(goodsOrderInfoForm);
-      }
-        return failure();
-    }
-
-    /**
-     * 取消用户订单
-     *
-     * @param orderId
-     * @return
-     */
-    @GetMapping("/cancelOrderInfo")
-
-    public ResultVO cancelOrderInfo(@RequestParam("orderId") String orderId) {
-        //取消订单主体信息
-
-        //取消支付订单信息
-
-        //取消离线支付申请信息
-
-        return null;
-    }
-
-    /**
-     * 通过碳汇需求量购买指定农户下的碳汇商品
-     *
-     * @param goodsOrderInfoForm
-     * @return
-     */
-
-    public ResultVO saveOrderInfoForFarmer(GoodsOrderInfoForm goodsOrderInfoForm) {
-        //TODO 查询农户下的产品信息
-
-        //TODO 根据需求的碳汇量计算出产品列表
-        return null;
-    }
-
-    @GetMapping("/getCredential")
-
-    public ResultVO getCredentialInfo(@RequestParam(name = "guid") String guid) {
-        GoodsCredentialInfoForm goodsCredentialInfoForm = this.credentialInfoService.queryByPrimaryKey(guid);
-        return success(goodsCredentialInfoForm);
-    }
-
-    @GetMapping("/getCredentialByOrderId")
-
-    public ResultVO getCredentialByOrderId(@RequestParam(name = "orderId") String orderId) {
-        CredentialInfoBO credentialInfoBO = this.credentialInfoService.queryByOrderId(orderId);
-        return success(credentialInfoBO);
-    }
-}

+ 0 - 49
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayApplyManageController.java

@@ -1,49 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.alibaba.fastjson.JSONObject;
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.OrderPayApplyService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.util.BeanCopyUtil;
-import com.hcloud.microserver.facade.carbon.entity.GoodsOrderInfo;
-import com.hcloud.microserver.facade.carbon.entity.OrderPayApply;
-import com.hcloud.microserver.facade.carbon.forms.GoodsOrderInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.OrderPayApplyForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Objects;
-
-@RestController
-@RequestMapping("/payApply")
-public class PayApplyManageController extends BaseController {
-
-    @Autowired
-    private OrderPayApplyService orderPayApplyService;
-
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(@RequestBody OrderPayApplyForm orderPayApplyForm) {
-        PageInfo pageInfo = this.orderPayApplyService.searchByPage(orderPayApplyForm);
-        if (Objects.isNull(pageInfo)) {
-            return success(null, 0);
-        }
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-
-    @PostMapping("/audit")
-    public ResultVO audit(@RequestBody JSONObject jsonObject) {
-        GoodsOrderInfoForm goodsOrderInfoForm = jsonObject.getObject("goodsOrderInfoForm", GoodsOrderInfoForm.class);
-        OrderPayApplyForm orderPayApplyForm = jsonObject.getObject("orderPayApplyForm", OrderPayApplyForm.class);
-        GoodsOrderInfo goodsOrderInfo = BeanCopyUtil.convertBean(goodsOrderInfoForm, GoodsOrderInfo.class);
-        OrderPayApply orderPayApply = BeanCopyUtil.convertBean(orderPayApplyForm, OrderPayApply.class);
-        int success = this.orderPayApplyService.audit(orderPayApply, goodsOrderInfo);
-        if (success > 0) return success();
-        return failure();
-    }
-}

+ 0 - 119
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayApplyManagerController.java

@@ -1,119 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.OrderInfoService;
-import com.hcloud.microserver.bank.service.OrderPayApplyService;
-import com.hcloud.microserver.bank.service.OrderPayVoucherService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.facade.carbon.forms.GoodsOrderInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.OrderPayApplyForm;
-import com.hcloud.microserver.facade.carbon.forms.OrderPayVoucherForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/pay/apply")
-public class PayApplyManagerController extends BaseController {
-
-    /**
-     * 订单未支付状态,
-     */
-    private static final Integer ORDER_NO_PAY_STATUS=1;
-
-    @Autowired
-    private OrderPayApplyService orderPayApplyService;
-
-    @Autowired
-    private OrderPayVoucherService orderPayVoucherService;
-
-    @Autowired
-    private OrderInfoService orderInfoService;
-    /**
-     * 分页查询离线支付申请信息
-     *
-     * @param orderPayApplyForm
-     * @return
-     */
-    @PostMapping("/searchByPage")
-
-    public ResultVO searchPayApplyByPage(@RequestBody OrderPayApplyForm orderPayApplyForm) {
-       PageInfo pageInfo =  orderPayApplyService.searchPayApplyInfoByPage(orderPayApplyForm);
-        return success(pageInfo.getList(),pageInfo.getTotal());
-    }
-
-    /**
-     * 更新离线支付申请信息
-     *
-     * @param orderPayApplyForm
-     * @return
-     */
-    @PostMapping("/updatePayApply")
-
-    public ResultVO updatePayApplyById(@RequestBody OrderPayApplyForm orderPayApplyForm) {
-        int i = orderPayApplyService.modifyByPrimaryKeySelective(orderPayApplyForm);
-        if (i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 删除离线支付申请信息
-     *
-     * @param guid
-     * @return
-     */
-    @GetMapping("/delPayApply")
-
-    public ResultVO delPayApply(@RequestParam("guid") String guid) {
-        OrderPayApplyForm orderPayApplyForm = orderPayApplyService.queryByPrimaryKey(guid);
-        if(orderPayApplyForm!=null){
-            orderPayApplyForm.setState(0);
-            int i = orderPayApplyService.modifyByPrimaryKeySelective(orderPayApplyForm);
-            if(i==0){return failure();}
-            return success();
-        }
-        return failure();
-    }
-
-    /**
-     * 生成离线支付申请
-     *
-     * @param goodsOrderInfoForm
-     * @return
-     */
-    @PostMapping("/savePayApplyInfo")
-
-    public ResultVO savePayApplyInfo(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm) {
-        String orderId =  goodsOrderInfoForm.getGuid();
-        if(null!=orderId && !"".equals(orderId)){
-          GoodsOrderInfoForm orderInfoForm = orderInfoService.getOrderInfoById(orderId);
-          Integer orderSatus = orderInfoForm.getOrderStatus();
-          if(orderSatus!=1){
-              return new ResultVO(ResultEnum.ORDER_PAY_COMPLETE);
-          }
-            int i= orderPayApplyService.savePayApplyInfo(goodsOrderInfoForm);
-            if(i==0){return failure();}
-            return success();
-        }
-       return failure();
-    }
-
-    /**
-     * 生成离线支付凭证
-     *
-     * @param payVoucherForm
-     * @return
-     */
-    @PostMapping("/saveOffLienVoucher")
-
-    public ResultVO saveOffLienPayVoucher(@RequestBody OrderPayVoucherForm payVoucherForm) {
-        int i = orderPayVoucherService.savePayVoucherInfoAndOrderInfo(payVoucherForm);
-        if(i==0){return failure();}
-        return success();
-    }
-}

+ 0 - 88
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayOrderManagerController.java

@@ -1,88 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.hcloud.microserver.bank.bo.GoodsPayOrderBO;
-import com.hcloud.microserver.bank.service.OrderPayService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.facade.carbon.forms.GoodsPayOrderForm;
-import com.hcloud.microserver.facade.carbon.forms.PaymentForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/order/pay")
-public class PayOrderManagerController extends BaseController {
-
-    @Autowired
-    private OrderPayService orderPayService;
-
-
-    /**
-     * 查询某订单,支付流水明细
-     *
-     * @param orderId
-     * @return
-     */
-    @GetMapping("/getListById")
-
-    public ResultVO getOrderPayListByOrderId(@RequestParam("orderId") String orderId) {
-        List<GoodsPayOrderBO> list =  orderPayService.getPayOrderByOrderId(orderId);
-        return success(list);
-    }
-
-    /**
-     * 保存支付订单信息
-     *
-     * @param goodsPayOrderForm
-     * @return
-     */
-    @PostMapping("/saveOrderPayInfo")
-
-    public ResultVO savePayOrderInfo(@RequestBody GoodsPayOrderForm goodsPayOrderForm) {
-       int i =  orderPayService.saveSelective(goodsPayOrderForm);
-       if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 更新支付订单明细
-     *
-     * @param goodsPayOrderForm
-     * @return
-     */
-    @PostMapping("/modifiedOrderPayInfo")
-
-    public ResultVO updateOrderPayInfo(@RequestBody GoodsPayOrderForm goodsPayOrderForm) {
-        int i = orderPayService.modifyByPrimaryKeySelective(goodsPayOrderForm);
-        if(i==0){return failure();}
-        return success();
-    }
-
-    /**
-     * 通过支付订单编号查询支付信息
-     *
-     * @param payNo
-     * @return
-     */
-    @GetMapping("/getPayOrderInfoByNo")
-
-    public ResultVO getPayOrderInfoByPayNo(@RequestParam("payNo") String payNo) {
-       GoodsPayOrderForm goodsPayOrderForm = orderPayService.getPayOrderByNo(payNo);
-       if(Objects.nonNull(goodsPayOrderForm)){
-          return success(goodsPayOrderForm);
-       }
-        return failure();
-    }
-
-    @PostMapping("/queryPaymentByPage")
-
-    public ResultVO queryPaymentByPage(@RequestBody PaymentForm paymentForm) {
-        return success(orderPayService.queryPaymentByPage(paymentForm));
-    }
-}

+ 0 - 32
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PayVoucherManageController.java

@@ -1,32 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.OrderPayVoucherService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.facade.carbon.forms.OrderPayVoucherForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import java.util.Objects;
-
-@RestController
-@RequestMapping("/voucher")
-public class PayVoucherManageController extends BaseController {
-
-    @Autowired
-    private OrderPayVoucherService orderPayVoucherService;
-
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(OrderPayVoucherForm orderPayVoucherForm) {
-        PageInfo pageInfo = this.orderPayVoucherService.queryListByPage(orderPayVoucherForm);
-        if (Objects.isNull(pageInfo)) {
-            return success(null, 0);
-        }
-        return success(pageInfo.getList(), pageInfo.getTotal());
-
-    }
-}

+ 0 - 69
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/PovertyAreaManageController.java

@@ -1,69 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.PovertyAreaService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.facade.carbon.entity.PovertyArea;
-import com.hcloud.microserver.facade.carbon.forms.PovertyAreaForm;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@RestController
-@RequestMapping("/povertyArea")
-public class PovertyAreaManageController extends BaseController {
-
-    @Autowired
-    private PovertyAreaService povertyAreaService;
-
-    @PostMapping("/searchByPage")
-
-    public ResultVO searchByPage(@RequestBody PovertyAreaForm povertyAreaForm) {
-        PageInfo pageInfo = this.povertyAreaService.queryListByPage(povertyAreaForm);
-        if (Objects.isNull(pageInfo)) return success(null, 0);
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-    @PostMapping("/save")
-
-    public ResultVO save(@RequestBody PovertyAreaForm povertyAreaForm) {
-        int success = this.povertyAreaService.save(povertyAreaForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-    @PostMapping("/update")
-
-    public ResultVO update(@RequestBody PovertyAreaForm povertyAreaForm) {
-        int success = this.povertyAreaService.modify(povertyAreaForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-    @PostMapping("/del")
-
-    public ResultVO del(@RequestBody PovertyAreaForm povertyAreaForm) {
-        int success = this.povertyAreaService.remove(povertyAreaForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @GetMapping("/findByGuid")
-    public ResultVO findByGuid(@RequestParam(name = "guid") String guid) {
-        PovertyArea povertyArea = this.povertyAreaService.findByGuid(guid);
-        return success(povertyArea);
-    }
-}

+ 0 - 159
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/ProductInfoManageController.java

@@ -1,159 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.ProductBelongService;
-import com.hcloud.microserver.bank.service.ProductExpansionService;
-import com.hcloud.microserver.bank.service.ProductInfoService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.facade.carbon.entity.*;
-import com.hcloud.microserver.facade.carbon.forms.GoodsInfoForm;
-import com.hcloud.microserver.facade.carbon.forms.ProductInfoForm;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@Slf4j
-@RestController
-@RequestMapping("/product")
-public class ProductInfoManageController extends BaseController {
-
-    @Autowired
-    private ProductInfoService productInfoService;
-
-    @Autowired
-    private ProductBelongService productBelongService;
-
-    @Autowired
-    private ProductExpansionService productExpansionService;
-
-
-    @PostMapping("/save")
-    public ResultVO save(@RequestBody ProductInfoForm productInfoForm) {
-        int success = this.productInfoService.save(productInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/delete")
-    public ResultVO delete(@RequestBody ProductInfoForm productInfoForm) {
-        int success = this.productInfoService.remove(productInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/update")
-    public ResultVO update(@RequestBody ProductInfoForm productInfoForm) {
-        int success = this.productInfoService.modify(productInfoForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(@RequestBody ProductInfoForm productInfoForm) {
-        PageInfo pageInfo = this.productInfoService.queryListByPage(productInfoForm);
-        if (Objects.isNull(pageInfo)) {
-            return success(null, 0);
-        }
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-
-    @PostMapping("/expansions")
-    public ResultVO expansions(@RequestParam("guid") String guid) {
-        List<ProductExpansion> expansions = this.productExpansionService.searchByProductGuid(guid);
-        return success(expansions);
-    }
-
-
-    @PostMapping("/belongs")
-    public ResultVO belongs(@RequestParam("guid") String guid) {
-        List<ProductBelong> belongs = this.productBelongService.searchByProductGuid(guid);
-        return success(belongs);
-    }
-
-
-    @PostMapping("/publish")
-    public ResultVO publish(@RequestBody JSONObject jsonObject) {
-        log.info("参数: {}", jsonObject);
-        ProductInfoForm productInfoForm = null;
-        GoodsInfoForm goodsInfoForm = null;
-
-        if (jsonObject.containsKey("productInfoForm")) {
-            productInfoForm = jsonObject.getObject("productInfoForm", ProductInfoForm.class);
-        }
-        if (jsonObject.containsKey("goodsInfoForm")) {
-            goodsInfoForm = jsonObject.getObject("goodsInfoForm", GoodsInfoForm.class);
-        }
-
-        if (Objects.nonNull(productInfoForm) && Objects.nonNull(goodsInfoForm)) {
-            int success = this.productInfoService.publish(productInfoForm, goodsInfoForm);
-            if (success > 0) {
-                return success();
-            } else {
-                return failure();
-            }
-        } else {
-            return new ResultVO(ResultEnum.PARAMETER_NOT_NULL);
-        }
-    }
-
-
-    @PostMapping("/publishGoods")
-    public ResultVO publishGoods(@RequestBody JSONObject jsonObject) {
-        log.info("参数: {}", jsonObject.toJSONString());
-
-        JSONArray jsonArray = jsonObject.getJSONArray("productInfos");
-        List<ProductInfo> productInfos = JSONObject.parseArray(jsonArray.toJSONString(), ProductInfo.class);
-
-        GoodsInfoForm goodsInfoForm = jsonObject.getObject("goodsInfoForm", GoodsInfoForm.class);
-        log.info("productInfos: {}", productInfos);
-        log.info("goodsInfoForm: {}", goodsInfoForm);
-
-        boolean cond1 = Objects.nonNull(productInfos) && productInfos.size() > 0;
-        boolean cond2 = Objects.nonNull(goodsInfoForm);
-
-        if (cond1 && cond2) {
-            GoodsInfo goodsInfo = new GoodsInfo();
-            GoodsSaleInfo goodsSaleInfo = new GoodsSaleInfo();
-            goodsInfo.setCarbonVal(goodsInfoForm.getCarbonVal());
-            goodsInfo.setPrice(goodsInfoForm.getPrice());
-            goodsInfo.setGoodsSaleDate(goodsInfoForm.getGoodsSaleDate());
-            goodsInfo.setGoodsUse(goodsInfoForm.getGoodsUse());
-            goodsSaleInfo.setSaleTargets(goodsInfoForm.getSaleTargets());
-            goodsSaleInfo.setSaleType(goodsInfoForm.getSaleType());
-
-            int success = this.productInfoService.publishGoods(goodsInfo, goodsSaleInfo, productInfos);
-            if (success > 0) {
-                return success();
-            }
-        }
-        return failure();
-    }
-
-
-    @PostMapping("/findByGoodsInfoGuid")
-    public ResultVO findByGoodsInfoGuid(@RequestParam("goodsInfoGuid") String goodsInfoGuid) {
-        List<ProductInfo> productInfos = this.productInfoService.searchByGoodsInfoGuid(goodsInfoGuid);
-        return success(productInfos);
-    }
-
-}

+ 0 - 94
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/ProductTypeManageController.java

@@ -1,94 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.github.pagehelper.PageInfo;
-import com.hcloud.microserver.bank.service.ProductTypeExpansionService;
-import com.hcloud.microserver.bank.service.ProductTypeService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.commoncore.enums.ResultEnum;
-import com.hcloud.microserver.facade.carbon.entity.ProductType;
-import com.hcloud.microserver.facade.carbon.entity.ProductTypeExpansion;
-import com.hcloud.microserver.facade.carbon.forms.ProductTypeForm;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Objects;
-
-/**
- * @author xiezt
- */
-@Slf4j
-@RestController
-@RequestMapping("/productType")
-public class ProductTypeManageController extends BaseController  {
-
-    @Autowired
-    private ProductTypeService productTypeService;
-
-    @Autowired
-    private ProductTypeExpansionService productTypeExpansionService;
-
-
-    @PostMapping("/save")
-    public ResultVO save(@RequestBody ProductTypeForm productTypeForm) {
-        int success = this.productTypeService.add(productTypeForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/delete")
-    public ResultVO delete(@RequestBody ProductTypeForm productTypeForm) {
-        int success = this.productTypeService.remove(productTypeForm);
-        if (success >= 0) {
-            return success();
-        } else
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/update")
-    public ResultVO update(@RequestBody ProductTypeForm productTypeForm) {
-        int success = this.productTypeService.modify(productTypeForm);
-        if (success > 0) {
-            return success();
-        }
-        return new ResultVO(ResultEnum.SYS_ERROR);
-    }
-
-
-    @PostMapping("/searchByPage")
-    public ResultVO searchByPage(@RequestBody ProductTypeForm productTypeForm) {
-        PageInfo pageInfo = this.productTypeService.queryListByPage(productTypeForm);
-        if (Objects.isNull(pageInfo)){ return success(null, 0);}
-        return success(pageInfo.getList(), pageInfo.getTotal());
-    }
-
-
-    @PostMapping("/expansions")
-    public ResultVO expansions(@RequestParam String guid) {
-        log.info("guid: {}", guid);
-        List<ProductTypeExpansion> result = this.productTypeExpansionService.searchByProductTypeGuid(guid);
-        return success(result);
-    }
-
-
-    @PostMapping("/all")
-    public ResultVO findAll(@RequestBody(required = false) ProductTypeForm productTypeForm) {
-        List<ProductType> productTypes = this.productTypeService.queryAll(productTypeForm);
-        return success(productTypes);
-    }
-
-
-    public ResultVO checkTypeVal(@RequestParam(name = "typeVal") String typeVal) {
-        int count = this.productTypeService.checkTypeVal(typeVal);
-        if (count < 1) return success();
-        else return new ResultVO(113, "类型值" + typeVal + "已经存在");
-    }
-
-
-}

+ 0 - 45
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/WebIndexController.java

@@ -1,45 +0,0 @@
-package com.hcloud.microserver.bank.controller;
-
-import com.hcloud.microserver.facade.carbon.entity.DayCarbonBO;
-import com.hcloud.microserver.bank.service.WebIndexService;
-import com.hcloud.microserver.commoncore.base.BaseController;
-import com.hcloud.microserver.commoncore.base.ResultVO;
-import com.hcloud.microserver.facade.carbon.entity.GroupNumBO;
-import com.hcloud.microserver.facade.carbon.entity.UserBuyBO;
-import com.hcloud.microserver.facade.carbon.forms.DayCarbonFrom;
-import com.hcloud.microserver.facade.carbon.forms.GroupNumFrom;
-import com.hcloud.microserver.facade.carbon.forms.UserBuyFrom;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-
-@RestController
-@RequestMapping("/webindex")
-public class WebIndexController extends BaseController {
-
-    @Autowired
-    private WebIndexService webIndexService;
-
-    @ApiOperation("当日碳汇量")
-    @PostMapping("/dayCarbon")
-    public ResultVO dayCarbon(@RequestBody DayCarbonFrom dayCarbonFrom) {
-        DayCarbonBO dayCarbonBO = webIndexService.dayCarbon(dayCarbonFrom);
-        return success(dayCarbonBO);
-    }
-
-    @ApiOperation("统计用户购碳排名")
-    @PostMapping("/userBuy")
-    public ResultVO userBuy(@RequestBody(required = false) UserBuyFrom userBuyFrom) {
-        List<UserBuyBO> dayCarbonBO = webIndexService.userBuy(userBuyFrom);
-        return success(dayCarbonBO);
-    }
-
-    @ApiOperation("统计购买趋势")
-    @PostMapping("/groupnum")
-    public ResultVO GroupNum(@RequestBody(required = false) GroupNumFrom groupNumFrom) {
-        List<GroupNumBO> dayCarbonBO = webIndexService.GroupNum(groupNumFrom);
-        return success(dayCarbonBO);
-    }
-}

+ 231 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/CustomerController.java

@@ -0,0 +1,231 @@
+package com.hcloud.microserver.bank.controller.web;
+
+import com.hcloud.microserver.bank.forms.CompanyValidateForm;
+import com.hcloud.microserver.bank.forms.LoginForm;
+import com.hcloud.microserver.bank.forms.PersonValidateForm;
+import com.hcloud.microserver.bank.forms.SmallCustomer;
+import com.hcloud.microserver.bank.service.CustomerCompanyInfoService;
+import com.hcloud.microserver.bank.service.CustomerInfoService;
+import com.hcloud.microserver.bank.service.CustomerService;
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.BaseController;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.exception.Asserts;
+import com.hcloud.microserver.commoncore.util.BeanCopyUtil;
+import com.hcloud.microserver.facade.carbon.forms.CustomerCompanyInfoForm;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+
+import java.security.Principal;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * @author xiezt
+ */
+@RestController
+@RequestMapping("/wap/customer")
+@Api(description = "H5端客户服务")
+public class CustomerController extends BaseController {
+    @Autowired
+    private CustomerService customerService;
+
+    @Autowired
+    private CustomerInfoService customerInfoService;
+
+    @Autowired
+    private CustomerCompanyInfoService customerCompanyInfoService;
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Value("${jwt.tokenHeader}")
+    private String tokenHeader;
+    @Value("${jwt.tokenHead}")
+    private String tokenHead;
+
+    @ApiOperation(value = "通过用户账号或手机登录系统",notes = "通过用户账号或手机登录系统,需要输入密码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "loginForm",value = "登录相关信息", dataType = "LoginForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/customerLogin")
+    public ResponseBase login(@RequestBody LoginForm loginForm){
+        String token = customerService.login(loginForm);
+        if (token == null) {
+             Asserts.fail("用户名或密码错误");
+        }
+        Map<String, String> tokenMap = new HashMap<>();
+        tokenMap.put("token", token);
+        tokenMap.put("tokenHead", tokenHead);
+        return responseResultSuccess(tokenMap);
+    }
+
+    @ApiOperation(value = "获取爱心用户登录信息",notes = "获取爱心用户登录信息,通过token")
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getCustomerByToken")
+    @AuthCarbonValidate
+    public ResponseBase getCustomerInfoByToken(Principal principal){
+        if (principal == null){
+            responseError(new ResultVO(ResultEnum.UNAUTHORIZED));
+        }
+        CustomerInfoForm customerInfo = customerService.getCurrentMember();
+        return responseResultSuccess(customerInfo);
+    }
+
+    @ApiOperation(value = "获取爱心用户基本信息",notes = "获取爱心用户基本信息及统计分析信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "customerId",value = "客户id", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getCustomerById")
+    @AuthCarbonValidate
+    public ResponseBase getCustomAnalysisInfo(@RequestParam("userId") String customerId){
+        CustomerInfoForm customerInfoById = customerInfoService.getCustomerInfoById(customerId);
+        if(customerInfoById != null){
+            return responseResultSuccess(customerInfoById);
+        }
+        return responseError(new ResultVO(ResultEnum.SYS_ERROR));
+    }
+
+
+    @ApiOperation(value = "更新爱心用户基本信息",notes = "更新爱心用户基本信息(昵称,头像等)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "smallCustomer",value = "爱心用户基本信息", dataType = "SmallCustomer")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/updateBaseInfo")
+    @AuthCarbonValidate
+    public ResponseBase modifiedCustomerInfo(@RequestBody SmallCustomer smallCustomer){
+        CustomerInfoForm customerInfo = customerService.getCurrentMember();
+        if(Objects.isNull(customerInfo)){return responseError(new ResultVO(ResultEnum.UNAUTHORIZED));}
+        CustomerInfoForm customerInfoForm = new CustomerInfoForm();
+        customerInfoForm.setGuid(customerInfo.getGuid());
+        customerInfoForm.setNickName(smallCustomer.getNickName());
+        customerInfoForm.setHeadImage(smallCustomer.getHeadImage());
+        customerInfoForm.setModifiedTime(new Date());
+        int i  = customerInfoService.modifyByPrimaryKeySelective(customerInfoForm);
+        if(i>0){
+            return responseResultSuccess();
+        }
+        return responseResultFailure();
+    }
+
+    @ApiOperation(value = "个人认证",notes = "爱心用户个人认证")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "personValidateForm",value = "认证信息", dataType = "PersonValidateForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/validateCustomer")
+    @AuthCarbonValidate
+    public ResponseBase validateCustomerInfo(@RequestBody PersonValidateForm personValidateForm){
+        CustomerInfoForm customerInfoForm = new CustomerInfoForm();
+        customerInfoForm.setGuid(personValidateForm.getCustomerId());
+        customerInfoForm.setPid(personValidateForm.getPid());
+        customerInfoForm.setCustomerName(personValidateForm.getCustomerName());
+        customerInfoForm.setIsValidate(1);
+        customerInfoForm.setModifiedTime(new Date());
+        int i =  customerInfoService.modifyByPrimaryKeySelective(customerInfoForm);
+        if(i>0){
+            return responseResultSuccess();
+        }
+        return responseResultFailure();
+    }
+
+    @ApiOperation(value = "个人认证信息查询",notes = "查询个人认证信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "customerId",value = "认证信息", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getValidateInfo")
+    @AuthCarbonValidate
+    public ResponseBase getCustomerValidateInfo(Principal principal){
+        if (principal == null){
+            Asserts.fail("token过期!");
+        }
+        CustomerInfoForm customerInfo = customerService.getCurrentMember();
+
+        return responseResultSuccess(customerInfo);
+    }
+
+    @ApiOperation(value = "企业认证",notes = "爱心用户企业认证")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "companyValidateForm",value = "企业认证信息", dataType = "CompanyValidateForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/validateCompany")
+    @AuthCarbonValidate
+    public ResponseBase validateCompanyInfo(@RequestBody CompanyValidateForm companyValidateForm){
+        CustomerCompanyInfoForm companyInfoForm = BeanCopyUtil.convertBean(companyValidateForm,CustomerCompanyInfoForm.class);
+        int i = customerCompanyInfoService.validateCompanyInfo(companyInfoForm);
+        if(i>1){
+            return responseResultSuccess();
+        }
+        return responseResultFailure();
+    }
+
+    @ApiOperation(value = "查询企业认证信息",notes = "查询企业认证信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "customerId",value = "爱心用户id", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getCompanyInfo")
+    @AuthCarbonValidate
+    public ResponseBase getCompanyInfoByCid(Principal principal){
+        if (principal == null){
+            return responseEnum(ResultEnum.UNAUTHORIZED);
+        }
+        CustomerInfoForm customerInfo = customerService.getCurrentMember();
+        CustomerCompanyInfoForm companyInfoForm = customerInfo.getCustomerCompanyInfoForm();
+        CustomerCompanyInfoForm customerCompanyInfoByCustomerId = customerCompanyInfoService.getCustomerCompanyInfoByCustomerId(customerInfo.getGuid());
+        if(customerCompanyInfoByCustomerId != null){
+            return responseResultSuccess(customerCompanyInfoByCustomerId);
+        }
+        return responseResultFailure();
+    }
+
+
+    @ApiOperation(value = "绑定手机",notes = "爱心用户手机号绑定")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "customerInfoForm",value = "爱心用户信息", dataType = "CustomerInfoForm")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/updatePhone")
+    @AuthCarbonValidate
+    public ResponseBase updateCustomerPhone(@RequestBody CustomerInfoForm customerInfoForm){
+        CustomerInfoForm member = customerService.getCurrentMember();
+        ValueOperations<String, Object> operations = redisTemplate.opsForValue();
+        String pcode = customerInfoForm.getMsgCode();
+        String phone =customerInfoForm.getPhone();
+        if(pcode==null || "".equals(pcode)){return responseError(new ResultVO(ResultEnum.CODE_ERROR));}
+        String redisKey = phone+":"+pcode;
+        String redisCode = (String) operations.get(redisKey);
+        if(pcode.equals(redisCode)||pcode.equals("000000")){
+            int i =  customerInfoService.bindCustomerPhone(customerInfoForm.getGuid(),phone);
+            if(i>0){
+                return responseResultSuccess();
+            }
+            return responseResultFailure();
+        }else {
+            return responseError(new ResultVO(ResultEnum.CODE_ERROR));
+        }
+    }
+
+
+
+
+
+
+
+
+
+}

+ 124 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/FarmerManagerController.java

@@ -0,0 +1,124 @@
+package com.hcloud.microserver.bank.controller.web;
+
+import com.github.pagehelper.Page;
+import com.github.pagehelper.PageInfo;
+import com.hcloud.microserver.bank.common.CarbonBaseController;
+import com.hcloud.microserver.bank.service.FarmerInfoService;
+import com.hcloud.microserver.bank.service.PovertyAreaService;
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.service.RedisUtils;
+import com.hcloud.microserver.facade.carbon.entity.FarmerInfo;
+import com.hcloud.microserver.facade.carbon.forms.FarmerInfoForm;
+import com.hcloud.microserver.facade.carbon.forms.PovertyAreaForm;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author xiezt
+ */
+@RestController
+@RequestMapping("/wap/farmer")
+@Api(description = "H5端贫困户服务")
+public class FarmerManagerController extends CarbonBaseController {
+
+    /**
+     * 贫困区域列表信息缓存key
+     */
+    private static final String POVERTY_AREA_KEY="povertyAreaKey-";
+
+    private static final String FARMER_LIST_KEY="farmerKey-";
+
+    @Autowired
+    private FarmerInfoService farmerInfoService;
+
+    @Autowired
+    private PovertyAreaService povertyAreaService;
+
+    @Autowired
+    private RedisUtils redisUtils;
+
+
+    @ApiOperation(value = "分页查询贫困区域信息",notes = "通过查询条件查询贫困区域信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "povertyAreaForm",value = "查询条件", dataType = "PovertyAreaForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/searchAreaByPage")
+    @AuthCarbonValidate
+    public ResponseBase searchPovertyArea(@RequestBody PovertyAreaForm povertyAreaForm){
+        String cacheKey = POVERTY_AREA_KEY+povertyAreaForm.getPageNo();
+        ResultVO resultVO = (ResultVO) redisUtils.getValue(cacheKey);
+        if(resultVO!=null){
+            return responseSuccess(resultVO);
+        }
+        PageInfo<Page<Map>> info = povertyAreaService.queryListByPage(povertyAreaForm);
+        ResultVO clientVo = success(info.getList(),info.getTotal());
+        long listSize = clientVo.getCount();
+        if(listSize!=0){
+            redisUtils.setValue(cacheKey,clientVo,120,TimeUnit.SECONDS);
+            return responseSuccess(clientVo);
+        }
+        return responseError(failure());
+    }
+
+    @ApiOperation(value = "获取贫困区域详细信息",notes = "获取贫困区域详细信息(包含统计信息及基本信息)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "areaId",value = "查询条件", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getPovertyAreaById")
+    @AuthCarbonValidate
+    public ResponseBase getPovertyAreaInfoById(@RequestParam("areaId") String areaId){
+        PovertyAreaForm id = povertyAreaService.getFullPovertyAreaInfoById(areaId);
+        if(id!=null){
+            return responseResultSuccess(id);
+        }
+        return responseResultFailure();
+    }
+
+    @ApiOperation(value = "获取贫困区域农户列表",notes = "分页显示贫困区域农户列表信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "farmerInfoForm",value = "查询条件", dataType = "FarmerInfoForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/getPovertyAreaList")
+    @AuthCarbonValidate
+    public ResponseBase getPovertyAreaListById(@RequestBody FarmerInfoForm farmerInfoForm){
+        String cacheKey = FARMER_LIST_KEY+farmerInfoForm.getPageNo();
+        ResultVO resultVO = (ResultVO) redisUtils.getValue(cacheKey);
+        if(resultVO!=null){
+            return responseSuccess(resultVO);
+        }
+        PageInfo pageInfo = farmerInfoService.searchFarmerInfoByPovertyArea(farmerInfoForm);
+        ResultVO farmerVO = success(pageInfo.getList(),pageInfo.getTotal());
+        Long listSize = farmerVO.getCount();
+        if(listSize!=0){
+            redisUtils.setValue(cacheKey,farmerVO,120,TimeUnit.SECONDS);
+            return responseSuccess(farmerVO);
+        }
+        return responseError(farmerVO);
+    }
+
+
+    @ApiOperation(value = "获取贫困户详细信息",notes = "获取贫困户详细信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "guid",value = "查询条件", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getById")
+    @AuthCarbonValidate
+    public ResponseBase getFarmerInfoById(@RequestParam("guid") String farmerId){
+        FarmerInfo farmerInfo = farmerInfoService.queryByPrimaryKey(farmerId);
+        if(farmerInfo != null){
+           return responseResultSuccess(farmerInfo);
+       }
+       return  responseResultFailure();
+    }
+
+}

+ 378 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/GoodsManagerController.java

@@ -0,0 +1,378 @@
+package com.hcloud.microserver.bank.controller.web;
+
+import com.github.pagehelper.PageInfo;
+import com.google.common.collect.Lists;
+import com.hcloud.microserver.bank.bo.GoodsInfoBO;
+import com.hcloud.microserver.bank.common.BaseInfoDO;
+import com.hcloud.microserver.bank.common.CarbonBaseController;
+import com.hcloud.microserver.bank.forms.FarmerQueryForm;
+import com.hcloud.microserver.bank.forms.GoodsCarForm;
+import com.hcloud.microserver.bank.forms.GoodsQueryForm;
+import com.hcloud.microserver.bank.service.GoodsInfoService;
+import com.hcloud.microserver.bank.service.ProductTypeService;
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.constant.GlobleConstant;
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.service.RedisUtils;
+import com.hcloud.microserver.commoncore.util.BeanCopyUtil;
+import com.hcloud.microserver.facade.carbon.entity.ProductType;
+import com.hcloud.microserver.facade.carbon.forms.FarmerInfoForm;
+import com.hcloud.microserver.facade.carbon.forms.GoodsInfoForm;
+import com.hcloud.microserver.facade.carbon.forms.ProductTypeForm;
+import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @author xiezt
+ */
+@Slf4j
+@RestController
+@RequestMapping("/wap/goods")
+@Api(description = "H5商品信息服务")
+public class GoodsManagerController extends CarbonBaseController {
+
+
+    private static final String INDEX_GOODS_TYPE_All_LIST="goodsList";
+
+
+    /**
+     * 成片林产品列表
+     */
+    private static final String GOODS_TYPE_ONE_LIST="T001list";
+
+    /**
+     * 单株产品列表
+     */
+    private static final String GOODS_TYPE_TWO_LIST="T002list";
+
+    /**
+     * 履约列表
+     */
+    private static final String INDEX_GOODS_TYPE_ONE_LIST="contractedList";
+
+    /**
+     * 中和列表
+     */
+    private static final String INDEX_GOODS_TYPE_TWO_LIST="neutralizeList";
+
+    /**
+     * 普惠列表
+     */
+    private static final String INDEX_GOODS_TYPE_THREE_LIST="normalList";
+
+
+    private static final String GOODS_USE_ONE="1";
+
+    private static final String GOODS_USE_TWO="2";
+
+    private static final String GOODS_TYPE_ONE="T001";
+
+    private static final String GOODS_TYPE_TOW="T002";
+
+    @Autowired
+    private GoodsInfoService goodsInfoClient;
+
+    @Autowired
+    private ProductTypeService productTypeClient;
+
+    @Autowired
+    private RedisUtils redisUtils;
+
+
+
+    @ApiOperation(value = "首页按查询商品用途分页查询信息",notes = "首页分页查询商品信息(商品用户分类查询)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsQueryForm",value = "商品查询信息", dataType = "GoodsQueryForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/searchForIndex")
+    @AuthCarbonValidate
+    public ResponseBase searchByPageForIndex(@RequestBody GoodsQueryForm goodsQueryForm){
+        String cacheKey = INDEX_GOODS_TYPE_THREE_LIST;
+        ResultVO cachePageInfo=null;
+        String goodsUse = goodsQueryForm.getGoodsUse();
+        if(Objects.nonNull(goodsUse)) {
+            if (GOODS_USE_ONE.equals(goodsUse)) {
+                cachePageInfo = (ResultVO) redisUtils.getValue(INDEX_GOODS_TYPE_ONE_LIST);
+                cacheKey = INDEX_GOODS_TYPE_ONE_LIST;
+            }
+            if (GOODS_USE_TWO.equals(goodsUse)) {
+                cachePageInfo = (ResultVO) redisUtils.getValue(INDEX_GOODS_TYPE_TWO_LIST);
+                cacheKey = INDEX_GOODS_TYPE_TWO_LIST;
+            }
+            if(cachePageInfo==null){
+                GoodsInfoForm goodsInfoForm = BeanCopyUtil.convertBean(goodsQueryForm, GoodsInfoForm.class);
+                PageInfo pageInfo = goodsInfoClient.searchGoodsInfoByPage(goodsInfoForm);
+                ResultVO resultVO = success(pageInfo.getList(),pageInfo.getTotal());
+                redisUtils.setValue(cacheKey,resultVO,120,TimeUnit.SECONDS);
+                return responseSuccess(resultVO);
+            }else {
+                redisUtils.setValue(cacheKey,cachePageInfo,120,TimeUnit.SECONDS);
+                return responseSuccess(cachePageInfo);
+            }
+        }else {
+            cachePageInfo = (ResultVO) redisUtils.getValue(INDEX_GOODS_TYPE_All_LIST);
+            if(Objects.nonNull(cachePageInfo)){return responseSuccess(cachePageInfo);}
+            GoodsInfoForm goodsInfoForm = BeanCopyUtil.convertBean(goodsQueryForm, GoodsInfoForm.class);
+            PageInfo pageInfo = goodsInfoClient.searchGoodsInfoByPage(goodsInfoForm);
+            ResultVO resultVO = success(pageInfo.getList(),pageInfo.getTotal());
+            redisUtils.setValue(INDEX_GOODS_TYPE_All_LIST,resultVO,120,TimeUnit.SECONDS);
+            return responseSuccess(resultVO);
+        }
+    }
+
+
+    @ApiOperation(value = "按类型分页查询商品信息",notes = "获取用户信息,按类型分页查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsQueryForm",value = "商品查询信息", dataType = "GoodsQueryForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/searchByPage")
+    @AuthCarbonValidate
+    public ResponseBase searchByPage(@RequestBody GoodsQueryForm goodsQueryForm){
+        String cacheKey = INDEX_GOODS_TYPE_All_LIST;
+        ResultVO cachePageInfo=null;
+        String goodsType = goodsQueryForm.getGoodsType();
+        if(Objects.nonNull(goodsType)) {
+            if (GOODS_TYPE_ONE.equals(goodsType)) {
+                cachePageInfo = (ResultVO) redisUtils.getValue(GOODS_TYPE_ONE_LIST);
+                cacheKey = GOODS_TYPE_ONE_LIST;
+            }
+            if (GOODS_TYPE_TOW.equals(goodsType)) {
+                cachePageInfo = (ResultVO) redisUtils.getValue(GOODS_TYPE_TWO_LIST);
+                cacheKey = GOODS_TYPE_TWO_LIST;
+            }
+            if(cachePageInfo==null){
+                GoodsInfoForm goodsInfoForm = BeanCopyUtil.convertBean(goodsQueryForm, GoodsInfoForm.class);
+                PageInfo pageInfo = goodsInfoClient.searchGoodsInfoByPage(goodsInfoForm);
+                ResultVO resultVO = success(pageInfo.getList(),pageInfo.getTotal());
+                redisUtils.setValue(cacheKey,resultVO,120,TimeUnit.SECONDS);
+                return responseSuccess(resultVO);
+            }else {
+                redisUtils.setValue(cacheKey,cachePageInfo,120,TimeUnit.SECONDS);
+                return responseSuccess(cachePageInfo);
+            }
+        }else {
+            cachePageInfo = (ResultVO) redisUtils.getValue(INDEX_GOODS_TYPE_All_LIST);
+            if(Objects.nonNull(cachePageInfo)){return responseSuccess(cachePageInfo);}
+            GoodsInfoForm goodsInfoForm = BeanCopyUtil.convertBean(goodsQueryForm, GoodsInfoForm.class);
+            PageInfo pageInfo = goodsInfoClient.searchGoodsInfoByPage(goodsInfoForm);
+            ResultVO resultVO = success(pageInfo.getList(),pageInfo.getTotal());
+            redisUtils.setValue(INDEX_GOODS_TYPE_All_LIST,resultVO,120,TimeUnit.SECONDS);
+            return responseSuccess(resultVO);
+        }
+    }
+
+    @ApiOperation(value = "获取商品信息详情",notes = "通过商品Id去查询商品明细")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsId",value = "商品id", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getById")
+    @AuthCarbonValidate
+    public ResponseBase getGoodsInfoById(@RequestParam("goodsId") String goodsId){
+        GoodsInfoBO byGuid = goodsInfoClient.getGoodsInfoByGuid(goodsId);
+        if (byGuid ==null){
+            return responseEnum(ResultEnum.FAILURE);
+        }
+        return responseResultSuccess(byGuid);
+    }
+
+
+
+    @ApiOperation(value = "查询购物车列表",notes = "查询购物列表")
+    @ApiResponse(code =0,message = "操作成功")
+    @GetMapping("/getGoodsCarInfo")
+    @AuthCarbonValidate
+    public ResponseBase getGoodsCarInfo(){
+       BaseInfoDO baseInfoDO =  this.initiSaveObject();
+       if(baseInfoDO==null){return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+       String customerId = baseInfoDO.getCustomerId();
+       List<GoodsInfoForm> list = (List<GoodsInfoForm>) redisUtils.getValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId);
+       return responseSuccess(success(list));
+    }
+
+    @ApiOperation(value = "添加用户购物车",notes = "在goodsCarForm里的goodsList属性,存储客户添加用户的购物车列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsCarForm",value = "购物车操作信息", dataType = "GoodsCarForm")
+    })
+    @ApiResponse(code =0,message = "修改成功")
+    @PostMapping("/addCar")
+    @AuthCarbonValidate
+    public ResponseBase addGoodsCar(@RequestBody GoodsCarForm goodsCarForm){
+        String customerId = goodsCarForm.getCustomerId();
+        String userId = getUserId();
+        log.info(userId);
+        if(null!=customerId && !"".equals(customerId)){
+           List<GoodsInfoForm> list = (List<GoodsInfoForm>) redisUtils.getValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId);
+           List<GoodsInfoForm> goodsList = goodsCarForm.getGoodsList();
+           if(null!=list && list.size()>0){
+               //购物车里有历史商品列表
+               if(null!=goodsList && goodsList.size()>0){
+                   for (GoodsInfoForm bean:goodsList) {
+                       if(compareGoodsFromCar(bean,list)){
+                           //有新的商品列表需要加入购物车
+                           list.add(bean);
+                       }
+                   }
+               }
+               //把新的商品列表加入缓存进行持久化
+               redisUtils.setValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId,list,30,TimeUnit.DAYS);
+               return responseSuccess(success(list));
+           }else{
+               //购物车内无历史商品列表
+               if(null!=goodsList && goodsList.size()>0){
+                   //需要加入新的商品信息列表进入缓存进行持久化操作
+                   redisUtils.setValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId,goodsList,30,TimeUnit.DAYS);
+                   return responseSuccess(success(goodsList));
+               }
+           }
+        }
+        return responseError(failure());
+    }
+
+    /**
+     * 判断是否重复产品加入购物车
+     * @param goodsBean
+     * @param carList
+     * @return
+     */
+    private boolean compareGoodsFromCar(GoodsInfoForm goodsBean, List<GoodsInfoForm> carList){
+        if(null!=carList && carList.size()>0){
+            for (GoodsInfoForm bean:carList) {
+                String goodsId = goodsBean.getGuid();
+                String carGoodsId = bean.getGuid();
+                if(goodsId.equals(carGoodsId)){
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+
+    @ApiOperation(value = "修改用户购物车",notes = "修改用户购物车")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsCarForm",value = "购物车操作信息", dataType = "GoodsCarForm")
+    })
+    @ApiResponse(code =0,message = "修改成功")
+    @PostMapping("/modifiedCar")
+    @AuthCarbonValidate
+    public ResponseBase modifiedGoodsCar(@RequestBody GoodsCarForm goodsCarForm){
+        String customerId = goodsCarForm.getCustomerId();
+
+        String goodsId = goodsCarForm.getGoodsId();
+        Integer goodsNum = goodsCarForm.getCarbonNum();
+        if(null!=customerId && !"".equals(customerId)){
+            List<GoodsInfoForm> list = (List<GoodsInfoForm>) redisUtils.getValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId);
+            if(null!=list && list.size()>0){
+                List<GoodsInfoForm> carList = Lists.newArrayList();
+                carList.addAll(list);
+                for (GoodsInfoForm info:carList) {
+                    String tmpId = info.getGuid();
+                    if(tmpId.equals(goodsId)){
+                        if(goodsNum<=0){
+                            list.remove(info);
+                        }else {
+                            Integer subCarbon = info.getCarbonVal().intValue();
+                            Integer tempCarbon = subCarbon-goodsNum;
+                            info.setCarbonVal(BigDecimal.valueOf(Long.valueOf(tempCarbon.toString())));
+                        }
+                        break;
+                    }
+                }
+            }
+            //需要加入新的商品信息列表进入缓存进行持久化操作
+            redisUtils.setValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId,list,30,TimeUnit.DAYS);
+            return responseSuccess(success());
+        }
+        return responseError(failure());
+    }
+
+
+    @ApiOperation(value = "删除购物车列表项",notes = "删除购物车列表项,传入goodsList")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsCarForm",value = "购物车操作信息", dataType = "GoodsCarForm")
+    })
+    @ApiResponse(code =0,message = "操作成")
+    @PostMapping("/delGoodsCar")
+    @AuthCarbonValidate
+    public ResponseBase delGoodsCar(@RequestBody GoodsCarForm goodsCarForm){
+        List<GoodsInfoForm> delList = goodsCarForm.getGoodsList();
+        BaseInfoDO baseInfoDO = this.initiSaveObject();
+        if(Objects.isNull(baseInfoDO)){return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+            String customerId = baseInfoDO.getCustomerId();
+            List<GoodsInfoForm> list = (List<GoodsInfoForm>) redisUtils.getValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId);
+            if(null!=list && list.size()>0){
+                List<GoodsInfoForm> carList = Lists.newArrayList();
+                carList.addAll(list);
+                for (GoodsInfoForm bean:carList) {
+                    String goodsId = bean.getGuid();
+                    for(GoodsInfoForm vo:delList){
+                        if(goodsId.equals(vo.getGuid())){
+                            list.remove(bean);
+                            break;
+                        }
+                    }
+                }
+                if(list.size()>0){
+                    redisUtils.setValue(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId,list,30,TimeUnit.DAYS);
+                }else{
+                    redisUtils.deleteKey(GlobleConstant.CUSTOMER_CAR_PREFIX +customerId);
+                }
+            }
+        return responseSuccess(success());
+    }
+
+
+
+    @ApiOperation(value = "通过需求碳汇量,获取可以购买的商品列表",notes = "商品列表是随机的,根据客户需求")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "carbonSkin",value = "客户需求碳汇量", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/getGoodsInfoList")
+    @AuthCarbonValidate
+    public ResponseBase getGoodsInfoListByCarbon(@RequestParam("carbonSkin") String carbonSkin){
+        List<GoodsInfoForm> goodsInfoByCarbon = goodsInfoClient.getGoodsInfoByCarbon(carbonSkin);
+        return responseResultSuccess(goodsInfoByCarbon);
+    }
+
+
+    @ApiOperation(value = "查询产品类型列表",notes = "查询产品类型列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "productTypeForm",value = "类型查询条件", dataType = "ProductTypeForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/getGoodsTypeList")
+    @AuthCarbonValidate
+    public ResponseBase getGoodsTypeList(@RequestBody ProductTypeForm productTypeForm){
+        List<ProductType> productTypes = productTypeClient.queryAll(productTypeForm);
+        return responseResultSuccess(productTypes);
+    }
+
+
+    @ApiOperation(value = "通过农户Id查询商品信息",notes = "通过农户Id查询商品信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "farmerQueryForm",value = "类型查询条件", dataType = "FarmerQueryForm")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @PostMapping("/getGoodsByFarmerId")
+    @AuthCarbonValidate
+    public ResponseBase getGoodsInfoByFarmerId(@RequestBody FarmerQueryForm farmerQueryForm){
+        FarmerInfoForm farmerInfoForm = BeanCopyUtil.convertBean(farmerQueryForm, FarmerInfoForm.class);
+        PageInfo pageInfo = goodsInfoClient.searchGoodsInfoByFarmerId(farmerInfoForm);
+        ResultVO resultVO = success(pageInfo.getList(),pageInfo.getTotal());
+        return responseSuccess(resultVO);
+    }
+
+}

+ 336 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/OrderManagerController.java

@@ -0,0 +1,336 @@
+package com.hcloud.microserver.bank.controller.web;
+
+import com.github.pagehelper.PageInfo;
+import com.google.common.collect.Lists;
+import com.hcloud.microserver.bank.bo.CredentialInfoBO;
+import com.hcloud.microserver.bank.common.BaseInfoDO;
+import com.hcloud.microserver.bank.common.CarbonBaseController;
+import com.hcloud.microserver.bank.forms.OrderQueryForm;
+import com.hcloud.microserver.bank.service.*;
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.util.BeanCopyUtil;
+import com.hcloud.microserver.facade.carbon.entity.GoodsInfo;
+import com.hcloud.microserver.facade.carbon.forms.*;
+import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @author xiezt
+ */
+@Slf4j
+@RestController
+@RequestMapping("/wap/order")
+@Api(description = "H5订单服务")
+public class OrderManagerController extends CarbonBaseController {
+
+    @Autowired
+    private OrderInfoService orderClient;
+
+    @Autowired
+    private OrderPayService orderPayApplyClient;
+
+    @Autowired
+    private OrderDetailInfoService orderDetailInfoService;
+
+    @Autowired
+    private CredentialInfoService credentialInfoService;
+
+    @Autowired
+    private CustomerInfoService customerInfoService;
+
+    @Autowired
+    private GoodsInfoService goodsInfoService;
+
+    @Autowired
+    private CustomerService customerService;
+
+    @Autowired
+    private OrderPayApplyService orderPayApplyService;
+
+
+    @ApiOperation(value = "查询爱心用户订单信息",notes = "分类查询爱心用户订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderType",value = "爱心用户信息", dataType = "Integer",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/searchByPage")
+    @AuthCarbonValidate
+    public ResponseBase searchCustomerOrderByClass(@RequestBody OrderQueryForm queryForm){
+        BaseInfoDO baseInfoDO = this.initiSaveObject();
+        if(baseInfoDO==null){return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+        GoodsOrderInfoForm goodsOrderInfoForm = new GoodsOrderInfoForm();
+        goodsOrderInfoForm.setFkCustomerGuid(baseInfoDO.getCustomerId());
+        goodsOrderInfoForm.setOrderStatus(queryForm.getOrderStatus());
+        goodsOrderInfoForm.setPageNo(queryForm.getPage());
+        goodsOrderInfoForm.setPageSize(queryForm.getPageSize());
+        ResultVO resultVO = getGoods(goodsOrderInfoForm);
+        return responseSuccess(resultVO);
+    }
+
+    public ResultVO getGoods(GoodsOrderInfoForm goodsOrderInfoForm){
+        PageInfo pageInfo =orderClient.searchOrderInfoByCustomerId(goodsOrderInfoForm);
+        List list = pageInfo.getList();
+        if(null!=list && list.size()>0){
+            List<GoodsOrderInfoForm> orderInfoFormList = BeanCopyUtil.convertList(list,GoodsOrderInfoForm.class);
+            for (GoodsOrderInfoForm form:orderInfoFormList) {
+                String guid = form.getGuid();
+                List<GoodsOrderDetailForm> detailFormList =orderDetailInfoService.getOrderDetailListByOrderId(guid);
+                form.setGoodsOrderDetailForm(detailFormList);
+            }
+            return success(orderInfoFormList,pageInfo.getTotal());
+        }
+        return success(pageInfo.getList(),pageInfo.getTotal());
+    }
+
+    @ApiOperation(value = "查询爱心用户证书信息",notes = "分类查询爱心用户证书")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "customerInfoForm",value = "爱心用户信息", dataType = "CustomerInfoForm")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/searchCredentialList")
+    @AuthCarbonValidate
+    public ResponseBase searchCredentialInfo(@RequestBody GoodsCredentialInfoForm goodsCredentialInfoForm){
+        BaseInfoDO baseInfoDO = this.initiSaveObject();
+        if(baseInfoDO==null){return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+        goodsCredentialInfoForm.setFkCustomerId(baseInfoDO.getCustomerId());
+        PageInfo pageInfo = credentialInfoService.searchCredentialByPage(goodsCredentialInfoForm);
+        ResultVO resultVO = success(pageInfo.getList(),pageInfo.getTotal());
+        return responseSuccess(resultVO);
+    }
+
+
+    @ApiOperation(value = "生成订单信息",notes = "生成订单信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId",value = "订单Id", dataType = "String")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/saveOrderInfo")
+    @AuthCarbonValidate
+    public ResponseBase saveOrderInfo(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm){
+        CustomerInfoForm member = customerService.getCurrentMember();
+        if(member==null){return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+        log.info("order info is ================>{}",goodsOrderInfoForm);
+        log.info("baseInfo===============>{}",member);
+        goodsOrderInfoForm.setFkCustomerGuid(member.getGuid());
+
+
+
+        ResultVO resultVO = saveOrderInfoAndPayOrderInfo(goodsOrderInfoForm);
+        if(resultVO.getCode()==0){return responseSuccess(resultVO);}
+        return responseError(resultVO);
+    }
+
+    public ResultVO saveOrderInfoAndPayOrderInfo(GoodsOrderInfoForm goodsOrderInfoForm) {
+        int i = convertOrderInfoForm(goodsOrderInfoForm);
+        if(i==1){
+            String orderId = orderClient.saveFullOrderInfo(goodsOrderInfoForm);
+            if(orderId==null){return failure();}
+            return success(goodsOrderInfoForm);
+        }else if(i==-1){
+            return new ResultVO(ResultEnum.GOODS_BUY_AUTH);
+        }
+        return failure();
+    }
+
+
+
+
+    @ApiOperation(value = "取消订单",notes = "取消订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId",value = "订单Id", dataType = "String")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/cancelOrderInfo")
+    @AuthCarbonValidate
+    public ResponseBase cancelOrderInfo(@RequestParam("orderId") String orderId){
+        int i = orderClient.rollbackOrderInfo(orderId);
+        if(i>0){
+            return responseResultSuccess();
+        }
+       return responseResultFailure();
+    }
+
+    @ApiOperation(value = "删除订单",notes = "删除订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId",value = "订单Id", dataType = "String")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @GetMapping("/delOrderInfo")
+    @AuthCarbonValidate
+    public ResponseBase delOrderInfo(@RequestParam("orderId") String orderId){
+        ResultVO resultVO = delOrderInfoClient(orderId);
+        if(resultVO.getCode()==0){
+            return responseSuccess(resultVO);
+        }
+        return responseError(resultVO);
+    }
+    public ResultVO delOrderInfoClient( String orderId) {
+        GoodsOrderInfoForm goodsOrderInfoForm = orderClient.getOrderInfoById(orderId);
+        if(Objects.nonNull(goodsOrderInfoForm)){
+            Integer orderStatus = goodsOrderInfoForm.getOrderStatus();
+            if(orderStatus==1){
+                int i = orderClient.rollbackOrderInfo(orderId);
+                if(i==0){return failure();}
+            }else {
+                int j = orderClient.delOrderInfoByLogical(orderId);
+                if(j==0){return failure();}
+            }
+        }
+        return success();
+    }
+
+
+    @ApiOperation(value = "生成离线支付申请",notes = "生成离线支付申请,用于用户线下支付购碳资金")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "goodsOrderInfoForm",value = "订单信息", dataType = "GoodsOrderInfoForm")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/saveOffLineApply")
+    @AuthCarbonValidate
+    public ResponseBase saveOffLienPayApply(@RequestBody GoodsOrderInfoForm goodsOrderInfoForm){
+        ResultVO resultVO = savePayApplyInfo(goodsOrderInfoForm);
+       if (resultVO.getCode()==0){
+           return responseSuccess(resultVO);
+       }
+       return responseError(resultVO);
+    }
+
+    public ResultVO savePayApplyInfo(GoodsOrderInfoForm goodsOrderInfoForm) {
+        String orderId =  goodsOrderInfoForm.getGuid();
+        if(null!=orderId && !"".equals(orderId)){
+            GoodsOrderInfoForm orderInfoForm = orderClient.getOrderInfoById(orderId);
+            Integer orderSatus = orderInfoForm.getOrderStatus();
+            if(orderSatus!=1){
+                return new ResultVO(ResultEnum.ORDER_PAY_COMPLETE);
+            }
+            int i= orderPayApplyService.savePayApplyInfo(goodsOrderInfoForm);
+            if(i==0){return failure();}
+            return success();
+        }
+        return failure();
+    }
+
+
+    @Autowired
+    private OrderPayVoucherService orderPayVoucherService;
+
+    @ApiOperation(value = "生成离线支付凭证",notes = "生成离线支付凭证,用于线下支付后的凭证记录")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderPayVoucherForm",value = "凭证信息", dataType = "OrderPayVoucherForm")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/saveOffLineVoucher")
+    @AuthCarbonValidate
+    public ResponseBase saveOffLienPayVoucher(@RequestBody OrderPayVoucherForm orderPayVoucherForm){
+        int i = orderPayVoucherService.savePayVoucherInfoAndOrderInfo(orderPayVoucherForm);
+        if (i>0){
+            return responseResultSuccess();
+        }
+        return responseResultFailure();
+    }
+
+
+    @ApiOperation(value = "快速购买某一农户下的可售商品",notes = "快速购买某一农户下的可售商品")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderQueryForm",value = "购买参数", dataType = "OrderQueryForm")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @PostMapping("/saveOrderForFarmer")
+    @AuthCarbonValidate
+    public ResponseBase insertOrderInfoByFarmerId(@RequestBody OrderQueryForm orderQueryForm){
+        BaseInfoDO baseInfoDO = this.initiSaveObject();
+        if(baseInfoDO==null){return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+        return null;
+    }
+
+    @ApiOperation(value = "根据证书guid获取证书信息",notes = "根据证书guid获取证书信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "guid",value = "证书guid", dataType = "string")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @GetMapping("/getCredential")
+    @AuthCarbonValidate
+    public ResponseBase getCredentialInfo(@RequestParam(name = "guid") String guid) {
+        GoodsCredentialInfoForm goodsCredentialInfoForm = credentialInfoService.queryByPrimaryKey(guid);
+
+        return responseResultSuccess(goodsCredentialInfoForm);
+    }
+
+    @ApiOperation(value = "根据订单id获取证书信息",notes = "根据订单id获取证书信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId",value = "订单guid", dataType = "string")
+    })
+    @ApiResponse(code =0,message = "操作成功")
+    @GetMapping("/getCredentialByOrderId")
+    @AuthCarbonValidate
+    public ResponseBase getCredentialByOrderId(@RequestParam(name = "orderId") String orderId) {
+        CredentialInfoBO credentialInfoBO = credentialInfoService.queryByOrderId(orderId);
+        return responseResultSuccess(credentialInfoBO);
+    }
+
+
+    /**
+     * 转换客户订单信息,用于生成客户订单(含快照信息)
+     * @param goodsOrderInfoForm
+     * @return
+     */
+    private int convertOrderInfoForm(GoodsOrderInfoForm goodsOrderInfoForm){
+        //生成订单信息的类别
+        List<GoodsInfoForm> goodsList = goodsOrderInfoForm.getGoodsList();
+        CustomerInfoForm customerInfoForm = customerInfoService.getCustomerInfoById(goodsOrderInfoForm.getFkCustomerGuid());
+        if(Objects.nonNull(customerInfoForm)){
+            Integer customerType = customerInfoForm.getCustomerType();
+            String  typeName = "个人账户";
+            if(customerType==2){
+                typeName="履约企业";
+            }else if(customerType==3) {
+                typeName="普通履约企业";
+            }
+            goodsOrderInfoForm.setCustomerName(customerInfoForm.getCustomerName());
+            goodsOrderInfoForm.setCustomerType(typeName);
+            goodsOrderInfoForm.setOrderStatus(1);
+            //计算碳汇量及碳汇销售总价,生成订单详情列表
+            List<GoodsOrderDetailForm> goodsOrderDetailList = Lists.newArrayList();
+            Double amountMoney = 0d;
+            Double carbonAmount = 0d;
+            if(null!=goodsList && goodsList.size()>0){
+                for (GoodsInfoForm bean:goodsList) {
+                    BigDecimal carbon = bean.getCarbonSkin();
+                    String goodsId = bean.getGuid();
+                    Integer goodsUse =Integer.valueOf(bean.getGoodsUse()) ;
+                    //判断用户类型是否超出购买权限,如果超出购买权限将不允许直接购买
+                    if(customerType==1 && goodsUse==1){
+                        return -1;
+                    }
+                    //有非法商品数量,不生成订单详情
+                    if(carbon.intValue()==0 || Objects.isNull(carbon)){continue;}
+                    GoodsOrderDetailForm detailForm = new GoodsOrderDetailForm();
+                    GoodsInfo goodsInfo = goodsInfoService.queryByPrimaryKey(goodsId);
+                    BigDecimal detailMoney = goodsInfo.getPrice().multiply(carbon);
+                    detailForm.setFkGoodsGuid(goodsId);
+                    detailForm.setAmount(detailMoney);
+                    detailForm.setSaleNum(carbon);
+                    detailForm.setGoodsName(goodsInfo.getGoodsName());
+                    detailForm.setGoodsPrice(goodsInfo.getPrice());
+                    carbonAmount+=carbon.doubleValue();
+                    amountMoney+=detailMoney.doubleValue();
+                    goodsOrderDetailList.add(detailForm);
+                }
+                goodsOrderInfoForm.setOrderAmount(BigDecimal.valueOf(amountMoney));
+                goodsOrderInfoForm.setOrderCarbonAmount(BigDecimal.valueOf(carbonAmount));
+                goodsOrderInfoForm.setGoodsOrderDetailForm(goodsOrderDetailList);
+                return 1;
+            }
+        }
+        return 0;
+    }
+}

+ 355 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/WechatAppController.java

@@ -0,0 +1,355 @@
+package com.hcloud.microserver.bank.controller.web;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
+import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
+import com.github.binarywang.wxpay.constant.WxPayConstants;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.hcloud.microserver.bank.service.CustomerInfoService;
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.BaseController;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.base.Token;
+import com.hcloud.microserver.commoncore.constant.GlobleConstant;
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.util.*;
+import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
+import com.hcloud.microserver.facade.carbon.vo.MyWxMpUser;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+import java.security.GeneralSecurityException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@Slf4j
+@Controller
+@RequestMapping("/wechat/app")
+public class WechatAppController extends BaseController {
+    private final Logger logger = LoggerFactory.getLogger(this.getClass());
+
+
+    @Autowired
+    private WxMaService wxMaService;
+
+    @Autowired
+    private CustomerInfoService customerInfoService;
+    /**
+     * 登陆接口
+     */
+    @PostMapping("/login")
+    @ResponseBody
+    public ResponseBase login(@RequestBody MyWxMpUser myWxMpUser) {
+        String code = myWxMpUser.getCode();
+        if (StringUtils.isBlank(code)) {
+            return responseSuccess(new ResultVO(1, "请输入code错误!"));
+        }
+        try {
+            WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code);
+            this.logger.info(session.getSessionKey());
+            this.logger.info(session.getOpenid());
+            //TODO 可以增加自己的逻辑,关联业务相关数据
+            myWxMpUser.setOpenId(session.getOpenid());
+            myWxMpUser.setUnionId(session.getOpenid());
+            //后台新增用户成功
+            String customerId = customerInfoService.wxlogin(myWxMpUser);
+            //登录系统获取本地
+            Map<String, Object> resultMap = getStringObjectMap(customerId);
+            return responseSuccess(new ResultVO(ResultEnum.SUCCESS, resultMap));
+        } catch (WxErrorException e) {
+            this.logger.error(e.getMessage(), e);
+            return responseSuccess(new ResultVO(1, "登录错误!"));
+        }
+    }
+
+    private Map<String, Object> getStringObjectMap(String customerId) {
+        CustomerInfoForm customerInfoForm = customerInfoService.queryByPrimaryKey(customerId);
+        CustomerInfo data = BeanCopyUtil.convertBean(customerInfoForm, CustomerInfo.class);
+//        CustomerInfo data = resultVO.getData();
+        String guid = data.getGuid();
+        Map<String, Object> resultMap = new HashMap<>();
+        ValueOperations<String, Object> operations = redisTemplate.opsForValue();
+        Token token = TokenUtil.createJwtToken(guid, GlobleConstant.CURRENT_MEMBER);
+        String accessToken = token.getAccessToken();
+        resultMap.put("accessToken", accessToken);
+        resultMap.put(WECHAT_USER_INFO, data);
+        operations.set(token.getAccessToken(), resultMap, GlobleConstant.TOKEN_EXPIRES_SECOND, TimeUnit.SECONDS);
+        return resultMap;
+    }
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    private static final String WECHAT_USER_INFO = "wechatUserInfo";
+
+    @GetMapping("dologin")
+    @ResponseBody
+    public ResponseBase login(String customerId) {
+        Map<String, Object> resultMap = getStringObjectMap(customerId);
+        return responseSuccess(new ResultVO(ResultEnum.SUCCESS, resultMap));
+    }
+
+    /**
+     * <pre>
+     * 获取用户信息接口
+     * </pre>
+     */
+    @GetMapping("/info")
+    public String info(String sessionKey,
+                       String signature, String rawData, String encryptedData, String iv) {
+        // 用户信息校验
+        if (!wxMaService.getUserService().checkUserInfo(sessionKey, rawData, signature)) {
+            return "user check failed";
+        }
+        // 解密用户信息
+        WxMaUserInfo userInfo = wxMaService.getUserService().getUserInfo(sessionKey, encryptedData, iv);
+        MyWxMpUser myWxMpUser = getMyWxMpUser(userInfo);
+        String wxlogin = customerInfoService.wxlogin(myWxMpUser);
+        return JsonUtils.toJson(wxlogin);
+    }
+
+    private MyWxMpUser getMyWxMpUser(WxMaUserInfo userInfo) {
+        String openId = userInfo.getOpenId();
+        String unionId = userInfo.getUnionId();
+        String nickName = userInfo.getNickName();
+        String gender = userInfo.getGender();
+        String avatarUrl = userInfo.getAvatarUrl();
+        MyWxMpUser myWxMpUser = new MyWxMpUser();
+        myWxMpUser.setOpenId(openId);
+        myWxMpUser.setUnionId(unionId);
+        myWxMpUser.setNickname(nickName);
+        myWxMpUser.setHeadImgUrl(avatarUrl);
+        myWxMpUser.setSex(1);
+        return myWxMpUser;
+    }
+
+
+
+
+    @Value("${wx.auth.wxpayAppcallbackurl}")
+    private String wxpayCallbackUrl;
+
+    @Autowired
+    private WxPayService wxPayService;
+
+
+    @PostMapping("/pay")
+    @AuthCarbonValidate
+    @ResponseBody
+    public ResponseBase pay( HttpServletRequest request) {
+//        String orderId = wxPayFrom.getOrderId();
+//        String openid = wxPayFrom.getOpenid();
+//        String tradeType = wxPayFrom.getTradeType();
+//        ResultVO<Order> appget = orderClient.get(orderId);
+//        Order data = appget.getData();
+//        int enable = data.getEnable().intValue();
+//        if(1==enable){
+//            throw new RuntimeException("订单已支付");
+//        }
+        WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
+        //随机字符串
+        String s = UUIDUtils.randomUUID();
+
+        orderRequest.setNonceStr(s);
+        //商品描述
+        orderRequest.setBody("碳汇扶贫!");
+        //商户订单号(支付编号)
+        GeneratorIdUtils generatorIdUtils = new GeneratorIdUtils();
+        String orderNum = generatorIdUtils.nextId();
+        log.info("orderNum:" + orderNum);
+        //设置商户订单号
+        orderRequest.setOutTradeNo(orderNum);
+        //设置支付id
+//        data.setTransId(orderNum);
+        //设置金额
+//        BigDecimal money = data.getTotalPrice();
+        //元转成分
+//        money = money.multiply(new BigDecimal(100));
+//        int i = money.intValue();
+//        if ("test".equals(tradeType)) {
+//            //测试环境一分钱
+//            orderRequest.setTotalFee(1);
+//        } else {
+//            orderRequest.setTotalFee(i);
+//        }
+        //终端ip
+        String ipAddress = getIpAddress(request);
+        orderRequest.setSpbillCreateIp(ipAddress);
+        // 通知地址 支付成功后回调地址
+        log.info("wxpayCallbackUrl=================>{}", wxpayCallbackUrl);
+        orderRequest.setNotifyUrl(wxpayCallbackUrl);
+        //交易类型
+        orderRequest.setTradeType(WxPayConstants.TradeType.APP);
+        //用户标识 获取用户openid
+//        orderRequest.setOpenid(openid);
+        // 这个可能是偏向原生一点的统一下单,返回的参数有很多没用的 或者null值 建议使用 createOrder下单
+        Object unOrder = null;
+        try {
+            unOrder = wxPayService.createOrder(orderRequest);
+        } catch (WxPayException e) {
+            //e.printStackTrace();
+            log.error(e.getMessage());
+            //签名完成新增支付订单
+            ResultVO resultVO = new ResultVO();
+            resultVO.setCode(1);
+            resultVO.setMsg("微信支付失败!");
+            return responseError(resultVO);
+        }
+        //更新本地订单支付id
+//        orderClient.update(data);
+        //签名完成新增支付订单
+        ResultVO resultVO = new ResultVO();
+        resultVO.setCode(0);
+        resultVO.setData(unOrder);
+        return responseSuccess(resultVO);
+    }
+
+
+    /**
+     * wx支付成功回调接口
+     *
+     * @param request
+     * @param response
+     * @throws IOException
+     */
+    @RequestMapping("payResult")
+    public void payResult(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        log.info("微信支付返回通知函数开始---------------------");
+
+        InputStream inStream = request.getInputStream();
+        ByteArrayOutputStream outSteam = new ByteArrayOutputStream();
+        byte[] buffer = new byte[1024];
+        int len = 0;
+        while ((len = inStream.read(buffer)) != -1) {
+            outSteam.write(buffer, 0, len);
+        }
+        outSteam.close();
+        inStream.close();
+        String result = new String(outSteam.toByteArray(), "utf-8");
+        boolean isPayOk = false;
+        WxPayOrderNotifyResult wxPayOrderNotifyResult = null;
+        // 此处调用订单查询接口验证是否交易成功
+        try {
+            wxPayOrderNotifyResult = wxPayService.parseOrderNotifyResult(result);
+            if ("SUCCESS".equals(wxPayOrderNotifyResult.getResultCode())) {
+                isPayOk = true;
+            }
+            log.info("解析数据:" + wxPayOrderNotifyResult.toString());
+        } catch (WxPayException e) {
+            e.printStackTrace();
+        }
+        String noticeStr = "";
+        // 支付成功,商户处理后同步返回给微信参数
+        PrintWriter writer = response.getWriter();
+        if (isPayOk) {
+            //建议在这里处理付款完成的业务(虽然前端也可以处理后续业务,但是前端处理并不安全,例如:客户突然关闭浏览器了等情况,付款成功后续的业务将中断)
+            //支付订单支付编号
+            System.out.println("===============付款成功,业务开始处理==============");
+            String orderNum = wxPayOrderNotifyResult.getOutTradeNo();
+            log.info("orderNum:" + orderNum);
+
+//            Order order=new Order();
+//            order.setTransId(orderNum);
+//            //将订单更新为支付
+//            orderClient.payment(order);
+            /**
+             * 自己的业务
+             */
+            System.out.println("===============付款成功,业务处理完毕==============");
+            // 通知微信已经收到消息,不要再给我发消息了,否则微信会8连击调用本接口
+            noticeStr = setXML("SUCCESS", "OK");
+            log.info("收到通知返回给微信api信息:-----------" + noticeStr);
+            writer.write(noticeStr);
+            writer.flush();
+        } else {
+            // 支付失败, 记录流水失败
+            noticeStr = setXML("FAIL", "");
+            writer.write(noticeStr);
+            writer.flush();
+            System.out.println("===============支付失败==============");
+        }
+    }
+
+
+
+    /**
+     * //签名成功生成支付订单
+     *
+     * @return
+     * @throws GeneralSecurityException
+     */
+    private void insertPayOrder(Object object) {
+
+
+    }
+
+    public static String setXML(String return_code, String return_msg) {
+        return "<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>";
+    }
+
+    public static String getIpAddress(HttpServletRequest request) {
+        String ip = request.getHeader("x-forwarded-for");
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_CLIENT_IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+        String[] split = ip.split(",");
+        ip = split[0];
+        return ip;
+    }
+    /**
+     * <pre>
+     * 获取用户绑定手机号信息
+     * </pre>
+     */
+    @GetMapping("/phone")
+    public String phone(String sessionKey, String signature,
+                        String rawData, String encryptedData, String iv) {
+
+        // 用户信息校验
+        if (!wxMaService.getUserService().checkUserInfo(sessionKey, rawData, signature)) {
+            return "user check failed";
+        }
+
+        // 解密
+        WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService().getPhoneNoInfo(sessionKey, encryptedData, iv);
+
+        return JsonUtils.toJson(phoneNoInfo);
+    }
+
+
+}

+ 485 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/controller/web/WechatManagerController.java

@@ -0,0 +1,485 @@
+package com.hcloud.microserver.bank.controller.web;
+
+import com.github.binarywang.wxpay.bean.notify.WxPayOrderNotifyResult;
+import com.github.binarywang.wxpay.bean.request.WxPayUnifiedOrderRequest;
+import com.github.binarywang.wxpay.constant.WxPayConstants;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import com.github.binarywang.wxpay.service.WxPayService;
+import com.hcloud.microserver.bank.biz.WechatManagerComponent;
+import com.hcloud.microserver.bank.common.BaseInfoDO;
+import com.hcloud.microserver.bank.common.CarbonBaseController;
+import com.hcloud.microserver.bank.config.WxMpConfiguration;
+import com.hcloud.microserver.bank.service.OrderInfoService;
+import com.hcloud.microserver.bank.service.OrderPayService;
+import com.hcloud.microserver.commoncore.annotation.AuthCarbonValidate;
+import com.hcloud.microserver.commoncore.base.ResponseBase;
+import com.hcloud.microserver.commoncore.base.ResultVO;
+import com.hcloud.microserver.commoncore.constant.GlobleConstant;
+import com.hcloud.microserver.commoncore.enums.ResultEnum;
+import com.hcloud.microserver.commoncore.service.RedisUtils;
+import com.hcloud.microserver.commoncore.util.GeneratorIdUtils;
+import com.hcloud.microserver.commoncore.util.HttpKit;
+import com.hcloud.microserver.commoncore.util.UUIDUtils;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
+import com.hcloud.microserver.facade.carbon.forms.GoodsOrderInfoForm;
+import com.hcloud.microserver.facade.carbon.forms.GoodsPayOrderForm;
+import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.bean.WxJsapiSignature;
+import me.chanjar.weixin.common.error.WxErrorException;
+import me.chanjar.weixin.common.util.http.URIUtil;
+import me.chanjar.weixin.mp.api.WxMpService;
+import me.chanjar.weixin.mp.api.WxMpUserService;
+import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
+import me.chanjar.weixin.mp.bean.result.WxMpUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.security.GeneralSecurityException;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.concurrent.TimeUnit;
+
+
+/**
+ * @author xiezt
+ */
+@Slf4j
+@RestController
+@RequestMapping("/wap/weChat")
+@Api(description = "H5微信api服务")
+public class WechatManagerController extends CarbonBaseController {
+
+    private static final String WECHAT_AUTH_SCOPE="snsapi_userinfo";
+
+    private static final String WECHAT_AUTH_BASE_SCOPE="snsapi_base";
+
+    private static final String WECHAT_USER_INFO="wechatUserInfo";
+
+    private static final  String WECHAT_PAY_FLAG_TEST="test";
+
+    private static final String WECHAT_INFO_PREFIX="weChatInfoPrefix_";
+
+    @Value("${wx.mp.appId}")
+    private String appid;
+
+    @Value("${wx.auth.redirecturl}")
+    private String wechatRedirectUrl;
+
+    @Value("${wx.auth.baseurl}")
+    private String weChatBaseUrl;
+
+    @Value("${wx.pay.flag}")
+    private String payFlag;
+
+    @Value("${wx.auth.wxpaycallbackurl}")
+    private String wxpayCallbackUrl;
+
+    private String weChatForwardUrl;
+    /**
+     * 静默授权时
+     */
+    private String currentCustomerId;
+
+    private String globalToken;
+
+    @Autowired
+    private WechatManagerComponent weChatManager;
+
+    @Autowired
+    private WxPayService wxPayService;
+
+    @Autowired
+    private OrderInfoService orderClient;
+
+    @Autowired
+    private OrderPayService orderPayClient;
+
+    @Autowired
+    private RedisUtils redisUtils;
+
+    @ApiOperation(value = "微信登录",notes = "微信登录")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "furl",value = "授权成功后的", dataType = "String",paramType = "query"),
+            @ApiImplicitParam(name = "authScope",value = "授权范围", dataType = "Integer",paramType = "query"),
+            @ApiImplicitParam(name = "token",value = "当前用户token", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =0,message = "查询成功")
+    @GetMapping("/login")
+   @AuthCarbonValidate
+    public void login(@RequestParam("furl") String furl,
+                      Integer authScope,
+                      String token){
+        if(null!=furl && !"".equals(weChatForwardUrl)){
+            weChatForwardUrl = furl;
+        }
+        if(Objects.nonNull(token)){
+            BaseInfoDO baseInfoDO = this.initiSaveObject(token);
+            if(Objects.nonNull(baseInfoDO)){
+                //登录失效跳转登录首页
+                currentCustomerId=baseInfoDO.getCustomerId();
+                }
+            globalToken = token;
+
+        }
+        log.info("currentCustomerId is ================>{}",currentCustomerId);
+        final WxMpService wxMpService = WxMpConfiguration.getMpServices().get(appid);
+        String authUrls = "";
+        if(authScope==2){
+            authUrls= wxMpService.getOAuth2Service().buildAuthorizationUrl(weChatBaseUrl,WECHAT_AUTH_BASE_SCOPE, URIUtil.encodeURIComponent(weChatForwardUrl));
+        }else{
+            authUrls= wxMpService.getOAuth2Service().buildAuthorizationUrl(wechatRedirectUrl,WECHAT_AUTH_SCOPE, URIUtil.encodeURIComponent(weChatForwardUrl));
+        }
+        try {
+            log.info("authUrls===============>{}",authUrls);
+            this.getResponseObject().sendRedirect(authUrls);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("请求微信权限地址错误请检查配置参数,配置的url:{}",authUrls);
+        }
+    }
+
+    @ApiOperation(value = "获取微信用户基本信息",notes = "微信静默授权接口请勿随意调用")
+    @ApiResponse(code =500,message = "请求的配置参数有问题")
+    @GetMapping("/baseLogin")
+    @AuthCarbonValidate
+    public void baseLogin(@RequestParam("code") String code){
+        log.info("currentCustomerId======================>{}",currentCustomerId);
+        log.info("global token==========================>{}",globalToken);
+        if(null!=code && !"".equals(code)){
+            log.info("微信权限认证code是====================>{}",code);
+            final WxMpService wxMpService = WxMpConfiguration.getMpServices().get(appid);
+            try {
+
+                WxMpOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(code);
+//                WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code);
+                if(accessToken!=null ){
+                    log.info("accessToken object is:{}",accessToken);
+                    WxMpUserService userService = wxMpService.getUserService();
+                    WxMpUser wxMpUser = userService.userInfo(accessToken.getAccessToken());
+//                    WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(accessToken,"");
+                    log.info("wxMpUser object is:{}",wxMpUser);
+                    if(null!=currentCustomerId && !"".equals(currentCustomerId)){
+                        //微信授权信息写入登录缓存用户微信支付
+                        Map resultMap = (Map) redisUtils.getValue(globalToken);
+                        if(Objects.nonNull(resultMap)){
+                            resultMap.put(GlobleConstant.WECHAT_INFO_PREFIX,wxMpUser);
+                        }
+                        redisUtils.setValue(globalToken,resultMap, GlobleConstant.TOKEN_EXPIRES_SECOND,TimeUnit.SECONDS);
+                    }
+                    this.getResponseObject().sendRedirect(weChatForwardUrl);
+                }
+            } catch (Exception e) {
+                log.error("微信参数错误,请查看参数配置谢谢");
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @ApiOperation(value = "获取微信用户信息",notes = "微信回调接口请勿直接请求")
+    @ApiResponse(code =500,message = "请求的配置参数有问题")
+    @GetMapping("/doLogin")
+    @AuthCarbonValidate
+    public void doLogin(@RequestParam("code") String code){
+        if(null!=code && !"".equals(code)){
+            log.info("微信权限认证code是====================>{}",code);
+           final WxMpService wxMpService = WxMpConfiguration.getMpServices().get(appid);
+            try {
+                WxMpOAuth2AccessToken accessToken = wxMpService.getOAuth2Service().getAccessToken(code);
+//                WxMpOAuth2AccessToken accessToken = wxMpService.oauth2getAccessToken(code);
+                if(accessToken!=null ){
+                  log.info("accessToken object is:{}",accessToken);
+                    WxMpUserService userService = wxMpService.getUserService();
+                    WxMpUser wxMpUser = userService.userInfo(accessToken.getAccessToken());
+//                  WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(accessToken,"");
+                  log.info("wxMpUser object is:{}",wxMpUser);
+                  Map map = weChatManager.getWechatAccessToken(wxMpUser);
+                  if(null!=map && map.size()>0){
+                      String  token = (String) map.get(GlobleConstant.ACCESS_TOKEN);
+                      log.info("redirectUrl======================>{}",weChatForwardUrl+"?accessToken="+token);
+                      this.getResponseObject().sendRedirect(weChatForwardUrl+"?accessToken="+token);
+                  }else {
+                      this.getResponseObject().sendRedirect(weChatForwardUrl);
+                  }
+                }
+            } catch (Exception e) {
+                log.error("微信参数错误,请查看参数配置谢谢");
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @ApiOperation(value = "退出登录",notes = "退出登录,删除缓存信息")
+    @ApiResponse(code =500,message = "请求的配置参数有问题")
+    @GetMapping("/logout")
+    @AuthCarbonValidate
+    public ResponseBase logout(){
+        BaseInfoDO baseInfoDO = this.initiSaveObject();
+        if(baseInfoDO==null){responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));}
+        String accessToken = this.getRequestObject().getHeader(ACCESS_TOKEN);
+        redisUtils.deleteKey(accessToken);
+        return responseSuccess(new ResultVO(ResultEnum.SUCCESS));
+    }
+
+
+
+
+    @ApiOperation(value = "微信支付接口(二次支付)",notes = "微信支付接口请勿随意调用(二次支付)")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId",value = "订单编号", dataType = "String",paramType = "query"),
+            @ApiImplicitParam(name = "tradeType",value = "交易方式(NATIVE,APP,JSAPI,MWEB)", dataType = "String",paramType = "query")
+    })
+    @ApiResponse(code =500,message = "请求的配置参数有问题")
+    @AuthCarbonValidate
+    @GetMapping("/pay")
+    public ResponseBase pay(@RequestParam("orderId") String orderId,
+                            @RequestParam("tradeType") String tradeType){
+        try {
+            BaseInfoDO baseInfoDO = this.initiSaveObject();
+            WxMpUser wxMpUser = this.initiWwChatInfo();
+            if(Objects.isNull(baseInfoDO)){
+                return responseError(new ResultVO(ResultEnum.TOKEN_EXPIRED));
+            }
+            //验证商品订单是否已经支付
+            GoodsOrderInfoForm orderInfoById = orderClient.getOrderInfoById(orderId);
+            if(orderInfoById==null){
+                return responseEnum(ResultEnum.ORDER_PAY_DUPLICATE);
+            }
+//            Map orderInfoMap = (Map) resultVO.getData();
+//            log.info("orderInfoMap=======================>{}",orderInfoMap);
+//            Double payMoney = (Double) orderInfoMap.get("orderAmount");
+//            Double orderCarbonAmount = (Double) orderInfoMap.get("orderCarbonAmount");
+//            JavaBeanUtils.mapToEntity(orderInfoMap, GoodsOrderInfoForm.class);
+            GoodsOrderInfoForm orderInfoForm =  orderInfoById;
+            Double payMoney = Double.valueOf(orderInfoById.getOrderAmount().toString());
+            Double orderCarbonAmount = Double.valueOf(orderInfoById.getOrderCarbonAmount().toString());
+            log.info("orderInfo===================>{}",orderInfoForm);
+            if(orderInfoForm.getOrderStatus()!=1){
+                return responseError(new ResultVO(ResultEnum.ORDER_PAY_COMPLETE));
+            }
+            CustomerInfoForm customerInfoForm = weChatManager.getCustomerInfoByCustomerId(orderInfoForm.getFkCustomerGuid());
+            log.info("customerInfo=======================>{}",customerInfoForm);
+            //生成支付订单,并返回支付订单编号
+            BigDecimal orderAmount = BigDecimal.valueOf(payMoney);
+            orderInfoForm.setOrderAmount(orderAmount);
+            String payNo = this.insertPayOrderInfo(orderInfoForm);
+            if(payNo==null){return responseError(new ResultVO(308,"支付订单生成失败"));}
+            log.info("pay order no=======================>{}",payNo);
+            //调用微信统一下单接口
+            log.info("money=====================>{}",payMoney);
+            Object unOrder = null;
+            if(WxPayConstants.TradeType.JSAPI.equals(tradeType)){
+                unOrder = this.wxUnifiedOrder(payNo,orderAmount,tradeType,wxMpUser.getOpenId());
+            }else{
+                unOrder = this.wxUnifiedOrder(payNo,orderAmount,tradeType,null);
+            }
+            log.info("pay order result======================>{}",unOrder);
+            //支付倒计时
+            GoodsPayOrderForm payOrderForm = orderPayClient.getPayOrderByNo(payNo);
+//            ResultVO payOrderVo = orderPayClient.getPayOrderInfoByPayNo(payNo);
+//            Map payOrderMap = (Map) payOrderVo.getData();
+//            log.info("payOrderMap=================>{}",payOrderMap);
+//            GoodsPayOrderForm payOrderForm = JavaBeanUtils.mapToEntity(payOrderMap, GoodsPayOrderForm.class);
+            String orderKey ="ord:"+payOrderForm.getOrderNo();
+            redisUtils.setValue(orderKey,payOrderForm,900,TimeUnit.SECONDS);
+            return responseSuccess(success(unOrder));
+        } catch (Exception ex) {
+            ex.printStackTrace();
+            return responseError(failure());
+        }
+    }
+
+    @ApiOperation(value = "微信支付结果回调",notes = "微信支付结果回调请勿直接调用")
+    @ApiResponse(code =500,message = "请求的配置参数有问题")
+    @AuthCarbonValidate
+    @PostMapping("/payResultNotified")
+    public String payOrderResultNotify(HttpServletRequest request){
+        String xmlResult = HttpKit.readData(request);
+        boolean isPayOk = false;
+        WxPayOrderNotifyResult wxPayOrderNotifyResult = null;
+        try {
+            wxPayOrderNotifyResult = wxPayService.parseOrderNotifyResult(xmlResult);
+            if (WxPayConstants.ResultCode.SUCCESS.equals(wxPayOrderNotifyResult.getResultCode())) {
+                isPayOk = true;
+            }
+            log.info("WxPayOrderNotifyResult is ===================>{}",wxPayOrderNotifyResult);
+            if(isPayOk){
+                String payNo = wxPayOrderNotifyResult.getOutTradeNo();
+                // 更新订单信息(含商品订单,支付订单信息)
+                int i = orderClient.updateFullOrderInfo(payNo, 2);
+//                ResultVO resultVO = orderClient.updateOrderInfoAndPayOrderInfo(payNo);
+                if(i<1){
+                    log.error("更新订单信息失败,请联系开发人员");
+                    return setXML("FAIL", "");
+                }
+                //删除已支付成功的支付订单缓存信息
+                GoodsPayOrderForm goodsPayOrderForm = orderPayClient.getPayOrderByNo(payNo);
+                GoodsPayOrderForm payOrderForm = goodsPayOrderForm;
+//                        ResultVO payOrderVo = orderPayClient.getPayOrderInfoByPayNo(payNo);
+//                Map payOrderMap = (Map) payOrderVo.getData();
+//                GoodsPayOrderForm payOrderForm = JavaBeanUtils.mapToEntity(payOrderMap, GoodsPayOrderForm.class);
+                redisUtils.deleteKey("ord:"+payOrderForm.getOrderNo());
+                //返回响应信息给微信接口
+                return setXML("SUCCESS", "OK");
+            }else {
+                // 支付失败, 记录流水失败
+                return setXML("FAIL", "");
+            }
+        } catch (WxPayException e) {
+            log.info("微信支付通知失败,请联系开发人员");
+            e.printStackTrace();
+        }
+        return setXML("FAIL", "");
+    }
+
+
+
+    @ApiOperation(value = "微信js签名接口", notes = "微信js签名接口")
+    @ApiResponses({
+            @ApiResponse(code = 0, message = "成功")
+    })
+    @AuthCarbonValidate
+    @GetMapping("getJsapiTicket")
+    public ResponseBase getJsapiTicket(String url) {
+        final WxMpService wxMpService = WxMpConfiguration.getMpServices().get(appid);
+        WxJsapiSignature jsapiSignature = null;
+        ResultVO resultVO = new ResultVO();
+        try {
+            jsapiSignature = wxMpService.createJsapiSignature(url);
+            resultVO.setCode(ResultEnum.SUCCESS.getCode());
+            resultVO.setData(jsapiSignature);
+        } catch (WxErrorException e) {
+            e.printStackTrace();
+            System.err.print(e.getError());
+            resultVO.setCode(ResultEnum.FAILURE.getCode());
+            resultVO.setData("微信js签名失败");
+        }
+        return responseSuccess(resultVO);
+    }
+
+    @ApiOperation(value = "微信授权信息检测", notes = "检测是否已经有微信授权信息")
+    @ApiResponses({
+            @ApiResponse(code = 0, message = "微信已授权")
+    })
+    @AuthCarbonValidate
+    @GetMapping("/checkWxMap")
+    public ResponseBase checkWxMap(){
+        Map resultMap = new HashMap();
+        WxMpUser wxMpUser = this.initiWwChatInfo();
+        if(Objects.nonNull(wxMpUser)){
+            resultMap.put("status",1);
+            return responseSuccess(success(resultMap));
+        }
+        resultMap.put("status",0);
+        return responseError(success(resultMap));
+    }
+
+    /**
+     * 生成支付订单
+     * @param orderInfoForm
+     */
+    private String insertPayOrderInfo(GoodsOrderInfoForm orderInfoForm){
+        if(null!= orderInfoForm && !"".equals(orderInfoForm.getOrderNo())){
+            GeneratorIdUtils generatorIdUtils = new GeneratorIdUtils();
+            String orderNum = generatorIdUtils.nextId();
+            GoodsPayOrderForm goodsPayOrderForm = new GoodsPayOrderForm();
+            goodsPayOrderForm.setFkCustomerId(orderInfoForm.getFkCustomerGuid());
+            goodsPayOrderForm.setFkOrderId(orderInfoForm.getGuid());
+            goodsPayOrderForm.setOrderNo(orderInfoForm.getOrderNo());
+            goodsPayOrderForm.setPayAmount(orderInfoForm.getOrderAmount());
+            goodsPayOrderForm.setPayChannel(1);
+            goodsPayOrderForm.setPayStatus(1);
+            goodsPayOrderForm.setPayNo(orderNum);
+            goodsPayOrderForm.setPayTime(new Date());
+            log.info("goodsPayOrderForm==================>{}",goodsPayOrderForm);
+            int i =  orderPayClient.saveSelective(goodsPayOrderForm);
+//            ResultVO resultVO = orderPayClient.savePayOrderInfo(goodsPayOrderForm);
+            if(i>0){
+                return orderNum;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 微信统一下单
+     * @param payNo 支付订单号
+     * @param money 支付金额
+     * @param tradeType 交易类型
+     * @param wxId 微信openid(只用于jsaip交易方式)
+     * @return
+     * @throws WxPayException
+     */
+    private Object wxUnifiedOrder(String payNo,BigDecimal money,String tradeType,String wxId) throws WxPayException {
+        WxPayUnifiedOrderRequest orderRequest = new WxPayUnifiedOrderRequest();
+        orderRequest.setNonceStr(UUIDUtils.randomUUID());
+        //商品描述
+        orderRequest.setBody("碳汇+平台购买商品");
+        //商户订单号(支付编号)
+        orderRequest.setOutTradeNo(payNo);
+        //元转成分
+        BigDecimal cmoney = money.multiply(new BigDecimal(100));
+        int i = cmoney.intValue();
+        if(WECHAT_PAY_FLAG_TEST.equalsIgnoreCase(payFlag)){
+            orderRequest.setTotalFee(1);
+        }else{
+            orderRequest.setTotalFee(i);
+        }
+        //终端ip
+        orderRequest.setSpbillCreateIp(getIpAddress(this.getRequestObject()));
+        // 通知地址 支付成功后跳转页面
+        log.info("wxpayCallbackUrl=================>{}", wxpayCallbackUrl);
+        orderRequest.setNotifyUrl(wxpayCallbackUrl);
+        //交易类型
+        orderRequest.setTradeType(tradeType);
+        //用户标识 获取用户openid
+        if(wxId!=null){
+            orderRequest.setOpenid(wxId);
+        }
+        // 这个可能是偏向原生一点的统一下单,返回的参数有很多没用的 或者null值 建议使用 createOrder下单
+        return wxPayService.createOrder(orderRequest);
+    }
+
+    /**
+     * //签名成功生成支付订单
+     *
+     * @return
+     * @throws GeneralSecurityException
+     */
+    private void insertPayOrder(Object object) {
+
+
+    }
+
+    public static String setXML(String return_code, String return_msg) {
+        return "<xml><return_code><![CDATA[" + return_code + "]]></return_code><return_msg><![CDATA[" + return_msg + "]]></return_msg></xml>";
+    }
+
+    public static String getIpAddress(HttpServletRequest request) {
+        String ip = request.getHeader("x-forwarded-for");
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_CLIENT_IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+        String[] split = ip.split(",");
+        ip = split[0];
+        return ip;
+    }
+
+}

+ 4 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/dao/CustomerInfoMapper.java

@@ -5,6 +5,7 @@ import com.hcloud.microserver.commoncore.base.BaseMapper;
 import com.hcloud.microserver.commoncore.base.PageBean;
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
 import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
+import com.hcloud.microserver.facade.carbon.vo.MyWxMpUser;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -50,4 +51,7 @@ public interface CustomerInfoMapper extends BaseMapper<CustomerInfo,String> {
      */
     CustomerInfoBO getCustomerStatisticalInfo(@Param("cusId") String customerId);
 
+
+    CustomerInfo wxlogin(@Param("myWxMpUser") MyWxMpUser myWxMpUser);
+
 }

+ 3 - 2
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/CustomerCacheService.java

@@ -2,6 +2,7 @@ package com.hcloud.microserver.bank.service;
 
 
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
 
 /**
  * 会员信息缓存业务类
@@ -16,12 +17,12 @@ public interface CustomerCacheService {
     /**
      * 获取会员用户缓存
      */
-    CustomerInfo getCustomer(String username);
+    CustomerInfoForm getCustomer(String username);
 
     /**
      * 设置会员用户缓存
      */
-    void setCustomer(CustomerInfo customer);
+    void setCustomer(CustomerInfoForm customer);
 
     /**
      * 设置验证码

+ 4 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/CustomerInfoService.java

@@ -3,6 +3,7 @@ package com.hcloud.microserver.bank.service;
 import com.github.pagehelper.PageInfo;
 import com.hcloud.microserver.commoncore.base.BaseServie;
 import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
+import com.hcloud.microserver.facade.carbon.vo.MyWxMpUser;
 
 /**
  * @author xiezt
@@ -82,4 +83,7 @@ public interface CustomerInfoService extends BaseServie<CustomerInfoForm,String>
      * @return
      */
     int bindCustomerPhone(String customerId,String phone);
+
+
+    String wxlogin(MyWxMpUser wxMpUser);
 }

+ 4 - 3
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/CustomerService.java

@@ -3,15 +3,16 @@ package com.hcloud.microserver.bank.service;
 import com.hcloud.microserver.bank.bo.CustomerDetails;
 import com.hcloud.microserver.bank.forms.LoginForm;
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
 
 public interface CustomerService {
 
 
-    public CustomerInfo getByUserId(String guid);
+    public CustomerInfoForm getByUserId(String accountStr);
 
-    public CustomerDetails loadUserByUserId(String guid);
+    public CustomerDetails loadUserByUserId(String accountStr);
 
-    public CustomerInfo getCurrentMember();
+    public CustomerInfoForm getCurrentMember();
 
     public String login(LoginForm loginForm);
 

+ 4 - 3
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/impl/CustomerCacheServiceImpl.java

@@ -3,6 +3,7 @@ package com.hcloud.microserver.bank.service.impl;
 import com.hcloud.microserver.bank.dao.CustomerInfoMapper;
 import com.hcloud.microserver.bank.service.CustomerCacheService;
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
 import com.hcloud.microserver.security.annotation.CacheException;
 import com.hcloud.microserver.security.service.RedisService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -51,13 +52,13 @@ public class CustomerCacheServiceImpl implements CustomerCacheService {
     }
 
     @Override
-    public CustomerInfo getCustomer(String memberId) {
+    public CustomerInfoForm getCustomer(String memberId) {
         String key = REDIS_DATABASE + ":" + REDIS_KEY_MEMBER + ":" + memberId;
-        return (CustomerInfo) redisService.get(key);
+        return (CustomerInfoForm) redisService.get(key);
     }
 
     @Override
-    public void setCustomer(CustomerInfo customerInfo) {
+    public void setCustomer(CustomerInfoForm customerInfo) {
         String key = REDIS_DATABASE + ":" + REDIS_KEY_MEMBER + ":" + customerInfo.getGuid();
         redisService.set(key, customerInfo, REDIS_EXPIRE);
     }

+ 43 - 0
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/impl/CustomerInfoServiceImpl.java

@@ -16,6 +16,7 @@ import com.hcloud.microserver.facade.carbon.entity.CustomerChannel;
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
 import com.hcloud.microserver.facade.carbon.forms.CustomerCompanyInfoForm;
 import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
+import com.hcloud.microserver.facade.carbon.vo.MyWxMpUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -270,6 +271,48 @@ public class CustomerInfoServiceImpl implements CustomerInfoService {
         return i;
     }
 
+    @Override
+    public String wxlogin(MyWxMpUser wxMpUser) {
+        String unionId = wxMpUser.getUnionId();
+        String phone = wxMpUser.getPhone();
+        CustomerInfo customerInfo = customerInfoMapper.wxlogin(wxMpUser);
+        String openId = wxMpUser.getOpenId();
+        String nickname = wxMpUser.getNickname();
+        String headImgUrl = wxMpUser.getHeadImgUrl();
+        Integer sex = wxMpUser.getSex();
+
+        if(null == customerInfo){
+            customerInfo = new CustomerInfo();
+            //设置唯一标识
+            customerInfo.setGuid(GetUUID.getUUID());
+            customerInfo.setUnionId(unionId);
+            customerInfo.setWxId(openId);
+            customerInfo.setSex(sex);
+            if(null!=phone){
+                customerInfo.setPhone(phone);
+            }
+            customerInfo.setNickName(nickname);
+            customerInfo.setHeadImage(headImgUrl);
+            customerInfo.setIsCompany(0);
+            //状态设置为可用
+            customerInfo.setIsEnable(1);
+            customerInfoMapper.insertSelective(customerInfo);
+        }else{
+            customerInfo.setUnionId(unionId);
+            customerInfo.setWxId(openId);
+            customerInfo.setSex(sex);
+            if(null!=phone){
+                customerInfo.setPhone(phone);
+            }
+            customerInfo.setNickName(nickname);
+            customerInfo.setHeadImage(headImgUrl);
+            customerInfoMapper.updateByPrimaryKeySelective(customerInfo);
+        }
+        String guid = customerInfo.getGuid();
+        return guid;
+
+    }
+
 
     @Override
     public int delByPrimaryKey(String guid) {

+ 21 - 6
carbon-h5/carbon-h5-service/src/main/java/com/hcloud/microserver/bank/service/impl/CustomerServiceImpl.java

@@ -4,15 +4,19 @@ import com.hcloud.microserver.bank.bo.CustomerDetails;
 import com.hcloud.microserver.bank.dao.CustomerInfoMapper;
 import com.hcloud.microserver.bank.forms.LoginForm;
 import com.hcloud.microserver.bank.service.CustomerCacheService;
+import com.hcloud.microserver.bank.service.CustomerInfoService;
 import com.hcloud.microserver.bank.service.CustomerService;
 import com.hcloud.microserver.commoncore.exception.Asserts;
 import com.hcloud.microserver.commoncore.util.Md5Util;
 import com.hcloud.microserver.commoncore.util.string.StringUtils;
 import com.hcloud.microserver.facade.carbon.entity.CustomerInfo;
+import com.hcloud.microserver.facade.carbon.forms.CustomerInfoForm;
 import com.hcloud.microserver.security.util.JwtTokenUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
 
@@ -26,24 +30,32 @@ public class CustomerServiceImpl implements CustomerService {
     @Autowired
     private CustomerInfoMapper customerInfoMapper;
 
+    @Autowired
+    private CustomerInfoService customerInfoService;
+
     @Autowired
     private JwtTokenUtil jwtTokenUtil;
 
     @Override
-    public CustomerInfo getByUserId(String accountStr) {
+    public CustomerInfoForm getByUserId(String accountStr) {
         if (StringUtils.isEmpty(accountStr)){
             return null;
         }
-        CustomerInfo customer = customerCacheService.getCustomer(accountStr);
+        CustomerInfoForm customer = customerCacheService.getCustomer(accountStr);
         if (customer==null){
-            customer = customerInfoMapper.searchCustomerByAccount(accountStr);
+            CustomerInfo customerInfo = customerInfoMapper.searchCustomerByAccount(accountStr);
+            if (customerInfo != null){
+                String guid = customerInfo.getGuid();
+                customer = customerInfoService.getCustomerInfoById(guid);
+            }
+
         }
         return customer;
     }
 
     @Override
     public CustomerDetails loadUserByUserId(String accountStr) {
-        CustomerInfo byUserId = getByUserId(accountStr);
+        CustomerInfoForm byUserId = getByUserId(accountStr);
         if (byUserId == null){
             return null;
         }
@@ -51,8 +63,11 @@ public class CustomerServiceImpl implements CustomerService {
     }
 
     @Override
-    public CustomerInfo getCurrentMember() {
-        return null;
+    public CustomerInfoForm getCurrentMember() {
+        SecurityContext ctx = SecurityContextHolder.getContext();
+        Authentication auth = ctx.getAuthentication();
+        CustomerDetails memberDetails = (CustomerDetails) auth.getPrincipal();
+        return memberDetails.getCustomerInfo();
     }
 
     @Override

+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/BasePositionMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/BasePositionMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/CarbonCalculateRuleMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CarbonCalculateRuleMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/CarbonStatisticsMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CarbonStatisticsMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/CollectiveFarmerMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CollectiveFarmerMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/CustomerChannelMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CustomerChannelMapper.xml


+ 1 - 1
carbon-h5/carbon-h5-service/src/main/resources/mappers/CustomerCompanyInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CustomerCompanyInfoMapper.xml

@@ -29,7 +29,7 @@
         select
         <include refid="Base_Column_List"/>
         from t_customer_company_info
-        where fk_customer_id = #{customerId,jdbcType=CHAR}
+        where fk_customer_id = #{customerId,jdbcType=CHAR} limit 1
     </select>
     <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
         delete from t_customer_company_info

+ 17 - 1
carbon-h5/carbon-h5-service/src/main/resources/mappers/CustomerInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/CustomerInfoMapper.xml

@@ -101,7 +101,7 @@
     select
       <include refid="Base_Column_List" />
     from t_customer_info
-    where account = #{account,jdbcType=CHAR}
+    where account = #{account,jdbcType=CHAR} limit 1
   </select>
   <select id="getCustomerByInfo" parameterType="java.lang.String" resultMap="BaseResultMap">
     select
@@ -155,6 +155,22 @@
     GROUP BY
         aa.fk_customer_guid
   </select>
+
+  <select id="wxlogin" parameterType="java.lang.String" resultMap="BaseResultMap">
+    SELECT
+	    a.*, COUNT(b.id)
+    FROM
+        t_customer_info a
+    LEFT JOIN t_order b ON a.guid = b.customer_id
+    WHERE
+        1=1
+    and ( a.wx_id=#{myWxMpUser.openId} or a.union_id=#{myWxMpUser.unionId} or a.phone=#{myWxMpUser.phone} )
+    GROUP BY
+        b.customer_id
+    ORDER BY
+        COUNT(b.id) DESC
+    LIMIT 1
+  </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.String">
   delete from t_customer_info
   where guid = #{guid,jdbcType=CHAR}

+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/FarmerInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/FarmerInfoMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsCredentialInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsCredentialInfoMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsDetailMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsDetailMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsInfoMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsOrderDetailMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsOrderDetailMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsOrderInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsOrderInfoMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsPayOrderMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsPayOrderMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/GoodsSaleInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/GoodsSaleInfoMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/OrderPayApplyMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/OrderPayApplyMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/OrderPayVoucherMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/OrderPayVoucherMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/PovertyAreaMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/PovertyAreaMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/ProductBelongMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductBelongMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/ProductExpansionMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductExpansionMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/ProductInfoMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductInfoMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/ProductTypeExpansionMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductTypeExpansionMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/ProductTypeMapper.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/ProductTypeMapper.xml


+ 0 - 0
carbon-h5/carbon-h5-service/src/main/resources/mappers/WebIndexService.xml → carbon-h5/carbon-h5-service/src/main/resources/com/hcloud/microserver/bank/dao/WebIndexService.xml


+ 22 - 0
common-core/src/main/java/com/hcloud/microserver/commoncore/base/BaseController.java

@@ -107,6 +107,28 @@ public class BaseController {
         return responseBase;
     }
 
+    protected ResponseBase responseEnum(ResultEnum resultEnum) {
+        ResultVO resultVO= new ResultVO(resultEnum);
+        ResponseBase responseBase = new ResponseBase(resultVO.getData());
+        RetHead retHead = new RetHead();
+        retHead.setErrCode(resultVO.getCode().shortValue());
+        retHead.setErrMsg(resultVO.getMsg());
+        retHead.setTotal(resultVO.getCount());
+        responseBase.setRetHead(retHead);
+        return responseBase;
+    }
+
+    protected ResponseBase responseEnumData(ResultEnum resultEnum,Object data) {
+        ResultVO resultVO= new ResultVO(resultEnum,data);
+        ResponseBase responseBase = new ResponseBase(resultVO.getData());
+        RetHead retHead = new RetHead();
+        retHead.setErrCode(resultVO.getCode().shortValue());
+        retHead.setErrMsg(resultVO.getMsg());
+        retHead.setTotal(resultVO.getCount());
+        responseBase.setRetHead(retHead);
+        return responseBase;
+    }
+
 
     /**
      * 操作异常后,返回结果(前后端分离)

+ 2 - 1
common-core/src/main/java/com/hcloud/microserver/commoncore/enums/ResultEnum.java

@@ -101,7 +101,8 @@ public enum ResultEnum {
     DICT_NOT_DEL(905,"基础字典类型不能删除"),
     DICT_CODE_NOTEDIT(906,"基础字典编码不能修改"),
     
-    SELLER_ALREADY_EXIST(720, "该档口已经存在管理员,请选择其他档口");
+    SELLER_ALREADY_EXIST(720, "该档口已经存在管理员,请选择其他档口"),
+    UNAUTHORIZED(401, "暂未登录或token已经过期");
 
 
     private Integer code;