yujian
2019-03-22 f5788cb1b95d9be099caae76770efae385926eff
邀请图管理   Dao改造
3个文件已修改
3个文件已添加
311 ■■■■■ 已修改文件
fanli/src/main/java/com/yeshi/fanli/controller/admin/SpreadImgAdminController.java 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/user/SpreadImgMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/entity/bus/invite/SpreadImg.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/mapping/user/SpreadImgMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/impl/config/SpreadImgServiceImpl.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/service/inter/config/SpreadImgService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fanli/src/main/java/com/yeshi/fanli/controller/admin/SpreadImgAdminController.java
New file
@@ -0,0 +1,152 @@
package com.yeshi.fanli.controller.admin;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.tencentcloud.COSManager;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import com.yeshi.fanli.entity.bus.invite.SpreadImg;
import com.yeshi.fanli.service.inter.config.SpreadImgService;
import com.yeshi.fanli.tag.PageEntity;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import net.sf.json.JSONObject;
@Controller
@RequestMapping("admin/new/api/v1/spreadImg")
public class SpreadImgAdminController {
    @Resource
    private SpreadImgService spreadImgService;
    /**
     * 保存信息
     *
     * @param callback
     * @param special
     * @param out
     */
    @RequestMapping(value = "save")
    public void save(String callback, SpreadImg spreadImg, HttpServletRequest request,PrintWriter out) {
        try {
            // 1. 先判断httpRequest 是否含有文件类型
            if (request instanceof MultipartHttpServletRequest) {
                MultipartHttpServletRequest fileRequest = (MultipartHttpServletRequest) request;
                spreadImgService.saveObject(fileRequest.getFile("file"), spreadImg);
            }else{
                spreadImgService.saveObject(null, spreadImg);
            }
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("保存成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("保存失败"));
            e.printStackTrace();
        }
    }
    /**
     * 查询
     *
     * @param callback
     * @param pageIndex
     * @param pageSize
     * @param key       模糊查询:说明、标识
     * @param out
     */
    @RequestMapping(value = "query")
    public void query(String callback, Integer pageIndex, Integer pageSize, String key, Integer sort, PrintWriter out) {
        if (pageIndex == null || pageIndex < 1) {
            pageIndex = 1;
        }
        if (pageSize == null || pageSize < 1) {
            pageSize = Constant.PAGE_SIZE;
        }
        try {
            List<SpreadImg> list = spreadImgService.listQuery((pageIndex - 1) * pageSize, pageSize, key);
            if (list == null || list.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("暂无数据"));
                return;
            }
            long count = spreadImgService.countQuery(key);
            int totalPage = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
            PageEntity pe = new PageEntity(pageIndex, pageSize, count, totalPage);
            GsonBuilder gsonBuilder = new GsonBuilder();
            gsonBuilder.serializeNulls();
            Gson gson = gsonBuilder.setDateFormat("yyyy/MM/dd HH:mm:ss").create();
            JSONObject data = new JSONObject();
            data.put("pe", pe);
            data.put("result_list", gson.toJson(list));
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult(data));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("操作失败"));
            e.printStackTrace();
        }
    }
    /**
     * 删除
     *
     * @param callback
     * @param idArray
     * @param out
     */
    @RequestMapping(value = "delete")
    public void delete(String callback, String idArray, PrintWriter out) {
        try {
            if (StringUtil.isNullOrEmpty(idArray)) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("请选择操作的数据"));
                return;
            }
            Gson gson = new Gson();
            List<Long> list = gson.fromJson(idArray, new TypeToken<ArrayList<Long>>() {
            }.getType());
            if (list == null || list.size() == 0) {
                JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("未检测到删除的数据"));
                return;
            }
            for (Long id : list) {
                SpreadImg spreadImg = spreadImgService.getInviteSpreadImg(id);
                String url = spreadImg.getUrl();
                if (!StringUtil.isNullOrEmpty(url)) {
                    COSManager.getInstance().deleteFile(url);
                }
                spreadImgService.deleteInviteFriendImg(id);
            }
            JsonUtil.printMode(out, callback, JsonUtil.loadTrueResult("删除成功"));
        } catch (Exception e) {
            JsonUtil.printMode(out, callback, JsonUtil.loadFalseResult("删除失败"));
            e.printStackTrace();
        }
    }
}
fanli/src/main/java/com/yeshi/fanli/dao/mybatis/user/SpreadImgMapper.java
@@ -2,6 +2,8 @@
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.yeshi.fanli.dao.BaseMapper;
import com.yeshi.fanli.entity.bus.invite.SpreadImg;
@@ -12,4 +14,11 @@
     * @return
     */
    List<SpreadImg> listAll();
    List<SpreadImg> listQuery(@Param("start") long start, @Param("count") int count, @Param("url") String url);
    long countQuery(@Param("url") String url);
}
fanli/src/main/java/com/yeshi/fanli/entity/bus/invite/SpreadImg.java
@@ -9,6 +9,11 @@
import com.google.gson.annotations.Expose;
/**
 * 邀请好友图片
 * @author Administrator
 *
 */
@Table( "yeshi_ec_spread_img")
public class SpreadImg {
    
fanli/src/main/java/com/yeshi/fanli/mapping/user/SpreadImgMapper.xml
@@ -56,4 +56,21 @@
        </set>
        where si_id = #{id,jdbcType=BIGINT}
    </update>
    <select id="listQuery" resultMap="BaseResultMap">
        SELECT * FROM yeshi_ec_spread_img p
            <if test="url != null and url != ''">
                WHERE p.`si_url` LIKE '%#{url}%'
            </if>
        ORDER BY p.`si_createtime` DESC
        LIMIT #{start},#{count}
    </select>
    <select id="countQuery" resultType="java.lang.Long">
        SELECT IFNULL(COUNT(p.`si_id`),0) FROM yeshi_ec_spread_img p
        <if test="url != null and url != ''">
            WHERE p.`si_url` LIKE '%#{url}%'
        </if>
    </select>
</mapper>
fanli/src/main/java/com/yeshi/fanli/service/impl/config/SpreadImgServiceImpl.java
New file
@@ -0,0 +1,107 @@
package com.yeshi.fanli.service.impl.config;
import java.io.InputStream;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.yeshi.utils.tencentcloud.COSManager;
import com.yeshi.fanli.dao.mybatis.user.SpreadImgMapper;
import com.yeshi.fanli.entity.bus.invite.SpreadImg;
import com.yeshi.fanli.service.inter.config.SpreadImgService;
@Service
public class SpreadImgServiceImpl implements SpreadImgService {
    @Resource
    private SpreadImgMapper spreadImgMapper;
    @Override
    public void deleteInviteFriendImg(long id) {
        spreadImgMapper.deleteByPrimaryKey(id);
    }
    @Override
    public SpreadImg getInviteSpreadImg(long id) {
        return spreadImgMapper.selectByPrimaryKey(id);
    }
    @Override
    public void saveObject(MultipartFile file, SpreadImg record) throws Exception{
        String picture = null;
        if (file != null) {
            picture = uploadPicture(file);
        }
        Long id = record.getId();
        if (id == null) {
            record.setUrl(picture);
            record.setCreatetime(new Date());
            spreadImgMapper.insert(record);
        } else {
            // 修改
            SpreadImg resultObj = spreadImgMapper.selectByPrimaryKey(id);
            if (resultObj == null) {
                throw new Exception("修改内容已不存在");
            }
            if (picture != null && picture.trim().length() > 0) {
                // 删除已存在图片
                removePicture(resultObj.getUrl());
                record.setUrl(picture);
            } else {
                record.setUrl(resultObj.getUrl());
            }
            record.setCreatetime(resultObj.getCreatetime());
            spreadImgMapper.updateByPrimaryKey(record);
        }
    }
    /**
     * 上传图片
     * @param file
     * @return
     * @throws Exception
     */
    public String uploadPicture(MultipartFile file) throws Exception {
        // 文件解析
        InputStream inputStream = file.getInputStream();
        String contentType = file.getContentType();
        String type = contentType.substring(contentType.indexOf("/") + 1);
        // 文件路径
        String filePath="/img/invite/"+UUID.randomUUID().toString().replace("-", "") + "." + type;
        // 执行上传
        return COSManager.getInstance().uploadFile(inputStream, filePath).getUrl();
    }
    /**
     * 删除图片
     * @param record
     * @throws Exception
     */
    public void removePicture(String picture) throws Exception {
        if (picture != null && picture.trim().length() > 0) {
            COSManager.getInstance().deleteFile(picture);
        }
    }
    @Override
    public List<SpreadImg> listQuery(int start, int pageSize, String key) {
        return spreadImgMapper.listQuery(start, pageSize, key);
    }
    @Override
    public long countQuery(String key) {
        return spreadImgMapper.countQuery(key);
    }
}
fanli/src/main/java/com/yeshi/fanli/service/inter/config/SpreadImgService.java
New file
@@ -0,0 +1,21 @@
package com.yeshi.fanli.service.inter.config;
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
import com.yeshi.fanli.entity.bus.invite.SpreadImg;
public interface SpreadImgService {
    public List<SpreadImg> listQuery(int start, int pageSize, String key);
    public long countQuery(String key);
    public void deleteInviteFriendImg(long id);
    public SpreadImg getInviteSpreadImg(long id);
    public void saveObject(MultipartFile file, SpreadImg record) throws Exception;
}