Jelajahi Sumber

悦所4月份测试开发

huan.wang 6 tahun lalu
induk
melakukan
07402280fb
35 mengubah file dengan 838 tambahan dan 12 penghapusan
  1. 20 1
      src/main/java/com/ygj/yuemum/YueMumApplication.java
  2. 12 0
      src/main/java/com/ygj/yuemum/component/Constant.java
  3. 4 0
      src/main/java/com/ygj/yuemum/controller/global/CreatePOPController.java
  4. 22 0
      src/main/java/com/ygj/yuemum/controller/promotion/PromotionChannelController.java
  5. 29 0
      src/main/java/com/ygj/yuemum/controller/promotion/PromotionChannelLogController.java
  6. 25 0
      src/main/java/com/ygj/yuemum/controller/promotion/PromotionTestController.java
  7. 23 0
      src/main/java/com/ygj/yuemum/controller/promotion/PromotionTestResultController.java
  8. 26 0
      src/main/java/com/ygj/yuemum/controller/promotion/PromotionTestUserScoreController.java
  9. 12 0
      src/main/java/com/ygj/yuemum/dao/promotion/PromotionChannelDao.java
  10. 13 0
      src/main/java/com/ygj/yuemum/dao/promotion/PromotionChannelLogDao.java
  11. 12 0
      src/main/java/com/ygj/yuemum/dao/promotion/PromotionTestDao.java
  12. 12 0
      src/main/java/com/ygj/yuemum/dao/promotion/PromotionTestResultDao.java
  13. 11 0
      src/main/java/com/ygj/yuemum/dao/promotion/PromotionTestUserScoreDao.java
  14. 9 0
      src/main/java/com/ygj/yuemum/domain/distributionchannel/DcIntroducerExtract.java
  15. 22 0
      src/main/java/com/ygj/yuemum/domain/promotion/PromotionChannel.java
  16. 50 0
      src/main/java/com/ygj/yuemum/domain/promotion/PromotionChannelLog.java
  17. 18 0
      src/main/java/com/ygj/yuemum/domain/promotion/PromotionDC.java
  18. 49 0
      src/main/java/com/ygj/yuemum/domain/promotion/PromotionTest.java
  19. 58 0
      src/main/java/com/ygj/yuemum/domain/promotion/PromotionTestResult.java
  20. 40 0
      src/main/java/com/ygj/yuemum/domain/promotion/PromotionTestUserScore.java
  21. 70 3
      src/main/java/com/ygj/yuemum/service/global/CreatePOPService.java
  22. 28 0
      src/main/java/com/ygj/yuemum/service/promotion/PromotionChannelLogService.java
  23. 19 0
      src/main/java/com/ygj/yuemum/service/promotion/PromotionChannelService.java
  24. 19 0
      src/main/java/com/ygj/yuemum/service/promotion/PromotionTestResultService.java
  25. 19 0
      src/main/java/com/ygj/yuemum/service/promotion/PromotionTestService.java
  26. 26 0
      src/main/java/com/ygj/yuemum/service/promotion/PromotionTestUserScoreService.java
  27. 5 0
      src/main/java/com/ygj/yuemum/shiro/ShiroConfig.java
  28. 16 6
      src/main/resources/application.yml
  29. 1 0
      src/main/resources/mybatis/mapper/distributionchannel/DcIntroducerExtractMapper.xml
  30. 51 0
      src/main/resources/mybatis/mapper/promotion/PromotionChannelLogMapper.xml
  31. 18 0
      src/main/resources/mybatis/mapper/promotion/PromotionChannelMapper.xml
  32. 5 2
      src/main/resources/mybatis/mapper/promotion/PromotionDCMapper.xml
  33. 23 0
      src/main/resources/mybatis/mapper/promotion/PromotionTestMapper.xml
  34. 24 0
      src/main/resources/mybatis/mapper/promotion/PromotionTestResultMapper.xml
  35. 47 0
      src/main/resources/mybatis/mapper/promotion/PromotionTestUserScoreMapper.xml

+ 20 - 1
src/main/java/com/ygj/yuemum/YueMumApplication.java

@@ -5,11 +5,13 @@ import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.web.servlet.MultipartConfigFactory;
 import org.springframework.boot.web.support.SpringBootServletInitializer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.web.WebApplicationInitializer;
 
+import javax.servlet.MultipartConfigElement;
 import java.util.Properties;
 
 @SpringBootApplication
@@ -32,7 +34,15 @@ public class YueMumApplication {
         pageHelper.setProperties(properties);
         return pageHelper;
     }
-
+    @Bean
+    public MultipartConfigElement multipartConfigElement() {
+        MultipartConfigFactory factory = new MultipartConfigFactory();
+        //  单个数据大小
+        factory.setMaxFileSize("5120KB");
+        /// 总上传数据大小
+        factory.setMaxRequestSize("5120KB");
+        return factory.createMultipartConfig();
+    }
 }
 //public class YueMumApplication extends SpringBootServletInitializer implements WebApplicationInitializer {
 //
@@ -56,4 +66,13 @@ public class YueMumApplication {
 //        pageHelper.setProperties(properties);
 //        return pageHelper;
 //    }
+//    @Bean
+//    public MultipartConfigElement multipartConfigElement() {
+//        MultipartConfigFactory factory = new MultipartConfigFactory();
+//        //  单个数据大小
+//        factory.setMaxFileSize("5120KB");
+//        /// 总上传数据大小
+//        factory.setMaxRequestSize("5120KB");
+//        return factory.createMultipartConfig();
+//    }
 //}

+ 12 - 0
src/main/java/com/ygj/yuemum/component/Constant.java

@@ -55,6 +55,8 @@ public class Constant {
     public static String LOCALQRCODE;
     public static String DEMOQRCODE;
     public static String HTTPOPPQRCODE;
+    public static String TESTQRCODE;
+    public static String HTTTESTQRCODE;
 
     //注入
     @Autowired(required = false)
@@ -251,4 +253,14 @@ public class Constant {
     public void getHTTPOPPQRCODE(@Value("${file.HTTPOPPQRCODE}") String HTTPOPPQRCODE) {
         Constant.HTTPOPPQRCODE = HTTPOPPQRCODE;
     }
+
+    @Autowired(required = false)
+    public void getTESTQRCODE(@Value("${file.TESTQRCODE}") String TESTQRCODE) {
+        Constant.TESTQRCODE = TESTQRCODE;
+    }
+    @Autowired(required = false)
+    public void getHTTTESTQRCODE(@Value("${file.HTTTESTQRCODE}") String HTTTESTQRCODE) {
+        Constant.HTTTESTQRCODE = HTTTESTQRCODE;
+    }
+
 }

+ 4 - 0
src/main/java/com/ygj/yuemum/controller/global/CreatePOPController.java

@@ -17,4 +17,8 @@ public class CreatePOPController {
     public String CreatePOP(@RequestParam("wv_phone") String wv_phone) throws Exception {
         return  createPOPService.CreatePOP(wv_phone);
     }
+    @GetMapping("/CreateTestShare")
+    public String CreateTestShare(@RequestParam("qrcode") String qrcode,@RequestParam("testImg") String testImg,@RequestParam("score") Integer score,@RequestParam("openid") String openid) throws Exception {
+        return  createPOPService.CreateTestShare(qrcode,testImg,score,openid);
+    }
 }

+ 22 - 0
src/main/java/com/ygj/yuemum/controller/promotion/PromotionChannelController.java

@@ -0,0 +1,22 @@
+package com.ygj.yuemum.controller.promotion;
+
+
+import com.ygj.yuemum.domain.promotion.PromotionChannel;
+import com.ygj.yuemum.service.promotion.PromotionChannelService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+public class PromotionChannelController {
+
+    @Autowired
+    private PromotionChannelService promotionChannelService;
+
+    @GetMapping("/getPromotionChannel")
+    public List<PromotionChannel> getPromotionChannel(){
+        return promotionChannelService.getPromotionChannel();
+    }
+}

+ 29 - 0
src/main/java/com/ygj/yuemum/controller/promotion/PromotionChannelLogController.java

@@ -0,0 +1,29 @@
+package com.ygj.yuemum.controller.promotion;
+
+
+import com.ygj.yuemum.domain.promotion.PromotionChannelLog;
+import com.ygj.yuemum.service.promotion.PromotionChannelLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+public class PromotionChannelLogController {
+
+    @Autowired
+    private PromotionChannelLogService promotionChannelLogService;
+
+    @GetMapping("/getPromotionChannelLog")
+    public List<PromotionChannelLog> getPromotionChannelLog(){
+        return promotionChannelLogService.getPromotionChannelLog();
+    }
+
+    @PostMapping("/insertPromotionChannelLog")
+    public int insertPromotionChannelLog(@ModelAttribute PromotionChannelLog promotionChannelLog) {
+        return promotionChannelLogService.insertPromotionChannelLog(promotionChannelLog);
+    }
+}

+ 25 - 0
src/main/java/com/ygj/yuemum/controller/promotion/PromotionTestController.java

@@ -0,0 +1,25 @@
+package com.ygj.yuemum.controller.promotion;
+
+
+import com.ygj.yuemum.domain.promotion.PromotionDC;
+import com.ygj.yuemum.domain.promotion.PromotionTest;
+import com.ygj.yuemum.service.promotion.PromotionDCService;
+import com.ygj.yuemum.service.promotion.PromotionTestService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+public class PromotionTestController {
+
+    @Autowired
+    private PromotionTestService promotionTestService;
+
+    @GetMapping("/getPromotionTestByPrxID")
+    public List<PromotionTest> getPromotionTestByPrxID(@RequestParam("prx_id") Integer prx_id){
+        return promotionTestService.getPromotionTestByPrxID(prx_id);
+    }
+}

+ 23 - 0
src/main/java/com/ygj/yuemum/controller/promotion/PromotionTestResultController.java

@@ -0,0 +1,23 @@
+package com.ygj.yuemum.controller.promotion;
+
+
+import com.ygj.yuemum.domain.promotion.PromotionTestResult;
+import com.ygj.yuemum.service.promotion.PromotionTestResultService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+public class PromotionTestResultController {
+
+    @Autowired
+    private PromotionTestResultService promotionTestResultService;
+
+    @GetMapping("/getPromotionTestResultByPtID")
+    public List<PromotionTestResult> getPromotionTestResultByPtID(@RequestParam("pt_id") Integer pt_id){
+        return promotionTestResultService.getPromotionTestResultByPtID(pt_id);
+    }
+}

+ 26 - 0
src/main/java/com/ygj/yuemum/controller/promotion/PromotionTestUserScoreController.java

@@ -0,0 +1,26 @@
+package com.ygj.yuemum.controller.promotion;
+
+
+import com.ygj.yuemum.domain.promotion.PromotionTestUserScore;
+import com.ygj.yuemum.domain.promotion.PromotionUserInfo;
+import com.ygj.yuemum.service.promotion.PromotionTestUserScoreService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+public class PromotionTestUserScoreController {
+
+    @Autowired
+    private PromotionTestUserScoreService promotionTestUserScoreService;
+
+    @GetMapping("/getPromotionTestUserScoreByOpenID")
+    public PromotionTestUserScore getPromotionTestResultByPtID(@RequestParam("pc_openid") String pc_openid){
+        return promotionTestUserScoreService.getPromotionTestUserScoreByOpenID(pc_openid);
+    }
+
+    @PostMapping("/insertPromotionTestUserScore")
+    public int insertPromotionTestUserScore(@ModelAttribute PromotionTestUserScore promotionTestUserScore) {
+        return promotionTestUserScoreService.insertPromotionTestUserScore(promotionTestUserScore);
+    }
+
+}

+ 12 - 0
src/main/java/com/ygj/yuemum/dao/promotion/PromotionChannelDao.java

@@ -0,0 +1,12 @@
+package com.ygj.yuemum.dao.promotion;
+
+import com.ygj.yuemum.domain.promotion.PromotionChannel;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface PromotionChannelDao {
+
+    List<PromotionChannel> getPromotionChannel();
+}

+ 13 - 0
src/main/java/com/ygj/yuemum/dao/promotion/PromotionChannelLogDao.java

@@ -0,0 +1,13 @@
+package com.ygj.yuemum.dao.promotion;
+
+import com.ygj.yuemum.domain.promotion.PromotionChannelLog;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface PromotionChannelLogDao {
+
+    List<PromotionChannelLog> getPromotionChannelLog();
+    int insertPromotionChannelLog(PromotionChannelLog promotionChannelLog);
+}

+ 12 - 0
src/main/java/com/ygj/yuemum/dao/promotion/PromotionTestDao.java

@@ -0,0 +1,12 @@
+package com.ygj.yuemum.dao.promotion;
+
+import com.ygj.yuemum.domain.promotion.PromotionTest;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface PromotionTestDao {
+
+    List<PromotionTest> getPromotionTestByPrxID(Integer prx_id);
+}

+ 12 - 0
src/main/java/com/ygj/yuemum/dao/promotion/PromotionTestResultDao.java

@@ -0,0 +1,12 @@
+package com.ygj.yuemum.dao.promotion;
+
+import com.ygj.yuemum.domain.promotion.PromotionTestResult;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface PromotionTestResultDao {
+
+    List<PromotionTestResult> getPromotionTestResultByPtID(Integer pt_id);
+}

+ 11 - 0
src/main/java/com/ygj/yuemum/dao/promotion/PromotionTestUserScoreDao.java

@@ -0,0 +1,11 @@
+package com.ygj.yuemum.dao.promotion;
+
+import com.ygj.yuemum.domain.promotion.PromotionTestUserScore;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface PromotionTestUserScoreDao {
+
+    int insertPromotionTestUserScore(PromotionTestUserScore promotionTestUserScore);
+    PromotionTestUserScore getPromotionTestUserScoreByOpenID(String pc_openid);
+}

+ 9 - 0
src/main/java/com/ygj/yuemum/domain/distributionchannel/DcIntroducerExtract.java

@@ -16,9 +16,18 @@ public class DcIntroducerExtract {
     private String wue_approveruser;
     private String wue_paydate;
     private String wue_remarks;
+    private String cltname;
     private Integer page;
     private Integer limit;
 
+    public String getCltname() {
+        return cltname;
+    }
+
+    public void setCltname(String cltname) {
+        this.cltname = cltname;
+    }
+
     public String getWue_account_name() {
         return wue_account_name;
     }

+ 22 - 0
src/main/java/com/ygj/yuemum/domain/promotion/PromotionChannel.java

@@ -0,0 +1,22 @@
+package com.ygj.yuemum.domain.promotion;
+
+public class PromotionChannel {
+    private Integer id;
+    private String pc_name;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getPc_name() {
+        return pc_name;
+    }
+
+    public void setPc_name(String pc_name) {
+        this.pc_name = pc_name;
+    }
+}

+ 50 - 0
src/main/java/com/ygj/yuemum/domain/promotion/PromotionChannelLog.java

@@ -0,0 +1,50 @@
+package com.ygj.yuemum.domain.promotion;
+
+public class PromotionChannelLog {
+    private Integer id;
+    private Integer prx_id;
+    private String pcl_date;
+    private String pcl_openid;
+    private String pcl_channel_code;
+
+    public String getPcl_channel_code() {
+        return pcl_channel_code;
+    }
+
+    public void setPcl_channel_code(String pcl_channel_code) {
+        this.pcl_channel_code = pcl_channel_code;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getPrx_id() {
+        return prx_id;
+    }
+
+    public void setPrx_id(Integer prx_id) {
+        this.prx_id = prx_id;
+    }
+
+    public String getPcl_date() {
+        return pcl_date;
+    }
+
+    public void setPcl_date(String pcl_date) {
+        this.pcl_date = pcl_date;
+    }
+
+    public String getPcl_openid() {
+        return pcl_openid;
+    }
+
+    public void setPcl_openid(String pcl_openid) {
+        this.pcl_openid = pcl_openid;
+    }
+
+}

+ 18 - 0
src/main/java/com/ygj/yuemum/domain/promotion/PromotionDC.java

@@ -6,6 +6,24 @@ public class PromotionDC {
     private String pd_headimg;
     private String pd_startdate;
     private String pd_enddate;
+    private Integer pd_type;
+    private String pd_imgurl;
+
+    public String getPd_imgurl() {
+        return pd_imgurl;
+    }
+
+    public void setPd_imgurl(String pd_imgurl) {
+        this.pd_imgurl = pd_imgurl;
+    }
+
+    public Integer getPd_type() {
+        return pd_type;
+    }
+
+    public void setPd_type(Integer pd_type) {
+        this.pd_type = pd_type;
+    }
 
     public Integer getId() {
         return id;

+ 49 - 0
src/main/java/com/ygj/yuemum/domain/promotion/PromotionTest.java

@@ -0,0 +1,49 @@
+package com.ygj.yuemum.domain.promotion;
+
+public class PromotionTest {
+    private Integer id;
+    private Integer prx_id;
+    private String pt_title;
+    private Integer pt_seq;
+    private String pt_img_path;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getPrx_id() {
+        return prx_id;
+    }
+
+    public void setPrx_id(Integer prx_id) {
+        this.prx_id = prx_id;
+    }
+
+    public String getPt_title() {
+        return pt_title;
+    }
+
+    public void setPt_title(String pt_title) {
+        this.pt_title = pt_title;
+    }
+
+    public Integer getPt_seq() {
+        return pt_seq;
+    }
+
+    public void setPt_seq(Integer pt_seq) {
+        this.pt_seq = pt_seq;
+    }
+
+    public String getPt_img_path() {
+        return pt_img_path;
+    }
+
+    public void setPt_img_path(String pt_img_path) {
+        this.pt_img_path = pt_img_path;
+    }
+}

+ 58 - 0
src/main/java/com/ygj/yuemum/domain/promotion/PromotionTestResult.java

@@ -0,0 +1,58 @@
+package com.ygj.yuemum.domain.promotion;
+
+public class PromotionTestResult {
+    private Integer id;
+    private Integer pt_id;
+    private String pr_desc;
+    private Integer pr_score;
+    private Integer pr_seq;
+    private String pr_img_path;
+
+    public String getPr_img_path() {
+        return pr_img_path;
+    }
+
+    public void setPr_img_path(String pr_img_path) {
+        this.pr_img_path = pr_img_path;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public Integer getPt_id() {
+        return pt_id;
+    }
+
+    public void setPt_id(Integer pt_id) {
+        this.pt_id = pt_id;
+    }
+
+    public String getPr_desc() {
+        return pr_desc;
+    }
+
+    public void setPr_desc(String pr_desc) {
+        this.pr_desc = pr_desc;
+    }
+
+    public Integer getPr_score() {
+        return pr_score;
+    }
+
+    public void setPr_score(Integer pr_score) {
+        this.pr_score = pr_score;
+    }
+
+    public Integer getPr_seq() {
+        return pr_seq;
+    }
+
+    public void setPr_seq(Integer pr_seq) {
+        this.pr_seq = pr_seq;
+    }
+}

+ 40 - 0
src/main/java/com/ygj/yuemum/domain/promotion/PromotionTestUserScore.java

@@ -0,0 +1,40 @@
+package com.ygj.yuemum.domain.promotion;
+
+public class PromotionTestUserScore {
+    private Integer id;
+    private String pc_openid;
+    private String pc_date;
+    private Integer pc_score;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getPc_openid() {
+        return pc_openid;
+    }
+
+    public void setPc_openid(String pc_openid) {
+        this.pc_openid = pc_openid;
+    }
+
+    public String getPc_date() {
+        return pc_date;
+    }
+
+    public void setPc_date(String pc_date) {
+        this.pc_date = pc_date;
+    }
+
+    public Integer getPc_score() {
+        return pc_score;
+    }
+
+    public void setPc_score(Integer pc_score) {
+        this.pc_score = pc_score;
+    }
+}

+ 70 - 3
src/main/java/com/ygj/yuemum/service/global/CreatePOPService.java

@@ -6,12 +6,16 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.imageio.ImageIO;
+import javax.imageio.ImageReadParam;
+import javax.imageio.ImageReader;
+import javax.imageio.stream.ImageInputStream;
+import javax.swing.*;
 import java.awt.*;
+import java.awt.geom.AffineTransform;
 import java.awt.image.BufferedImage;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
+import java.io.*;
 import java.util.ArrayList;
+import java.util.Iterator;
 
 @Service
 public class CreatePOPService {
@@ -19,7 +23,69 @@ public class CreatePOPService {
     public static final String LOCALQRCODE = Constant.LOCALQRCODE;
     public static final String DEMOQRCODE = Constant.DEMOQRCODE;
     public static final String HTTPOPPQRCODE = Constant.HTTPOPPQRCODE;
+    public static final String HTTTESTQRCODE = Constant.HTTTESTQRCODE;
+    public static final String TESTQRCODE = Constant.TESTQRCODE;
 
+    public String CreateTestShare(String qrcode,String testImg,Integer score,String openid) throws IOException {
+        File qrCodeImg = new File(LOCALQRCODE+"/"+qrcode);
+        File fileBg = new File(TESTQRCODE+"/"+testImg);
+        FileInputStream fis = new FileInputStream(fileBg);
+        ImageIcon imageIcon = new ImageIcon(TESTQRCODE+"/"+testImg);
+        int iconWidth = imageIcon.getIconWidth();
+        int iconHeight = imageIcon.getIconHeight() -200;
+
+        ImageInputStream iis = ImageIO.createImageInputStream(fileBg);
+        Iterator<ImageReader> it = ImageIO.getImageReaders(iis);
+        ImageReader r = it.next();
+        r.setInput(iis, true);
+        ImageReadParam param = r.getDefaultReadParam();
+        Rectangle rect = new Rectangle(0, 0, iconWidth, iconHeight);
+        param.setSourceRegion(rect);
+        BufferedImage bufferedImage = r.read(0, param);
+        Graphics2D g = bufferedImage.createGraphics();
+        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
+        g.drawImage(bufferedImage.getScaledInstance(iconWidth, iconHeight, Image.SCALE_SMOOTH), 0, 0, null);
+        g.drawImage(ImageIO.read(qrCodeImg), 100, iconHeight-300, 200, 200, null);
+
+        Graphics2D g2 = (Graphics2D) g;
+        int scorex = 0;
+        int fenx = 0;
+        if(score == 100) {
+            scorex = 730;
+            fenx = 920;
+        } else {
+            scorex = 780;
+            fenx = 890;
+        }
+        Font rewardFirstFont = new Font("PingFang SC Bold", Font.BOLD, 130);
+        AffineTransform affineTransform = new AffineTransform();
+        affineTransform.rotate(Math.toRadians(15), 0, 0);
+        Font rotatedFont = rewardFirstFont.deriveFont(affineTransform);
+        g2.setColor(Color.decode("#F50000"));
+        g2.setFont(rotatedFont);
+        g2.drawString(String.valueOf(score),scorex,50);
+
+        Font rewardLastFont = new Font("PingFang SC Bold", Font.CENTER_BASELINE, 70);
+        AffineTransform affineTransform2 = new AffineTransform();
+        affineTransform2.rotate(Math.toRadians(15), 0, 0);
+        Font rotatedFont2 = rewardLastFont.deriveFont(affineTransform);
+        g2.setFont(rotatedFont2);
+        g2.setColor(Color.decode("#F50000"));
+        g2.drawString("分",fenx,280);
+
+
+
+        g.dispose();
+        g2.dispose();
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        ImageIO.write(bufferedImage, "jpg", os);
+        //保存为图片文件
+        FileUtils.writeByteArrayToFile(new File(TESTQRCODE+"/dc/"+openid+".jpg"), os.toByteArray());
+        //10、关闭输入输出流
+        fis.close();
+        os.close();
+        return HTTTESTQRCODE+"/"+openid+".jpg";
+    }
 
     public String CreatePOP( String wv_phone) throws Exception {
         //宠物图片文件
@@ -86,6 +152,7 @@ public class CreatePOPService {
     public static void drawString(Graphics2D g, Color color, Font font, String content, float x, float y) {
         g.setColor(color);
         g.setFont(font);
+//        g.rotate(30f);//倾斜?
         g.drawString(content, x, y);
     }
     public static void drawString(Graphics2D g, Color color, Font font, String content, float x, float y, int width, int lineWordNum, int linePadding, boolean center) {

+ 28 - 0
src/main/java/com/ygj/yuemum/service/promotion/PromotionChannelLogService.java

@@ -0,0 +1,28 @@
+package com.ygj.yuemum.service.promotion;
+
+import com.ygj.yuemum.dao.promotion.PromotionChannelLogDao;
+import com.ygj.yuemum.domain.promotion.PromotionChannelLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class PromotionChannelLogService {
+
+    @Autowired
+    private PromotionChannelLogDao promotionChannelLogDao;
+    public List<PromotionChannelLog> getPromotionChannelLog() {
+        return promotionChannelLogDao.getPromotionChannelLog();
+    }
+
+    public int insertPromotionChannelLog(PromotionChannelLog promotionChannelLog){
+        Date date = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        promotionChannelLog.setPcl_date(simpleDateFormat.format(date));
+        return promotionChannelLogDao.insertPromotionChannelLog(promotionChannelLog);
+    }
+
+}

+ 19 - 0
src/main/java/com/ygj/yuemum/service/promotion/PromotionChannelService.java

@@ -0,0 +1,19 @@
+package com.ygj.yuemum.service.promotion;
+
+import com.ygj.yuemum.dao.promotion.PromotionChannelDao;
+import com.ygj.yuemum.domain.promotion.PromotionChannel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class PromotionChannelService {
+
+    @Autowired
+    private PromotionChannelDao promotionChannelDao;
+    public List<PromotionChannel> getPromotionChannel() {
+        return promotionChannelDao.getPromotionChannel();
+    }
+
+}

+ 19 - 0
src/main/java/com/ygj/yuemum/service/promotion/PromotionTestResultService.java

@@ -0,0 +1,19 @@
+package com.ygj.yuemum.service.promotion;
+
+import com.ygj.yuemum.dao.promotion.PromotionTestResultDao;
+import com.ygj.yuemum.domain.promotion.PromotionTestResult;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class PromotionTestResultService {
+
+    @Autowired
+    private PromotionTestResultDao promotionTestResultDao;
+    public List<PromotionTestResult> getPromotionTestResultByPtID(Integer pt_id){
+        return promotionTestResultDao.getPromotionTestResultByPtID(pt_id);
+    }
+
+}

+ 19 - 0
src/main/java/com/ygj/yuemum/service/promotion/PromotionTestService.java

@@ -0,0 +1,19 @@
+package com.ygj.yuemum.service.promotion;
+
+import com.ygj.yuemum.dao.promotion.PromotionTestDao;
+import com.ygj.yuemum.domain.promotion.PromotionTest;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class PromotionTestService {
+
+    @Autowired
+    private PromotionTestDao promotionTestDao;
+    public List<PromotionTest> getPromotionTestByPrxID(Integer prx_id){
+        return promotionTestDao.getPromotionTestByPrxID(prx_id);
+    }
+
+}

+ 26 - 0
src/main/java/com/ygj/yuemum/service/promotion/PromotionTestUserScoreService.java

@@ -0,0 +1,26 @@
+package com.ygj.yuemum.service.promotion;
+
+import com.ygj.yuemum.dao.promotion.PromotionTestUserScoreDao;
+import com.ygj.yuemum.domain.promotion.PromotionTestUserScore;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Service
+public class PromotionTestUserScoreService {
+
+    @Autowired
+    private PromotionTestUserScoreDao promotionTestUserScoreDao;
+    public PromotionTestUserScore getPromotionTestUserScoreByOpenID(String pc_openid){
+        return promotionTestUserScoreDao.getPromotionTestUserScoreByOpenID(pc_openid);
+    }
+    public int insertPromotionTestUserScore(PromotionTestUserScore promotionTestUserScore) {
+        Date date = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        promotionTestUserScore.setPc_date(simpleDateFormat.format(date));
+        return promotionTestUserScoreDao.insertPromotionTestUserScore(promotionTestUserScore);
+    }
+
+}

+ 5 - 0
src/main/java/com/ygj/yuemum/shiro/ShiroConfig.java

@@ -88,6 +88,11 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/insertPromotionDCUserInfo", "anon");
         filterChainDefinitionMap.put("/updateDcIntroducerApplicant", "anon");
         filterChainDefinitionMap.put("/updateAccountNumber", "anon");
+        filterChainDefinitionMap.put("/insertPromotionChannelLog", "anon");
+        filterChainDefinitionMap.put("/getPromotionTestByPrxID", "anon");
+        filterChainDefinitionMap.put("/getPromotionTestResultByPtID", "anon");
+        filterChainDefinitionMap.put("/insertPromotionTestUserScore", "anon");
+        filterChainDefinitionMap.put("/CreateTestShare", "anon");
         //萌动开放权限
         filterChainDefinitionMap.put("/getNewUserCoupon", "anon");
         filterChainDefinitionMap.put("/getConsultTaskCoupon", "anon");

+ 16 - 6
src/main/resources/application.yml

@@ -14,6 +14,12 @@ spring:
   thymeleaf:
     mode: LEGACYHTML5
     prefix: classpath:/templates
+  servlet:
+    multipart:
+      enabled: true
+      file-size-threshold: 0
+      max-file-size: 5M
+      max-request-size: 5M
 pagehelper:
   helper-dialect: mysql
   reasonable: true
@@ -54,6 +60,8 @@ file:
   LOCALQRCODE: "C:/apache-tomcat-9.0.14/webapps/MiniProgram/mgm"
   DEMOQRCODE: "C:/apache-tomcat-9.0.14/webapps/MiniProgram/mgm/pop"
   HTTPOPPQRCODE: "http://192.168.8.14:8080/MiniProgram/mgm/pop"
+  TESTQRCODE: "C:/apache-tomcat-9.0.14/webapps/MiniProgram/promotion/test"
+  HTTTESTQRCODE: "http://192.168.8.14:8080/MiniProgram/promotion/test/dc"
 #测试
 #file:
 #  ROOT : "/usr/local/apache-tomcat-8.5.30/webapps/resume/img/"
@@ -73,20 +81,22 @@ file:
 #file:
 #  ROOT : "/usr/local/tomcat/tomcat7/webapps/resume/img/"
 #  ResumeFile : "/usr/local/tomcat/tomcat7/webapps/resume/"
-#  httpRoot : "http://yuesuo.yueguanjia.com/resume/img/"
-#  httphtmlRoot : "http://yuesuo.yueguanjia.com/resume/"
+#  httpRoot : "https://yuesuo.yueguanjia.com/resume/img/"
+#  httphtmlRoot : "https://yuesuo.yueguanjia.com/resume/"
 #  modulePath : "/usr/local/tomcat/tomcat7/webapps/resume/resume.html"
 #  payvoucher : "/usr/local/tomcat/tomcat7/webapps/payvoucher"
-#  httppayvoucher : "http://yuesuo.yueguanjia.com/payvoucher"
+#  httppayvoucher : "https://yuesuo.yueguanjia.com/payvoucher"
 #  promotionvoucher : "/usr/local/tomcat/tomcat7/webapps/MiniProgram/promotion/offline"
-#  httppromotionvoucher : "http://yuesuo.yueguanjia.com/MiniProgram/promotion/offline"
+#  httppromotionvoucher : "https://yuesuo.yueguanjia.com/MiniProgram/promotion/offline"
 #  qrcode: "/usr/local/tomcat/tomcat7/webapps/MiniProgram/mgm"
-#  httpqrcode: "http://yuesuo.yueguanjia.com/MiniProgram/mgm"
+#  httpqrcode: "https://yuesuo.yueguanjia.com/MiniProgram/mgm"
 #  IMGBANKCARD: "/usr/local/tomcat/tomcat7/webapps/MiniProgram/mgm/bankCard/"
-#  HTTPIMGBANKCARD: "http://yuesuo.yueguanjia.com/MiniProgram/mgm/bankCard/"
+#  HTTPIMGBANKCARD: "https://yuesuo.yueguanjia.com/MiniProgram/mgm/bankCard/"
 #  LOCALQRCODE: "/usr/local/tomcat/tomcat7/webapps/MiniProgram/mgm"
 #  DEMOQRCODE: "/usr/local/tomcat/tomcat7/webapps/MiniProgram/mgm/pop"
 #  HTTPOPPQRCODE: "https://yuesuo.yueguanjia.com/MiniProgram/mgm/pop"
+#  TESTQRCODE: "/usr/local/tomcat/tomcat7/webapps/MiniProgram/promotion/test"
+#  HTTTESTQRCODE: "https://yuesuo.yueguanjia.com/MiniProgram/promotion/test/dc"
 #微信公众号---------------------------------------------------
 wechat:
   APPID : "wx52852a3c47540fad"

+ 1 - 0
src/main/resources/mybatis/mapper/distributionchannel/DcIntroducerExtractMapper.xml

@@ -85,6 +85,7 @@
         id,
         wue_orderno,
         wue_phone,
+        fgetcltname(wue_phone) cltname,
         wue_account_name,
         wue_bank_card,
         wue_type,

+ 51 - 0
src/main/resources/mybatis/mapper/promotion/PromotionChannelLogMapper.xml

@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ygj.yuemum.dao.promotion.PromotionChannelLogDao" >
+
+    <resultMap id="BaseResultMap" type="com.ygj.yuemum.domain.promotion.PromotionChannelLog" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="prx_id" property="prx_id" jdbcType="INTEGER" />
+        <result column="pcl_date" property="pcl_date" jdbcType="DATE" />
+        <result column="pcl_openid" property="pcl_openid" jdbcType="VARCHAR" />
+        <result column="pcl_channel_code" property="pcl_channel_code" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <!--获取所有数据-->
+    <select id="getPromotionChannelLog" resultType="com.ygj.yuemum.domain.promotion.PromotionChannelLog" >
+        select
+        *
+        from promotion_channel_log
+        order by 1 desc
+    </select>
+    <insert id="insertPromotionChannelLog" parameterType="com.ygj.yuemum.domain.promotion.PromotionChannelLog" >
+        insert into promotion_channel_log
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+            <if test="prx_id != null" >
+                prx_id,
+            </if>
+            <if test="pcl_date != null" >
+                pcl_date,
+            </if>
+            <if test="pcl_openid != null" >
+                pcl_openid,
+            </if>
+            <if test="pcl_channel_code != null" >
+                pcl_channel_code
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+            <if test="prx_id != null" >
+                #{prx_id,jdbcType=INTEGER},
+            </if>
+            <if test="pcl_date != null" >
+                #{pcl_date,jdbcType=DATE},
+            </if>
+            <if test="pcl_openid != null" >
+                #{pcl_openid,jdbcType=VARCHAR},
+            </if>
+            <if test="pcl_channel_code != null" >
+                #{pcl_channel_code,jdbcType=VARCHAR}
+            </if>
+        </trim>
+    </insert>
+</mapper>

+ 18 - 0
src/main/resources/mybatis/mapper/promotion/PromotionChannelMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ygj.yuemum.dao.promotion.PromotionChannelDao" >
+
+    <resultMap id="BaseResultMap" type="com.ygj.yuemum.domain.promotion.PromotionChannel" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="pc_name" property="pc_name" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <!--获取所有数据-->
+    <select id="getPromotionChannel" resultType="com.ygj.yuemum.domain.promotion.PromotionChannel">
+        select
+        *
+        from promotion_channel
+        order by 1 desc
+    </select>
+
+</mapper>

+ 5 - 2
src/main/resources/mybatis/mapper/promotion/PromotionDCMapper.xml

@@ -8,12 +8,15 @@
         <result column="pd_headimg" property="pd_headimg" jdbcType="VARCHAR" />
         <result column="pd_startdate" property="pd_startdate" jdbcType="DATE" />
         <result column="pd_enddate" property="pd_enddate" jdbcType="DATE" />
+        <result column="pd_type" property="pd_type" jdbcType="INTEGER" />
+        <result column="pd_createdate" property="pd_createdate" jdbcType="DATE" />
+        <result column="pd_imgurl" property="pd_imgurl" jdbcType="VARCHAR" />
     </resultMap>
 
     <!--获取所有数据-->
     <select id="getPromotionDC" resultType="com.ygj.yuemum.domain.promotion.PromotionDC" parameterType="com.ygj.yuemum.domain.promotion.PromotionOffline" >
         select
-        id,pd_title,pd_headimg,pd_startdate,pd_enddate
+        id,pd_title,pd_headimg,pd_startdate,pd_enddate,pd_type,pd_imgurl
         from promotion_dc
         where
          DATE_FORMAT(now(), '%Y-%m-%d')  &gt;=  pd_startdate
@@ -24,7 +27,7 @@
 
     <select id="getPromotionDCs" resultType="com.ygj.yuemum.domain.promotion.PromotionDC"  >
         select
-        id,pd_title
+        id,pd_title,pd_imgurl
         from promotion_dc
         order by 1 desc
     </select>

+ 23 - 0
src/main/resources/mybatis/mapper/promotion/PromotionTestMapper.xml

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ygj.yuemum.dao.promotion.PromotionTestDao" >
+
+    <resultMap id="BaseResultMap" type="com.ygj.yuemum.domain.promotion.PromotionTest" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="prx_id" property="prx_id" jdbcType="INTEGER" />
+        <result column="pt_title" property="pt_title" jdbcType="VARCHAR" />
+        <result column="pt_seq" property="pt_seq" jdbcType="INTEGER" />
+        <result column="pt_img_path" property="pt_img_path" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <!--获取所有数据-->
+    <select id="getPromotionTestByPrxID" resultType="com.ygj.yuemum.domain.promotion.PromotionTest" parameterType="java.lang.Integer" >
+        select
+        *
+        from promotion_test
+        where
+         prx_id = #{prx_id,jdbcType=INTEGER}
+        order by pt_seq asc
+    </select>
+
+</mapper>

+ 24 - 0
src/main/resources/mybatis/mapper/promotion/PromotionTestResultMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ygj.yuemum.dao.promotion.PromotionTestResultDao" >
+
+    <resultMap id="BaseResultMap" type="com.ygj.yuemum.domain.promotion.PromotionTestResult" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="pt_id" property="pt_id" jdbcType="INTEGER" />
+        <result column="pr_desc" property="pr_desc" jdbcType="VARCHAR" />
+        <result column="pr_score" property="pr_score" jdbcType="INTEGER" />
+        <result column="pr_seq" property="pr_seq" jdbcType="INTEGER" />
+        <result column="pr_img_path" property="pr_img_path" jdbcType="INTEGER" />
+    </resultMap>
+
+    <!--获取所有数据-->
+    <select id="getPromotionTestResultByPtID" resultType="com.ygj.yuemum.domain.promotion.PromotionTestResult" parameterType="java.lang.Integer" >
+        select
+        *
+        from promotion_test_result
+        where
+         pt_id = #{pt_id,jdbcType=INTEGER}
+        order by pr_seq asc
+    </select>
+
+</mapper>

+ 47 - 0
src/main/resources/mybatis/mapper/promotion/PromotionTestUserScoreMapper.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ygj.yuemum.dao.promotion.PromotionTestUserScoreDao" >
+
+    <resultMap id="BaseResultMap" type="com.ygj.yuemum.domain.promotion.PromotionTestUserScore" >
+        <id column="id" property="id" jdbcType="INTEGER" />
+        <result column="pc_openid" property="pc_openid" jdbcType="VARCHAR" />
+        <result column="pc_date" property="pc_date" jdbcType="DATE" />
+        <result column="pc_score" property="pc_score" jdbcType="INTEGER" />
+    </resultMap>
+
+    <!--获取所有数据-->
+    <select id="getPromotionTestUserScoreByOpenID" resultType="com.ygj.yuemum.domain.promotion.PromotionTestUserScore" parameterType="java.lang.String" >
+        select
+        *
+        from promotion_test_user_score
+        where
+         pc_openid = #{pc_openid,jdbcType=VARCHAR }
+        order by 1 asc limit 1
+    </select>
+    <insert id="insertPromotionTestUserScore" parameterType="com.ygj.yuemum.domain.promotion.PromotionTestUserScore" >
+        insert into promotion_test_user_score
+        <trim prefix="(" suffix=")" suffixOverrides="," >
+            <if test="pc_openid != null" >
+                pc_openid,
+            </if>
+            <if test="pc_date != null" >
+                pc_date,
+            </if>
+            <if test="pc_score != null" >
+                pc_score
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides="," >
+            <if test="pc_openid != null" >
+                #{pc_openid,jdbcType=VARCHAR},
+            </if>
+            <if test="pc_date != null" >
+                #{pc_date,jdbcType=DATE},
+            </if>
+            <if test="pc_score != null" >
+                #{pc_score,jdbcType=INTEGER}
+            </if>
+        </trim>
+    </insert>
+
+</mapper>